Для каждой пары чисел файла вычислить НОД - Pascal

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

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

Стыдно просить, но у меня никак не выходит сделать программу.

Итак, люди добрые , нужна программа, условия которой таковы:

В файле "NUMBERS.TXT" в каждой строки записано ровно 2 числа. Для каждой пары этих чисел вычислить НОД и записать его в файл "NOD.TXT".

Очень прошу помочь. Реализовать легче всего через

функцию

или

процедуру.

вот

Алгоритм Евклида

(вычитание) чтоб не искать:
Листинг программы
  1. program AlgEvklid;
  2. uses crt;
  3. var A, B: integer;
  4. function NOD(A, B: integer): integer;
  5. begin
  6. while A<>B do
  7. if A>B then A:=A-B else B:=B-A;
  8. NOD:=A;
  9. end;
  10. begin
  11. write('A > '); read(A);
  12. write('B > '); read(B);
  13. write('НОД(', A, ', ', B, ')=', NOD(A, B));
  14. readkey;
  15. end.
Заранее благодарен абсолютно всем кто попытается мне помочь.

Решение задачи: «Для каждой пары чисел файла вычислить НОД»

textual
Листинг программы
  1. program AlgEvklid;
  2. uses crt;
  3. var A, B: integer;
  4. f1,f2:text;
  5. function NOD(A, B: integer): integer;
  6. begin
  7. while A<>B do
  8. if A>B then A:=A-B else B:=B-A;
  9. NOD:=A;
  10. end;
  11.  
  12. begin
  13. Assign (f1, 'Путь к файлу/numbers.txt');
  14. Assign (f2, 'Путь к файлу/nod.txt');
  15. Reset (f1);
  16. Rewrite (f2);
  17. While not Eof(f1) do begin
  18. Read (f1,a); //чтение чисел, написанных на одной строке через пробел
  19. Readln (f1,b);
  20. writeln (f2,'НОД(', A, ', ', B, ')=', NOD(A, B));
  21. end;
  22. Close (f1);
  23. Close (f2);
  24. readkey;
  25. end.

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

  1. Объявление переменных:
    • A, B: integer - переменные типа целое число для хранения пар чисел из файла.
    • f1, f2: text - переменные для работы с файлами.
  2. Определение функции вычисления НОД (наибольшего общего делителя) чисел A и B:
    • function NOD(A, B: integer): integer; - объявление функции с аргументами A и B типа целое число, возвращающей целое число.
    • begin - начало определения функции.
    • while A<>B do - цикл, выполняющийся до тех пор, пока A не равно B.
    • if A>B then A:=A-B else B:=B-A; - проверяет, и если A больше B, то из A вычитается B, иначе из B вычитается A.
    • NOD:=A; - возврат значения А в качестве результата функции.
    • end; - конец определения функции.
  3. Открытие файлов и выполнение вычислений:
    • Assign (f1, 'Путь к файлу/numbers.txt'); - присваивание переменной f1 имени файла numbers.txt.
    • Assign (f2, 'Путь к файлу/nod.txt'); - присваивание переменной f2 имени файла nod.txt.
    • Reset (f1); - открытие файла f1 для чтения.
    • Rewrite (f2); - открытие файла f2 для записи (если файл существует, его содержимое будет стерто).
    • While not Eof(f1) do begin - цикл, выполняющийся пока не достигнут конец файла f1.
    • Read (f1,a); - чтение числа из файла f1 в переменную A.
    • Readln (f1,b); - чтение числа из файла f1 в переменную B.
    • writeln (f2,'НОД(', A, ', ', B, ')=', NOD(A, B)); - запись выражения НОД(A, B)=результат вычисления НОД в файл f2.
    • end; - конец цикла.
    • Close (f1); - закрытие файла f1.
    • Close (f2); - закрытие файла f2.
    • readkey; - ожидание нажатия клавиши. Код выполняет вычисление НОД для каждой пары чисел из файла numbers.txt и записывает результаты в файл nod.txt.

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


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

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

11   голосов , оценка 4 из 5

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

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

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