pasled0.PAS

{* Cумма последовательности 01 *}

Unit PASLED0;
Interface
Implementation
Begin
 writeln('Дана последовательность вида: sin(x) + sin(sin(x)) + ... + sin(sin ... (sin(x))). Необходимо подсчитать сумму данной последовательности. Значение x вводиться с клавиатуры.');
End.

Program pasled0;

Uses pasled0.pas; {* Эту строку можно удалить *}
{Вычислить сумму S=sin(x)+sin(sin(x))+...+sin(sin...(sin(x)))}
{$N+}
Uses Crt; {* Подключение модулей *}
Const {* Постоянные значения *}
  Eps = 0.03;
Var {* Объявление переменных *}
  X : Extended;
  Y : Extended;
  S : Extended;
  I : Longint;
  F : Boolean;
Begin
  WriteLn; {* Пустая строка *}
  Write('Введите значение X:   ');
  ReadLn(X);
  S := 0;
  I := 0;
  Y := X;
  F := True;
  While F Do
  Begin
    Inc(I); {* I++ *}
    Y := sin(Y);
    If Y < Eps Then
      F := False;
    S := S + Y;
    WriteLn(I : 5, ' ', S : 4 : 5, ' ', Y : 4 : 5);
  End;
  WriteLn('Число членов ряда:   ', I);
  WriteLn('Сумма членов ряда:   ', S);
  WriteLn('Последний член ряда: ', Y);
  Repeat
    Until KeyPressed {* Ждем нажатия клавиши *}
End.