PROGRAM z43;
(* 3-й способ с оператором цикла REPEAT *) CONST k=2; (* поименованная константа *) VAR x,s,a:REAL;(* переменная, сумма, элемент суммы *) i,j,znak,fakt:INTEGER; (* номер элемента суммы, переменная цикла, знак, факториал *) BEGIN s:=0.0; i:=0; znak:=1; x:=0.1; REPEAT i:=i+1; znak:=znak*(-1); fakt:=1; FOR j:=1 TO (k*i+1) DO fakt:=fakt*j; a:=znak*EXP((k*i+1)*LN(k*x)/fakt; s:=s+a: UNTIL ABS (a)>0.0001; WRITE (‘При а= ’,а:9:7, ‘сумма= ’,s:9:7); WRITELN (‘на ’ i:2,‘-ой итерации’); END.
3в) Схема алгоритма задачи 4 (3-й способ (цикл REPEAT))
![]()
PROGRAM z44; (* 4-й способ с операторами описания и вызова процедур и функций *) CONST k=2; (* поименованная константа) VAR x,s,a,i:REAL; (* переменная, сумма, элемент суммы, номер элемента суммы *) i1:INTEGER; (* целый тип номера элемента суммы *) FUNCTION fakt(f:INTEGER):INTEGER; (* функция факториал *) VAR fak,j:INTEGER; (* локальные переменные *) BEGIN fak:=1; FOR j:=1 TO f DO fak:=fak*j; fakt:=fak; END; PROCEDURE summa(VAR,s:REAL; b:REAL);(* процедура суммы *) BEGIN s:=s+b; END; FUNCTION stepen(osn:REAL;step:INTEGER):RЕАL; (* функция степени *) VAR k:INTEGER;(* локальные*) st:REAL; (* переменные *) BEGIN st:=1.0; FOR k:=1 TO step DO st:=st*osn; stepen:=st; END; BEGIN s:=0.0; i:=0; x:=0.1; REPEAT summa(i,1.0); i1:=TRUNC(i); a:=stepen(-1.0,i1)* stepen(k*x,k*i1+1)/fakt(k*i1+1); summa(s,a); UNTIL ABS (a)<0.0001; WRITE (‘При a= ’,a:9:7, ‘сумма= ’,s:9:7); WRITELN (‘на ’,i1:2,‘-ой итерации’); END. 3г) Схема алгоритма задачи 4 (4-й способ (FUNCTION и PROCEDURE))
![]()
|