Для каждой пары чисел файла вычислить НОД - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д