Дана строка, состоящая из русских слов, разделенных пробелом. Определить слово, с...

0 голосов
125 просмотров

Дана строка, состоящая из русских слов, разделенных пробелом. Определить слово, с наибольшим количеством гласных букв, ребят помогииитее паскаль


Информатика (63 баллов) | 125 просмотров
0

На экран - это как раз консольный режим, потому что в оконном режиме Borland Delphi отображает результат на форме )))

0

Но дело Ваше, у Вас в задании указано просто язык Pascal, поэтому будет чисто Паскаль.

0

я не думал, что здесь знают делфи, мне надо на форме вынести свой ответ, в компонент ввожу текст тобишь это edit1, и через другой edit2 я вижу ответ

0

Здесь знают АБСОЛЮТНО ВСЕ, вопрос лишь в том, чтобы попасть на решающего, у которого имеется нужный программный продукт. К примеру, у меня Delphi не установлен.

0

буду знать, ты напиши мне код в паскале если у тебя есть только turbo pascal

0

я на практике сижу)) мне бы немножечко побыстрее:)

0

если не трудно)

0

У меня Pascal.ABC, он похож на Delphi

0

ну напиши ты уже))

0

Я и пишу. Тут алгоритм не такой простой, как кажется. Хотя, если использовать класс строк, там есть парсер и код будет простейшим

Дан 1 ответ
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<br>      if (p=n) or (s[p]<>' ') then fBreak:=True
      else Inc(p);
    { ищем первый пробельный символ - конец слова }
    if p      i:=p; Inc(p); fBreak:=False;
      while (p<=n) and (not fBreak) do begin<br>        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      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




(142k баллов)