Рекурсия. Работа файлом - 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.
- Тип данных
tfile
определен как файл, содержащий целые числа. - Есть функция
chisla
, которая рекурсивно читает файл и выводит числа, сначала отрицательные, затем положительные. - Есть переменные
f
,i
иa
, которые используются в программе. - Создается файл с помощью функции
assign
иrewrite
. - В цикле генерируются случайные числа от -10 до 10 с шагом 1 с помощью функции
randomize
иrandom
. - Числа записываются в файл с помощью функции
write
. - Файл проверяется на наличие данных с помощью функции
eof
. - Числа выводятся на экран с помощью функции
write
. - Файл закрывается с помощью функции
close
. - В основной части программы файл открывается с помощью функции
reset
и выводится на экран с помощью функцииwrite
. - Затем вызывается функция
chisla
, чтобы вывести числа в определенном порядке. - Наконец, файл закрывается с помощью функции
close
.