PDA

View Full Version : مشکلی عجیب در پاسکال؟!



sajjadrad
پنج شنبه 06 اسفند 1388, 20:24 عصر
سلام دوستان.
من برنامه بسط سینوس رو نوشتم و کامله اما وقتی که تعداد جملات بسط رو به 10 تا میرسونم با مشکلی عجیب برخورد میکنم.خطا Division By Zero میده.درصورتی که تا 9 جمله صحیح کار میکنه...
ببینید مشکل اینجاست که در پروسیجر محاسبه فاکتوریل زیر وقتی ورودی برابر 19 قرار میگیره مقداری که برمیگرده صفره!

procedure fact(var n:real);
var
i,m,temp:integer;
begin
temp:=1;
m:=trunc(n);
writeln(m);
for i:=m downto 1 do
temp:=i*temp;
n:=temp;
end;

درصورتی که باید مقدار فاکتوریل 19 برگرده.به نظر شما مشکل کجاست؟یعنی حافظه کم میاره؟:عصبانی++::لبخند:

sajjadrad
جمعه 07 اسفند 1388, 00:09 صبح
خب...خودم بعد از کاوش بسیار تونستم مشکل رو پیدا کنم.دلیل این بود که مقدار فاکتوریل 19 بیشتر از مقدار قابل قبول integer هستش...با قرار دادن نوع به longint مشکل حل شد