Для каждой строки файла найти слово, содержащее наибольшее число различных букв и поместить его в файл G - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

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

Решение задачи: «Для каждой строки файла найти слово, содержащее наибольшее число различных букв и поместить его в файл G»

textual
Листинг программы
Var f,g:text;
    i,max,k:byte;
    s,st,sm:string;
    mn:set of char;
Begin
    writeln('Окончание ввода " "');
    Assign(f,'in.txt');Rewrite(f);
    Repeat
     write('Строка: ');
     readln(s);
     if s<>' ' then writeln(f,s);
    Until s=' ';
    Close(f);Reset(f);
    Assign(g,'out.txt');Rewrite(g);
    While not Eof(f) do
    Begin
      readln(f,s);
      s:=s+' ';
      max:=0;sm:='';
      While Pos(' ',s)>0 do
      Begin
        st:=Copy(s,1,Pos(' ',s)-1);
        Delete(s,1,Pos(' ',s));
        k:=0;mn:=[];
        For i:=1 to Length(st) do
        Begin
          if st[i] in mn then Continue;
          inc(k);
          mn:=mn+[st[i]];
        End;
        if k>max then
        Begin
          max:=k;
          sm:=st;
        End;
      End;
      writeln(g,sm);
    End;
    Close(f);Close(g);
    writeln('Результат в файле "out.txt"');
    readln;
End.

Объяснение кода листинга программы

  1. Создаются две переменные типа text: f и g, которые будут использоваться для чтения и записи файлов соответственно.
  2. Задаются три переменные типа byte: i, max и k, которые будут использоваться для контроля цикла.
  3. Создается переменная типа string: s, которая будет использоваться для хранения текущей строки из файла.
  4. Создается переменная типа string: st, которая будет использоваться для временного хранения подстроки.
  5. Создается переменная типа set of char: mn, которая будет использоваться для подсчета количества каждой буквы в слове.
  6. В цикле Repeat-Until читается каждая строка из файла 'in.txt'.
  7. Строка записывается в переменную s.
  8. Переменная s очищается от предыдущего ввода и снова считывается строка.
  9. Если строка не пустая, то она записывается в файл 'out.txt'.
  10. Переменные i, max и k инициализируются нулями.
  11. Переменная st инициализируется пустой строкой.
  12. В цикле While Pos(' ',s)>0 выполняется следующая последовательность действий:
    • Строка s разбивается на подстроки до первого пробела.
    • Подстрока st копируется из s.
    • Переменная k инкрементируется.
    • Переменная mn обновляется, добавляя текущий символ из st в список символов.
    • Если k больше max, то max обновляется, а sm обновляется на текущую подстроку st.
  13. По завершении цикла While, если k больше max, то max и sm обновляются.
  14. После завершения чтения файла 'in.txt', файлы 'in.txt' и 'out.txt' закрываются.
  15. Выводится сообщение 'Результат в файле out.txt'.
  16. Программа завершается, ожидая ввода пользователя.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы