Pascal a randomize
Pascal a randomize
Hladam to uz dlho.Dal som si vygenerovat nahodne cisla od 1000 do 9999 pomocou prikazu ktory som nasadil na premmenu a:=random(1000)+8999 akurat ze kazde cislo ktore mi vygeneruje sa nachadza nad 9000.Proste napr 9324, 9874, 9123 a podobne a ani bohovi netusim preco to nikdy pod tych 9000 nejde
.Prosim poradte.Dakujem
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
-
neutronmind
Expert
- Príspevky: 189
- Registrovaný: 05 aug 2008, 14:17
Kód: Vybrať všetko
ok:=false;
zavinac:=false;
while not ok do
begin
writeln('Type your email: ');
readln(a);
for I:=1 to a[0] do
begin
if (a[i]='@') then
zavinac:=true
else if (a[i]='.') and zavinac then
ok:=true;
end;
end;
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Kód: Vybrať všetko
for I:=1 to a[0] do Kód: Vybrať všetko
for I:=1 to length(a)-1 do Kód: Vybrať všetko
program blablabla;
uses crt;
var c,d,e,f,ok,i,zavinac : integer;
a : char;
begin
clrscr;
ok:=false;
zavinac:=false;
while not ok do
begin
writeln('Type your email: ');
readln(a);
for I:=1 to length(a)-1 do
begin
if (a[i]='@') then
zavinac:=true
else if (a[i]='.') and zavinac then
ok:=true;
end;
writeln ('Som program co pocita nahodne cisla');
writeln ('Zadaj tvoj mail : ');
readln (a);
clrscr;
writeln ('Pocitam ...');
delay(6000);
randomize;
c:=random(8999)+1000;
d:=random(8999)+1000;
e:=random(8999)+1000;
f:=random(8999)+1000;
clrscr;
writeln ('Nahodne cisla su : ',c,' ',d,' ',e,' ',f);
readln;
end;
end.-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
1) ok a zavináč má byť typu boolean a nie integer
2) po tej kontrole pýtaš znova mail a znova ho načítaš, tak celá kontrola je zbytočná lebo ho zase prepíšeš (a ten už môže byť nekorektne)
3) jedno end čo je na konci tam nemá čo robiť (vypadá že by malo byť pri tej konrole)
4) a je typu string a nie char
...
daj sem tie chyby, povieme ti viac
2) po tej kontrole pýtaš znova mail a znova ho načítaš, tak celá kontrola je zbytočná lebo ho zase prepíšeš (a ten už môže byť nekorektne)
3) jedno end čo je na konci tam nemá čo robiť (vypadá že by malo byť pri tej konrole)
4) a je typu string a nie char
...
daj sem tie chyby, povieme ti viac
Okej dakujem chlapci.Ako audiotrack pisal prepisal som a a ok a zavinac na string a boolean a uz to frci
.A moze mi este niekto povedat nejake rozumne vysvetlenie preco ok a zavinac musi byt boolean?
EDIT : // vsimol som si ze ten program fici ale asi tam chyba label a GOTO lebo ked dam zly mail prebehne program celu proceduru a az ked prebehne cely program tak sa zadavanie mailu opakuje znova
EDIT : // vsimol som si ze ten program fici ale asi tam chyba label a GOTO lebo ked dam zly mail prebehne program celu proceduru a az ked prebehne cely program tak sa zadavanie mailu opakuje znova
-
neutronmind
Expert
- Príspevky: 189
- Registrovaný: 05 aug 2008, 14:17
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Okej chlapi uplne vsetko mam uz vyriesene uz len 2 otazky.Mozem nahodne generovat 9 znakovy retazec zlozeny aj z pismen aj z cisel?A este ta druha otazka ze mozem nejak osetrit aby pri zapnuti programu sa do neho zapisala MAC adresa daneho PC a ta dana kopia toho programu by uz nesla zapnut na inom PC?
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Kód: Vybrať všetko
begin
for i:=1 to 9 do begin
case (random(3)) of
0: vystup:=vystup+chr(random(9)+48);
1: vystup:=vystup+chr(random(25)+97);
2: vystup:=vystup+chr(random(25)+65);
end;
end;
writeln(vystup);
end;