Для каждой пары чисел файла вычислить НОД - 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.