neviem co znamena ta chyba, ale teraz to mas urobene tak, ze mozu vzniknut rovnake cisla.. kedze ta podmienka:
if cis[i]=cis[j] then je:=0 else je:=1;
je v zlej konstrukcii.. napr. bude zhoda s druhym prvkom pola.. a nic neriesis.. v cykle sa do "je" priradi dalsia hodnota.. jedine ak bude zhoda s predchadzajucim vygenerovanym cislom ("je" sa nastavi na 0 a nezmeni sa => until je =1 neplati, teda ide na zaciatok cyklu "repeat"..
uprav to tak ze hned pred cyklus for nastav je=1; a v cykle nechaj len jednu vetvu podmienky if cis[i]=cis[j] then je:=0 .. else vyhod
@smrtelnik nie je to problém v tvojom programe, je to bug v samotnom Lazaruse IDE (to už naznačuje to "External", čiže "vonkajšia", čiže "nesúvisejúca s tvojim kódom"). Vraj to vo väčšine prípadov spôsobuje konflikt s Comodo Firewall, konkrétne jeho antivírusovou komponentou, niekoľko ľudí hovorí že keď kompletne odinštalovali firewall, reštartovali comp, a nainštalovali Comodo Firewall spať (BEZ antivírovej komponenty), tak už to fungovalo v pohode. Ďalší hovoria že je to problém v debuggeri, čiže stačí keď miesto "Run with debug" klikneš iba "Run".
Roleta je špeciálny inkognito mód, ktorým skryješ obsah obrazovky pred samým sebou, alebo inou osobou v tvojej izbe (napr. mama). Roletu odroluješ tak, že na ňu klikneš.
12 komentov
if cis[i]=cis[j] then je:=0 else je:=1;
je v zlej konstrukcii.. napr. bude zhoda s druhym prvkom pola.. a nic neriesis.. v cykle sa do "je" priradi dalsia hodnota.. jedine ak bude zhoda s predchadzajucim vygenerovanym cislom ("je" sa nastavi na 0 a nezmeni sa => until je =1 neplati, teda ide na zaciatok cyklu "repeat"..
uprav to tak ze hned pred cyklus for nastav je=1; a v cykle nechaj len jednu vetvu podmienky if cis[i]=cis[j] then je:=0 .. else vyhod
» www.lazarus.freepascal.org/index.php?topic...
i,cis,je,generuj:integer;
begin
cis:=0;
for i:= 1 to 7 do p[i]:=0;
repeat
cis:=cis+1;
repeat
je:=1;
generuj:=random(10);
for i:=1 to 7 do begin
if generuj=p[i] then je:=0;
end;
until je=1;
p[cis]:=generuj;
memo1.append(inttostr(p[cis]);
until cis=7;
end;