Лабораторная работа № 16
Лабораторная работа № 16
Цель работы: Изучение правил описания и использования строк типа 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
Радиотехническая
|