М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Mymail10
Mymail10
07.11.2022 05:31 •  Информатика

Нужно, , подскажите! (в паскале) дан текстовый файл f, каждая строка которого состоит из слов, разделённых одним и более пробелами. найти все слова, содержащие наименьшее, но ненулевое, количество гласных латинских букв (a, e, i, o, u). сформировать из этих слов новый файл g.

👇
Ответ:
//Ночной отвратный код
//PascalABC.NET 3.2 сборка 1318

Var
  f,g:text;
  mins,i,currents,minsCount:integer;
  minsWords:array of string;
  buf1,buf2:char;
  wordFlag:boolean;
  s:string;
begin
mins:=integer.MaxValue;
assign(f,'input.txt');
reset(f);
read(f,buf1);
if not(EOF(f)) then
read(f,buf2);
if ((buf1=' ') or (buf1=chr(10)) or (buf1=chr(13))) and ((buf2=' ') or (buf2=chr(10)) or (buf2=chr(13))) then
 wordFlag:=false;
if (buf1<>' ') and ((buf2=' ') or (buf2=chr(10)) or (buf2=chr(13))) then
  begin
    s:=buf1;
    wordFlag:=false;
  end;
if (buf1<>' ') and (buf2<>' ') then
  begin
    s:=buf1+buf2;
    currents:=0;
    for i:=1 to length(s) do
      if (lowcase(s[i])='a') or (lowcase(s[i])='e') or (lowcase(s[i])='i') or (lowcase(s[i])='o') or (lowcase(s[i])='u') then
         inc(currents);
    wordflag:=true;
 end;
while not(EOF(f)) do
  begin
   if ((buf1=' ') or (buf1=chr(10)) or (buf1=chr(13))) and (buf2<>' ')
    then
      begin
        wordFlag:=true;
        currents:=0;
        s:=buf2;
      end
     else
      if ((buf1<>' ') and (buf2=' ')) or ((buf2=chr(10)) or (buf2=chr(13)))
        then
          begin
            wordFlag:=false;
            for i:=1 to length(s) do
              if (lowcase(s[i])='a') or (lowcase(s[i])='e') or (lowcase(s[i])='i') or (lowcase(s[i])='o') or (lowcase(s[i])='u') then
                inc(currents);
            if(currents=mins) then
              begin
                inc(minsCount);
                setlength(minsWords,minsCount);
                minsWords[minsCount-1]:=s;
              end;
            if(currents<mins) and (currents<>0) then
              begin
                minsCount:=1;
                setlength(minsWords,minsCount);
                minsWords[minsCount-1]:=s;
                mins:=currents;
              end;
          end
        else
          if wordFlag
             then
              s:=s+buf2;
   buf1:=buf2;
   read(f,buf2);
 end;
 if wordFlag
 then
 begin
 s+=buf2;
 for i:=1 to length(s) do
              if (lowcase(s[i])='a') or (lowcase(s[i])='e') or (lowcase(s[i])='i') or (lowcase(s[i])='o') or (lowcase(s[i])='u') then
                inc(currents);
              if(currents=mins) then
              begin
                inc(minsCount);
                setlength(minsWords,minsCount);
                minsWords[minsCount-1]:=s;
              end;
            if(currents<mins) and (currents<>0) then
              begin
                minsCount:=1;
                setlength(minsWords,minsCount);
                minsWords[minsCount-1]:=s;
                mins:=currents;
              end;
     end
 else
  if buf2<>' ' then
    begin
      if (lowcase(buf2)='a') or (lowcase(buf2)='e') or (lowcase(buf2)='i') or (lowcase(buf2)='o') or (lowcase(buf2)='u') then
        currents:=1;
     if(currents=mins) then
              begin
                inc(minsCount);
                setlength(minsWords,minsCount);
                minsWords[minsCount-1]:=buf2;
              end;
      if currents<mins then
              begin
                minsCount:=1;
                setlength(minsWords,minsCount);
                minsWords[minsCount-1]:=buf2;
                mins:=currents;
              end;
    end;
 close(f);
 assign(g,'output.txt');
 rewrite(g);
 for i:=0 to length(minsWords)-1 do
  write(g,minsWords[i],' ');
 close(g);
end.

Пример содержимого input.txt:
Lorem ipsum dolor sit amet consectetur adipiscing elit
etc Curabitur posuere erat et felis ultricies pulvinar u
Пример содержимого output.txt:
sit etc et u 
4,6(85 оценок)
Открыть все ответы
Ответ:
anonimno3
anonimno3
07.11.2022
Const
  n = 3;

var
  m: array[1..n] of integer;
  i, mn, mx: integer;

begin
  Write('Введите через пробел три целых числа: ');
  i := 1;
  repeat
    Read(m[i]);
    i := i + 1
  until i > n;
  mn := m[1];
  mx := mn;
  i := 2;
  repeat
    if mx < m[i] then mx := m[i]
    else
    if mn > m[i] then mn := m[i];
    i := i + 1
  until i > n;
  Writeln('Разность наибольшего с наименьшим равна ', mx - mn)
end.

Тестовое решение:

Введите через пробел три целых числа: 7 9 3
Разность наибольшего с наименьшим равна 6
4,8(44 оценок)
Ответ:
16Milochka16
16Milochka16
07.11.2022
Сначала спрашивайте у пользователя число n, потом заполняйте массив (с проверкой на [-100..100]), потом в цикле проверяйте каждый элемент массива на кратность 5. Параллельно с проверкой на кратность (в том же цикле) кидайте первое кратное число в переменную max, и сравнивайте с это переменной другие числа, кратные 5. Если больше - перезаписываете значение max

Цикл: (counter - счетчик, n - колво чисел в массиве)

max := 0;
for counter = 1 To n Do
if (Massive[counter] mod 5) = 0 then
        if Massive[counter] > max then max := Massive[counter];

В конце выводите max
4,5(30 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ