Naredbe odlučivanja u QBasic-u su:
- IF – THEN naredba
- IF – THEN – ELSE naredba
- složena IF – THEN – ELSEIF naredba
- GOTO naredba
- CASE naredba
Sadržaj objave
1. IF uvjet THEN naredba
Uvjet kojeg čini testiranje određene varijable može biti istinit (TRUE) ili lažan (FALSE). Ako je uvjet istinit izvršiti će se naredba iza THEN, a ako uvjet nije istinit, računalo će prijeći na sljedeću programsku naredbu.
Primjer 1
Napišimo program koji će ispisati je li broj veći, manji li jednak nuli.
CLS
INPUT “Upiši cijeli broj”, x
IF x>0 THEN PRINT x; “ je veći od 0”
IF x=0 THEN PRINT x; “ je jednak 0”
IF x<0 THEN PRINT x; “ je manji od 0”
2. IF uvjet THEN naredba ELSE naredba
Ovaj se oblik rabi ako ispitujemo istinitost nekog uvjeta koji može imati samo dvije mogućnosti (broj je paran ili neparan, brojevi su djeljivi ili nisu). Ako je uvjet istinit, izvršava se naredba iza THEN, a ako je lažan, izvršava se naredba iza ELSE. Cijeli konstrukciju završavamo s naredbom END IF.
Grafički simbol za donošenje neke odluke:
Primjer 2
Napišimo program koji će upisati dva broja a i b. Ako je prvi broj veći, onda ispišite da je on veći od drugog. Ako je prvi broj manji, ispišite da je on manji od drugog.
DIJAGRAM TIJEKA | PROGRAM |
![]() |
CLS INPUT A INPUT B IF A > B THEN PRINT “A je veci od B.” ELSE PRINT “A nije veci od B” END IF |
3) Složena IF – THEN – ELSEIF naredba
Složena IF naredba može se pisati u jednom redu, ali isto tako i u više redova (radi bolje preglednosti) pri ćemu mora završiti s ključnom riječi END IF (što znači: kraj IF naredbe). Ako iza ELSE dolazi nova IF naredba, tada je pišemo kao jednu riječ ELSEIF, a ne ELSE IF.
Primjer 3
Napišimo program koji upisuje broj x i ispituje je li x veći od nule, jednak nuli ili manji od nule.
DIJAGRAM TIJEKA | PROGRAM |
![]() |
CLS
INPUT “Upiši cijeli broj”, x IF x>0 THEN PRINT x; “ je veći od 0” ELSEIF x=0 THEN PRINT x; “ je jednak 0” ELSE PRINT x; “ je manji od 0” END IF |
4. GOTO naredba
GOTO n je naredba za bezuvjetni skok gdje je n adresa ili broj linije na koju se program vraća. GOTO naredba je bezuvjetna naredba, program bezuvjetno prelazi s jedne linije izvođenja na drugu.
Primjer 4
Napišimo program koji ispituje je li broj pveći od nule, odnosno je li broj pozitivan. Ako broj nije pozitivan, ponavlja se upis broja.
DIJAGRAM TIJEKA | PROGRAM |
![]() |
CLS 10 INPUT B IF B < 0 THEN GOTO 10 PRINT “B je pozitivan.” END
|
5. CASE naredba
CASE naredba zamjenjuje niz uzastopnih IF – THEN naredbi.
Primjer 5
Napišimo program koji za zadani upisani broj mjeseca ispisuje njegov naziv tekstualno. Ako broj mjeseca nije u rasponu od 1 do 12, program ispisuje da taj mjesec ne postoji.
PROGRAM s naredbom IF | PROGRAM s naredbom CASE |
CLS INPUT “Broj mjeseca: “, x IF x = 1 THEN PRINT “Sijecanj” ELSEIF x = 2 THEN PRINT “Veljaca” ELSEIF x = 3 THEN PRINT “Ožujak” ELSEIF x = 4 THEN PRINT “Travanj” ELSEIF x = 5 THEN PRINT “Svibanj” ELSEIF x = 6 THEN PRINT “Lipanj” ELSEIF x = 7 THEN PRINT “Srpanj” ELSEIF x = 8 THEN PRINT “Kolovoz” ELSEIF x = 9 THEN PRINT “Rujan” ELSEIF x = 10 THEN PRINT “Listopad” ELSEIF x = 11 THEN PRINT “Studeni” ELSEIF x = 12 THEN PRINT “Prosinac” ELSE PRINT “Taj mjesec ne postoji.” END IF |
CLS INPUT “Upiši broj mjeseca: “, x SELECT CASE x CASE 1 PRINT “Sijecanj” CASE 2 PRINT “Veljaca” CASE 3 PRINT “Ožujak” CASE 4 PRINT “Travanj” CASE 5 PRINT “Svibanj” CASE 6 PRINT “Lipanj” CASE 7 PRINT “Srpanj” CASE 8 PRINT “Kolovoz” CASE 9 PRINT “Rujan” CASE 10 PRINT “Listopad” CASE 11 PRINT “Studeni” CASE 12 PRINT “Prosinac” CASE ELSE PRINT “Taj mjesec ne postoji.” END SELECT |