//PacalABC.NET 3.4.2
//Используется формула аналогичная формуле Бине для чисел
//Фибоначчи
const
index = power(33, 0.5);
a1 = power((19 + 3 * index), 1 / 3);
a2 = power((19 - 3 * index), 1 / 3);
b = power((586 + 102 * index), 1 / 3);
var
n: smallint;
function tribonacthi(n: smallint): biginteger;
begin
if (n = 1) or (n = 2) then result := 0
else
result := RoundBigInteger(3 * b * ((power((1 / 3 * (a1 + a2 + 1)), n - 1)) / (power(b, 2) - 2 * b + 4)));
end;
begin
try
n := readinteger('Введите количество элементов для вывода:');
except
on system.formatexception do
writeln('Неверный формат ввода');
end;
for var i := 1 to n do write(tribonacthi(i), ' ');
end.
a=2 и b=3
Объяснение:
Смотрим, наблюдаем.
Что происходит в коде?
// - это означает комментарий, который никак не читается компилятором
Program pl; // Называем программу "pl"
Var a,b:integer; // Объявляем переменные. То есть, например, a -это место в памяти компа, мы присвоили ей тип интеджер, что дает нам права присваивать этой переменной исклчительно целочисленные значения, например, 2, -8
procedure fl (x,y:integer); // Создаем процедуру под названием fl. Что такое процедура? Набор действий, которые позже можно выполнить из этой процедуры.
begin
y:=2*x+3;
end;
procedure f2 (var x, y:integer);
begin
x:=3*y+1;
end;
begin
fl(b,a); Мы вызвали эту процедуру (fl) x присваиваем значение b, у значение а. Но так как к данному моменту а и b пусты, ничего не происходит...
end;
a:=2; b:=3;
writeln (‘а=,a,’ b=’,b) // Так как ваш препод не смог грамотно построить задачу, а, по-прежнему, равно 2, а б, по-прежнему, равно 3.
end.