Блок-схема функции вычисления факториала
Блок-схема процедуры вычисления суммы
Блок-схема процедуры вычисления произведения
Текст программы на языке Паскаль
program lb3;
uses crt;
var a:integer;
q:char;
function factorial(n:integer):longint; //функция Факториал
begin
if n<=1 then factorial:=1
else factorial:=n*factorial(n-1);
end;
procedure sum; //процедура Сумма
var accur,sum,x:real;
n:integer;
begin
write('Введите точность:');
readln(accur);
sum:=0;n:=1;
repeat
x:=(n+1)/(2*factorial(n));
sum:=sum+x;
n:=n+1;
until x<=accur;
writeln('Сумма:',sum:7:7);
writeln('Последнее значение:',x:7:7);
writeln('Число значений:',n-1);
end;
procedure production; //процедура Произведение
var prod,x,v,z:real;
n:integer;
begin
write('Введите некоторое значение:');
readln(v);
prod:=1;n:=0;
while prod<=v do
begin
n:=n+1;
z:=prod;
x:=(sqrt(factorial(n))+8*n)/(3*n-2);
prod:=prod*x;
end;
writeln('m=',n-1);
writeln('Произведение:',z:5:2);
end;
begin //главное тело
repeat
clrscr;
writeln('Нажмите "1", чтобы запустить сумму');
writeln('Нажмите "2", чтобы запустить произведение');
readln(a);
case a of
1:sum;
2:production;
end;
writeln;
write('Повторить?(Y/N)_');
q:=readkey;
until (q='N') or (q='n');
end.