Programiranje u BASIC-u/BKontrolne strukture /IF ... THEN ... ELSE: razlika između inačica

Izvor: Wikiknjige
Izbrisani sadržaj Dodani sadržaj
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 poslje 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 poslje 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 poslje ELSE, tada je potrebno napisati ELSEIF. Za ove varijacije potrebno je pregledati upute za izvedbu BASICa koji se koristi.


== 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 poslje čekati za upis
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 uvjek biti u petlji na linji 30 na 20, sve dok korisnik ne pritisne jednu tipku na tipkovnici računala
#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

  1. 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
  2. Linija 20 A$= INKEY$ - čitaj jedan karakter sa tipkovnice (INKEY$) i ubaci taj karakter u tekstovnu varijablu A$
  3. 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