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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.10.2009, 14:47   #1
SmelMary
 
Регистрация: 07.10.2009
Сообщений: 6
Лампочка вычисление ряда

написано в среде паскаль, необходимо вычислить сумму ряда от 2 до n,
1/(ln(n))^n Число шагов n считает правильно, а сама сумма не считается..
Код:
uses crt;
var
   x,e,s_n,x_,x_n,y,x_n_a,x_a : double;
   n,i,j,c                    : word;

begin
   ClrScr;
 
   write;   write('e - ');   readln(e);
  {x:=0.3;
   e:=0.01;}
   asm
     {s_n  :=  0;}
     fldz  {поместить в стек +0}
     fst  s_n {скопировать вещ.число из стека}
     {n    :=  1;}
     mov n,2
     mov c,1
      fild c
      fild n       {загрузка целого числа в стек}
      fyl2x
            {вычисление n*lg_2(n)}
      fldl2e         {вычисление lg_2(e) }
      fdivr{еление вещественных чисел}
     {x_:=x;}
     
     fst x   {загрузить вещ.число в стек}
     fstp x_{считать вещ.число из стека}
     {x_**n}
     fld1  
     mov cx,n
 @1: fmul x_ {умножение с результатом в ST(0)}
     dec cx  
     jnz @1 
     fstp x_ 
     {s_n  :=  s_n + x_;}
     fld  s_n
     fadd x_ 
     fstp  s_n
     {x_n  :=  x_;}
     fld x_
     fstp x_n
     {n    :=  n + 1;}
     inc n
     fild c
      fild n       {загрузка целого числа в стек}
      fyl2x
            {вычисление n*lg_2(n)}
      fldl2e         {вычисление lg_2(e) }
      fdivr{еление вещественных чисел}
     {x_:=x;}
     fst x
     fstp x_
     {x_**n}
     fld1
     mov cx,n
 @2: fmul x_
     dec cx
     jnz @2
     fstp x_
     {while (abs(x_n)-abs(x_)) > e do
         begin}
         {abs(x_n) ->  x_n_a}
    @5:  fld  x_n
         fabs
         fstp x_n_a
         {abs(x_) ->  x_a}
         fld  x_
         fabs
         fstp x_a
         {x_n_a - x_a -> x_a}
         fld  x_n_a
         fsub x_a
         fstp x_a
         {x_a > e ?}
         fld  x_a
         fcomp e
         fstsw j
         and   j,0100000100000000b
         cmp   j,0
         jnz @4
         {s_n  :=  s_n + x_;}
         fld  s_n
         fadd x_
         fstp  s_n
         {x_n  :=  x_;}
         fld x_
         fstp x_n
         {n    :=  n + 1;}
         inc n
         {x_:=x;}
         fild c
         fild n       {загрузка целого числа в стек}
         fyl2x
            {вычисление n*lg_2(n)}
         fldl2e         {вычисление lg_2(e) }
         fdivr{еление вещественных чисел}
         fst x
         fstp x_
         {x_**n}
         fld1
         mov cx,n
     @3: fmul x_
         dec cx
         jnz @3
         fstp x_
         jmp @5
     @4: nop
        
     fstp  s_n
   end;
  
   writeln; write('e   -  ',e);
   writeln; write('n   -  ',n);
   writeln; write('s_n -  ',s_n);
   writeln;

   readln;
end.
SmelMary вне форума Ответить с цитированием
Старый 15.10.2009, 09:35   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Это что обязательно в ассемблере делать??
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.10.2009, 23:00   #3
SmelMary
 
Регистрация: 07.10.2009
Сообщений: 6
Радость

да обязательно)
но я уже сама разобралась там просто одна лишняя строка)
дл радости нужно так мало!
SmelMary вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вычисление суммы ряда с точностью OXED Помощь студентам 5 30.06.2009 06:56
Вычисление ряда Ronk Паскаль, Turbo Pascal, PascalABC.NET 1 05.06.2009 23:47
Вычисление для ряда точностей. BigMoney Помощь студентам 12 05.02.2009 20:14
Задача на вычисление суммы ряда, Pascal die_hard Помощь студентам 9 07.12.2008 19:05