Programiranje u BASIC-u/BKontrolne strukture /IF ... THEN ... ELSE: razlika između inačica
m dodan dio koda |
m typos fixed: poslje → poslije (4), → , , → , , uvjek → uvijek using AWB |
||
Redak 1: | Redak 1: | ||
== Uvod == |
== Uvod == |
||
⚫ | '''IF''' ... '''THEN''' ... '''ELSE''' (hrv. IF - AKO, THEN - dakle, ELSE - drukčije) je kontrolna struktura u kojoj je glavna logička ispitna točka postavljena u instrukciji IF odnosno ako, po zadovoljavanju tog uslova poslije riječi THEN postavlja se naredba koja se izvršava. Alternativno, ako glavna logička ispitna točka je negativna tada se naredba iza THEN ne izvršava, i tok izvedbe programa ide na liniju iza naredbe IF ... THEN, osim u slučaju da je postavljena naredba ELSE gdje se tok programa nastavlja poslije naredbe ELSE. Unutar ELSE moguće je ugnjezditi i nova naredba za logički ispit IF ... THEN ... ELSE, itd. U nekim izvedbama BASICa, ako se koriste složenije odnosno ugnježdene naredbe IF THEN ELSE, tada je potrebno završavati svaki stupanj IF THEN ELSE sa ENDIF (hrv. kraj ako), ili sa END (hrv. kraj). U nekim slučajevima ako se koristi naredba IF poslije ELSE, tada je potrebno napisati ELSEIF. Za ove varijacije potrebno je pregledati upute za izvedbu BASICa koji se koristi. |
||
'''IF''' ... '''THEN''' ... '''ELSE''' (hrv. IF - AKO, THEN - dakle , ELSE - drukčije) je kontrolna struktura u kojoj je glavna logička ispitna točka postavljena u instrukciji |
|||
⚫ | IF odnosno ako, po zadovoljavanju tog uslova |
||
== Primjeri == |
== Primjeri == |
||
Redak 43: | Redak 41: | ||
END IF |
END IF |
||
</SOURCE> |
</SOURCE> |
||
Skraćeniji program, jer u QBASICu je moguće sa INPUT ispisati rečenicu i |
Skraćeniji program, jer u QBASICu je moguće sa INPUT ispisati rečenicu i poslije čekati za upis |
||
<SOURCE lang="QBASIC"> |
<SOURCE lang="QBASIC"> |
||
10 CLS |
10 CLS |
||
Redak 62: | Redak 60: | ||
#Linija 10 CLS - CLS je engleska skraćenica od '''Cl'''ear '''S'''creen (hrv. očisti zaslon): ova komanda briše sve sa ekrana. Ovu komandu ima večina inačica jezika BASIC, za one koje ne posjeduju ovu naredbu brisanje ekrana se postiže ispisivanjem nekih kontrolnih znakova |
#Linija 10 CLS - CLS je engleska skraćenica od '''Cl'''ear '''S'''creen (hrv. očisti zaslon): ova komanda briše sve sa ekrana. Ovu komandu ima večina inačica jezika BASIC, za one koje ne posjeduju ovu naredbu brisanje ekrana se postiže ispisivanjem nekih kontrolnih znakova |
||
#Linija 20 A$= INKEY$ - čitaj jedan karakter sa tipkovnice (INKEY$) i ubaci taj karakter u tekstovnu varijablu A$ |
#Linija 20 A$= INKEY$ - čitaj jedan karakter sa tipkovnice (INKEY$) i ubaci taj karakter u tekstovnu varijablu A$ |
||
#Linija 30 IF A$="" THEN GOTO 20 - ako A$ je prazno odnosno NULL znak, idi na linju 20 (GOTO 20). Ovim će računalo |
#Linija 30 IF A$="" THEN GOTO 20 - ako A$ je prazno odnosno NULL znak, idi na linju 20 (GOTO 20). Ovim će računalo uvijek biti u petlji na linji 30 na 20, sve dok korisnik ne pritisne jednu tipku na tipkovnici računala |
||
==Vanjske poveznice== |
==Vanjske poveznice== |
Inačica od 10. rujna 2017. u 23:26
Uvod
IF ... THEN ... ELSE (hrv. IF - AKO, THEN - dakle, ELSE - drukčije) je kontrolna struktura u kojoj je glavna logička ispitna točka postavljena u instrukciji IF odnosno ako, po zadovoljavanju tog uslova poslije riječi THEN postavlja se naredba koja se izvršava. Alternativno, ako glavna logička ispitna točka je negativna tada se naredba iza THEN ne izvršava, i tok izvedbe programa ide na liniju iza naredbe IF ... THEN, osim u slučaju da je postavljena naredba ELSE gdje se tok programa nastavlja poslije naredbe ELSE. Unutar ELSE moguće je ugnjezditi i nova naredba za logički ispit IF ... THEN ... ELSE, itd. U nekim izvedbama BASICa, ako se koriste složenije odnosno ugnježdene naredbe IF THEN ELSE, tada je potrebno završavati svaki stupanj IF THEN ELSE sa ENDIF (hrv. kraj ako), ili sa END (hrv. kraj). U nekim slučajevima ako se koristi naredba IF poslije ELSE, tada je potrebno napisati ELSEIF. Za ove varijacije potrebno je pregledati upute za izvedbu BASICa koji se koristi.
Primjeri
Sjedeći primjeri napisani su u QBASICu, broj linije nije potreban u QBASICU i tu je radi preglednosti i lakšeg objašnjavanja rada programa.
Prvi
10 CLS
20 A$ = INKEY$
30 IF A$ = "" THEN GOTO 20
Drugi
10 CLS
20 B = INT(RND*20)+1
30 PRINT "Igra pogađanja"
40 PRINT "Pogodi broj između 1 i 20"
50 INPUT A
55 IF A<1 OR A> 20 THEN PRINT "Greška u unosu. Upišite broj između 1 i 20" : GOTO 50
60 IF A > B THEN PRINT "Previsoko, pokušaj opet !": GOTO 50
70 IF A < B THEN PRINT "Prenisko, pokušaj opet !" : GOTO 50
80 IF A = B THEN PRINT "Pogodak ! "
Treći
10 CLS
20 B = INT(RND*20)+1
30 PRINT "Igra pogađanja"
40 PRINT "Pogodi broj između 1 i 20"
50 INPUT A
55 IF A<1 OR A> 20 THEN PRINT "Greška u unosu. Upišite broj između 1 i 20" : GOTO 50
60 IF A = B THEN PRINT "Pogodak ! "
ELSEIF A<B THEN PRINT "Prenisko, pokušaj opet!" : GOTO 50
ELSE PRINT "Previsoko, pokušaj opet!": GOTO 50
END IF
Skraćeniji program, jer u QBASICu je moguće sa INPUT ispisati rečenicu i poslije čekati za upis
10 CLS
20 B = INT(RND*20)+1
30 PRINT "Igra pogađanja"
40 INPUT "Pogodi broj između 1 i 20", A
50 IF A<1 OR A> 20 THEN PRINT "Greška u unosu. Upišite broj između 1 i 20" : GOTO 40
60 IF A = B THEN PRINT "Pogodak ! "
ELSEIF A<B THEN PRINT "Prenisko, pokušaj opet!" : GOTO 40
ELSE PRINT "Previsoko, pokušaj opet!" : GOTO 40
END IF
Objašnjenje
Prvi
- Linija 10 CLS - CLS je engleska skraćenica od Clear Screen (hrv. očisti zaslon): ova komanda briše sve sa ekrana. Ovu komandu ima večina inačica jezika BASIC, za one koje ne posjeduju ovu naredbu brisanje ekrana se postiže ispisivanjem nekih kontrolnih znakova
- Linija 20 A$= INKEY$ - čitaj jedan karakter sa tipkovnice (INKEY$) i ubaci taj karakter u tekstovnu varijablu A$
- Linija 30 IF A$="" THEN GOTO 20 - ako A$ je prazno odnosno NULL znak, idi na linju 20 (GOTO 20). Ovim će računalo uvijek biti u petlji na linji 30 na 20, sve dok korisnik ne pritisne jednu tipku na tipkovnici računala