kazan-ugoop36
?>

Выберите из списка элементы окна приложения блокнот (несколько правильных ответов) а) название приложения б) строка меню с) кнопка «закрыть» д) кнопка «свернуть» е) панель инструментов ж) палитра з) панель стандартная и) панель форматирование к) рабочая область л) полосы прокрутки м) линейка

Информатика

Ответы

okarp
А) название приложения б) строка меню с) кнопка «Закрыть»
д) кнопка «Свернуть» к) рабочая область
л) полосы прокрутки
Вроде так
alplakhota67
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
slavutich-plus2
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.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Выберите из списка элементы окна приложения блокнот (несколько правильных ответов) а) название приложения б) строка меню с) кнопка «закрыть» д) кнопка «свернуть» е) панель инструментов ж) палитра з) панель стандартная и) панель форматирование к) рабочая область л) полосы прокрутки м) линейка
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

vkurnosov20008
Aleksandrovich-Mayatskikh
sev-94428
zamkova836
Verakravez8790
Chausmonk4
Zeitlinama7067
AndreiAstakhva1442
marinakmaa86
aivia29
Salko17
irschacha
mariya
Баринова
Ерцкин_Овечкина391