Подсчитать количество букв и слов в тексте - Pascal ABC
Формулировка задачи:
Дан текст, который состоит из слов. Слова в тексте отделяются одно от другого пробелами и содержат гласные буквы, которые находятся во множестве [‘ а ‘, ‘ е ‘, ‘ у ‘, ‘ о ‘]. Подсчитать количество букв в тексте, количество слов в тексте и вывести из текста количество гласных букв данного множества.
Помогите пожалуйста
Решение задачи: «Подсчитать количество букв и слов в тексте»
textual
Листинг программы
{$MODE TP}
const
VOWELS: Set Of Char = ['a', 'e', 'o', 'y', 'A', 'E', 'O', 'Y'];
ALPHABET: Set Of Char = ['A'..'Z', 'a'..'z'];
var
s: String;
lettersCount, wordsCount, vowelsCount, i: LongWord;
inWord: Boolean;
begin
Write('Input text: '); ReadLn(s);
lettersCount := 0; wordsCount := 0; vowelsCount := 0;
s := s + ' '; inWord := False; i := 1;
while (i <= Length(s)) do
begin
if (s[i] in ALPHABET)
then
begin
inWord := True;
Inc(lettersCount);
if (s[i] in VOWELS)
then
Inc(vowelsCount);
end
else
begin
if (inWord)
then
Inc(wordsCount);
inWord := False;
end;
Inc(i);
end;
WriteLn('Words: ', wordsCount);
WriteLn('Vowels: ', vowelsCount);
WriteLn('Letters: ', lettersCount);
end.
Объяснение кода листинга программы
- Создается строка
const, где определяются два множества символов:VOWELSиALPHABET. - Создается переменная
sтипаString, которая будет содержать введенный пользователем текст. - Создается четыре переменные-счетчика:
lettersCount,wordsCount,vowelsCountиiтипаLongWord. - Устанавливается начальное значение счетчиков равным нулю.
- Устанавливается начальное значение переменной
inWordравнымFalse. - Запускается цикл
while, который будет выполняться до тех пор, пока длина строкиsбольше или равна единице. - Внутри цикла проверяется каждый символ строки
s. - Если текущий символ является буквой из алфавита (
s[i] in ALPHABET), то:- Устанавливается значение переменной
inWordвTrue. - Увеличивается значение счетчика
lettersCountна единицу. - Если текущий символ является гласной (
s[i] in VOWELS), то:- Увеличивается значение счетчика
vowelsCountна единицу.
- Увеличивается значение счетчика
- Иначе, если
inWordравноTrue, то:- Увеличивается значение счетчика
wordsCountна единицу. - Устанавливаем значение переменной
inWordвFalse.
- Увеличивается значение счетчика
- Устанавливается значение переменной
- После завершения внутреннего цикла, выводятся значения счетчиков на экран.