Király Gyula: Programozás Quick-Basic nyelven

 

8. lecke

ELÁGAZÁS A PROGRAMBAN

 

1.      feladat

Készítsünk programot, amely bekéri egy kocka élének hosszát, majd kiszámítja felszínét és térfogatát, végül kiírja az eredményt!

            Megoldás:

A program bekéri az a változó értékét, kiszámítja a kocka felszínét, melyet az f változó tárol, kiszámítja a térfogatot, melyet a V változó tárol. A számolt adatokat végül zöld színnel kiíratjuk.

 

Programunk használata azonban kényelmetlen, hiszen a felszín és a térfogat kijelzése után leáll, vissza kell térni a programszerkesztő képernyőhöz, és újabb számításhoz elindítani.

Sokkal ésszerűbb lenne, ha a program a végén megkérdezné, hogy akarunk-e tovább számolni, s ha igen, újra kezdje el a következő adat bekérését, és csak akkor álljon le, ha a kilépést választjuk.

Ezt a problémát egy kérdéssel oldjuk meg, amelyre INPUT-tal várunk választ. A bejövő választ elemezzük, és a leütött billentyű fogja meghatározni, milyen irányba folytatódjon a program. A beérkező válasz elemzésének eszköze az IF…THEN szerkezetű utasítás.

 

Az utasítás formája:

 

IF feltétel THEN tevékenység

(HA ez van AKKOR tedd ezt)

 

Egy INPUT-tal megkérdezzük a következőt:       

         INPUT „Akarsz újra számolni? (I/N)”, c$

 A kérdés után zárójelben megadjuk, hogy milyen billentyű lenyomása jelenti a választ: az „igen” az I, a „nem” a N billentyű. A beérkező választást a c$ karakteres típusú változó tárolja majd.

Elemezzük a c$ változó tartalmát!

·         Ha a változó tartalma = „I”, akkor kezdd elölről a programot. Ehhez egy új utasítást kell megtanulnunk. Ez a GOTO (menj oda).

 

Az utasítás formája:

GOTO címke

(UGRÁS megadott helyre)

 

      A programban ezt a következő sorral írjuk le:           

      IF c$ = ”I” OR c$ = „i” THEN GOTO 1

   (Ha c$ tartalma = „I”, akkor menj az 1 jelű címkéhez. A kis és a nagy I karakter megadása azt jelenti, hogy a program bármelyiket elfogadja.)

 Ahhoz, hogy az utasítás működjön, el kell    helyeznünk  program első sorában egy 1-es jelet (címkét), hogy kijelöljük az ugrás célhelyét.

Tegyünk egy egyest az első sor képernyőtörlése elé!

1        CLS

·         Ha a c$ változó tartalma = „N”, akkor legyen vége a programnak. Ezt a következő sorral írhatjuk le: 

IF c$ = „N” OR c$ = „n” THEN END

 

2.      feladat

 


Egészítsük ki a választási lehetőséggel és a címkével előző programunkat!

Az áttekinthetőség érdekében az 1-es címke után TAB-ot ütöttem, és minden sor elején is, így a címke jól látható.

Ha lefuttatjuk a programot, az „I” billentyű lenyomására valóban újra indul, az „N” billentyű megnyomásával megáll. Azonban ha „N” helyett bármi más billentyűt megnyomunk, akkor is befejeződik a program futása. Miért?

A program a következőképpen működik: az INPUT után következő sorban megadott karakterrel összehasonlítja a beütött karaktert. Ha egyező, végrehajtja a GOTO 1 utasítást. Ha nem egyezik meg, átlép a következő sorba, ott is elvégzi az összehasonlítást. Ha most egyezik (vagyis ha „N”), akkor véget ér a program. Ha ebben a sorban sem találja meg a beütött billentyűt (tehát ha nem I-t vagy N-t ütöttünk), átlép a következő sorba. Ez azonban nincs, tehát a program futása véget ér.

 

3.      feladat

Egészítsük ki programunkat úgy, hogyha nem „I” és nem „N” billentyűt ütünk, akkor ne lépjen ki, hanem ismételje meg a kérdést!

            Megoldás:

Láttuk, hogyha a c$ értéke nem „I” és nem „N”, a program a következő sorba lép. Ha innen visszaküldjük abba a sorba, ahol az INPUT-ot elhelyeztük, minden más billentyű hatására újra ahhoz a kérdéshez jutunk, hogy „Akarsz tovább számolni? (I/N)”, tehát a program csak az „I” és „N” választást fogadja el.

Ehhez a megfelelő sor elé egy 2-es számmal megjelöljük a visszaugrás helyét, a program utolsó sorába pedig beírjuk a

GOTO 2

parancsot. Végleges programunk ezek után már tökéletesen működik.

 

  

GYAKORLÓ FELADATOK

1.      Egészítsd ki a „KOCKA” című programot hanggal! Az eredmény kiírása után 5, eltérő hangmagasságú jelzést adjon a program!

 2.      Készítsd el a „KOCKA” című program alapján a „TÉGLATEST” című programot, amely bekéri a téglatest 3 különböző élének hosszát, kiszámolja, majd kiírja a téglatest felszínét és térfogatát!

 

(Ugrás a Gyakorló Feladatok megoldásához)

Vissza a Tartalomhoz