Basic ben a go to parancs után mi történik?
START:
PRINT "A mérés indításához nyomja meg az S1 gombot!"
meres:
A=INP(889)
A=A AND 32
IF A=32 THEN GOTO meres
PRINT "Felkészülni!"
FOR j=7 TO 0 STEP -1
OUT 888, 2^j
OUT 890,10
OUT 890,11
SLEEP 1000
NEXT j
SLEEP 1000
OUT 888, 255
OUT 890,10
OUT 890,11
T1!=TIMER
meres1:
A=INP(889)
A=A AND 16
IF A=16 THEN GOTO meres1
T2!=TIMER
T!=T2!-T1!
IF T!<>0 THEN
PRINT "A reakcióidő: ";T!*1000,"msec"
ELSE
PRINT "A gomb túl hamar lett megnyomva!"
ENDIF
PRINT "Nyomjon meg egy gombot a kilépéshez!"
SLEEP
OUT 888, 0
OUT 890,10
OUT 890,11
adott ez a minta program csak nem értem a goto miért kell a lényeg hogyha lenyomom a nyomógombót (inp(889)) maszkolással kiderítem ha az adott biten ahova a nyomógombot kötöttem 1 es van vagy 32 bit akkor ugrik a meres re megint de annak mi értelme? vagy a go to utáni parancsok is lefutnak mielőtt vissza ugrik?
A GOTO csak egy ugrást végez. Nincs visszatérési értéke.
meres:
A=INP(889)
A=A AND 32
IF A=32 THEN GOTO meres
Ilyenkor a programod 'toporog' egy helyben, tehát mindig visszaugrik a meres cimkére amig le nem nyomják az 'S1' gombot. Ha ez megtörténik utána fut tovább és itt
meres1:
A=INP(889)
A=A AND 16
IF A=16 THEN GOTO meres1
ujra megáll és ismétli azt a pár sort amíg le nem nyomják az 'S2' gombot.
Nem értem, hogy mit nem lehet ezen nem megérteni :)
meres:
A=INP(889)
A=A AND 32
IF A=32 THEN GOTO meres
Ezt a pár sort képzeld úgy mint Pascal-ban a repeat-until vagy C-ben a do-while párost.
még mindig nem értem A akkor lesz egyenlő 32 vel és 16 al ha lenyomom a gombot Ha A=32(levan nyomva) akkor ugorj meres
szóval ha le van nyomva akkor minek ugrani? vagy Basic ben az egyenlőség jel nem azt jelenti? :D
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!