ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Падает прога...
  #1  
Старый 14.04.2008, 23:32
Аватар для Chuck
Chuck
Banned
Регистрация: 23.07.2007
Сообщений: 87
Провел на форуме:
2147329

Репутация: 613
По умолчанию Падает прога...

Братцы! Выручайте! .. Паскаль.. Падает прога.. Error 207: Invalid floating point operation. Очень срочно нужно исправить ошибку. В итоге должна выводиться гистограмма - это значения, превышающие или меньшие значений определяющей функции (строки 107-111)..

Прога:

Код:
uses crt,graph;

{#### CONFIG ####}

const MAX = 10000;
N = 10;            {#### 0<N<50 ####}
lambda = 1;        {#### 0<lambda<50 ####}
beta =  5;       {#### beta>lambda ####}
DOT = 4;

var Data: array [1..MAX] of real;
Hist: array [1..N] of integer;


{#### FUNCTION ####}

function w(x:real):real;
begin

if (lambda <= x) and (x <= ((beta + lambda)/2)) then
w:= 4*(x-lambda)/sqr((beta - lambda));

if ((beta + lambda)/2 <= x) and (x <= beta) then
w:= 4*(beta - x)/sqr((beta - lambda));

end;



{#### PROCEDURE ####}

procedure DrawHist;
var i:integer;
	 step:real;
	 Max_Num:integer;
	 s:string;
	 k:real;
	 m1:real;
	 D:real;
	 hi:real;
	 wk:real;
begin
for i:=1 to N do Hist[i]:=0;{clearing array}

{#### CALCULATE HIST ####}

step:=lambda/N;
for i:=1 to MAX do inc(Hist[1+trunc((Data[i]-beta+lambda/2)/step)]);

{#### LOOK FOR Max_Num ####}

Max_Num:=0;
for i:=1 to N do if Max_Num<Hist[i] then Max_Num:=Hist[i];

{#### DRAWHIST ####}

m1:=0;D:=0;hi:=0;
for i:=0 to N-1 do begin
		  SetColor(14);
		  rectangle(
						round(i*GetMaxX/N),
						round(2*GetMaxY/3),
						round((i+1)*GetMaxX/N),
						round(2*GetMaxY/3*(1-Hist[i+1]/Max_Num)));
		  str(Hist[i+1],s);
		  SetColor(3);
		  SetTextStyle(DefaultFont, VertDir, 1);
		  OutTextXY(round(i*GetMaxX/N)+GetMaxX div N,
						round(2*GetMaxY/3)-40,s);
		  str((i+1)*step+beta-lambda/2:1:1,s);
		  SetColor(4);
		  OutTextXY(round(i*GetMaxX/N)+GetMaxX div N,
						round(2*GetMaxY/3)+10,s);
		  m1:=m1+((i+1)*step+beta-lambda/2)*Hist[i+1]/Max;
		  D:=D+sqr(((i+1)*step+beta-lambda/2))*Hist[i+1]/Max;
		  wk:=0.5*sqrt(2)*
				(sin(((i+1)*step+beta-lambda/2)*PI/2/lambda)*cos(PI*beta/2/lambda)
				-cos(((i+1)*step+beta-lambda/2)*PI/2/lambda)*sin(PI*beta/2/lambda)
				-sin((i*step+beta-lambda/2)*PI/2/lambda)*cos(PI*beta/2/lambda)
				+cos((i*step+beta-lambda/2)*PI/2/lambda)*sin(PI*beta/2/lambda));
		  hi:=hi+MAX*sqr(Hist[i+1]/MAX-wk)/wk;
		 end;
SetTextStyle(DefaultFont,HorizDir,1);
SetColor(9);
str(m1:0:DOT,s);
OutTextXY(100,2*GetMaxY div 3 +70,'m1(prakt)= '+s);
str(beta:0:DOT,s);
OutTextXY(100,2*GetMaxY div 3 +90,'m1(teor) = '+s);
D:=D-m1*m1;
str(D:0:DOT,s);
OutTextXY(250,2*GetMaxY div 3 +70,'D(prakt)= '+s);
D:=(PI*PI-32+8*PI)*lambda*lambda/4/PI/PI;
str(D:0:DOT,s);
OutTextXY(250,2*GetMaxY div 3 +90,'D(teor) = '+s);
str(hi:0:DOT,s);
OutTextXY(400,2*GetMaxY div 3 +80,'hi2 ='+s);
k:=-100000;
for i:=0 to GetMaxX do
			 if w(i*lambda/GetMaxX-lambda/2+beta)>k then k:=w(i*lambda/GetMaxX-lambda/2+beta);

SetTextStyle(DefaultFont, HorizDir, 1);
MoveTo(0,round(2*GetMaxY/3*(1-w(-lambda/2+beta)/k)));
SetColor(4);
for i:=0 to GetMaxX do begin
		LineTo(i,round(2*GetMaxY/3*(1-w(i*lambda/GetMaxX-lambda/2+beta)/k)));
	 end;
end;



{#### REV FUNCTION ####}

function F_Rev(x:real):real;
begin

if (lambda <= x) and (x <= ((beta + lambda)/2)) then
F_Rev:= 2*sqr((x-lambda))/sqr((beta - lambda));

if ((beta + lambda)/2 <= x) and (x <= beta) then
F_Rev:= 1 - 2*sqr((beta - x))/sqr((beta - lambda));
end;



{#### GENERATE AND FULL ARRAY #### }



procedure GenerateData;
var y:real;
	 i:integer;
begin
SetFillStyle(0,0);
OutTextXY(0,0,'Generating...');
 for i:=1 to MAX do begin
	y:=random;
	Data[i]:=F_Rev(y);
	end;
Bar(0,0,GetMaxX,GetMaxY);
end;


{#### FIND DRIVERS ####}


procedure OpenGraph;
 var Gd, Gm: Integer;
begin

 Gd := Detect;
 InitGraph(Gd, Gm, 'c:\tp\bgi');
end;



{#### OUT ####}
begin
ClrScr;
Randomize;
{GetParams;}
OpenGraph;
repeat
 GenerateData;
 DrawHist;
 delay(500);
until keypressed;
CloseGraph;
WriteLn('Good!');
end.

Последний раз редактировалось Tiler2k; 15.04.2008 в 01:03..
 
Ответить с цитированием

  #2  
Старый 14.04.2008, 23:47
Аватар для LEE_ROY
LEE_ROY
Постоянный
Регистрация: 09.11.2006
Сообщений: 639
Провел на форуме:
1917742

Репутация: 541


По умолчанию

нет паскаля, в делфе нету юнитов нужных , в отладчик смотрел?
 
Ответить с цитированием

  #3  
Старый 14.04.2008, 23:54
Аватар для Ch3ck
Ch3ck
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме:
5301021

Репутация: 1879


По умолчанию

http://forum.vingrad.ru/forum/s/6bec7e1f871e9fa05c83226fc6ea4d1b/topic-194088/anchor-entry1399234/0.html
Может...
 
Ответить с цитированием

  #4  
Старый 15.04.2008, 00:04
Аватар для De-visible
De-visible
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме:
4037638

Репутация: 1821


Отправить сообщение для De-visible с помощью ICQ
По умолчанию

_http://forum.saratov.ru/lofiversion/index.php/t1699.html
_http://subscribe.ru/archive/comp.soft.prog.pasplus/200611/07183040.html
Dr.Check, я показал, что означает эта ошибка!
------
Я пытался помочь человеку!
А ты ставишь минусы за помощь?!

-----

Последний раз редактировалось De-visible; 15.04.2008 в 01:04..
 
Ответить с цитированием

  #5  
Старый 15.04.2008, 00:19
Аватар для Ch3ck
Ch3ck
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме:
5301021

Репутация: 1879


По умолчанию

2 De-visible
ppc... тебя не спрашивали описания кодов ошибок... спросили как её исправить...
глупость пишешь...
 
Ответить с цитированием

  #6  
Старый 15.04.2008, 00:26
Аватар для Hellsp@wn
Hellsp@wn
Постоянный
Регистрация: 29.04.2007
Сообщений: 496
Провел на форуме:
2715445

Репутация: 588
По умолчанию

возможно переполняется какая-то из переменных, ща нет времеени смотреть,можешь скомпилить 32-ух битный ехе с дебаг инфо?
 
Ответить с цитированием

  #7  
Старый 15.04.2008, 00:31
Аватар для Chuck
Chuck
Banned
Регистрация: 23.07.2007
Сообщений: 87
Провел на форуме:
2147329

Репутация: 613
По умолчанию

Уфф.. Dr.Check, вот так: махнул все real на extended.. Ничего..

Второй момент: после смены типов компилятор начал дико тупить: стал выделять OT, подчёркивать запятые...

Hellsp@wn, Рандж чека не было..


Всё ещё актуальна проблема..

Последний раз редактировалось Tiler2k; 15.04.2008 в 00:33..
 
Ответить с цитированием

  #8  
Старый 15.04.2008, 01:27
Аватар для Chuck
Chuck
Banned
Регистрация: 23.07.2007
Сообщений: 87
Провел на форуме:
2147329

Репутация: 613
По умолчанию

Давайте так: кто сделает стабильно рабочую прогу, с нормальной диаграммой, тому торжественно вручу шестизнак. Срок действия до 13.00.
 
Ответить с цитированием

  #9  
Старый 15.04.2008, 13:01
Аватар для slesh
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

Чтото тут с формулой не то, потому что в отладчике после
for i:=1 to MAX do inc(Hist[1+trunc((Data[i]-beta+lambda/2)/step)]);
массиd Hist всё равно содержал нулевые элементы
и по этому после for i:=1 to N do if Max_Num<Hist[i] then Max_Num:=Hist[i];
Max_Num было = 0;
и в конечном счете в строке
rectangle(
round(i*GetMaxX/N),
round(2*GetMaxY/3),
round((i+1)*GetMaxX/N),
round(2*GetMaxY/3*(1-Hist[i+1]/Max_Num)));
вылетала ошибка при делении на 0. но почему-то код ошибки был левый.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прога для накрутки денег в онлайн играх alx8787 Soft - Windows 5 20.04.2008 18:32
Новая прога генерации и обработки листов для брута mfcn Уязвимости 9 19.01.2008 01:17
Прога для... L.S.D. ICQ 8 07.02.2006 00:44
Есть ли прога разделающиея видео файл на 2 части ? xSp1D3R Soft - Windows 12 18.01.2006 16:45
Важно: Нужна прога ! Sn_key С/С++, C#, Delphi, .NET, Asm 4 01.07.2005 00:44



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


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




ANTICHAT.XYZ