Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

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

57K
13 апреля 2010 года
Saha
5 / / 08.04.2010
Создать в программе Блокнот текстовый файл. Написать программу, которая подсчитывает количество слов в созданном текстовом файле, заканчивающихся на заданную букву.

Как сделать, чтобы программа определяла, что слово должно заканчиваться на заданную букву???
Пожалуйста, помогите!! Буду очень благодарна))
11
13 апреля 2010 года
oxotnik333
2.9K / / 03.08.2007
Ну хоть бы "пожалуйста" в конце добавил(а). А то "создать", "написать", "посчитать"... И чо на это ответить? Есть! Будет сделано!
57K
13 апреля 2010 года
Saha
5 / / 08.04.2010
Я просто задание скопировала в том виде, как оно есть.. не нужно воспринимать это как требование.. Я прекрасно знаю, что я не могу ни от кого здесь ничего требовать...
416
14 апреля 2010 года
MaitreDesir
380 / / 02.01.2008
Бррррр. Правила форума читали? Писать надо с таким в раздел "Студентам". И задания лучше не копировать, тут за вас (скорее всего) делать не будут, могут помочь разобраться в проблеме.
Ладно, это оффтоп. По теме.
Цитата: Saha
Как сделать, чтобы программа определяла, что слово должно заканчиваться на заданную букву???



Предположим, что у нас есть две переменные - sWord и cLetter, в которых соответственно выделенное слово и искомая буква. Пусть в l мы получаем длину слова l:=Length(sWord). Тогда проверить, является ли последняя буква слова искомой можно так:

 
Код:
if sWord[l-1]=cLetter then
  {искомая буква}
253
14 апреля 2010 года
Proger_XP
1.5K / / 07.08.2004
Цитата: MaitreDesir
Тогда проверить, является ли последняя буква слова искомой можно так...[/CODE]


Так нельзя, это ты проверишь предпоследнюю букву. Не забываем, что в Pascal/Delphi строки начинаются с 1, а не с 0. Так что: Length('') = 0; Length('123') = 3; s := '123'; s[1] = '1'. В индексе 0 хранится длина строки.

Конкретно по теме: открываем файл как TextFile, читаем из него каждый символ и проверяем его на пробел - если это он, то значит буква перед пробелом и есть последняя буква слова. Её мы сравниваем с каким-то заданным набором окончаний, которых надо посчитать. Если совпадает, увеличиваем счётчик. И так до конца файла.

Можно добавить проверок для устойчивости. Например, принимать во внимание факт, что может идти несколько пробелов подряд. Или ввести минимальную длину для "слова", дабы не считать предлоги (в, из, на и так далее).

57K
15 апреля 2010 года
Saha
5 / / 08.04.2010
Цитата: Proger_XP
открываем файл как TextFile, читаем из него каждый символ и проверяем его на пробел - если это он, то значит буква перед пробелом и есть последняя буква слова. Её мы сравниваем с каким-то заданным набором окончаний, которых надо посчитать. Если совпадает, увеличиваем счётчик. И так до конца файла.



я не знаю, как это сделать... :confused:я знаю как только посчитать кол-во слов, в которых есть заданная буква... или просто посчитать кол-во слов(((

253
15 апреля 2010 года
Proger_XP
1.5K / / 07.08.2004
Примерно так, поработай над этим:
Код:
var
  WordCount: DWord;
  F: TextFile;
  Prev, Ch: Char;
begin
  WordCount := 0;

  Assign(F, '1.txt');
  Reset(F);
  Prev := #0;
 
  while not EOF(F) do
  begin
    Read(F, Ch);
    if Ch = ' ' then
      if Prev in ['а', 'б', 'в', ...] then
        Inc(WordCount);
    Prev := Ch;
  end;

  Close(F);
 
  WriteLn(WordCount);
  ReadLn;
end;
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог