Получить в файле g все компоненты файла f, которые делятся на m и не делятся на n - Pascal ABC (13269)

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

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

Заполнить файл последовательного доступа f целыми числами, полученными с помощью генератора случайных чисел. Получить в файле g все компоненты файла f, которые делятся на m и не делятся на n(через файл, а текстовым не надо) Или исправьте код:
Листинг программы
  1. uses crt;
  2. var
  3. i,m,n,x:integer;
  4. f,g:file of integer;
  5. begin
  6. writeln('Введите M и N');
  7. readln(n,m);
  8. assign(f,'D:\f');
  9. assign(g,'D:\g');
  10. rewrite(f);
  11. rewrite(g);
  12. randomize;
  13. for i:=1 to 10 do
  14. begin
  15. x := random(20);
  16. writeln(f,x);
  17. end;
  18. for i:=1 to 10 do Begin
  19. if ((x mod m = 0) and (x mod n <> 0)) then
  20. writeln(g,x);
  21. end;
  22. close(g);
  23. close(f);
  24. end.

Решение задачи: «Получить в файле g все компоненты файла f, которые делятся на m и не делятся на n»

textual
Листинг программы
  1. uses
  2.   crt;
  3. const
  4.   q = 100;
  5.  
  6. var
  7.   i, m, n, x: integer;
  8.   f, g: file of integer;
  9.  
  10. begin
  11.   randomize;
  12.   write('Введите M и N: ');
  13.   readln(n, m);
  14.   assign(f, 'f.dat');
  15.   assign(g, 'g.dat');
  16.   rewrite(f);
  17.   rewrite(g);
  18.   writeln('Исходный файл: ');
  19.   for i := 1 to q do
  20.   begin
  21.     x := random(q) + 1;
  22.     write(f, x);
  23.     write(x:4);    
  24.   end;
  25.   close(f);  
  26.  
  27.   reset(f);
  28.   writeln;
  29.   writeln('Преобразованный файл: ');  
  30.   while not eof(f) do
  31.   begin
  32.     read(f, x);  
  33.     if (x mod m = 0) and (x mod n <> 0) then
  34.     begin
  35.       write(g, x);
  36.       write(x:4);      
  37.     end;
  38.   end;  
  39.   writeln;  
  40.   close(g);
  41.   close(f);
  42. end.

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

  1. В начале кода объявляются переменные i, m, n, x, f и g, которые будут использоваться в программе.
  2. Затем происходит чтение из пользовательского ввода для значений m и n с помощью функции readln.
  3. Далее, файлы f и g присваиваются строкам 'f.dat' и 'g.dat' соответственно с помощью функции assign.
  4. После этого происходит перезапись файлов f и g с помощью функции rewrite.
  5. Выводится сообщение 'Исходный файл:', чтобы пользователь знал, что следует ввести данные для m и n.
  6. Затем, в цикле for от 1 до 100 (q) происходит генерация случайных чисел от 1 до q и запись этих чисел в файл f с помощью функции write.
  7. После завершения записи в файл f, происходит закрытие файла с помощью функции close.
  8. Затем, в цикле while происходит чтение из файла f и проверка, делится ли число x на m без остатка и не делится ли оно на n с остатком.
  9. Если условие выполняется, то число x записывается в файл g с помощью функций write и write.
  10. После окончания цикла while происходит закрытие файлов f и g с помощью функций close.
  11. Код завершается.

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


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

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

8   голосов , оценка 3.75 из 5

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

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

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