Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Неверный подсчет знаминателя

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Неверный подсчет знаминателя
Имя
Сообщение << Старые топики   Новые топики >>
Неверный подсчет знаминателя - 2009-12-13 17:56:05.250000   
TaRak0t

Сообщений: 6
Оценки: 0
Присоединился: 2009-12-13 17:51:47.240000
Почему происходит не верный подсчет знаменателя в строке 48? a:=fak(i)/(power(i,Sqr(i)));
  unit Unit1; interface uses &nbsp; Windows, Messages,Math, SysUtils, Variants, Classes, Graphics, Controls, Forms, &nbsp; Dialogs, Grids; type &nbsp; TForm1 = class(TForm) &nbsp;&nbsp;&nbsp; strngrd1: TStringGrid; &nbsp;&nbsp;&nbsp; procedure FormCreate(Sender: TObject); &nbsp; private &nbsp;&nbsp;&nbsp; { Private declarations } &nbsp; public &nbsp;&nbsp;&nbsp; { Public declarations } &nbsp; end; var &nbsp; Form1: TForm1; implementation {$R *.dfm} &nbsp;function fak(n:Integer):Integer; &nbsp;&nbsp;&nbsp; var &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i:integer; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f:Integer; &nbsp;&nbsp;&nbsp; begin &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f:=1; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for i:=1 to n do f:=f*i; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fak:=f; &nbsp;&nbsp;&nbsp; end; procedure TForm1.FormCreate(Sender: TObject); var &nbsp; i:Integer; &nbsp; sum:double; &nbsp; a:Real; begin &nbsp; strngrd1.cells[0,0]:='№ Шага'; &nbsp; strngrd1.cells[1,0]:='Значение элемента'; &nbsp; strngrd1.cells[2,0]:='Сумма элементов' ; &nbsp; sum:=0; &nbsp; for i:=1 to 12 do &nbsp; begin &nbsp;&nbsp;&nbsp; a:=fak(i)/(power(i,Sqr(i))); &nbsp;&nbsp;&nbsp;&nbsp; ShowMessage(floatToStr(fak(i))); &nbsp;&nbsp;&nbsp; ShowMessage(floatToStr(power(i,Sqr(i)))); &nbsp;&nbsp;&nbsp; sum:=sum+a; &nbsp;&nbsp;&nbsp; strngrd1.Cells[0,i]:=intToStr(i); &nbsp;&nbsp;&nbsp; strngrd1.Cells[1,i]:=FloatToStr(a); &nbsp;&nbsp;&nbsp; strngrd1.Cells[2,i]:=FloatToStr(sum); &nbsp; end; end; end.

Post #: 1
RE: Неверный подсчет знаминателя - 2009-12-13 18:22:07.150000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Числа слишком большие?
Считай отдельно дробь и отдельно знаменатель. Выводи промежуточные результаты… Есть мнение, что значения факториала не влазят в допустимый диапазон для integerю
Post #: 2
RE: Неверный подсчет знаминателя - 2009-12-13 18:24:13.486666   
wlan

Сообщений: 141
Оценки: 0
Присоединился: 2009-08-17 20:03:15.813333
>Есть мнение, что значения факториала не влазят в допустимый диапазон для integerю

заюзать long не?
Post #: 3
RE: Неверный подсчет знаминателя - 2009-12-13 18:49:43.443333   
TaRak0t

Сообщений: 6
Оценки: 0
Присоединился: 2009-12-13 17:51:47.240000
quote:

ORIGINAL: _SaZ_

Числа слишком большие?
Считай отдельно дробь и отдельно знаменатель. Выводи промежуточные результаты…


Помогло, рассчитал все промежуточные результаты
Post #: 4
RE: Неверный подсчет знаминателя - 2009-12-13 20:39:04.010000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333

quote:

ORIGINAL: wlan

&gt;Есть мнение, что значения факториала не влазят в допустимый диапазон для integerю

заюзать long не?

А разница?
Post #: 5
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Неверный подсчет знаминателя







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.