Ошибка времени выполнения: "Файл не открыт" - PascalABC.NET (127033)

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

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

Помогите пожалуйста исправить ошибку,возможно не замечаю очевидного, пишет Ошибка времени выполнения: Файл не открыт Спасибо
Листинг программы
  1. var
  2. F: text;
  3. G: text;
  4. n: integer;
  5. begin
  6. writeln('кол-во от 10 до 50: ');
  7. readln(n);
  8. if (n < 10) or (n > 50) then
  9. begin
  10. write('error');
  11. end
  12. else
  13. begin
  14. assign(f, 'F.txt');
  15. rewrite(f);
  16. for var i := 1 to n do
  17. write(f, i * 2:4);
  18. close(f);
  19. end;
  20. begin
  21. reset(f, 'F.txt');
  22. // while not eof(f) do
  23. begin
  24. assign(g, 'G.txt');
  25. for var i := 1 to n do
  26. for var j := 1 to n do
  27. if (((i mod j) = 0) and ((j * j) = 0)) then
  28. rewrite(g);
  29. close(f);
  30. close(g);
  31. end;
  32. end;
  33. end.

Решение задачи: «Ошибка времени выполнения: "Файл не открыт"»

textual
Листинг программы
  1. var f,g:file of integer;
  2.     n,a: integer;
  3. begin
  4. randomize;
  5. repeat
  6. write('Количество компонент в файле F от 10 до 50 n=');
  7. readln(n);
  8. until n in [10..50];
  9. assign(f,'fileF');
  10. rewrite(f);//открыли для записи
  11. for var i := 1 to n do
  12.  begin
  13.   a:=1+random(30);
  14.   write(f,a);
  15.  end;
  16. reset(f);//открыли для чтения
  17. assign(g,'fileG');
  18. rewrite(g);//открыли второй файл для записи
  19. writeln('Содержание исходного файла');
  20. while not eof(f) do
  21.  begin
  22.   read(f,a);
  23.   if frac(sqrt(a))=0 then write(g,a);
  24.   write(a:4)
  25.  end;
  26. writeln;
  27. close(f);
  28. reset(g);
  29. if filesize(g)=0 then write('Нет полных квадратов')
  30. else
  31.  begin
  32.   writeln('Содержание файла полных квадратов');
  33.   while not eof(g) do
  34.    begin
  35.     read(g,a);
  36.     write(a:4);
  37.    end;
  38.  end;
  39. close(g);
  40.  
  41. end.

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

  1. Объявлены переменные: f, g (тип file of integer), n, a (тип integer).
  2. Задается начальное значение для генератора случайных чисел.
  3. В цикле повторяется запрос на ввод количества компонентов в файле F от 10 до 50.
  4. Файл F открывается для записи.
  5. В цикле от 1 до n происходит генерация случайного числа от 1 до 30 и запись его в файл F.
  6. Файл F открывается для чтения.
  7. Файл G открывается для записи.
  8. Выводится содержимое исходного файла F.
  9. В цикле происходит чтение из файла F и проверка на полное квадратное число (если остаток от деления на квадратный корень из числа равен 0). При этом число записывается в файл G.
  10. Выводится содержимое файла G.
  11. Файл F закрывается.
  12. Проверяется размер файла G. Если он равен 0, выводится сообщение Нет полных квадратов.
  13. Иначе, выводится содержимое файла G.
  14. Файл G закрывается.

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


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

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

13   голосов , оценка 4.462 из 5

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

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

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