Помощь - Поиск - Пользователи - Календарь
Полная версия: и снова строки
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Yurka
условие программы:
в заданом предложении указать слово, в котором часть гласных (А, Е, І, О) максимальная.
вот программа:
Код

     Program nomer4_9;
    uses crt;
    Var
    slovomax:array [1..20] of string;
    kmax:array [1..20] of integer;
    s,slovo:string;
    kl,i,j,max,k:integer;
     Begin
    Clrscr;
     Write ('text: ');
     Readln (S);
    S:=' '+S+' ';
    j:=0;
    Kl:=0;
    i:=1;

    while i<=length(S)-1 do
    Begin
    If (S[i]=' ') and (S[i+1]<>' ')
    Then
    Begin
    Slovo:='';
    While (S[i+1]<>' ') do
   Begin
    Slovo:=Slovo+S[i+1];
    if Slovo[i]='a' then Kl:=Kl+1;
    if Slovo[i]='i' then Kl:=Kl+1;
    if Slovo[i]='e' then Kl:=Kl+1;
    if Slovo[i]='o' then Kl:=Kl+1;
    i:=i+1;
   End;
if kl>0 then
begin
j:=j+1;
slovomax[j]:=slovo;
kmax[j]:=kl;
Writeln ('slovo=',slovo);
Writeln ('kl= ',kl);
kl:=0;
end;
end;
i:=i+1;
end;
max:=kmax[1];
for i:=1 to j do
if kmax[j]>max then
begin
max:=kmax[j];
k:=j;
end;
writeln('u slovi ',slovomax[k], 'naibilche golosnih =',max);
Readkey;
End.


не что-то выдает...у меня такое ощущение, что я где-то переуседстововал.
volvo
Yurka,
yes2.gif Точно переусердствовал:
Код
While (S[i+1]<>' ') do Begin
  Slovo:=Slovo+S[i+1];
  if Slovo[i]='a' then Kl:=Kl+1;
  if Slovo[i]='i' then Kl:=Kl+1;
  if Slovo[i]='e' then Kl:=Kl+1;
  if Slovo[i]='o' then Kl:=Kl+1;
  i:=i+1;
End;

замени на:
Код
While (S[i+1]<>' ') do Begin
  Slovo:=Slovo+S[i+1];
  if s[i+1] in ['a', 'i', 'e', 'o'] then kl := kl + 1;
  i:=i+1;
End;
Yurka
good.gif
а то я сижу и end end с begin begin проверяю smile.gif
теперь всё работает!!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.