Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #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.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:46.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025