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

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

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

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

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

textual
Листинг программы
  1. type
  2.   PNode = ^TNode;
  3.   TNode = record
  4.     next: PNode; r: Real;
  5.   end;
  6. var
  7.   f: file of Real;
  8.   a, b, r: Real;
  9.   ph, qh, p: PNode; pp, qq: ^PNode;
  10. begin
  11.   Assign(f,'input.dat'); Reset(f);
  12.   Write('a, b: '); ReadLn(a,b); pp:=@ph; qq:=@qh;
  13.   while not EoF(f) do begin
  14.     Read(f,r);
  15.     if r<a then WriteLn(r)
  16.     else if r<=b then begin
  17.       New(pp^); pp^^.r:=r; pp^^.next:=nil; pp:=@pp^^.next;
  18.     end else begin
  19.       New(qq^); qq^^.r:=r; qq^^.next:=nil; qq:=@qq^^.next;
  20.     end;
  21.   end;
  22.   Close(f);
  23.   while ph<>nil do begin
  24.     WriteLn(ph^.r); p:=ph; ph:=ph^.next; Dispose(p);
  25.   end;
  26.   while qh<>nil do begin
  27.     WriteLn(qh^.r); p:=qh; qh:=qh^.next; Dispose(p);
  28.   end;
  29. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы