Для каждой строки файла найти слово, содержащее наибольшее число различных букв и поместить его в файл 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.
Объяснение кода листинга программы
- Создаются две переменные типа text: f и g, которые будут использоваться для чтения и записи файлов соответственно.
- Задаются три переменные типа byte: i, max и k, которые будут использоваться для контроля цикла.
- Создается переменная типа string: s, которая будет использоваться для хранения текущей строки из файла.
- Создается переменная типа string: st, которая будет использоваться для временного хранения подстроки.
- Создается переменная типа set of char: mn, которая будет использоваться для подсчета количества каждой буквы в слове.
- В цикле Repeat-Until читается каждая строка из файла 'in.txt'.
- Строка записывается в переменную s.
- Переменная s очищается от предыдущего ввода и снова считывается строка.
- Если строка не пустая, то она записывается в файл 'out.txt'.
- Переменные i, max и k инициализируются нулями.
- Переменная st инициализируется пустой строкой.
- В цикле While Pos(' ',s)>0 выполняется следующая последовательность действий:
- Строка s разбивается на подстроки до первого пробела.
- Подстрока st копируется из s.
- Переменная k инкрементируется.
- Переменная mn обновляется, добавляя текущий символ из st в список символов.
- Если k больше max, то max обновляется, а sm обновляется на текущую подстроку st.
- По завершении цикла While, если k больше max, то max и sm обновляются.
- После завершения чтения файла 'in.txt', файлы 'in.txt' и 'out.txt' закрываются.
- Выводится сообщение 'Результат в файле
out.txt
'. - Программа завершается, ожидая ввода пользователя.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д