Напечатать элементы файла f в следующем порядке: сначала – все числа, меньшие a, затем – все числа из отрезка - Pascal ABC

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

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

Пмоогите пожалуйста написать программный код: Используя очередь, решить следующую задачу. TYPE FR = FILE OF REAL; За один просмотр файла f типа FR и без использования дополнительных файлов напечатать элементы файла f в следующем порядке: сначала – все числа, меньшие a, затем – все числа из отрезка [a, b], и наконец– все остальные числа, сохраняя исходный взаимный порядок в каждой из этих групп чисел (a ,b – заданы, a<b).

Решение задачи: «Напечатать элементы файла f в следующем порядке: сначала – все числа, меньшие a, затем – все числа из отрезка»

textual
Листинг программы
type
  PNode = ^TNode;
  TNode = record
    next: PNode; r: Real;
  end;
var
  f: file of Real;
  a, b, r: Real;
  ph, qh, p: PNode; pp, qq: ^PNode;
begin
  Assign(f,'input.dat'); Reset(f);
  Write('a, b: '); ReadLn(a,b); pp:=@ph; qq:=@qh;
  while not EoF(f) do begin
    Read(f,r);
    if r<a then WriteLn(r)
    else if r<=b then begin
      New(pp^); pp^^.r:=r; pp^^.next:=nil; pp:=@pp^^.next;
    end else begin
      New(qq^); qq^^.r:=r; qq^^.next:=nil; qq:=@qq^^.next;
    end;
  end;
  Close(f);
  while ph<>nil do begin
    WriteLn(ph^.r); p:=ph; ph:=ph^.next; Dispose(p);
  end;
  while qh<>nil do begin
    WriteLn(qh^.r); p:=qh; qh:=qh^.next; Dispose(p);
  end;
end.

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

  1. Создается тип данных PNode, который представляет собой указатель на структуру TNode.
  2. Создается переменная f типа file of Real, которая представляет собой файл для чтения и записи чисел с плавающей точкой.
  3. Создаются две переменные a и b типа Real, которые будут использоваться для чтения значений из файла.
  4. Создаются три указателя ph, qh и p типа PNode, которые будут использоваться для чтения и записи данных в файл.
  5. Создаются две переменные pp и qq типа ^PNode, которые будут использоваться для чтения и записи данных в файл.
  6. Задается значение переменной a и b с помощью функции ReadLn.
  7. Запускается цикл чтения данных из файла до конца файла (до тех пор, пока не будет достигнут конец файла EoF).
  8. Внутри цикла происходит следующее:
    • Чтение значения r из файла.
    • Если значение r меньше значения переменной a, то оно записывается в файл.
    • Если значение r находится в диапазоне от a до b, то оно записывается в файл.
    • Если значение r больше или равно значению переменной b, то оно не записывается в файл.
    • Если значение r не попадает в указанный диапазон, то создается новый узел и записывается в него значение r.
    • Указатель на предыдущий узел обновляется, чтобы указывать на новый узел.
  9. После завершения цикла чтения данных из файла закрывается файл.
  10. Запускается цикл удаления указателей на неиспользуемые узлы.
  11. Завершается программа.

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


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

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

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