Kezdőoldal » Számítástechnika » Programozás » Basic ben a go to parancs...

Basic ben a go to parancs után mi történik?

Figyelt kérdés

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

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?


2015. máj. 20. 11:44
1 2
 1/13 Tengor ***** válasza:

A GOTO csak egy ugrást végez. Nincs visszatérési értéke.

[link]

2015. máj. 20. 11:45
Hasznos számodra ez a válasz?
 2/13 A kérdező kommentje:
és akkor a parancsok amik az IF en belül de a GOTO után vannak már lesem futnak? mert akkor a program mindig a meres re ugrik ami értelmetlen nem?
2015. máj. 20. 12:14
 3/13 Tengor ***** válasza:
Az IF egy elágazás. A vizsgált kifejezéstől függ, hogy értelmezi és végrejatja a THEN ágat v. sem.
2015. máj. 20. 12:19
Hasznos számodra ez a válasz?
 4/13 A kérdező kommentje:
párhuzamos portra van kötve a 2 nyomó gomb a 5 ös és 4 es bemenetre vagyis értéke 32 és 16 ezt ugye maszkolom (0010.0000 AND 0010.0000)hogyha a gomb le van nyomva akkor ugye egyenlő a megadott értékkel(32) de most ha egyenlő akkor a goto miatt ugrik és megint ugyan ezt végzi el de így értelmetlen hacsak nem fut le az összes parancs a THEN után
2015. máj. 20. 12:24
 5/13 SimkoL ***** válasza:

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 :)

2015. máj. 20. 12:38
Hasznos számodra ez a válasz?
 6/13 SimkoL ***** válasza:

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.

2015. máj. 20. 12:43
Hasznos számodra ez a válasz?
 7/13 A kérdező kommentje:

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

2015. máj. 20. 12:44
 8/13 A kérdező kommentje:
nem úgy lenne jó ez, ha A nem egyenlő 32 vel és 16 al?
2015. máj. 20. 12:45
 9/13 A kérdező kommentje:
vagy ez az IF else nélkül olyan hogy ha lenyomom a gombot akkor vissza ugrik a mérésre de mivel akkor már nem igaz a feltétel fu tovább a program? már kezdem sejteni mit magyaráztál :)
2015. máj. 20. 12:54
 10/13 A kérdező kommentje:
jó megvan már értem köszönöm :)
2015. máj. 20. 12:55
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!