Предмет: Информатика,
автор: koreecAndrey
Дана строка, состоящая из русских слов, разделенных пробелом. Определить слово, с наибольшим количеством гласных букв, ребят помогииитее паскаль
Ответы
Автор ответа:
0
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.
Тестовое решение:
Введите текст, разделяя слова пробелами
В слове ДЛИННОШЕЕЕ три буквы е подряд!
В слове "длинношеее" максимум гласных, равный 5
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.
Тестовое решение:
Введите текст, разделяя слова пробелами
В слове ДЛИННОШЕЕЕ три буквы е подряд!
В слове "длинношеее" максимум гласных, равный 5
Похожие вопросы
Предмет: Математика,
автор: kalashnikd2017
Предмет: Геометрия,
автор: v4023420
Предмет: Английский язык,
автор: D1xxxy
Предмет: Биология,
автор: salynskayamasha
Предмет: Математика,
автор: syhova2003