С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/32: Рейтинг темы: голосов - 32, средняя оценка - 5.00
2 / 2 / 1
Регистрация: 11.09.2013
Сообщений: 85

Посчитать число слов в предложении, заканчивающихся на заданную букву

18.11.2013, 23:04. Показов 6751. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Посчитать число слов в предложении, заканчивающихся на заданную букву.
Собственно, вот. Через строки
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.11.2013, 23:04
Ответы с готовыми решениями:

Посчитать количество слов заканчивающихся на заданную букву
Дано предложение.Посчитать количество слов заканчивающихся на заданную букву,и записать эти слова в другую строку через запятую

Посчитать количество слов, заканчивающихся на заданную букву и перенести их в другую строку
Дан текст. Посчитать количество слов, заканчивающихся на заданную букву и перенести их в другую строку, написав через запятую. Вывести...

Посчитать в предложении количество слов, заканчивающихся на букву "о"
Всем привет! Помогите решить задачу: Посчитать в предложении количество слов, заканчивающихся на букву "о" Заранее спасибо:)

5
Модератор
10379 / 5666 / 3399
Регистрация: 17.08.2012
Сообщений: 17,308
19.11.2013, 03:36
Vol4_OK, а... Сами... Что же? Это проще пареной репы, нет, даже проще сырой репы (она как раз проще пареной репы).
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
program wend;
 
var s: string;
    c: char;
    i, n: integer;
 
begin
  n := 0;
  writeln('Enter string:');
  readln(s);
  s := s + ' ';
  write('Enter letter: ');
  readln(c);
  for i := 1 to length(s) - 1 do if (s[i] = c) and (s[i + 1] = ' ') then n := n + 1;
  writeln('Count of "', c, '"-ended words: ', n);
  readln
end.
1
2 / 2 / 1
Регистрация: 11.09.2013
Сообщений: 85
19.11.2013, 08:12  [ТС]
А зачем в конец добавлять пробел? PS: я знаю что проще, но запутался в алгоритме. Делал почти так-же, но выдавались различные ошибки, например: Выход за рамки массива или что and нельзя использовать с char и string.

Добавлено через 8 минут


Спасибо большое, это действительно легко. Я не так понял задание и искал слова, где вообще есть заданная буква, а это, согласитесь, труднее.
0
Модератор
10379 / 5666 / 3399
Регистрация: 17.08.2012
Сообщений: 17,308
19.11.2013, 12:28
Цитата Сообщение от Vol4_OK Посмотреть сообщение
зачем в конец добавлять пробел?
Для упрощения алгоритма. В данном случае за конец нужного слова считаем подряд идущие нужную букву и пробел. А у последнего слова в предложении это может быть и не так. Вот и делаем - безобразно, но однообразно.

О. Кстати. Сейчас дотумкал. У программы есть недостаток - если в конце нужного слова стоит знак препинания, слово не лоцируется. Исправляется просто: удалением из строки знаков препинания. Так подрихтовать: После
Pascal
1
  readln(s);
добавить это самое удаление:
Pascal
1
2
3
  for i := length(s) downto 1 do
    if s[i] in ['.', ',', '!', '?', ':', ';', '"', '(', ')', '''']
      then delete(s, i, 1);
Другие знаки препинания в множество можно добавить по желанию.

"downto" здесь чтобы не вылететь за пределы строки - границы цикла for считаются один раз при вхождении в цикл, и если было бы "1 to length(s)", то, так как при хотя бы одном удалении из строки укорачивается её длина, а, следовательно, уменьшается номер последнего символа (как раз length(s)), в конце строки произойдёт выход за границы индексов массива. Поэтому и "downto": номер первого символа по определению 1.

Добавлено через 44 минуты
Можно ещё считать концом нужного слова подряд идущие нужная буква и знак препинания либо пробел. Тогда удаление добавлять не надо, а вместо
Pascal
1
  for i := 1 to length(s) - 1 do if (s[i] = c) and (s[i + 1] = ' ') then n := n + 1;
написать
Pascal
1
2
3
  for i := 1 to length(s) - 1 do
    if (s[i] = c) and (s[i + 1] in [' ', '.', ',', '!', '?', ':', ';', '"', '(', ')', ''''])
      then n := n + 1;
0
2 / 2 / 1
Регистрация: 11.09.2013
Сообщений: 85
20.11.2013, 17:56  [ТС]
Спасибо)

Добавлено через 1 минуту
Как бы посчитать кол-во слов, в которых есть буква n... Это труднее.
0
Модератор
10379 / 5666 / 3399
Регистрация: 17.08.2012
Сообщений: 17,308
20.11.2013, 21:55
Цитата Сообщение от Vol4_OK Посмотреть сообщение
Спасибо)
Для этого есть кнопочка "+1 спасибо".
Цитата Сообщение от Vol4_OK Посмотреть сообщение
Как бы посчитать кол-во слов, в которых есть буква n... Это труднее.
Нисколько не труднее. Переделывается из уже написанного. И, чтобы не нарушать правило форума
5. 16. Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.
в следующий раз создавайте новую тему, а в данной теме в оффтопе пишете просьбу и указываете ссылку на новую тему. Вот:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
program letter;
 
var s, w: string;
    c: char;
    i, n: integer;
 
begin
  n := 0;
  writeln('Enter string:');
  readln(s);
  s := s + ' ';
  write('Enter letter: ');
  readln(c);
  while pos('  ', s) > 0 do delete(s, pos('  ', s), 1); //оставляем по одному пробелу
  while pos(' ', s) > 0 do //пока не кончатся слова
    begin
      w := copy(s, 1, pos(' ', s)); //копируем слово в буфер
      delete(s, 1, pos(' ', s)); //удаляем слово из строки
      for i := 1 to length(w) do //просматриваем слово, ищем букву
        if w[i] = c then //если буква есть,
          begin
            n := n + 1; //счётчик слов + 1
            break //и прекращаем просматривать слово
          end
    end;
  writeln('Count of words, contained letter "', c, '": ', n);
  readln
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.11.2013, 21:55
Помогаю со студенческими работами здесь

Написать программу, которая считает число слов в предложении, начинающихся на заданную букву
Написать программу, которая считает число слов в предложении, начинающихся на заданную букву.

Определите количество слов, заканчивающихся на заданную букву
ребята срочно нужна помощь плохо программирую на языке visual basic а тут как на зло попалась задача Дан текст.определите количество...

Определить количество слов, заканчивающихся на заданную пользователем букву
помогите пожалуйста написать программу: 2) Напишите программу, которая позволяет вводить с клавиатуры строку, содержащую более одного...

Найти в предложении количество слов, заканчивающихся на ту же букву, что и первое
найти в предложении количество слов заканчивающихся на ту же букву что и первое. Выдает ошибки: Ошибка 1 Наиболее подходящий...

Подсчитать количество слов в текстовом файле, заканчивающихся на заданную букву
Создать в программе Блокнот текстовый файл. Написать программу, которая подсчитывает количество слов в созданном текстовом файле,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru