Составить блок-схему и программу в Паскале вычисления значений функции Y(x), где a <= x <= b, h – шаг изменения x. Значения с, d задать самостоятельно как константы.
// PascalABC.NET 3.1, сборка 1204 от 24.03.2016 begin var f:array[0..5] of integer; f[0]:=1; f[1]:=1; for var i:=2 to 5 do f[i]:=f[i-1]*f[i-2]+2; Writeln(f[5]) end.
Результат выполнения программы 87
3. Программное решение с использованием рекурсии
// PascalABC.NET 3.1, сборка 1204 от 24.03.2016 function f(n:integer):integer; begin if n<2 then Result:=1 else Result:=f(n-1)*f(n-2)+2 end;
// PascalABC.NET 3.1, сборка 1204 от 24.03.2016 begin // общая часть var a:=ReadArrInteger('Массив:',ReadInteger('n=')); var b:=ReadInteger('b='); // часть для задачи 1 var i:=a.IndexOf(b); if i<0 then Writeln('Нет совпадений') else WritelnFormat('1. A[{0}]={1}',i+1,a[i]); // часть для задачи 2 Writeln('2. k=',a.Where(x->x=b).Count); // часть для задачи 3 var s:=a.Select((x,i)->x=a[i+1:a.Length].Sum).ToArray; var k:=s.IndexOf(True); if k>=0 then WritelnFormat('3. A[{0}]={1}',k+1,a[k]) else Writeln('3. Не существует') end.
F₀ = 1; F₁ = 1;
F₂ = F₁×F₀+2 = 1×1+2=1+2 = 3;
F₃ = F₂×F₁+2 = 3×1+2 = 3+2 = 5;
F₄ = F₃×F₂+2 = 5×3+2 = 15+2 = 17;
F₅ = F₄×F₃+2 = 17×5+2 = 85+2 = 87
ответ: 87
2. Программное решение с использованием итерации
// PascalABC.NET 3.1, сборка 1204 от 24.03.2016
begin
var f:array[0..5] of integer;
f[0]:=1; f[1]:=1;
for var i:=2 to 5 do f[i]:=f[i-1]*f[i-2]+2;
Writeln(f[5])
end.
Результат выполнения программы
87
3. Программное решение с использованием рекурсии
// PascalABC.NET 3.1, сборка 1204 от 24.03.2016
function f(n:integer):integer;
begin
if n<2 then Result:=1
else Result:=f(n-1)*f(n-2)+2
end;
begin
Writeln(f(5))
end.
Результат выполнения программы
87