Poslao: 23 Jun 2005 21:02
|
offline
- Stenley
- Zaslužni građanin
- Pridružio: 01 Mar 2005
- Poruke: 549
- Gde živiš: Apatin
|
Zasto uvek daje iste vrednosti prilikom random procedure cak sam pokusao da provucem kroz 3 randoma ali nesupeva uvek izbaci iste vrednosti?
Procedure skakanje;
begin clrscr;
assign(f,'skakaci.dat');
reset(f);
assign(g,'skok.dat');
rewrite(g);
while not eof(f) do
begin
read(f,skakavac);
writeln('Upravo je skocio takmicar: ',skakavac.ime);
writeln;
randomize;
jump.trsk:=random(50)+100;
jump.sifra:=skakavac.sifra;
writeln(skakavac.ime,' je ostvario rezultat ',jump.trsk,' metara');
writeln;
write(g,jump);
end;
close(f);
close(g);
meni;
end;
Dopuna: 23 Jun 2005 21:02
Ljudi uzdam se u vas veceras i sutra ujutru
Napisite barem da neznate!
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
|
Poslao: 23 Jun 2005 21:29
|
offline
- bobby
- Administrator
- Pridružio: 04 Sep 2003
- Poruke: 24135
- Gde živiš: Wien
|
Stavi Randomize negde na pocetku, tako da se pozove samo jednom u toku izvrsavanja programa, a ne u sklopu petlje.
|
|
|
|
Poslao: 23 Jun 2005 22:23
|
offline
- Stenley
- Zaslužni građanin
- Pridružio: 01 Mar 2005
- Poruke: 549
- Gde živiš: Apatin
|
Malo sam ja eksperimentisao i pomerao neke stvari pa sam uspeo sa stavljanjem randomize iza begina sada imam problema prilikom upisivanje sortirane liste u datoteku ali nema veze snacu se vec nekako
Hvala bobby i KOLE89 u svakom slucaju
|
|
|
|
Poslao: 23 Jun 2005 22:39
|
offline
- NuLLCoDe
- Legendarni građanin
- Đuro Glumac
- dipl. ing. informatike
- Pridružio: 08 Feb 2004
- Poruke: 3640
- Gde živiš: ApAtIn
|
Zameni taj tvoj kod iz prvog posta sa ovim:
while not eof(f) do
Begin
x1:=random(50);
begin
read(f,skakavac);
writeln('Upravo je skocio takmicar: ',skakavac.ime);
writeln;
randomize;
jump.trsk:=x1+100;
jump.sifra:=skakavac.sifra;
writeln(skakavac.ime,' je ostvario rezultat ',jump.trsk,' metara');
writeln;
write(g,jump);
end;
end;
close(f);
close(g);
meni;
end;
|
|
|
|
Poslao: 23 Jun 2005 22:44
|
offline
- beli0135
- Executor
- Pridružio: 03 Jan 2005
- Poruke: 2990
- Gde živiš: Beograd
|
Nikako!!!
Randomize treba da se pozove samo jednom u toku cele aplikacije.
Zvanje randomize vise puta u toku programa cini da random brojevi sve manje budu random.
|
|
|
|
Poslao: 23 Jun 2005 23:29
|
offline
- Stenley
- Zaslužni građanin
- Pridružio: 01 Mar 2005
- Poruke: 549
- Gde živiš: Apatin
|
Stenley ::Malo sam ja eksperimentisao i pomerao neke stvari pa sam uspeo sa stavljanjem randomize iza begina sada imam problema prilikom upisivanje sortirane liste u datoteku ali nema veze snacu se vec nekako
Hvala bobby i KOLE89 u svakom slucaju
Ljudi problem je resen pa bi mogli staviti lock ako sortiranje neresim kako treba otvoricu novu temu pa cu vam staviti ceo kod programa!
|
|
|
|
Poslao: 23 Jun 2005 23:33
|
offline
- NuLLCoDe
- Legendarni građanin
- Đuro Glumac
- dipl. ing. informatike
- Pridružio: 08 Feb 2004
- Poruke: 3640
- Gde živiš: ApAtIn
|
@beli0135
Imam ceo source programa, uradio sam onako kako sam gore napisao i radi sada kako treba. Znaci dobro "lupa" brojeve.
|
|
|
|
Poslao: 24 Jun 2005 07:21
|
offline
- Stenley
- Zaslužni građanin
- Pridružio: 01 Mar 2005
- Poruke: 549
- Gde živiš: Apatin
|
HVALA SVIMA
ali snasli smo se
ipak sam mogao da racunam na vas posebno na tebe null
Dopuna: 24 Jun 2005 7:21
procedure lista;
begin
clrscr;
assign(f,'skakaci.dat');
reset(f);
assign(g,'skok.dat');
reset(g);
k:=filesize(f);
while not eof(g) do
begin
for i:=1 to k do
begin
read(g,jump);
a[i]:=jump;
end;
end;
for i:=1 to k do
begin
for j:=2 to k-1 do
begin
if a[i].trsk<a[j].trsk then
begin
kanta:=a[i];
a[i]:=a[j];
a[j]:=kanta;
end;
end;
end;
for i:=1 to k do
begin
reset(f);
seek(f,a[i].sifra);
read(f,skakavac);
writeln(i,' ',skakavac.ime,' ',jump.trsk);
end; meni;close(f);close(g);
end;
Ova proceduratreba da sortira takmicare po redu ali neradi to kako treba ispise mi sifre takmicara i imena uredu ali njihovi skokovi su uvek isti!U cemu je fazon?
|
|
|
|