Программа


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.


Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию