Напишите процедуру для вывода на экран N-й строки файла - Pascal ABC

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

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

Напишите процедуру для вывода на экран N-й строки файла, где N — параметр процедуры. Воспользовавшись этой процедурой, напишите программу для распечатки строк файла в обратном порядке. Подсказка: предварительно посчитайте количество строк в файле. Что то я запутался. В самой процедуре только один цикл должен быть, которые перебирает строки от первой до N-й или как?

Решение задачи: «Напишите процедуру для вывода на экран N-й строки файла»

textual
Листинг программы
procedure write_n(fn: string; n: integer);
var f: text;
    s: string;
    i: integer;
begin
  assign(f, fn);
  reset(f);
  for i := 1 to n do readln(f, s);
  writeln(s);
  close(f)
end;
 
const fn = 'test.txt';
 
var f: text;
    s: string;
    i, n: integer;
 
begin
  assign(f, fn);
  reset(f);
  n := 0;
  while not eof(f) do
    begin
      readln(f, s);
      inc(n)
    end;
  close(f);
  for i := n downto 1 do write_n(fn, i);
  readln
end.

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

Данный код представляет собой процедуру write_n, которая предназначена для вывода на экран N-й строки файла. Внутри процедуры объявлены следующие переменные:

  • f - тип text, используется для работы с файлом;
  • s - тип string, используется для хранения строки из файла;
  • i - тип integer, используется для контроля номера строки. Также в процедуре используется константа fn, которая содержит имя файла, и переменная n, которая инициализируется значением 0 и увеличивается на единицу с каждой прочитанной строкой. Код начинается с задания имени файла в переменной fn. Затем файл открывается в режиме чтения (режим text), и переменная f инициализируется значением fn. Далее происходит цикл while, который выполняется до тех пор, пока не достигнут конец файла (состояние eof(f)). Внутри цикла считывается строка из файла с помощью функции readln(f, s), и значение переменной n увеличивается на единицу. После окончания цикла файл закрывается с помощью функции close(f). Затем происходит рекурсивный вызов процедуры write_n с именем файла fn и номером строки n. В конце программы происходит вызов функции readln для завершения работы с файлом. В данном коде нет вложенных списков.

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


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

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

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