В
Все
Х
Химия
В
Видео-ответы
А
Алгебра
Г
Геометрия
О
ОБЖ
Д
Другие предметы
У
Українська література
Р
Русский язык
Б
Беларуская мова
У
Українська мова
Э
Экономика
Ф
Физика
М
Математика
Ф
Французский язык
Г
География
И
Информатика
М
МХК
О
Окружающий мир
П
Психология
Н
Немецкий язык
О
Обществознание
П
Право
И
История
М
Музыка
Л
Литература
Қ
Қазақ тiлi
Б
Биология
А
Английский язык
krubtsova79
krubtsova79
02.12.2021 01:42 •  Информатика

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

Ответ:
podshchipkova
podshchipkova
19.07.2020 12:22
Procedure GetWord(s:string; var p:integer; var w:string; delim:string:=' ');
{
 Получает в w слово из строки s, которое начинается не ранее позиции p.
 Возвращает новое значение p, указывающее на первый разделитель delim,
 который следует за найденным словом или 0, если такой разделитель не найден.
 По умолчанию слова разделяются не менее чем одним пробелом
}
var
  i,n:integer;
  fBreak:boolean; { флажок для прерывания циклов }
begin
  n:=Length(s); fBreak:=False;
  {ищем первый символ, отличный от разделителя - начало слова }
  while ((p<=n) and (not fBreak)) do
    if (p=n) or (s[p]<>delim) 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 }
  w:=Copy(s,i,p-i)
  end;
  if p>=n then p:=0
end;

function CountG(w:string):integer;
{ возвращает количество гласных в слове w}
var
  i,k:integer;
begin
  k:=0;
  for i:=1 to length(w) do
    if w[i] in ['а','е','ё','и','о','у','ы','э','ю','я'] then Inc(k);
  CountG:=k
end;

var
  s,w,wmax:string;
  p,k,gmax:integer;
begin
  Writeln('Введите текст, разделяя слова пробелами');
  Readln(s);
  s:=LowerCase(s);
  p:=1; gmax:=0;
  while p>0 do begin
    GetWord(s,p,w);
    k:=CountG(w);;
    if gmax<k then begin gmax:=k; wmax:=w end
  end;
  if gmax>0 then Writeln('В слове "',wmax,'" максимум гласных, равный ',gmax)
  else Writeln('Во введенной строке гласных букв не найдено')
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?