подсчитать количество слов, заканчивающихся на заданную букву
Как сделать, чтобы программа определяла, что слово должно заканчиваться на заданную букву???
Пожалуйста, помогите!! Буду очень благодарна))
Ладно, это оффтоп. По теме.
Предположим, что у нас есть две переменные - sWord и cLetter, в которых соответственно выделенное слово и искомая буква. Пусть в l мы получаем длину слова l:=Length(sWord). Тогда проверить, является ли последняя буква слова искомой можно так:
{искомая буква}
Так нельзя, это ты проверишь предпоследнюю букву. Не забываем, что в Pascal/Delphi строки начинаются с 1, а не с 0. Так что: Length('') = 0; Length('123') = 3; s := '123'; s[1] = '1'. В индексе 0 хранится длина строки.
Конкретно по теме: открываем файл как TextFile, читаем из него каждый символ и проверяем его на пробел - если это он, то значит буква перед пробелом и есть последняя буква слова. Её мы сравниваем с каким-то заданным набором окончаний, которых надо посчитать. Если совпадает, увеличиваем счётчик. И так до конца файла.
Можно добавить проверок для устойчивости. Например, принимать во внимание факт, что может идти несколько пробелов подряд. Или ввести минимальную длину для "слова", дабы не считать предлоги (в, из, на и так далее).
я не знаю, как это сделать... :confused:я знаю как только посчитать кол-во слов, в которых есть заданная буква... или просто посчитать кол-во слов(((
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;