// PascalABC.NET 3.3, сборка 1583 от 25.11.2017 // Внимание! Если программа не работает, обновите версию!
procedure FillRandom(var P:array of integer; a,b:integer); begin var (k,n):=(0,P.Length); repeat P:=ArrRandom(n,a,b); k+=1; until P.Distinct.Count=n; Writeln('Сделано ',k,' генераций массива') end;
begin var n:=ReadInteger('n='); var (a,b):=ReadInteger2('Укажите интервал значений элементов:'); if b-a+1<n then Writeln('Задание выполнить невозможно') else begin var x:=new integer[n]; FillRandom(x,a,b); x.Println end end.
Рассмотрим простейшую схему кредитования (и самую невыгодную для заёмщика), когда за каждый год отдается фиксированный процент p от первоначальной суммы кредита k без учета того, что часть кредита уже погашена за предыдущие годы. В этом случае ежегодная сумма процентов по кредиту составит Sk=k×p%/100%. За n лет будет отдано n×Sk. И еще нужно вернуть саму сумму кредита k. Итого нужно вернуть k+n×Sk. Доход за это время составит n×r и получаем неравенство n×r ≥ n×Sk+k n×(r-Sk) ≥ k → n ≥ k/(r-Sk) с округлением до целых в большую сторону.
// PascalABC.NET 3.3, сборка 1583 от 25.11.2017 // Внимание! Если программа не работает, обновите версию!
begin var (k,p):=ReadReal2('Сумма кредита и процент годовых:'); var r:=ReadReal('Предполагаемый годовой доход:'); var Sk:=k*p/100; if r<=Sk then Writeln('Рассчитаться за кредит невозможно') else Writeln('Количество лет на погашение кредита: ',Floor(k/(r-Sk))) end.
Пример Сумма кредита и процент годовых:10 0000 16 Предполагаемый годовой доход: 24000 Количество лет на погашение кредита: 12
// Внимание! Если программа не работает, обновите версию!
procedure FillRandom(var P:array of integer; a,b:integer);
begin
var (k,n):=(0,P.Length);
repeat
P:=ArrRandom(n,a,b);
k+=1;
until P.Distinct.Count=n;
Writeln('Сделано ',k,' генераций массива')
end;
begin
var n:=ReadInteger('n=');
var (a,b):=ReadInteger2('Укажите интервал значений элементов:');
if b-a+1<n then Writeln('Задание выполнить невозможно')
else begin
var x:=new integer[n];
FillRandom(x,a,b);
x.Println
end
end.
Примеры
n= 15
Укажите интервал значений элементов: 10 30
Сделано 695 генераций массива
14 26 30 18 27 20 28 10 25 12 22 29 13 15 17
n= 15
Укажите интервал значений элементов: -50 50
Сделано 6 генераций массива
20 11 31 8 12 -47 16 -27 -21 -44 32 10 47 -36 46