Для каждой пары чисел файла вычислить НОД - 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.
Объяснение кода листинга программы
- Объявление переменных:
A, B: integer
- переменные типа целое число для хранения пар чисел из файла.f1, f2: text
- переменные для работы с файлами.
- Определение функции вычисления НОД (наибольшего общего делителя) чисел 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;
- конец определения функции.
- Открытие файлов и выполнение вычислений:
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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д