Proc45. Описать функцию Power4($$x$$, $$a$$, $$\epsilon$$) вещественного типа (параметры $$x$$, $$a$$, $$\epsilon$$ — вещественные, $$|x| < 1; a, \epsilon> 0$$), находящую приближенное значение функции $$(1 + x)^a$$: $$(1 + x)^a = 1 + a*x + a*(a-1)*x^2/(2!) + … + a*(a-1)*…*(a-n+1)*x^n/(n!) + … .$$
В сумме учитывать все слагаемые, модуль которых больше $$\epsilon$$. С помощью Power4 найти приближенное значение $$(1 + x)^a$$ для данных $$x$$ и $$a$$ при шести данных $$\epsilon$$.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
program Proc45; Function Power4(x,a,e:Real):Real; var Znak,i:integer; xi,ni:Real; TempRez,TempRez2,Rez:Real; begin xi:=1; i:=0; ni:=1; Znak:=-1; Rez:=0; TempRez:=1; TempRez2:=1; While (abs(TempRez) > e) do begin Rez:=Rez+TempRez; Writeln(i,' ',xi,' ',ni,' ',TempRez,' ',TempRez2,' ',Rez); Readln; inc(i); xi:=xi*x; ni:=ni*i; TempRez2:=TempRez2*(a-i+1); TempRez:=TempRez2*xi/ni; end; Power4:=Rez; end; var X,A,E:real; i: integer; begin Write('X :'); Readln(X); Write('A :'); Readln(A); for i:=1 to 6 do begin Write('E :'); Readln(E); Writeln(Power4(X,A,E)); end; end. |
Решение olegst1975:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
function Power4(x,a,e:real):real; var Power4_n:real; i:integer; begin Power4_n:=1; result:=0; i:=0; while abs(Power4_n)>e do begin result:=result+Power4_n; inc(i); Power4_n:=Power4_n*x*(a-i+1)/i; end; end; var i:integer; x,a,e:real; begin read(x,a); for i:=1 to 6 do begin read(e); write(Power4(x,a,e)); end; end. |
Другие задачи из раздела Proc можно посмотреть здесь.
Также в строке 17 нужен модуль
[/crayon]
Поправил
Было:
Стало:
Добавил в шапку решение.