Напишите процедуру для нахождения наибольшего общего делителя двух чисел.используйте ее для нахождения наибольшего общего делителя элементов 3х массивов. массивы ввести и вывести при процедур

nikaa5522 nikaa5522    3   10.11.2019 19:04    0

Ответы
Fhaj1 Fhaj1  10.10.2020 12:15

function Nod(a, b: integer): integer;

begin

 while b <> 0 do

 begin

   a := a mod b;

   Swap(a, b)

 end;

 Result := a

end;

procedure ArrIn(var a: array of integer) := a := ReadArrInteger(a.Length);

procedure ArrOut(a: array of integer) := a.Println;

function NodArr(a: array of integer): integer;

begin

 var n := a.Length;

 if n = 1 then

   Result := a[0]

 else

 begin

   Result := Nod(a[0], a[1]);

   for var i := 2 to n - 1 do

     Result := Nod(a[i], Result);

 end;

end;

begin

 var n := ReadInteger('Число элементов в массиве 1:');

 var a := new integer[n];

 Writeln('Введите элементы массива 1');

 ArrIn(a);

 Writeln('введены элементы:');

 ArrOut(a);

 Writeln('НОД элементов равен ', NodArr(a));

 n := ReadInteger('Число элементов в массиве 2:');

 SetLength(a, n);

 Writeln('Введите элементы массива 2');

 ArrIn(a);

 Writeln('введены элементы:');

 ArrOut(a);

 Writeln('НОД элементов равен ', NodArr(a));

 n := ReadInteger('Число элементов в массиве 3:');

 SetLength(a, n);

 Writeln('Введите элементы массива 3');

 ArrIn(a);

 Writeln('введены элементы:');

 ArrOut(a);

 Writeln('НОД элементов равен ', NodArr(a));

end.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика