Рекурсия. Работа файлом - Turbo Pascal

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

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

Доброго вечера. Нужно научить программу рекурсивно читать файл по одному значению за раз.
Не компилируетсяч, выдает ошибку чтения с диска на вот этой строке read(s,t);i:=i+1;
Значения надо выводить на консоль сперва отрицательные, потом положительные, использование рекурсии - условие задачи.
Поиск по форуму помог. File of real Это типизированный файл, в файле числа будут хранится в машинном представлении данного типа. В данном случае - 6-байт на одно число.
Можно закрывать тему. Спасибо и хорошего вечера.

Решение задачи: «Рекурсия. Работа файлом»

textual
Листинг программы
type tfile=file of integer;
//рекурсивная процедура
procedure chisla(var f:tfile);
var a: integer;
begin
if not eof(f) then
 begin
  read(f,a);
  if a<0 then  write(a:4);  //выводим сначала отрицательные
  chisla(f); //повторяем
  if a>0  then write(a:4); //отрицательные кончились, выводим положительные
 end
end;
var f:tfile;
    i,a:integer;
begin
//создадим типизированный файл
randomize;
assign(f,'file');
rewrite(f);
for i:=1 to 15 do
 begin
  repeat
   a:=-10+random(21);
  until a<>0;
 write(f,a);
end;
//посмотрим его
reset(f);
while not eof(f) do
 begin
  read(f,a);
  write(a:4);
 end;
writeln;
//сделаем вывод по условию
reset(f);
writeln('Сначала отрицательные, потом положительные');
chisla(f);
close(f);
end.

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

В этом коде используется язык программирования Turbo Pascal.

  1. Тип данных tfile определен как файл, содержащий целые числа.
  2. Есть функция chisla, которая рекурсивно читает файл и выводит числа, сначала отрицательные, затем положительные.
  3. Есть переменные f, i и a, которые используются в программе.
  4. Создается файл с помощью функции assign и rewrite.
  5. В цикле генерируются случайные числа от -10 до 10 с шагом 1 с помощью функции randomize и random.
  6. Числа записываются в файл с помощью функции write.
  7. Файл проверяется на наличие данных с помощью функции eof.
  8. Числа выводятся на экран с помощью функции write.
  9. Файл закрывается с помощью функции close.
  10. В основной части программы файл открывается с помощью функции reset и выводится на экран с помощью функции write.
  11. Затем вызывается функция chisla, чтобы вывести числа в определенном порядке.
  12. Наконец, файл закрывается с помощью функции close.

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

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