Автор: reill 26.06.2003 21:33
Народ помогите функция глючит... выдает каждый раз одни и те же числа...
фот сама:
Код
function shot: longint;
var i,p:integer;
t,tmp,uron:real;
s,a,b,c:^integer;
begin
a:=0;
b:=0;
c:=0;
p:=0;
getmem(s,100);
getmem(a,2);
getmem(b,2);
getmem(c,2);
for i:= 1 to 40 do
begin
p:=random(3);
case p of
1: a^:=a^+random(10);
2: b^:=b^+random(30);
3: c^:=c^+random(15);
end;
s^:=3*a^+2*b^+c^;
shot:=trunc(0.7*s^);
p:=0;
end;
freemem(s,100);
freemem(a,2);
freemem(b,2);
freemem(c,2);
end;
???
Автор: Forsag 26.06.2003 22:25
Плохо читал "Delphi для чайников" ;D ;)
Подчти во всех языках программирования перед "random" надо использовать функцию randomize; (PS желательно в начале каждой подпрограммы, которая имеет рандомы)
Короче держи свой код:
Код
function shot: longint;
var i,p:integer;
t,tmp,uron:real;
s,a,b,c:^integer;
begin
//------------------
Randomize;
//----------------
a:=0;
b:=0;
c:=0;
p:=0;
getmem(s,100);
getmem(a,2);
getmem(b,2);
getmem(c,2);
for i:= 1 to 40 do
begin
p:=random(3);
case p of
1: a^:=a^+random(10);
2: b^:=b^+random(30);
3: c^:=c^+random(15);
end;
s^:=3*a^+2*b^+c^;
shot:=trunc(0.7*s^);
p:=0;
end;
freemem(s,100);
freemem(a,2);
freemem(b,2);
freemem(c,2);
end;
Автор: Forsag 26.06.2003 23:14
и вообще этому сообщению, к сожалению, здесь ни место :(
Автор: Forsag 26.06.2003 23:22
Извините ребята не туда передвинул... хотел в "Вопросы и ответы" для Паскаля, а получилось, то что получилось >:( >:( ???
Автор: reill 26.06.2003 23:24
а чего ты его сюда закинул??? Тут же асм??
А на счет randomize - я смотрю она мне ошибку не выдает ну и подумал что так работает в дельфи)))