{$N+} const min=2.0; max=3.0; p=3; var z,a: double; i: byte; function factorial(a: longint): longint; begin factorial:=1; if a<0 then writeln('ERROR!') else if (a=0)or(a=1) then factorial:=1 else factorial:=a*factorial(a-1); end; function pow(a: double; p: longint): double ; begin pow:=1; if p<0 then pow:=1/pow(a,-p) else if p=0 then pow:=1 else if p=1 then pow:=a else pow:=a*pow(a,p-1); end; begin write('a='); readln(a); if (abs(a)>min)and(abs(a)<=max) then begin z:=0; for i:=0 to p do z:=z+pow(-1,i)*pow(a-2,2*i+2)/factorial(2*i); writeln('z=',z:8:6); end else writeln('a not in (',min:8:6,';',max:8:6,']'); writeln('Press ENTER'); readln; end. |