Нозадзе_Новиков392
?>

Найти наибольший общий делитель трех натуральных чисел, имея в виду, что НОД(a, b, c) = НОД(НОД(a, b), c Определить функцию для расчета наибольшего общего делителя двух натуральных чисел, используя алгоритм Евклида;

Информатика

Ответы

Оксана170
Данных в задаче мало, так как выплаты по кредиту зависят от вида платежа (дифференцированный или аннуитетный). С точки зрения написания программы, возможно, интереснее дифференцированный, когда выплата по основному долгу постоянная, а проценты уменьшаются (т.к. уменьшается оставшаяся сумма долга).
Программа на паскале для такого случая (выплаты раз в год):
var sum,s,c,p1,p2:real; y,i:integer;
begin
sum:=40000;
y:=4;
c:=25;
p1:=sum*c/100;
s:=0;
writeln('Основной долг   Проценты');
 for i:=1 to y do
  begin
  p2:=sum*c/100;
  s:=s+p1+p2;
  sum:=sum-p1;
  writeln(p1:5:2,' ':8,p2:6:2);
 end;
 writeln('За 4 года выплачено ',s:5:2);
end.

Результат:
Основной долг   Проценты
10000.00        10000.00
10000.00        7500.00
10000.00        5000.00
10000.00        2500.00
За 4 года выплачено 65000.00
margusha1974
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016
procedure MatPrint(a:array[,] of integer);
begin
  var maxcol:=Length(a,1)-1;
  for var i:=0 to Length(a,0)-1 do begin
    for var j:=0 to maxcol do Print(a[i,j]);
    Writeln
    end
end;

begin
  var m:=ReadInteger('Кол-во строк:');
  var n:=ReadInteger('Кол-во столбцов:');
  var t:=MatrixRandom(m,n,10,99); // инициализация матрицы
  MatPrint(t);
  var a:=new real[n]; // массив для средних по столбцам
  for var j:=0 to n-1 do begin
    var s:=0;
    for var i:=0 to m-1 do s+=t[i,j];
    a[j]:=s/m
    end;
  // cортированная последовательность индексов столбцов
  var ai:=a.Select((x,i)->Rec(x,i)).SortedDescending
    .Select(x->x.Item2).ToArray;
  // cоздаем промежуточный массив
  var u:array[,] of integer; SetLength(u,m,n);
  for var j:=0 to n-1 do
    for var i:=0 to m-1 do u[i,j]:=t[i,ai[j]];
  t:=Copy(u); // вернем назад данные в исходный массив
  Writeln;
  MatPrint(t);
end.

Тестовое решение
Кол-во строк: 5
Кол-во столбцов: 8
24 30 70 85 92 32 11 25
83 92 64 51 28 47 10 22
50 14 76 84 23 63 64 39
30 22 84 59 55 32 58 63
80 36 53 74 80 82 84 33

85 70 92 24 32 11 30 25
51 64 28 83 47 10 92 22
84 76 23 50 63 64 14 39
59 84 55 30 32 58 22 63
74 53 80 80 82 84 36 33

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Найти наибольший общий делитель трех натуральных чисел, имея в виду, что НОД(a, b, c) = НОД(НОД(a, b), c Определить функцию для расчета наибольшего общего делителя двух натуральных чисел, используя алгоритм Евклида;
Ваше имя (никнейм)*
Email*
Комментарий*