Программа
Program pas_001 (input,output);
{ Вычислить по формуле, вывести
в виде таблицы }
Var
{ Переменные для вычисления выражения с корнями: }
t:real;
t1,t2,t3,t4:real; { t1,t2,t3 - промежуточные переменные для значений
корней;
t4 - результат }
{ Переменные для вычисления "по Тейлору": }
x:real;
a,i:integer; { i - счетчик }
n,u,NewX:real; { n - переменная для набора значения n! по рекуррентной
формуле (n+1)!=n!*(n+1);
u - переменная для набора множителя при x
a*(a-1)*(a-2)*... ;
NewX - переменная для набора степени x }
Result,PredResult:real; { Result - результат полученный на текущей итерации
PredResult - результат полученный на предыдущей итерации }
function f1(t:real):real;
{ Вычисление первого корня }
begin
f1:=Sqrt(Sqrt(1-Sqr(Sqr(cos(t)))/4))
end;
function f2(t:real):real;
{ Вычисление второго корня }
begin
f2:=exp(0.2*Ln(1+arctan(t)/2))
end;
function f3(t:real):real;
{ Вычисление третьего корня }
begin
f3:=exp(-Ln(3+Sqr(t))/9)
end;
BEGIN
{ Вычисление выражения с корнями: }
write('Введите t ');
readln(t);
t1:=f1(t);
t2:=f2(t);
t3:=f3(t);
t4:=t1+t2*t3;
writeln('╔═══════════════╤═══════════════════╗');
writeln('║ Значение t │ ',t,' ║');
writeln('╠═══════════════╪═══════════════════╣');
writeln('║ Первый корень │ ',t1,' ║');
writeln('╟───────────────┼───────────────────╢');
writeln('║ Второй корень │ ',t2,' ║');
writeln('╟───────────────┼───────────────────╢');
writeln('║ Третий корень │ ',t3,' ║');
writeln('╠═══════════════╪═══════════════════╣');
writeln('║ Результат │ ',t4,' ║');
writeln('╚═══════════════╧═══════════════════╝');
{ Вычисление "по Тейлору": }
write('Введите x ');
readln(x);
write('Введите a ');
readln(a);
Result:=1;
i:=0;
n:=1; { Задание начальных значений }
u:=1;
NewX:=1;
repeat { Итерационное вычисление результата }
PredResult:=Result; { Сохранение предыдущего результата }
u:=u*(a-i); { Набор значения множителя х }
i:=i+1; { Изменение счетчика }
n:=n*i; { Набор значения делителя n! }
NewX:=NewX*x; { Набор значения степени x }
Result:=Result+NewX*u/n { Получение нового результата }
until PredResult=Result; { Прекращение вычислений по критерию
машинного нуля }
writeln('(1+x)^a=',Result)
END.
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию