Написать программу на паскале. Дана последовательность чисел заканчивающаяся 0,при считывании которого программа должна закончить свою работу.каждое число записано в отдельной строке.Все числа больше =0. числа заданы в файле in...

Написать программу на паскале. Дана последовательность чисел заканчивающаяся 0,при считывании которого программа должна закончить свою работу.каждое число записано в отдельной строке.Все числа>=0. числа заданы в файле input.txt,ответ в output.txt.нужно вывести нод этой последовательности. Плз помогите. Я задолбалась писать эту программу.
Гость
Ответ(ы) на вопрос:
Гость
1. "Традиционный" вариант //PascalABC.Net 3.0, сборка 1052 function NOD(a, b: longint): longint; begin   while a <> b do if a > b then a := a - b else b := b - a;   NOD := a end; var   f: Text;   tNOD: longint; begin   Assign(f, 'input.txt'); Reset(f);   if not Eof(f) then Readln(f, tNOD);   var n: longint := 1;   while (not Eof(f)) and (n > 0) and (tNOD > 1) do   begin     Readln(f, n);     if n <> 0 then tNOD := NOD(tNOD, n)   end;   Close(f);   Assign(f, 'output.txt'); Rewrite(f);   Writeln(f,tNOD);   Close(f) end. 2. "Современный" вариант //PascalABC.Net 3.0, сборка 1052 function NOD(a, b: integer): integer; begin   while a <> b do if a > b then a -= b else b -= a;   Result := a end; var   tNOD: integer := 0;   n: integer; begin   foreach var sn in Readlines('input.txt') do   begin     n := StrToInt(sn);     if tNOD = 0 then tNOD := n     else     if n = 0 then break else tNOD := NOD(tNOD, n);   end;   WriteAllText('output.txt', IntToSTR(tNOD)); end. Пример файла input.txt находится во вложении, контрольный результат 4096
Не нашли ответ?
Ответить на вопрос
Похожие вопросы