Kezdőoldal » Számítástechnika » Programozás » Van olyan Pascal parancs...

Van olyan Pascal parancs mellyel egy eljárást ( procedure ) le lehet állítani?

Figyelt kérdés

A problémám az lenne, hogy egy elágazásnál ha egy rossz értéket adunk meg akkor az eljárás nem végigfut ( helytelenűl ) hanem befejeződik ott ahol a parancsot írtam.

Próbáltam címkével, hogy ha oda jut a program akkor a címkéhez lép ami az eljáráson kívül van a főprogramban de nem engedi használni a Free Pascal mivel szerinte címkéket eljárásokba nem lehet helyezni :/ de valahogy ki kellene lépnem a feltétel teljesülésekor az eljárásból.


A konkrét helyzet az, hogy bejön az eljárás amiben kiválaszthatom, hogy a megadott tömbömet milyen algoritmussal rendezze ( buborékos, számolásos stb. ) de ha olyat adok meg ami nem létezik akkor vagy visszább kellene ugorjon a program és újra bekérje a választási lehetőséget vagy kilépni az eljárásból vissza a főprogramba ( ahol újra megjelenik a főmenü ).....de nem tudom ezt, hogy tudnám megoldani....



2013. jan. 11. 17:06
 1/6 anonim ***** válasza:
A főprogramban is ellenőrizheted az inputot, miután bekérted, és ha helyes, meghívod vele a függvényt.
2013. jan. 11. 17:20
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:
És egy ciklusban megvalósítod, hogy addig kérdezze, amíg valid inputot nem kap.
2013. jan. 11. 17:21
Hasznos számodra ez a válasz?
 3/6 A kérdező kommentje:
Ahhoz át kellene alakítsam elég tissztességesen a programszerkezetet de valószínű, hogy ciklus lesz...bár az is lehet, hogy a ciklust magába az eljárásba teszem így a főprogramot nem kell piszkáljam...
2013. jan. 11. 17:26
 4/6 anonim ***** válasza:
case-el hívd meg az al-eljárásokat, ami köré hátultesztelős ciklust írsz (kilépés gombig fusson. )
2013. jan. 11. 18:23
Hasznos számodra ez a válasz?
 5/6 ejbenjaro ***** válasza:

Eljárásból az exit-el tudsz kiugrani. De aproblémádat valahogy így lehetne jól megoldani:


repeat

clrscr;

writeln('1. menüpont');

writeln('2. menüpont');

writeln('3. menüpont');

writeln('4. menüpont');

writeln('5. menüpont');

c:=Readkey();

until c in ['1'..'5'];


case c of

'1' : eljaras1;

'2' : eljaras2;

'3' : eljaras3;

'4' : eljaras4;

'5' : eljaras5;

end;


Egy ciklusban addig íratod ki a menüpontokat, amíg nem olyan válasz születik, amilyet elvársz. Ha sikerül a ciklusból kilépni, akkor pedig egy case elágazással indítod a megfelelő eljárást. A főprogramban tehet az egész köré még egy repeat until ciklust, ami csak a kilépésre figyel.

2013. jan. 11. 18:41
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:
A programnak nem a menüszerkezet részével volt problémám viszont ezt a megoldást ás is lehet ültetni szóval köszönöm. :)
2013. jan. 14. 14:50

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!