Програмка на указатели! - 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.

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

  1. В программе определён тип данных ptStrList и tStrList (указатель и запись).
  2. Инициализированы две переменные-указателя Head и Tail, которые будут использоваться для хранения начала и конца списка строк.
  3. Определена процедура AddStr, которая добавляет новую строку в список. Если список пуст, то создаётся новый узел и он становится и началом и концом списка. Если список уже существует, то создаётся новый узел, и он добавляется в конец списка.
  4. Открывается файл 'FFF.txt' для чтения.
  5. Переменная t инициализируется нулём.
  6. В цикле считывается каждая строка из файла.
  7. Для каждой строки считывается подстрока d, которая содержит только цифры.
  8. Если подстрока d не пуста, то выводится её значение.
  9. Если значение переменной t меньше длины подстроки d, то выводится значение переменной t.
  10. После каждой итерации цикла к переменной t прибавляется единица.
  11. В конце каждой итерации вызывается процедура AddStr, которая добавляет в конец списка новую строку, содержащую значение переменной r.
  12. В конце работы программы закрывается файл и считывается очередное действие пользователя.

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


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

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

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