BASIC

S Wikipedije, slobodne enciklopedije

Basic je programski jezik. Prva varijanta se pojavila 1962. godine a naziv je dobio od Beginner's All Purpose Symbolic Instruction Code. Služi za pravljenje jedostavnih programa i simulacija. Kao i većina drugih programskih jezika, za programiranje koristi naredbe i varijable koje zajedno čine programski kod kojim se piše program. Do danas je urađen velik broj varijanti ovog programskog alata ipak u upotrebi je najčešća varijanta Microsoftov Quick Basic poznatiji pod nazivom Qbasic4, za PC računare koji rade pod DOS (Windows) operativnim sistemima. Inače ljuska (Shell) koju koristi Qbasic je DOS pa su i prozori takvi (i editor ali i komandni prozor).

Za izvršenje zadatih naredbi, tj. za pokretanje napisanog programa, u Qbasic-u je potrebno pritisnuti dugme F5 na tastaturi.

Qbasic

Uvod[uredi | uredi izvor]

Pojam varijable[uredi | uredi izvor]

Najjednostavnije objašnjenje varijabli jeste to da su varijable ustvari promjenljive vrijednosti. Varijable nam služe kako bi olakšali kodiranje programa. Svaka varijabla ima svoje ime i svoju vrijednost. Pa tako, svaki put kada želimo u programu upotrijebiti riječ kahva, ne moramo je svaki put pisati u kodu programa nego joj je moguće dodijeliti ime, i svaki put upotrijebiti to ime umjesto riječi kahva, ali će se ipak svaki put u programu ispisati riječ kahva. Postoje dvije vrste varijabli:

  • Numeričke(brojevne) i
  • Znakovne varijable

Numerička varijabla ima brojevnu vrijednost tj. može sadržati samo ove znakove:

0,1,2,3,4,5,6,7,8,9 i tačku(.) umjesto zareza.

Ukoliko korisnik programa ili sam programer pokuša dodijeliti numeričkoj varijabli vrijednost koja sadrži neki drugi znak(simbol), osim gore navedenih 11 simbola, programski jezik (qbasic) će javiti grešku.

Kao ime za numeričku vrijednost se mogu koristiti svih 128 znakova ASCII koda, s tim da to ime mora počinjati sa slovom engleskog alfabeta i ta oznaka ne smije sadržati prazna (blanko) mjesta u sebi.

Znakovna varijabla ima vrijednost koja može sadržati 128 znakova ASCII koda (to uključuje i brojeve). Ime znakovne varijable je isto kao i numeričke, samo što na kraju varijable obavezno moramo staviti string ($-dolar).

Primjer 1[uredi | uredi izvor]

Ime varijable Vrijednost varijable
a 23
somun 1.50
ćevapi-5.luk 2.544345864
a$ kahva
somun$ 5 cevapa u cijeli sa puno luka
ćevapi-5.luk$ Kraj narudžbe

Svaki put kada želimo da u programu ispišemo 1.50, u kodu ćemo napisati somun ili kada želimo da napišemo riječ kahva u programu, u kodu ćemo napisati samo a$. Kao što vidimo varijable nam potencijalno mogu skratiti postupak pisanja koda programa, a i cijeli sistem rada u programskom jeziku qbasic je zasnovan na varijablama i naredbama pomoću kojih upravljamo vrijednostima varijabli.

Dodjeljivanje vrijednosti varijabli[uredi | uredi izvor]

Dodjeljivanje vrijednosti varijabli se vrši pomoću relacionog operatora jednako(=). Tako npr. kada želimo dodijeliti vrijednost 10000 varijabli cilj to ćemo učiniti na slijedeći način u kodu:

cilj=10000

Na ovaj način smo varijabli cilj dodijelili vrijednost 10000.

Kod dodjeljivanja vrijednosti znakovnoj varijabli obavezno moramo vrijednost varijable staviti pod navodnike. Tako npr. kada želimo da varijabli a$ dodijelimo vrijednost 10000 članaka u kodu ćemo napisati sljedeće:

a$="10000 članaka"

Postoji slučaj gdje želimo nekoj novoj varijabli dodijeliti vrijednost neke već postojeće varijable. To se vrši po istom principu:

cilj=10000

težnja=cilj

Sada varijabla težnja ima vrijednost varijable cilj tj. vrijednost varijable težnja je 10000.

U sva tri slučaja ime varijable se stavlja sa lijeve strane znaka jednakosti (=), a vrijednost te varijable sa desne. Ukoliko programer pokuša uraditi drugačije, basic će javiti grešku.

Relacioni operatori su oni operatori uz pomoć kojih uspostavljamo odnos(relaciju) između dvije varijable. Oni se često koriste u uslovima, dok se operator (=) koristi i u dodjeljivanju vrijednosti varijabli. Relacioni operatori su:

Operator Značenje
= jednako
> veće od
< manje od
>= jednako ili veće od
<= jednako ili manje od
<> različito

Pored ovih relacionih postoje još i tzv. logički operatori. To su operatori koji se koriste u uslovima i ciklusima. Tri su, i oni će kasnije biti posebno obrađeni. To su:

  • NOT - ne
  • AND - i
  • OR - ili

Računanje sa numeričkim varijablama[uredi | uredi izvor]

U programskom jeziku Basic se može vršiti računanje sa određenim brojevima, ali isto tako i sa varijablama. Rezultat računanja varijabli i(li) brojeva uvijek mora biti neka nova varijabla čija će vrijednost biti jednaka rezultatu tog računanja. Računanje se vrši pomoću znakova za računske operacije. Osnovni znakovi su:

  • plus (+)
  • minus (-)
  • puta (*)
  • podijeljeno (/)
  • cjelobrojno dijeljenje (\)
  • ostatak dijeljenja (MOD)
  • stepenovanje (^)
  • korjenovanje (SQR)

Znak ^ ćemo dobiti kada u Basicu držeći pritisnut taster Alt otkucamo broj 94 sa numeričkog dijela tastature. (ASCII vrijednost znaka ^ je 094). Broj ili varijabla koja se nalazi lijevo od ovog znaka je broj koji se stepenuje (baza), a broj ili varijabla koja se nalazi na desnoj strani znaka jednako predstavlja eksponent.

Znak \ ćemo dobiti kada u Basicu držeći pritisnut taster Alt otkucamo broj 92 sa numeričkog dijela tastature. (ASCII vrijednost znaka ^ je 092). Ne postoji simbol u Basicu za korjenovanje nego postoji funkcija kojom se izračunava korjen nekog broja.

Računanje se vrši na slijedeći način:

nova.varijabla= varijabla(broj) znak varijabla(broj) znak varijabla(broj) znak varijabla(broj) ...

U ovom slučaju je nova.varijabla rezultat računanja i taj rezultat je smješten u varijablu nova.varijabla. Varijabla(broj) je broj sa kojim se računa, a znak je matematički znak (+,-,*,/,\ ili ^) koji simbolizira računsku operaciju. Vidimo da rezultujuća varijabla mora biti na lijevoj strani znaka jednako (=).

također se mogu koristiti i zagrade i to samo male zagrade - (). U jednoj zagradi može biti više drugih zagrada. Program će računati vrijednosti po principu "klasične matematike" iznutra prema vani.

Primjer 2[uredi | uredi izvor]

Ovdje ćemo navesti nekoliko primjera računanja vrijednosti u Basic-u.

  1. a=5+2 --> varijabli a se pridružuje vrijednost 7
  2. a=5-2 --> varijabli a se pridružuje vrijednost 3
  3. a=5*2 --> varijabli a se pridružuje vrijednost 10
  4. a=5/2 --> varijabli a se pridružuje vrijednost 2.5
  5. a=5\2 --> varijabli a se pridružuje vrijednost 2
  6. a=5 MOD 2 --> varijabli a se pridružuje vrijednost 1
  7. a=5^2 --> varijabli a se pridružuje vrijednost 25
  8. a=SQR(2) --> varijabli a se pridružuje vrijednost 1.4142135..
  1. Sarajevo=400000

Mostar=106000

neki.bh.gradovi=Sarajevo+Mostar

bez.ilidže=neki.bh.gradovi-50000

Vidimo da svaka varijabla mora bti definisana tj. mora imati svoju vrijednost (u protivnom će vrijednost te varijable biti 0).

Pojam naredbe[uredi | uredi izvor]

Naredbe u programskom jeziku Basic su riječi pomoću kojih programer upravlja varijablama. Svaka od njih ima svoje posebne parametre koje programer mora odrediti kako bi određena naredba funkcionisala. Postoji više vrsta naredbi:

i dr.

U jednom redu koda se može upotrijebiti samo jedna naredba. Ako želimo u jedan red koda napisati više naredbi onda ih moramo odvojiti dvotačkom (:).

Pojam algoritma i dijagrama toka[uredi | uredi izvor]

Algoritam je niz određenih i uređenih koraka koji tačno i precizno vode do rješenja, ako ono postoji ako ne, govori nam da rješenje ne postoji, ne može se dobiti sa preciznom tačnošću ili u odrđenom vremenu. Znači, algoritam predstavlja niz stvari koje računar uradi kako bi ispunio zahtjeve koje je programer zadao u programskom kodu. Kada se algoritam napiše u vidu naredbi, dobijemo programski kod.

Dijagram toka je grafički prikaz algoritma, odnosno postupka za rješavanje određenog postupka.

Interesantno je da su principi i definicija algoritma postavljeni puno prije pojave računara. Dao ih je arapcki matematičar Al'Harizmi u 10. vijeku.

Osnovne naredbe u programskom jeziku Basic[uredi | uredi izvor]

  • PRINT je izlazna naredna koja služi za ispisivanje teksta (znakova i brojeva) u programu. Sintaksa ove naredbe je PRINT varijabla. Znači, da bi napisali ovu naredbu potrebno je napisati riječ PRINT, zatim naziv varijable, neki tekst ili broj. Ako želimo da namse ispiše neka već definisana varijabla, poslije riječi PRINT pišemo ime te varijable. Ako želimo ispisati u programu neki tekst, to ćemo učiniti tako što ćemo napisati riječ PRINT, pa pod navodnicima (" ") ispisati željeni tekst. Ako želimo ispisati neki broj, dovoljno je poslije riječi PRINT napisati taj broj. Ako želimo ispisati više od jedne varijable (teksta ili broja) u programu to ćemo učiniti tako što ćemo staviti zarez (,) ili tačku-zarez (;) poslije prve varijable (teksta ili broja), te taj postupak ponoviti nakon svake sljedeće. Da li će biti zarez ili tačka-zarez zavisi od veličine razmaka između te dvije varijable (teksta ili broja). Za manji razmak ćemo staviti tačku-zarez (;), a za veći zarez (,).
  • INPUT naredba će od korisnika programa tražiti unos neke numeričke vrijednosti varijable. Njena sintaksa je INPUT varijabla. Isto tako je moguće staviti poslije riječi INPUT navodnike (" "), te pod navodnicima napisati tekst koji će se korisniku ispisati uz upit da se unese tražena varijabla. Želimo li omogućiti unos tekstualnih vrijednosti koristićemo naredbu INPUT$ , njena sintaksa je INPUT$ varijabla$.
  • REM naredba služi za dodavanje komentara pri pisanju programskog koda. Taj komentar će biti vidljiv samo u programskom kodu, dok ga korisnik tokom izvršavanja programa neće moći vidjeti. Sintaksa ove naredbe je REM tekst. Dati tekst ne mora biti stavljen pod navodnike.
  • CLS je skraćenica od CLear Screen. Obično se stavlja na početak programa i time postižemo da se sav tekst u programu, uključujući i prošle programe izbriše sa ekrana u kojem vidimo izvršenje programa. Tako, svaki novi program počinje od početka ekrana i podaci se ispisuju sve do nove upotrebe CLS, kada se svi podaci ponovo izbrišu.
  • END se obično stavlja na kraj programa, mada nije obavezno. To čak ne spada u pravu vrstu naredbe, iako se stavlja na kraju programa, kako bi se potencijalni čitač programa lakše orijentisao. Također će služiti i kod naredbe bezuslovnog izlaska iz pod procedure, funkcije ili IF..THEN bloka.

Primjer 3[uredi | uredi izvor]

Na lijevoj strani možete vidjeti programski kod, a na desnoj primjer izvršenja programa koji radi po napisanom kodu programa (dobija se pritiskom tipke F5).

Primjer korištenja naredbe PRINT
Program koji sabira dva broja

Uslovi[uredi | uredi izvor]

Uslovi u Basicu služe kako bi provjerili vrijednosti varijabli, uporedili ih, te efikasnije upravljali njima poslije ispitanog uslova. Postoji više načina postavljanja uslova, te su neki od njih upriložena u nastavku.

Prvi način postavljanja uslova[uredi | uredi izvor]

Uslov mora počinjati sa riječi IF (ako) i poslije te rječice se stavlja uslov koji program treba da ispita. Taj uslov mora sadržati dvije već postojeće varijable te neki od relacionih operatora(=,<,>,<=,>=,<>) koji treba staviti između njih. Znači uslov mora sadržati dvije varijable (vrijednosti), te relaciju između njih koju ispituje taj uslov. Također uslov može sadržati i logičke operatore (AND, OR, NOT). Nakon uslova slijedi posljedica, šta treba učiniti ako je uslov ispunjen (naredba THEN). Ključne riječi IF i THEN moraju biti u istom redu.

Drugi dio uslova sadrži posljedicu tj. šta će program učiniti ako se desi da je uslov ispunjen. Poslije rječice IF i napisanih varijabli, te relacije između njih koje program ispituje, obavezno se mora staviti rječica THEN, te poslijedica koju će program učiniti ako je ispunjen svaki dio uslova (ili dio uslova preciziran logičkim operatorima). Ta posljedica obavezno mora sadržati neku od naredbi tj. šta će program učiniti sa željenom varijablom ako je uslov ispunjen. Ako ćemo nakon ključne riječi za posljedicu (THEN) koristiti samo jednu naredbu onda se i ona piše u istom redu ali ako treba izvršiti više naredbi onda se one pišu u novom redu (svaka) a blok IF..THEN se mora zaključati naredbom END IF

Treći dio uslova uključuje naredbu ELSE kojom je omogućeno izvršavanje posljedice kada je rezultat ptovjere uslova netačan (0). Iza rječice THEN i niza naredbi koje će se ispuniti u slučaju pozitivnog rezultata uslova, stavljamo rječicu ELSE te također niz naredbi koje će program izvršiti ukoliko se desi da je rezultat postavljenog uslova netačan. Ukoliko se ne stavi ovaj dio u uslov tj. ako programer ne definiše posljedicu negativnog rezultata postavljenog uslova, program će nastaviti izvršavanje programskog koda iz sljedećeg reda.

Trebamo li uvezati više uslova tako da rezultat bude jedinstven onda ćemo koristiti logičke operatore AND (I) ili OR (ILI).

Logičko kolo AND će imati rezultat "tačno" što programu daje vrijednost 1 samo ako su oba uslova (ili ako ih ima više onda svi uslovi) tačni. Tablica istinitosti logičkog kola AND (I)
uslov A    uslov B    rezultat
 tačan       tačan      tačan
 tačan      netačan    netačan
netačan      tačan     netačan
netačan     netačan    netačan
Logičko kolo OR će imati rezultat "tačno" što programu daje vrijednost 1 ako je bar jedan od uslova tačan inače ima vrijednost 0 (netačan). Tablica istinitosti logičkog kola AND (I)
uslov A    uslov B    rezultat
 tačan       tačan     tačan
 tačan      netačan    tačan
netačan      tačan     tačan
netačan     netačan    netačan

Uz logičke operatore AND i OR BASIC podržava i ključnu riječ NOT, čime se pravi inverzija tj. svi rezultati koji su kod provjere uslova bili "tačno" postaju "netačno" i obrnuto.

Sintaksa IF bloka[uredi | uredi izvor]

'''1. Primjer'''
IF uslov THEN naredba posljedice

'''2. Primjer'''
 IF uslov THEN 
  Naredba1
  Naredba2
    ...
 END IF

'''3. Primjer'''
 IF uslov THEN
  Naredba1
  Naredba2
    ...
 ELSE
  Naredba1
  Naredba2
    ...
 END IF

Još neki od Blokova za provjeru uslova[uredi | uredi izvor]

WHILE.. WEND Ovaj blok će se izvršavati sve dok je tvrdnja u uslovu tačna a provjera se vrši na ulazu u blok. Njegova sintaksa je sledeća:

 
 WHILE uslov
  naredba1       
  naredba2
    ...
 WEND

DO.. LOOP WHILE Ovaj blok će se izvršavati sve dok je tvrdnja u uslovu tačna a provjera se vrši na kraju bloka. Njegova sintaksa je sledeća:

 DO
  Naredba1
  Naredba2
    ...
 LOOP WHILE uslov

DO WHILE.. LOOP Ovaj blok će se izvršavati sve dok je tvrdnja u uslovu tačna a provjera se vrši na ulazu u blok. Njegova sintaksa je sledeća:

 DO WHILE uslov
  Naredba1
  Naredba2
    ...
 LOOP

DO.. LOOP UNTIL uslov Ovaj blok će se izvršavati sve dok se tvrdnja u uslovu ne ispuni (dok tvrdnja nije tačna) a provjera se vrši na kraju bloka. Njegova sintaksa je sledeća:

 DO
  Nareba1
  Naredba2
    ...
 LOOP UNTIL uslov

DO UNTIL uslov...LOOP Ovaj blok će se izvršavati sve dok tvrdnja u uslovu ne bude tačna a provjera se vrši na ulazu u blok. Njegova sintaksa je sledeća:

 DO UNTIL uslov
  Naredba1
  Naredba2
    ...
 LOOP

Višestruki odabir[uredi | uredi izvor]

Umjesto da koristimo više blokova za provjeru moguće je koristiti ključne riječi SELECT CASE čime je omogućen višestruki izbor. Sintaksa je sledeća:

 SELECT CASE varijabla
   CASE 1
     naredba1
     naredba2
       ...
   CASE 2
     naredba1
     naredba2
   CASE 4 TO 6
     naredba1
     naredba2
   CASE IS >7
     naredba1
 END SELECT

-nadam se da komentar nije potreban i da je vidljivo iz priloženog kako funkcioniše ova struktura. Jasno da je i u okviru svakog slučaja (CASE) moguće dodavati nove blokove uslova, ubaciti prekid BREAK ..

Naredba bezuslovnog skoka[uredi | uredi izvor]

Naredba GOTO je naredba (bez)uslovnog prelaska na definisani red. Često se koristi uz uslove i tada je uslovna.

Da bi korištenje ove naredbe bilo moguće red u koji se vrši skok mora početi brojem (biti numerisan). Naredbu GOTO će programer koristiti kada želi da program, poslije pročitanog reda nekog programa, ne čita slijedeći red, nego uz pomoć naredbe GOTO, programer odluči koji će red slijedeće biti pročitan tj. odakle će program nastaviti čitati programski kod. Zbog toga nam je potrebna numeracija tog reda koda. Sintaksa ove naredbe je slijedeća:

GOTO broj koda

Znači poslije riječi GOTO stavljamo broj kojim smo numerisali red, od kojeg želimo da program nastavi čitati programski kod. Naredba GOTO često se upotrebljava kao posljedica (ne)ispunjavanja uslova. Npr. može se staviti da, ukoliko se uslov ispuni program nastavi čitati programski kod sa određene pozicije, a ako se ne ispuni, da se vrati na ponovno dodjeljivanje vrijednosti varijabli (pomoću znaka jednakosti ili naredbe INPUT).

Naredba višestrukog prelaska[uredi | uredi izvor]

Naredba višestrukog prelaska služi kako bi programer izbjegao korištenje komplikovane sintakse IF THEN uslova. Za ovu naredbu je potrebna brojevna varijabla (ta brojevna varijabla mora biti prirodan broj), te broj linija koda kolika je vrijednost te varijable. Sintaksa ove naredbe je:

ON brojevna.varijabla GOTO lista linija koda

Pod listom linija koda se podrazumijevaju brojevi (međusobno odvojeni zarezom) koji predstavljaju numerisane redove. Brojevna varijabla određuje od koje će linije koda (navedenog kao broj - numeracija pod listom linija koda) program nastaviti da čita programski kod. Ako je naprimjer vrijednost varijable 1, program će nastaviti čitati programski kod od linije čiji je broj prvi naveden u sintaksi naredbe ON GOTO. Ako je vrijednost varijable 2, program će nastaviti čitati programski kod od linije čiji je broj drugi naveden u sintaksi naredbe ON GOTO itd. Ako je vrijednost varijable veća od broja numera (brojevi u listi linija koda), onda će taj broj biti podijeljen sa brojem numera te uzeti ostatak kao broj koji će odrediti koji će slijdeći red biti pročitan. Naprimjer, ako ima 5 numera (brojeva koji predstavljaju linije koda u naredbi ON GOTO), a vrijednost brojevne varijable 6, tada će program čitati programski kod iz linije koja je prva stavljena u listi linija koda, ako je vrijednost brojevne varijable 7, tada će program čitati programski kod iz linije koja je druga stavljena u listi linije koda itd. Upotrebom ove naredbe, programer potencijalno može izbjeći korištenje komplikovane sintakse IF THEN uslova, te tako skratiti programski kod.

FOR petlja[uredi | uredi izvor]

FOR petlja Poznatija kao brojačka petlja vrši iteraciju (ponavljanje niza naredbi određeni broj puta. Veoma se često koristi. Sve naredbe unutar FOR ..NEXT reda će biti ponovljene onoliko puta koliki je unterval (broj članova niza ograničen sa n TO m. Problem ove petlje je što se iteracija vrši onoliko puta kojiko ima elemenata u nizu od n do m (što znači da unaprijed moramo znati koliko puta se vrši iteracija).

Sintaksa naredbe[uredi | uredi izvor]

 FOR a = n TO m STEP x
    Naredba1
    Naredba2
     ...
 NEXT a

Primjer FOR.. NEXT petlje:

 Napiši program koji ispisuje sve dvocifrene brojeve!
 FOR a = 10 TO 99
  PRINT a,
 NEXT a
 Ako treba odraditi zadatak a da ne znamo koliko puta treba ponoviti postupak onda ćemo  
 koristiti neki od blokova za provjeru uslova ili slične kombinacije.

Primjer WHILE..WEND bloka:

Napiši program koji određuje prvih pet brojeva djeljivih sa 7.
 a = 0
 n = 0
 WHILE a < 5
  If n MOD 7 = 0 THEN 
   PRINT a
   a = a + 1
  END IF
 n = n + 1
 WEND

Također pogledajte[uredi | uredi izvor]