Показать сообщение отдельно
  #6  
Старый 08.12.2007, 11:39
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

Код:
program SqSum_01;

{$APPTYPE CONSOLE}

uses
  SysUtils, Math;

var
  X_ARG: Double;

//------------------------------------------------------------------------------
// Функция вычисляет значение факториала N
//------------------------------------------------------------------------------
function Factorial(N: Integer): Cardinal;
begin
  if N = 1 then Result := 1
           else Result := Factorial(N - 1) * N;
end;

//------------------------------------------------------------------------------
// Функция вычисляет значение очередного члена ряда с номером N
//------------------------------------------------------------------------------
function SqTerm(N: Integer; X: Double): Double;
begin
  Result := Power(-1, N) * Power(X, 2 * N) / Factorial(2 * N);
end;

//------------------------------------------------------------------------------
// Функция вычисляет сумму членов последовательности,
// удовлетворяющих условию задачи
//------------------------------------------------------------------------------
function SumTerms(N: Integer; E: Double): Double;
var
  Term: Double;
begin
  Result := 0.0;                // Сюда будем суммировать

  while N > 0 do begin
    Term := SqTerm(N, X_ARG);   // Вычисляем очередной член ряда
    if Abs(Term) >= E then      // Проверяем условие
      Result := Result + Term;  // Если модуль больше либо равен E - суммируем
    Dec(N);                     // Переходим к следующему члену ряда
  end;
end;

begin
  Write('X: ');
  Readln(X_ARG);

  Writeln;
  Writeln('X = ', X_ARG:6:2);

  Writeln('E = 2, N = 10: ', SumTerms(10, 2):10:2);
  Writeln('E = 1, N = 10: ', SumTerms(10, 1):10:2);
  Writeln('E = 0, N = 10: ', SumTerms(10, 0):10:2);

  { Чтобы пользователь смог насладиться результатом, ожидаем нажатия Enter}
  Writeln;
  Writeln('Press [Enter].');
  Readln;
end.
Ответить с цитированием