Лабораторная работа № 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
Радиотехническая