Ввести в ЭВМ предложение длиной не более 70 символов. Подсчитать количество гласных букв в каждом его слове. Вывести на экран эти слова и количество гласных букв. В программе использовать процедуры выделения слов из предложения и подсчета количества заданных букв в слове — Pascal(Паскаль)

Program Z1_7;
uses crt;
const m=30;
      gl=['а','е','ё','и','о','у','ы','э','ю','я','А','Е','Ё','И','О','У','Ы','Э','Ю','Я'];
      rz=[' ',',',';',':','-'];//еще можно всякие скобки, подчеркивания, многоточия и т.д. добавить
type Mslovo=array[1..m] of string;
procedure P1(s:string[70];var ms:Mslovo;var k:byte);
var i,j:byte;
begin
k:=0;
i:=1;
while i<=length(s) do
if not(s[i] in rz)and((i=1)or(s[i-1] in rz)) then  //если не разделитель и первый или перед ним разделитель
 begin
  k:=k+1; //новое слово
  ms[k]:='';//начнем
  j:=i;//с этого места
  while(j<=length(s))and not(s[j] in rz)do //пока не конец и не разделитель
   begin
    ms[k]:=ms[k]+s[j];//составляем слово
    j:=j+1;
   end;
  i:=i+length(ms[k])//перепрыгиваем
 end
else i:=i+1; //если разделитель, вперед
end;
Procedure P2(s:string; var k:byte);
var i:byte;
begin
k:=0;
for i:=1 to length(s) do
if s[i] in gl then k:=k+1;
end;
var Predl:string[70];
    mas:Mslovo;
    n,i,kol:byte;
begin
writeln ('Vvedite predlogenie do 70 simvolov');
readln (Predl);
P1(Predl,mas,n);
for i:=1 to n do
 begin
  P2(mas[i],kol);
  writeln(mas[i],' kol.glas.=',kol);
 end;
readln
end.

Leave a Comment

38 − = 33