Pascal nyelvben hogyan lehet egyszerre két repeat-until ciklust futtattni?
Gondolom kezdő vagy, a szálkezelés meg egy nem egyszerű dolog. Nem úgy fog működni a program mint ahogy elképzeled.
Ha pl. x egy globális változó,
az egyik ciklusba "if x>0 then write(x)", van a másikba meg "x:=0", akkor előfordulhat, hogy "if x>0 then write(x)" 0-át ír ki mert a feltétel vizsgálatkor x>0 igaz mire kiírja már nem igaz, mert megváltoztatta a másik szál x értékét.
write(x-x) nem biztos hogy mindig 0-át ír ki hasonlóan az előzőhöz. Nem biztos hogy mindig jól fut le a program, kaotikusan viselkedhet ...
_________________________________
A példában a 2 ciklus párhuzamosan fut, a főszál létrehozott 2 új szálat ...
repeat
writeln('Egy szal vagyok.');
delay(300);
until Terminated;
repeat
writeln('Egy masik szal vagyok.');
delay(300);
until Terminated;
Mire kell? Lehet hogy ki lehet váltani egy ciklusra.
Ezt keypressed-el szokták megoldani, keypressed függvény egy boolean értéket ad vissza hogy üres e a billentyűzetpuffer a readkey üríti azt.
A példában egy '@'-ot lehet mozgatni az A,E,D,S gombokkal, a c változónak 'D' kezdőértéket adtunk vagyis a '@'-unk kezdetben jobbra megy.
Példa: [link]
"hogy üres e a billentyűzetpuffer"
Pontosabban hogy nem üres e, ha üres false értéket ad különben true-t.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!