Цель работы: Изучение правил описания и использования строк типа string.
Задание№ 17. Из заданного текста на русском языке вывести слова с
максимальным кол-вом гласных букв.
Программа на Turbo Pascal.
{Программа: lab16
}
{Цель: Посчитать макс. кол-во русских букв }
{Переменные:
}
{ mas - вводимые массивы
}
{ s - промежуточный массив }
{ i,n,kj - переменные цикла
}
{Программист: Позднышев А.А. группа 316 }
{Проверил: Новичков В.С.
}
program lab16; uses crt; type mas=array[1..50]of string[80];
procedure Trim(Var s:string); begin {Trim} while (s[1]=' ')and(length(s)>0)do delete(s,1,1); while (s[length(s)]=' ')and(length(s)>0)do delete(s,length(s),1); end; {Trim} procedure sravn(sl:string; Var k1:integer); begin {sravn} repeat if (sl[1]='а') or (sl[1]='е') or (sl[1]='ё') or (sl[1]='и') or (sl[1]='о') or (sl[1]='у') or (sl[1]='ы') or (sl[1]='э') or (sl[1]='ю') or (sl[1]='я') then k1:=k1+1; delete(sl,1,1); until length(sl)=0; end; {sravn} procedure s4et(ok:boolean;s:string;var ko:integer); var sl:mas; sl1:string[80]; k,i,j:byte; k1:integer; begin {s4et} k1:=0; trim(s); s:=s+' '; i:=0; repeat k:=pos(' ',s); i:=i+1; sl[i]:=copy(s,1,k-1); delete(s,1,k); until s=''; for j:=1 to i do begin sravn(sl[j],k1); if ok then if k1>ko then ko:=k1; if not ok then if k1=ko then writeln(sl[j]); k1:=0; end; end; {s4et}
var s:mas; i,n,k:integer;
begin k:=0;
Writeln('Введите кол-во строк:'); readln(n);
Writeln('Введите текст:'); for i:=1 to n do begin readln(s[i]); s4et(true,s[i],k); end; writeln('максимальное количество гласных букв в слове=',k); for i:=1 to n do s4et(false,s[i],k);
end.
Результат выполнения программы:
Введите кол-во строк:
4
Введите текст:
Рязанская
Государственная
Радиотехническая
Академия
максимальное количество гласных букв в слове=8
Радиотехническая