Програмка на указатели! - Turbo Pascal
Формулировка задачи:
И вот ещё одна нехорошая программа:
Используя 1н просмотр текстового файла , вывести все его строки в порядке увеличения содержания в них цифр (строки должны содержать цифры).
Во время "просмотра" файла надо занести "наши" строки в список, потом произвести сортировку списка и ,наконец, выводить ответ в порядке увеличения.
Тоже есть небольшая заготовка на эту прогу.. но выложить её смогу только по просьбам, а то она опытных людей пугать будет
И вот ещё одна нехорошая программа:
Используя 1н просмотр текстового файла , вывести все его строки в порядке увеличения содержания в них цифр (строки должны содержать цифры).
Решение задачи: «Програмка на указатели!»
textual
Листинг программы
program PavlovFileText; uses Crt; type ptStrList= ^tStrList; tStrList= record s: string[50]; next: ptStrList end; var Head,Tail: ptStrList; procedure AddStr(st: string); begin if Head=nil then begin New(Head); Head^.s:=st; Head^.next:=nil; Tail:=Head end else with Tail^ do begin New(next); next^.s:=st; next^.next:=nil; Tail:=next end end; var f: text; s,d,r: string; i,t: integer; p: ptStrList; begin Head:=nil; Tail:=nil; Assign(f,'FFF.txt'); Reset(f); t:=0; WriteLn('Cifri: '); while not EoF(f) do begin ReadLn(f,s); d:=''; for i:=1 to Length(s) do if s[i] in ['0'..'9'] then d:=d+s[i]; if d<>'' then WriteLn(d); if t < length(d) then begin writeln(d); end; t:=length(d); AddStr(r) end; Close(f); ReadLn; end.
Объяснение кода листинга программы
- В программе определён тип данных ptStrList и tStrList (указатель и запись).
- Инициализированы две переменные-указателя Head и Tail, которые будут использоваться для хранения начала и конца списка строк.
- Определена процедура AddStr, которая добавляет новую строку в список. Если список пуст, то создаётся новый узел и он становится и началом и концом списка. Если список уже существует, то создаётся новый узел, и он добавляется в конец списка.
- Открывается файл 'FFF.txt' для чтения.
- Переменная t инициализируется нулём.
- В цикле считывается каждая строка из файла.
- Для каждой строки считывается подстрока d, которая содержит только цифры.
- Если подстрока d не пуста, то выводится её значение.
- Если значение переменной t меньше длины подстроки d, то выводится значение переменной t.
- После каждой итерации цикла к переменной t прибавляется единица.
- В конце каждой итерации вызывается процедура AddStr, которая добавляет в конец списка новую строку, содержащую значение переменной r.
- В конце работы программы закрывается файл и считывается очередное действие пользователя.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д