Pascal - random

Programovacie jazyky, rady, poradňa...
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Pascal - random

Príspevok od používateľa Mmartin »

Zdravim, mam jednoduchy kod v pascale:

Kód: Vybrať všetko

program randomator;
uses crt,dos,SysUtils;
var
c:longint;
cont:boolean;
input:longint;
rand:longint;
subor:Text;
year,month,day,year1,month1,day1,hour,minute,second,hour1,minute1,second1,daco,daco1,daco2,daco3:word;
begin
while true do begin
ClrScr;
delay(50);
GetDate(year,month,day,daco);
GetTime(hour,minute,second,daco3);
c:=0;
rand:=0;
cont:=true;
write('Zadaj cislo: ');
readln(input);
while cont do begin
  rand:=random(input*2);
  random;
  if rand=input then begin cont:=false; if c=0 then c:=1; end else c:=c+1;
end;
GetDate(year1,month1,day1,daco1);
GetTime(hour1,minute1,second1,daco2);
writeln('Hladal som cislo ',input,' | Pokusy: ',c,' | Hladal som od 0 do ',(input*2),' |');
writeln('Zaciatok: ',day:2,'/',month:2,'/',year:2,' | ',hour:2,':',minute:2,':',second:2);
writeln('Koniec: ',day1:2,'/',month1:2,'/',year1:2,' | ',hour1:2,':',minute1:2,':',second1:2);
Assign(subor,'randomator.txt');
if fileexists('randomator.txt') then append(subor) else rewrite(subor);
writeln(subor,'Hladal som cislo ',input,' | Pokusy: ',c,' | Hladal som od 0 do ',(input*2),' |');
writeln(subor,'Zaciatok: ',day:2,'/',month:2,'/',year:2,' | ',hour:2,':',minute:2,':',second:2);
writeln(subor,'Koniec: ',day1:2,'/',month1:2,'/',year1:2,' | ',hour1:2,':',minute1:2,':',second1:2);
writeln(subor,'-----------------------------------');
close(subor);
repeat delay(500) until keypressed;
end;
end.
Kazdemu je snad jasne, o co ide, ak nie, tak proste zadate cislo, program randne nejake cislo od 0 do vlozene_cislo*2, a porovnava ho s tym vlozenym. Na konci vypise (a zapise do suboru) pokusy, od kial po kial hadal, kolko mu to trvalo,...

Lenze mam problem, ked to poslem niekomu, tak mu stale vypluje rovnaky pocet pokusov. A hadanie mu trva rovnako dlho. Co je divne je to, ze mne to ide uplne normalne. A co je este divnejsie, aj ja, aj ten komu to nejde ako ma (ShepDog :D ), mame win 7 x64, teda uplne rovnaky operacny system.

//edit: prikladam execko - ak vam nevytvori logovy subor, treba spustit ako administratora.
Prílohy
randomator.rar
(41.18 KiB) 16 stiahnutí
Grim
Darca
Darca
Používateľov profilový obrázok
Príspevky: 8702
Registrovaný: 25 jún 2008, 0:54
Bydlisko: pod železničným mostom
Kontaktovať používateľa:

Re: Pascal - random

Príspevok od používateľa Grim »

...mne to funguje...windows7 32bit...

//...prikladám log...
Prílohy
randomator.rar
(261 Bajtov) 14 stiahnutí
h.olub
King
King
Používateľov profilový obrázok
Príspevky: 1712
Registrovaný: 10 aug 2009, 11:58
Bydlisko: Bratislava

Re: Pascal - random

Príspevok od používateľa h.olub »

win 7 64bit
Prílohy
randomator.rar
(257 Bajtov) 15 stiahnutí
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Re: Pascal - random

Príspevok od používateľa Mmartin »

Holub, skus viac krat to iste cislo, vtedy to blbne a ma rovnaky pocet pokusov
skusil som to rand; pod rand:=random() zmenit na randomize;, a hen co vzniklo :D

Kód: Vybrať všetko

-----------------------------------
Hladal som cislo 5 | Pokusy: 20595 | Hladal som od 0 do 10 |
Zaciatok:  1/11/2010 | 11:48:23
Koniec:  1/11/2010 | 11:48:25
-----------------------------------
On asi 10000x pouzije jendo cislo ked hada :D
Tu je aktualny kod:

Kód: Vybrať všetko

program randomator;
uses crt,dos,SysUtils;
var
c:longint;
cont:boolean;
input:longint;
rand:longint;
subor:Text;
subor4cislo:Text;
year,month,day,year1,month1,day1,hour,minute,second,hour1,minute1,second1,daco,daco1,daco2,daco3:word;
begin
while true do begin
ClrScr;
delay(50);
GetDate(year,month,day,daco);
GetTime(hour,minute,second,daco3);
c:=0;
rand:=0;
cont:=true;
write('Zadaj cislo: ');
readln(input);
Assign(subor4cislo,'totallog.txt');
if fileexists('totallog.txt') then append(subor4cislo) else rewrite(subor4cislo);
while cont do begin
  randomize;
  rand:=random(input*2);
  writeln(subor4cislo,'Skusam cislo: ',rand);
  if rand=input then begin cont:=false; if c=0 then c:=1; end else c:=c+1;
end;
GetDate(year1,month1,day1,daco1);
GetTime(hour1,minute1,second1,daco2);
writeln('Hladal som cislo ',input,' | Pokusy: ',c,' | Hladal som od 0 do ',(input*2),' |');
writeln('Zaciatok: ',day:2,'/',month:2,'/',year:2,' | ',hour:2,':',minute:2,':',second:2);
writeln('Koniec: ',day1:2,'/',month1:2,'/',year1:2,' | ',hour1:2,':',minute1:2,':',second1:2);
Assign(subor,'randomator.txt');
if fileexists('randomator.txt') then append(subor) else rewrite(subor);
writeln(subor,'Hladal som cislo ',input,' | Pokusy: ',c,' | Hladal som od 0 do ',(input*2),' |');
writeln(subor,'Zaciatok: ',day:2,'/',month:2,'/',year:2,' | ',hour:2,':',minute:2,':',second:2);
writeln(subor,'Koniec: ',day1:2,'/',month1:2,'/',year1:2,' | ',hour1:2,':',minute1:2,':',second1:2);
writeln(subor,'-----------------------------------');
close(subor);
repeat delay(500) until keypressed;
end;
end.
c-ice
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 475
Registrovaný: 04 mar 2008, 15:18
Kontaktovať používateľa:

Re: Pascal - random

Príspevok od používateľa c-ice »

hmm za prvym beginom daj "randomize;" a dalej pouzivaj to random tak nas to ucili pred 5 rokmi ak si dobre pamatam
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Re: Pascal - random

Príspevok od používateľa Mmartin »

Ide, dakujem mockrat! :)
Napísať odpoveď