Var s,w:string; i,j,n,p,k,gmax:integer; fBreak:boolean; { флажок для прерывания циклов } begin Writeln('Введите текст, разделяя слова пробелами'); Readln(s); s:=LowerCase(s); n:=Length(s); p:=1; fBreak:=False; gmax:=0; while (not Fbreak) do { перебор всех символов в строке } begin {ищем первый непробельный символ - начало слова } fBreak:=False; while ((p<=n) and (not fBreak)) do if (p=n) or (s[p]<>' ') then fBreak:=True else Inc(p); { ищем первый пробельный символ - конец слова } if p<n then begin i:=p; Inc(p); fBreak:=False; while (p<=n) and (not fBreak) do begin if (p=n) or (s[p]=' ') then fBreak:=True else Inc(p) end; { теперь слово находится между позициями i и p } k:=0; for j:=i to p do if s[j] in ['а','е','ё','и','о','у','ы','э','ю','я'] then Inc(k); if gmax<k then begin gmax:=k; w:=Copy(s,i,p-i) end; i:=p; p:=p+1 end else p:=p+1; fBreak:=(p>n) end; if gmax>0 then Writeln('В слове "',w,'" максимум гласных, равный ',gmax) else Writeln('Во введенной строке гласных букв не найдено') end.
<em><u>Тестовое решение:</u></em> Введите текст, разделяя слова пробелами В слове ДЛИННОШЕЕЕ три буквы е подряд! В слове "длинношеее" максимум гласных, равный 5
//Pascal var Arr: array [1..255] of byte; i, N, A, B: byte; begin randomize; //В PascalABC.NET можно убрать write('Введите количество элементов массива: '); readln(N); writeln; writeln(' ***Исходный массив*** '); for i := 1 to N do begin Arr[i] := random(50); write(Arr[i], ' '); end; writeln; writeln; write('Введите диапазон A и B: '); readln(A, B); writeln; writeln('Номера элементов'); for i := 1 to N do if ((Arr[i] >= A) and (Arr[i] <= B)) then write(i, ' '); writeln; readln; end.