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

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

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

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

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

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

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

функцию

или

процедуру.

вот

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

(вычитание) чтоб не искать:
program AlgEvklid;
uses crt;
var A, B: integer;
function NOD(A, B: integer): integer;
begin
while A<>B do
if A>B then A:=A-B else B:=B-A;
NOD:=A;
end;
 
begin
write('A > '); read(A);
write('B > '); read(B);
write('НОД(', A, ', ', B, ')=', NOD(A, B));
readkey;
end.
Заранее благодарен абсолютно всем кто попытается мне помочь.

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

textual
Листинг программы
program AlgEvklid;
uses crt;
var A, B: integer;
f1,f2:text;
function NOD(A, B: integer): integer;
begin
while A<>B do
if A>B then A:=A-B else B:=B-A;
NOD:=A;
end;
 
begin
Assign (f1, 'Путь к файлу/numbers.txt');
Assign (f2, 'Путь к файлу/nod.txt');
Reset (f1);
Rewrite (f2);
While not Eof(f1) do begin
Read (f1,a); //чтение чисел, написанных на одной строке через пробел
Readln (f1,b);
writeln (f2,'НОД(', A, ', ', B, ')=', NOD(A, B));
end;
Close (f1);
Close (f2);
readkey;
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
Похожие ответы