Ошибка времени выполнения: "Файл не открыт" - PascalABC.NET (127033)
Формулировка задачи:
Помогите пожалуйста исправить ошибку,возможно не замечаю очевидного, пишет
Ошибка времени выполнения: Файл не открыт Спасибо
Решение задачи: «Ошибка времени выполнения: "Файл не открыт"»
textual
Листинг программы
var f,g:file of integer; n,a: integer; begin randomize; repeat write('Количество компонент в файле F от 10 до 50 n='); readln(n); until n in [10..50]; assign(f,'fileF'); rewrite(f);//открыли для записи for var i := 1 to n do begin a:=1+random(30); write(f,a); end; reset(f);//открыли для чтения assign(g,'fileG'); rewrite(g);//открыли второй файл для записи writeln('Содержание исходного файла'); while not eof(f) do begin read(f,a); if frac(sqrt(a))=0 then write(g,a); write(a:4) end; writeln; close(f); reset(g); if filesize(g)=0 then write('Нет полных квадратов') else begin writeln('Содержание файла полных квадратов'); while not eof(g) do begin read(g,a); write(a:4); end; end; close(g); end.
Объяснение кода листинга программы
- Объявлены переменные: f, g (тип file of integer), n, a (тип integer).
- Задается начальное значение для генератора случайных чисел.
- В цикле повторяется запрос на ввод количества компонентов в файле F от 10 до 50.
- Файл F открывается для записи.
- В цикле от 1 до n происходит генерация случайного числа от 1 до 30 и запись его в файл F.
- Файл F открывается для чтения.
- Файл G открывается для записи.
- Выводится содержимое исходного файла F.
- В цикле происходит чтение из файла F и проверка на полное квадратное число (если остаток от деления на квадратный корень из числа равен 0). При этом число записывается в файл G.
- Выводится содержимое файла G.
- Файл F закрывается.
- Проверяется размер файла G. Если он равен 0, выводится сообщение
Нет полных квадратов
. - Иначе, выводится содержимое файла G.
- Файл G закрывается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д