Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2012, 21:54   #1
<Slavs>
Пользователь
 
Регистрация: 01.02.2012
Сообщений: 13
По умолчанию В чем же проблема?Что я не так делаю?

В чем же ошибка? Мне кажиться что чтото не так с факториалом, но не могу понять что? Помогите, плиз)

Вот ето результат из Mathcad(тоисть здесь ответ правильный) :

Ето програма на Паскале :
Код:
uses crt;
 var x:real;
     k:integer;
  function ss(r:real;i:integer) : real;
  var f:integer;
      h,s:real;
  begin
   h:=0; f:=6;ss:=0;
   for i:=0 to 10 do
    begin
    if i=0 then f:=1 else
    if i=1 then f:=6
    else  f:=f*(2*i)*(2*i+1);
     h:=exp((2*k+1)*ln(r))/f;
    s:=s+h;  i:=i+1;
    end;
    ss:=s;
    writeln('m= ',s:6:3);
    end;
     function dd(r:real;i:integer) : real;
  var f:integer;
      h:real;
  begin
  f:=2; h:=0;
   for i:=0 to 10 do
    begin
    if i=0 then f:=1 else
    if i=1 then f:=2
     else f:=f*(2*i-1)*(2*i);
     h:=h+(exp(2*i*ln(r))/f);
     i:=i+1;
       end;
     dd:=h;
     writeln('f= ',h:6:3);
    end;
  procedure ff(n:real);
  var w,q:real;
  begin
  w:=ss(x,k)/dd(x,k);
  q:=(1.7*w*0.25+2*w*(1+n))/6-w*(sqr(n)-1);
  writeln('Результат = ',q:10:6);
  end;
begin
writeln('х= : ');
read(x);
ff(x);
end.
Такой результат на Паскале :
<Slavs> вне форума Ответить с цитированием
Старый 23.02.2012, 22:58   #2
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

кросспостинг....
Poma][a вне форума Ответить с цитированием
Старый 24.02.2012, 00:29   #3
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Все не так!

При к = 10 нужно вычислить факториал 21! (2*к+1 = 21). Факториал этого числа равен 51 090 942 171 709 440 000 (20! знаков).
А теперь скажи, любезный, какой такой Паскаль сможет выдержать эти 20 знаков?
MathCAD, да, знает как поступать с такими величинами, а Паскаль нет.

А зачем в цикле происходит увеличение переменной цикла (i := i +1), если сам цикл умеет это делать? Дополнительный инкремент приводит к тому, что значение i к концу цикла становится равным 20, что не соответствует условию задачи.
Прик вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что я делаю не так rj-45 Microsoft Office Excel 7 22.11.2011 10:21
Что не так делаю? L6go1as Общие вопросы C/C++ 5 28.10.2011 07:54
Объсните что не так делаю Crudelis Общие вопросы C/C++ 4 10.06.2010 00:26
IBExpert, не могу понять что делаю не так! в чём проблема.... katia0017 SQL, базы данных 10 15.01.2010 18:33