Рефераты

Лабораторная работа № 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

Радиотехническая


© 2010 Современные рефераты