Найти максимальное повторение гласной и согласной буквы в тексте - Pascal ABC
Формулировка задачи:
Помогите..пока буквы были строчными работала, использовал UpCase выдает только гласные. Исправьте, пожалуйста
Решение задачи: «Найти максимальное повторение гласной и согласной буквы в тексте»
textual
Листинг программы
const sog=['B','C','D','F','G','H','J','K','L','M','N','P','Q','R','S','T','V','W','X','Z'];
gl=['A','E','Y','U','I','O'];
var s:string;
a:array ['A'..'Z'] of integer;
i,mx1,mx2:integer;
c,sogl,glas:char;
begin
writeln('Введите строку:');
readln(s);
For c:='A' to 'Z' do a[c]:=0;
For i:=1 to Length(s) do begin
c:=Upcase(s[i]);
a[c]:=a[c]+1;
end;
mx1:=0;
mx2:=0;
For c:='A' to 'Z' do begin
IF c in sog THEN begin
IF a[c]>mx1 THEN begin mx1:=a[c];
sogl:=c;
end;
end
ELSE begin
IF a[c]>mx2 THEN begin mx2:=a[c];
glas:=c;
end;
end;
end;
if mx1=0 then write('В строке нет согласных букв!')
else write('Наиболее частая согласная буква ',sogl,' повторяется ',mx1,' раз(а)');
writeln;
if mx2=0 then write('В строке нет гласных букв!')
else write('Наиболее частая гласная буква ',glas,' повторяется ',mx2,' раз(а)');
end.
Объяснение кода листинга программы
- Создаются две константы: sog и gl, которые содержат наборы букв для поиска.
- Создается переменная s типа string для хранения введенной строки.
- Создается массив a типа array ['A'..'Z'] of integer для подсчета количества каждой буквы в строке.
- Запускается цикл For для каждой буквы в строке.
- Внутри цикла буква преобразуется в верхний регистр и присваивается переменной c.
- Проверяется, содержится ли эта буква в константе sog. Если да, то проверяется, сколько раз она встречается в строке.
- Если буква встречается больше, чем mx1, то mx1 обновляется и присваивается значение этой буквы. Также присваивается значение c переменной sogl.
- Если буква не содержится в константе sog, то аналогичные действия выполняются для переменной mx2 и буквы из константы gl.
- После завершения цикла выводится сообщение, если mx1 равно 0, то
В строке нет согласных букв!иначеНаиболее частая согласная буква [sogl] повторяется [mx1] раз(а). - Аналогично выводится сообщение для переменной mx2.