ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 06.06.2008, 18:21
A2GIL
Познающий
Регистрация: 31.08.2007
Сообщений: 94
Провел на форуме:
422909

Репутация: 200
Отправить сообщение для A2GIL с помощью ICQ
По умолчанию

2Catsy

Цитата:
помогите пожалуйста
(паскаль)
1) сумма с точностью
Даны действительные числа x и ε (x≠0, ε > 0). Вычислить с точностью ε и указать количество учтенных слагаемых

2) рекурсия
Даны действительные числа x и ε (x≠0, ε > 0). Вычислить с точностью ε и указать количество учтенных слагаемых
Вычисление выражения под знаком суммы выполнить через рекурсию.
Эх студент...


Код:
var
 Sx,e:real;
 x:integer;
 k:word;

function Factorial(n: Word): Int64;
var
  f: Int64;
  i: Integer;
begin
  f := 1;
  for i := 2 to n do
    f := f * i;
  Factorial := f;
end;

function Degree(x: real;y:word): real;
begin
if (x=0) then begin
   Degree:=0;
 end
else begin
 Degree:=Exp(y*Ln(abs(x)));
if (x<0) and (y mod 2<>0) then begin
   Degree:=(-1)*Exp(y*Ln(abs(x)));
 end;
end;
end;

function RecursiveSum(x:integer;e:real):real;
begin
 sx:=sx+(Degree((-1),k)*Degree((x/2),2*k+1))/(Factorial(k)*Factorial(k+1));
  if Abs(Sx)<e then
     RecursiveSum(x,e);
 RecursiveSum:=Sx;
end;

begin
 ClrScr;
 Sx:=0;
 k:=0;
 write('Vvedite x (x!=0) : ');readln(x);
 write('Vvedite e (e>0) : ');readln(e);
 if (e<=0) or (x=0) then
  begin
   writeln('Error!');
   writeln('Press any key to exit...');
   readln;
   exit;
  end;
 writeln('****************************');
 writeln('1) Summa s tochnostju e:');
 writeln;
  while abs(Sx)<e do
   begin
    sx:=sx+(Degree(-1,k)*Degree(x,4*k+1))/(Factorial(2*k)*(4*k+1));
    k:=k+1;
   end;
   writeln(Sx);
   writeln;
  writeln('****************************');
  writeln('2) Recursiya s tochnostju e:');
  writeln;
  Sx:=0;
  k:=0;
  Sx:=RecursiveSum(x,e);
  Writeln(Sx);
  writeln;
 readln;
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ