You are on page 1of 16

1.

Quick Basic - uvod u programski jezik

OSNOVNI POJMOVI

Programski jezik - skup naredbi za upravljanje raunalom


Raunalni program - niz naredbi koje raunalo obavlja
Programer - osoba koja izrauje raunalne programe
Programiranje - postupak izrade raunalnog programa

QBasic je vrlo jednostavan programski jezik ije se naredbe piu engleskim jezikom.
Pripada strukturalnim programskim jezicima i pri pisanju programa postoji nekakav slijed.
Naredbe se piu jedna ispod druge, onim redom kako elimo da ih raunalo izvrava.
Rije BASIC nastala je od poetnih slova rijei "Beginner's All-purpose Symbolic Instruction Code" (poetniki vienamjenski simboliki
programski kod).

RALANJIVANJE ZADATKA

U programiranju je vrlo vana sposobnost ralanjivanja zadatka. Ralanjivanjem zadatka na osnovne dijelove lake emo ga prevesti na programski
jezik. Evo primjera:
Zadatak:
Napii program koji e obrisati ekran, ispisati poruku "Dobar dan", priekati 3
sekunde, zatim ispisati poruku "Ja sam tvoj prvi program", opet priekati 3 sekunde,
zatim ispisati poruku "Dovienja" i nakon 3 sekunde obrisati ekran i zavriti s
radom.
Da bi ovo lake preveli na programski jezik, trebamo ralaniti pojedine korake:

RALANJIVANJE ZADATKA:

PRIJEVOD NA PROGRAMSKI JEZIK:

- obrii ekran

CLS

- ispii DOBAR DAN

PRINT "Dobar dan"

- priekaj 3 sekunde

SLEEP 3

- ispii JA SAM PROGRAM

PRINT "Ja sam tvoj prvi program"

- priekaj 3 sekunde

SLEEP 3

- ispii DOVIENJA

PRINT "Dovienja"

- priekaj 3 sekunde

SLEEP 3

- obrii ekran

CLS

- zavri s radom

END

Evo, ve smo nauili i neke naredbe programskog jezika QuickBasica (CLS, PRINT, SLEEP, END).
Treba jo nauiti kako ovaj programski kod upisati u editor QuickBasica i pokrenuti program...

RADNO SUELJE QUICK BASICA

Nakon pokretanja QuickBasica pojavit e se


suelje kao na slici desno.
Plava povrina je EDITOR u kojem piemo
programski kod.
U vrhu ekrana je izbornik rada a u dnu
napomene o znaenju pojedinih tipki:
<F5=Run> - znai da pritiskom tipke F5
pokreemo program;
<F6=Window> - znai da pritiskom na F6
prelazimo iz editora za pisanje koda u editor za
direktno izvravanje naredbi (donji "Immediate"
prozor) i obratno...

ZNAENJE OSTALIH TIPKI:


F1

poziv pomoi (objanjenja naredbi)

Home

vraa kursor na poetak reda

End

postavlja kursor na kraj reda

Ctrl + Home
Ctrl + End

postavlja kursor na poetak programa u editoru


postavlja kursor na kraj programa u editoru

Break
Alt + End
Shift + F5
F8

prisilno zavrava izvoenje programa


kao i Break (ako Break ne radi)
izvrava program iz poetka
izvrava program redak po redak

IZRADA I POKRETANJE PROGRAMA

Kako smo ve spomenuli, programski kod upisujemo u EDITORU, vodei


rauna o ispravnom pisanju naredbi.
Ako neku naredbu napiemo neispravno, raunalo je nee shvatiti i javit
e greku u programu, to e znaiti da je na program neispravan!
Nakon to je program upisan u EDITOR, da bi ga pokrenuli i vidjeli kako
radi, trebamo pritisnuti tipku F5 (Run)...

CLS
PRINT
SLEEP
PRINT
SLEEP
PRINT
SLEEP
CLS
END

"Dobar dan"
3
"Ja sam tvoj prvi program"
3
"Dovienja"
3

SPREMANJE PROGRAMA

Da bi program sauvali, potrebno ga je spremiti koristei opciju:


File -> Save
i onda u dijalogu (slika desno) pod "File Name" upisati ime programa ali
vodei rauna da se ime moe sastojati samo od:
- slova engleske abecede, brojeva i crtice
- maksimalno 8 znakova u imenu
- iza imena ide proirenje .BAS

UITAVANJE PROGRAMA

Program uitavamo koristei opciju:


File -> Open
i onda u dijalogu (slika desno) u izborniku "Files" izaberemo eljeni
program.
Ako se program nalazi u nekoj drugoj mapi onda do nje dolazimo preko
izbornika "Dirs/Drives".

2.

Quick Basic - varijable i konstante

UKRATKO O VARIJABLAMA

U programiranju esto koristimo varijable.


Varijabla predstavlja neku promjenjivu vrijednost.
Njima dodjeljujemo razne vrijednosti i podatke.
One mogu biti brojane ili tekstualne.
Da bi lake shvatili pojam varijable, u tablici desno prikazana je uporedba
koritenja varijabli u matematici i u programiranju.
Kako vidite, brojane varijable koristimo na isti nain kao i u matematici,
dok u programiranju postoje jo i tekstualne varijable - koje mogu
sadravati tekst!

U PROGRAMIRANJU
U MATEMATICI
brojane

tekstualne

x=7
y=5
z=x+y

x=7
y=5
z=x+y

a$ = "dobar"
b$ = "dan"
c$ = a$ + b$

Rezultat: z=12

Rezultat: z=12

c$="dobar dan"

x, y, z, a$, b$ i c$ su proizvoljni nazivi varijabli.

Tekstualne varijable moemo samo spajati i to koristei znak plus (+).


Dakle, nad njima ne moemo obavljati raunske operacije ak ni onda
kada sadre brojeve!

Tekstualne varijable iza naziva imaju znak $ koji nam govori da


se radi o varijabli s tekstom.

BROJANE VARIJABLE

MATEMATIKE OPERACIJE

Postoji vie vrsta brojanih podataka,


ovisno o vrsti i veliini broja s kojim se radi:

MATEMATIKI OPERATORI:

VRSTA

Simbol

INTEGER

LONG
SINGLE
DOUBLE

&
!
#

Obuhvaa

Simbol

ZNAENJE

dijeljenje

mnoenje

Veliina

cijeli brojevi

-32.768
do +32.767

cijeli brojevi

-2.147.483.648
do +2,147,483,647

decimalni
brojevi

jednostruka (4-byte) preciznost


pominog zareza

decimalni
brojevi

dvostruka (8-byte) preciznost


pominog zareza

ZATO POSTOJE RAZLIITE VRSTE?


Raunanja s cijelim brojevima su bra i takvi tipovi varijabli zauzimaju
manje memorije od ostalih tipova podataka.

zbrajanje

oduzimanje

dijeljenje
(vraa Integer)

potenciranje
(npr: 5 ^ 3 = 125)

Mod

ostatak dijeljenja
(npr: 10 Mod 3 = 1)

PRIORITET RAUNANJA:
Primjer:

A% = 6
B% = 12
PRINT A% + B% / 2

Rezultat:

12 (jer prvo ide dijeljenje!)

Varijable koje e uvijek sadravati cijele brojeve definirajte kao INTEGER


ili LONG, ovisno koje e veliine sadravati.
Varijable koje e sadravati decimalne brojeve definirajte kao SINGLE ili
DOUBLE, ovisno od broja decimalnih mjesta koji vam je potreban.

KORITENJE ZAGRADA:
Primjer:

A! = 5.5
B! = 12.5
PRINT (A! + B!) / 2

Rezultat:

9 (jer prvo rauna u zagradama!)

TEKSTUALNE VARIJABLE

Tekstualne varijable mogu sadravati neki tekst.

PRIMJER SPAJANJA TEKSTUALNIH VARIJABLI:


Primjer:

ime$ = "Ana"
prez$ = "Ani"
naziv$ = ime$ + " " + prez$
PRINT naziv$

Rezultat:

Ana Ani

Njih moemo samo spajati i to koristei znak plus (+). Dakle, nad njima
ne moemo obavljati raunske operacije ak ni onda kada sadre brojeve!
Tekstualne varijable iza naziva imaju znak $.
On nam govori da se radi o varijabli s tekstom.

KONSTANTE

Za konstante vrijedi sve to smo rekli za varijable.


Jednako se definiraju i popunjavaju vrijednostima.
No, konstante, za razliku od varijabli, predstavljaju nepromjenjivu
vrijednost, to znai da njihova vrijednost tijekom rada programa ostaje
ista.

Na primjer, ako u programu definiramo konstantu:


PI = 3.1415926535897932
onda njezinu vrijednost vie neemo mijenjati.

3.

Quick Basic - prihvat, obrada i ispis podataka

OBJANJENJE

Od korisnika programa esto moramo zatraiti podatke koje na program treba obraditi.
Na primjer da upie neka dva broja koja e program zbrojiti i rezultat ispisati na ekranu.
Zato moramo imati mogunost prihvata podataka - za to nam slui naredba INPUT.

PRIMJER PRIHVATA, OBRADE I ISPISA

Prihvat podataka obavljamo naredbom INPUT.


Ispis podataka obavljamo naredbom PRINT.
Naredba INPUT ispisuje na ekranu poruku koju smo stavili u navodnike te zaustavlja rad programa i eka da korisnik upie odgovor i pritisne Enter.
Nakon toga upisani odgovor sprema u varijablu definiranu na kraju INPUT.
ZADATAK: Prihvati od korisnika dva broja, zbroji ih i prikai rezultat zbrajanja.

PROGRAMSKI KOD

REZULTAT NA EKRANU

CLS
PRINT "ZBRAJANJE"
INPUT "Upii prvi broj:", x
INPUT "Upii drugi broj:", y
z=x+y
PRINT "Zbroj iznosi:", z
END

'brie ekran
ZBRAJANJE
Upii prvi broj: 10
Upii drugi broj: 15
'z = 10 + 15
Zbroj iznosi: 25
'kraj programa

ZADATAK: Prihvati od korisnika ime i mjesto stanovanja te ispii neku pozdravnu poruku.

PROGRAMSKI KOD

REZULTAT NA EKRANU

CLS
INPUT "Upii svoje ime:", a$
INPUT "Gdje stanuje?", b$
PRINT "Dobar dan, " + a$
PRINT b$ + " je lijepo mjesto!"
END

'brie ekran
Upii svoje ime: Marko
Gdje stanuje? Bjelovar
Dobar dan, Marko
Bjelovar je lijepo mjesto!
'kraj programa

4.

Quick Basic - nizovi podataka

JEDNODIMENZIONALNI NIZ
1. kolona

Zbog jednostavnosti, zamislimo popis od tri uenika koji izgleda kao na


slici desno. Nazovimo ga nizom.
Za takav niz kaemo da ima tri stavke (Ivan, Maja i Ante) i ima jednu
dimenziju (jer ima jednu kolonu).

1. stavka

Ivan

2. stavka

Maja

3. stavka

Ante

Evo kako definiramo i popunjavamo takav niz:


DIM x$(3)

'definiranje broja stavki niza (x$ je proizvoljan naziv niza)

x$(1) = "Ivan"

'zatim niz popunjavamo podacima (imenima)

x$(2) = "Maja"

'a brojevima 1, 2 i 3 definiramo poziciju upisa...

x$(3) = "Ante"

A ovako moemo ispisati sadraj takvog niza:

NAREDBA

REZULTAT (prikaz na ekranu)

PRINT x$(1); x$(2); x$(3)

Ivan Maja Ante

... ili pomou programske petlje:

NAREDBA

REZULTAT (prikaz na ekranu)

FOR i = 1 TO 3
PRINT x$(i)
NEXT i

Ivan
Maja
Ante

VIEDIMENZIONALNI NIZ

Zamislimo sada popis od tri uenika u kojem osim imena imamo i neku
ocjenu, kao na slici desno.
Za takav niz kaemo da ima tri stavke (Ivan-4, Maja-5 i Ante-3) i ima
dvije dimenzije (dvije kolone: imena i ocjene).

1. kolona
1. stavka
2. stavka
3. stavka

2. kolona

Ivan

Maja

Ante

Evo kako definiramo i popunjavamo takav niz:


DIM x$(3,2)

'definiranje broja stavki niza (3) i broj kolona niza (2)

x$(1,1) = "Ivan"
x$(1,2) = "4"

'zatim niz popunjavamo podacima (imenima i ocjenama)

x$(2,1) = "Maja"

'a brojevima definiramo poziciju upisa unutar niza,

x$(2,2) = "5"

'tako to prvi broj predstavlja redni broj stavke

x$(3,1) = "Ante"

'a drugi broj predstavlja redni broj kolone...

x$(3,2) = "5"

A ovako moemo ispisati sadraj takvog niza:

NAREDBA

REZULTAT (prikaz na ekranu)

PRINT x$(1,1); x$(1,2)


PRINT x$(2,1); x$(2,2)
PRINT x$(3,1); x$(3,2)

Ivan 4
Maja 5
Ante 3

... ili pomou programske petlje:

NAREDBA

REZULTAT (prikaz na ekranu)

FOR i = 1 TO 3
PRINT x$(i,1); x$(i,2)
NEXT i

Ivan 4
Maja 5
Ante 3

5.

Quick Basic - upis i itanje iz datoteke

OBJANJENJE

Pomou naredbe OPEN moemo formirati datoteku i u nju upisivati ili iz nje itati upisane podatke. Na taj nain moemo spremiti podatke kao to su
popisi, tekstovi ili drugi odgovori korisnika te ih kasnije uitati iz datoteke u cilju prikaza izvjea ili dodatne obrade.
Vano je napomenuti da svaku otvorenu datoteku na kraju rada treba zatvoriti naredbom CLOSE kao i to da se svaka datoteka otvara pod jedinstvenim
brojem (#1, #2, #3...) koji se definira u naredbi OPEN i zatim koristi u naredbama WRITE i CLOSE.

STVARANJE NOVE DATOTEKE I UPIS

Ako elimo stvoriti novu (praznu) datoteku i upisati podatke u nju, onda datoteku otvaramo za izlaz/upis (FOR OUTPUT), kao u primjeru:
PROGRAMSKI KOD

OBJANJENJE

OPEN "spisak.txt" FOR OUTPUT AS #1


DO
INPUT "Upii ime uenika:", ime$
IF ime$ = "kraj" THEN EXIT DO
INPUT "Upii ocjenu:", ocj
WRITE #1, ime$, ocj
LOOP
CLOSE #1

'otvara datoteku za upis pod brojem #1


'poetak petlje
'prihvat imena u varijablu ime$
'ako je pod ime upisana rije "kraj" prekini petlju
'prihvat ocjene u varijablu ocj
'upii u datoteku upisano ime i ocjenu
'idi na poetak petlje
'zatvori datoteku pod brojem #1

Gornji primjer otvara datoteku za upis i zatim vrti DO...LOOP petlju unutar koje od korisnika prihvaa jedno po jedno ime i ocjenu (INPUT) i upisuje to
u datoteku (WRITE) sve dok korisnik umjesto imena ne upie rije "kraj". Kada korisnik umjesto imena upie rije "kraj", petlja se prekida i datoteka
se zatvara.

DODAVANJE U POSTOJEU DATOTEKU

Ako podatke elimo dopisati u ve postojeu datoteku, onda datoteku otvaramo za dodavanje (FOR APPEND), kao u primjeru (ako datoteka ne postoji,
APPEND e formirati novu datoteku!):
PROGRAMSKI KOD

OBJANJENJE

OPEN "spisak.txt" FOR APPEND AS #1


DO
INPUT "Upii ime uenika:", ime$
IF ime$ = "kraj" THEN EXIT DO
INPUT "Upii ocjenu:", ocj
WRITE #1, ime$, ocj
LOOP
CLOSE #1

'otvara datoteku za dopisivanje pod brojem #1


'poetak petlje
'prihvat imena u varijablu ime$
'ako je pod ime upisana rije "kraj" prekini petlju
'prihvat ocjene u varijablu ocj
'dodaj na kraj datoteke upisano ime i ocjenu
'idi na poetak petlje
'zatvori datoteku pod brojem #1

Gornji primjer radi na istom principu kao i prethodni.

ITANJE IZ DATOTEKE

Ako elimo uitati podatke iz neke datoteke koju smo prethodno formirali, onda datoteku otvaramo za ulaz/itanje (FOR INPUT), kao u primjeru (ako
datoteka ne postoji, pokuaj INPUT e rezultirati grekom!):
PROGRAMSKI KOD

OBJANJENJE

OPEN "spisak.txt" FOR INPUT AS #1


DO WHILE NOT EOF(1)
INPUT #1, tekIme$, tekOcj
PRINT tekIme$, tekOcj
LOOP
CLOSE #1

'otvara datoteku za itanje pod brojem #1


'vrti petlju dok ne doe do kraja datoteke (EOF)
'uitaj tekue ime i ocjenu iz datoteke
'ispii sadraj varijabli tekIme$ i tekOcj
'idi na poetak petlje ako NIJE kraj datoteke
'zatvori datoteku pod brojem #1

Gornji primjer otvara datoteku za itanje i zatim vrti DO...LOOP petlju unutar koje prihvaa redom jedno po jedno ime i ocjenu iz datoteke (INPUT) i
ispisuje te podatke na ekran (PRINT) sve dok ne doe do kraja datoteke (EOF). Kada doe do kraja datoteke, petlja se prekida i datoteka se zatvara
(CLOSE).
Pri itanju iz datoteke treba voditi rauna o tome kojim su redom i kojeg su tipa podaci u datoteku upisivani i adekvatno tome definirati varijable za
prihvat tih podataka u INPUT, jer u suprotnom podaci nee biti ispravno uitani ili e doi do greke!
VANO: Ako datoteka "spisak.txt" ne postoji, program e rezultirati grekom!
Zato je dobro na poetak gornjeg programa dodati rutinu koja e to izbjei:
OPEN "spisak.txt" FOR APPEND AS #1 : CLOSE #1
Time osiguravamo da e se datoteka automatski formirati ukoliko ne postoji a ako postoji onda e se samo na kratko otvoriti i odmah zatvoriti
(CLOSE), bez izmjene. Dodue, ako datoteka ne postoji formirat e se prazna datoteka ali zato pokuaj otvaranja s INPUT nee rezultirati grekom!

6.

Quick Basic - sluajni brojevi

OBJANJENJE

Sluajni brojevi su brojevi koji se generiraju sluajno i koje ne moemo predvidjeti.


U programiranju nam povremeno moe zatrebati da raunalo generira neki sluajan broj.
Na primjer, ako elimo napraviti program koji e generirati sluajne brojeve za Loto i slino.
Za generiranje sluajnih brojeva koristimo iskaz RANDOMIZE i funkciju RND:

RANDOMIZE n

je iskaz za ukljuenje generatora sluajnih brojeva, gdje je n cijeli broj (sjeme za generiranje brojeva).
Generator u praksi najee ukljuujemo sa:
RANDOMIZE Timer
gdje je Timer funkcija koja nam vraa broj sekundi proteklih od poetka dana...

RND

je funkcija koja daje sluajan decimalan broj izmeu 0 i 1


(npr: 0.000000 ... 0.001542 ... 0.512300 ... 1.000000).
Ako su nam potrebni cijeli brojevi, onda taj decimalan broj
trebamo pomnoiti npr. sa 10 ili 100 i zatim pomou funkcije
INT() pretvoriti u cijeli broj (vidi donje primjere)!

PRIMJERI GENERIRANJA SLUAJNIH BROJEVA

ZADATAK:

Napii program koji e generirati 6 sluajnih brojeva izmeu 1 i 45 te ih ispisati na ekranu.

PROGRAMSKI KOD

OBJANJENJE PROGRAMA

REM Program za LOTO 6/45


CLS
RANDOMIZE Timer
FOR i = 1 to 6
PRINT INT(RND *44) + 1
NEXT i
END

'komentar programera
'brie ekran
'ukljuenje generatora sluajnih brojeva
'programska petlja sa 6 ponavljanja
'ispis sluajnog broja (izmeu 1 i 45)
INT - pretvara decimalni broj u cijeli broj
RND*44 - generira broj izmeu 0 i 44
+1 - da se izbjegne 0 ako RND vrati 0

ZADATAK:

PROGRAMSKI KOD

Napii program koji generira dva sluajna broja i korisniku postavlja zadatak da izrauna umnoak ta dva broja.
Nakon to korisnik upie rezultat, program e provjeriti da li je rezultat ispravan i o tome obavijestiti korisnika. Ako
korisnik kao rezultat upie "999", program zavrava s radom.
OBJANJENJE PROGRAMA

CLS
PRINT "Program za vjebu mnoenja"
PRINT "------------------------------------"
RANDOMIZE Timer
DO
a = INT(RND * 10)
b = INT(RND * 10)
c=a*b
PRINT a; "*"; b; "=";
INPUT " ", odgovor
IF odgovor = c THEN
PRINT "Tono!"
ELSE
PRINT "Netono!"
ENDIF
LOOP WHILE odgovor <> 999
END

'brie ekran
'ispis poruke korisniku programa
'ispis obine iscrtkane linije (znak "-")
'ukljuenje generatora sluajnih brojeva
'poetak DO...LOOP programske petlje
'generiranje prvog sluajnog broja (izmeu 1 i 10)
'generiranje drugog sluajnog broja (izmeu 1 i 10)
'izraun tonog odgovora za kasniju provjeru
'ispis upita (prvi broj * drugi broj =)
'prihvat odgovora korisnika u varijablu odgovor
'ako je odgovor = c (korisnik tono izraunao)
'
ispii na ekran "Tono!"
'ako je odgovor <> c (korisnik netono izraunao)
'
ispii na ekran "Netono!"
'kraj logike provjere
'vrti petlju sve dok je odgovor razliit od 999
'kraj programa

7.

Quick Basic - logika provjera

OBJANJENJE
Logiku provjeru uvjeta obavljamo kroz IF ... END IF strukturu koja izgleda ovako:
IF uvjet1 THEN
iskazi koji se trebaju izvriti ako je uvjet1 istinit
ELSEIF uvjet2 THEN
iskazi koji se trebaju izvriti ako je uvjet2 istinit
ELSEIF uvjet3 THEN
iskazi koji se trebaju izvriti ako je uvjet3 istinit
ELSE
iskazi koji se trebaju izvriti ako ni uvjet1 ni uvjet2 ni uvjet3 nisu istiniti
END IF

IF oznaava poetak logike provjere i znai "ako je...".


ELSEIF iskaza moe biti prema potrebi ali nisu obavezni.
ELSE iskaz moe biti samo jedan ali isto nije obavezan.
END IF oznaava kraj logike provjere.
Svaki provjeravani uvjet moe rezultirati kao TRUE (istina) ili FALSE (la), na primjer:
IF 10 < 20 THEN ... (ako je 10 manje od 20) rezultira s TRUE jer je 10 manje od 20.
IF 10 > 20 THEN ... (ako je 10 vee od 20) rezultira s FALSE jer 10 nije vee od 20.
Ako uvjet rezultira s TRUE tada se izvrava ono to je navedeno iza THEN.
Ako uvjet rezultira s FALSE tada se ne izvrava ono to je navedeno iza THEN
ve se logika provjera nastavlja na prvom slijedeem ELSEIF ili ELSE iskazu.

RELACIJSKI OPERATORI
U logikoj provjeri za usporedbu varijabli koristimo relacijske operatore koji
su nam poznati iz matematike i imaju ista znaenja (vidi desno).

OPERATOR

OBJANJENJE

>

vee

<

manje

jednako

<>

razliito

>=

vee ili jednako

<=

manje ili jednako

LOGIKI OPERATORI
Ako istovremeno provjeravamo vie uvjeta onda moramo koristiti logike operatore
AND (logiko I), OR (logiko ILI) i NOT (logiko NE) kojima te uvjete povezujemo.
Donja tablica prikazuje u kojim sluajevima logiki operatori vraaju TRUE i FALSE:
AND
(logiko I)

OR
(logiko ILI)

NOT
(logiko NE)

VRAA

ako su oba
uvjeta TRUE

ako je jedan
uvjet TRUE

ako je uvjet
FALSE

TRUE
(logiku ISTINU)

ako je jedan
uvjet FALSE

ako su oba
uvjeta FALSE

ako je uvjet
TRUE

FALSE
(logiku LA)

PRIMJERI LOGIKE PROVJERE

Primjer usporedbe dva broja.


Da bi u donjem primjeru ustanovili koji je broj vei (a ili b), moramo predvidjeti sve mogunosti:
- da prvi broj moe biti vei od drugog (a > b)
- da prvi broj moe biti manji od drugog (a < b)
- i zadnje, da brojevi mogu biti jednaki (a = b)
PROGRAMSKI KOD

OBJANJENJE

REM usporedba dva broja


CLS
INPUT "Upii prvi broj:", a
INPUT "Upii drugi broj:", b
IF a > b THEN
PRINT "Prvi broj je vei!"
ELSEIF a < b THEN
PRINT "Drugi broj je vei!"
ELSE
PRINT "Brojevi su jednaki!"
END IF
END

'komentar
'obrii ekran
'prihvat prvog broja u varijablu a
'prihvat drugog broja u varijablu b
'ako je a vee od b tada...
'... ispii da je prvi broj vei
'ako je a manje od b tada...
'... ispii da je drugi broj vei
'ako nije niti jedno od gornjeg...
'... ispii da su brojevi jednaki
'kraj logike provjere
'kraj programa

Primjer provjere da li je korisnik upisao ispravan broj.


Da bi u donjem primjeru provjerili da li je korisnik upisao ispravan broj (izmeu 5 i 10), moramo provjeriti slijedee mogunosti:
- da li je upisani broj manji od 5 (neispravan upis)
- da li je upisani broj vei od 10 (neispravan upis)
- a ako nije ni manji od 5 ni vei od 10 onda je upis ispravan.

PROGRAMSKI KOD

OBJANJENJE

REM provjera upisanog broja


INPUT "Upii neki broj izmeu 5 i 10:", x
IF x < 5 OR x > 10 THEN
PRINT "Neispravno upisan broj!"
ELSE
PRINT "Ispravno upisan broj!"
END IF

'komentar
'prihvat broja u varijablu x
'ako je broj manji od 5 ili vei od 10 tada...
'... ispii da je upis neispravan
'u suprotnom (broj je izmeu 5 i 10)...
'... ispii da je upis ispravan
'kraj logike provjere

Primjer usporedbe tri broja.


Da bi u donjem primjeru ustanovili koji je broj vei (a, b ili c), moramo predvidjeti sve mogunosti:
- da prvi broj moe biti vei od drugog i treeg (a > b i a > c)
- da drugi broj moe biti vei od prvog i treeg (b > a i b > c)
- da trei broj moe biti vei od prvog i drugog (c > a i c > b)
- ... ali i da dva broja mogu biti jednaka a vea od treeg, ili da su sva tri broja jednaka.

PROGRAMSKI KOD

OBJANJENJE

REM usporedba tri broja


INPUT "Upii prvi broj", a
INPUT "Upii drugi broj", b
INPUT "Upii trei broj", c
IF a > b AND a > c THEN
PRINT "Prvi broj je najvei!"
ELSEIF b > a AND b > c THEN
PRINT "Drugi broj je najvei!"
ELSEIF c > a AND c > b THEN
PRINT "Trei broj je najvei!"
ELSEIF a = b AND a > c THEN
PRINT "Prvi i drugi broj su najvei!"
ELSEIF b = c AND b > a THEN
PRINT "Drugi i trei broj su najvei!"
ELSEIF c = a AND c > b THEN
PRINT "Prvi i trei broj su najvei!"
ELSE
PRINT "Svi brojevi su jednaki!"
END IF

'komentar
'prihvat prvog broja u varijablu a
'prihvat drugog broja u varijablu b
'prihvat treeg broja u varijablu b
'ako je a vee od b i a vee od c tada...
'... ispii da je prvi broj najvei
'ako je b vee od a i b vee od c tada...
'... ispii da je drugi broj najvei
'ako je c vee od a i c vee od b tada...
'... ispii da je trei broj najvei
'ako je a jednako b i a vee od c tada...
'... ispii da su prvi i drugi broj najvei
'ako je b jednako c i b vee od a tada...
'... ispii da su drugi i trei broj najvei
'ako je c jednako a i c vee od b tada...
'... ispii da su prvi i trei broj najvei
'ako nije niti jedno od gornjeg...
'... ispii da su brojevi jednaki
'kraj logike provjere

8.

Quick Basic - pretvaranje i izdvajanje podataka

OBJANJENJE
U programiranju esto imamo potrebu pretvaranja i izdvajanja podataka.
Quick Basic za to ima nekoliko ugraenih funkcija koje su ovdje opisane.

PRETVARANJE PODATAKA

FUNKCIJA

OBJANJENJE

PRIMJER

REZULTAT

UCase$()

pretvara sva slova u VELIKA

? UCase$("Ana")

LCase$()

pretvara sva slova u mala

? LCase$("Ana")

"ana"

pretvara broj u znakovni izraz *

? STR$(100)

"100"

VAL()

pretvara znakovni izraz u broj **

? VAL("100")
? VAL("12abc")
? VAL("abc12")

INT()

daje cijeli dio decimalnog broja

? INT(4.15)
? INT(4.99)

4
4

CINT()

zaokruuje decimalni broj


na najblii cijeli broj

? CINT(4.50)
? CINT(4.51)

4
5

ABS()

daje apsolutnu vrijednost broja


(bez negativnog predznaka)

? ABS(-111.11)
? ABS(+222.22)

SQR()

daje kvadratni korijen broja

? SQR(9)
? SQR(25)

STR$()

"ANA"

100
12
0

111.11
222.22
3
5

* Kada broj pretvorimo u znakovni izraz, s njim vie ne moemo obavljati raunske operacije
** Kada neki znakovni izraz pretvorimo u broj, s njim moemo obavljati raunske operacije.
Primjer pretvaranja upisanog imena u velika slova, bez obzira kako ga je korisnik upisao:

PROGRAMSKI KOD

OBJANJENJE

REM pretvaranje u velika slova


CLS
INPUT "Upii svoje ime:", a$
a$ = UCase$(a$)
PRINT "Tvoje ime je "; a$
END

'komentar
'brisanje ekrana
'prihvat imena u varijablu a$
'pretvaranje imena u velika slova
'ispii poruku "Tvoje ime je ..."
'kraj programa

Primjer programa za izraun kvadratnog korijena:

PROGRAMSKI KOD

OBJANJENJE

REM izraun kvadratnog korijena


CLS
INPUT "Upii neki broj:", x
k = SQR(x)
PRINT "Kvadratni korijen je "; k
END

'komentar
'brisanje ekrana
'prihvat broja u varijablu x
'izraun kvadratnog korijena od x
'ispii kvadratni korijen
'kraj programa

IZDVAJANJE PODATAKA

FUNKCIJA

OBJANJENJE

PRIMJER

REZULTAT

MID$()

izdvaja bilo koji dio stringa


- prvi broj je pozicija prvog znaka
- drugi broj govori koliko znakova

? MID$("Anamarija",4,6)

INSTR()

trai izraz unutar stringa i vraa


poziciju prvog naenog slova
ili 0 ako izraz nije pronaen

? INSTR("Mislav","lav")
? INSTR("Mislav","zec")

4
0

LEN()

vraa broj znakova u stringu

? LEN("Anamarija")

LEFT$()

izdvaja eljeni broj znakova


s lijeve strane stringa

? LEFT$("Anamarija",3")

RIGHT$()

izdvaja eljeni broj znakova


s desne strane stringa

? RIGHT$("Anamarija",6")

LTRIM$()

uklanja sva prazna mjesta


(razmake) s lijeve strane stringa

? LTRIM$("

Ana")

"marija"

"Ana"
"marija"
"Ana"

RTRIM$()

uklanja sva prazna mjesta


(razmake) s desne strane stringa

? RTRIM$("Ana

SPACE$()

umee eljeni broj praznih mjesta

FOR i = 1 TO 3
? SPACE$(i); "X"
NEXT i

SWAP

zamjenjuje sadraj dvije varijable

")

a$ = "Ana" : e$ = "Edo"
PRINT a$, e$
SWAP a$, e$
PRINT a$, e$

"Ana"
X
X
X
Ana Edo
Edo Ana

Primjer programa za analizu upisane rijei:

PROGRAMSKI KOD

OBJANJENJE

REM analiza upisane rijei


CLS
INPUT "Upii neku rije:", a$
ps$ = MID$(a$, 1, 1)
zs$ = MID$(a$, LEN(a$), 1)
us = LEN(a$)
PRINT "Prvo slovo je:", ps$
PRINT "Zadnje slovo je:", zs$
PRINT "Ukupno slova:", us
END

'komentar
'brisanje ekrana
'prihvat rijei u varijablu a$
'izdvajanje prvog slova iz a$
'izdvajanje zadnjeg slova iz a$
'utvrivanje ukupnog broja slova u a$
'ispis prvog slova
'ispis zadnjeg slova
'ispis ukupnog broja slova
'kraj programa

9.

Quick Basic - programske petlje

OBJANJENJE
Programske petlje su strukture koje "vrte u krug" neki dio programskog koda, sve dok se ne ispuni zadani uvjet. Najpoznatija programska petlja je
FOR ... NEXT ali postoje i druge, kao to su DO ... LOOP i WHILE ... WEND.

FOR ... NEXT petlja


Struktura FOR ... NEXT petlje:
FOR x = n1 TO n2 [STEP n]
[... iskazi ... ]
NEXT x

FOR
x

poetak petlje
proizvoljan naziv varijable

n1

poetna vrijednost varijable

n2

maksimalna vrijednost var.

STEP n
NEXT

korak rasta varijable


kraj petlje (povratak na FOR)

* Varijabla x se prolaskom kroz petlju automatski poveava za 1 ako nije naveden korak (STEP).
* Ako je naveden korak (STEP) varijabla x se prolaskom kroz petlju poveava za vrijednost n.
* NEXT vraa izvrenje na poetak petlje (FOR), sve dok x ne dosegne maksimalnu vrijednost (n2).
Primjer ispisa rastueg niza brojeva od 1 do 5:

PROGRAMSKI KOD

OBJANJENJE

FOR i = 1 TO 5
PRINT i;
NEXT i
Rezultat: 1 2 3 4 5

'poetak petlje i definiranje varijable i


'kontrolni ispis vrijednosti varijable i
'kraj petlje (povratak na FOR sve dok
'varijabla i ne dostigne vrijednost 5)

Primjer ispisa svakog drugog broja od 1 do 10:

PROGRAMSKI KOD

OBJANJENJE

FOR i = 1 TO 10 STEP 2

'poetak petlje, definiranje varijable i


'i njezinog koraka rasta (STEP 2)
'kontrolni ispis vrijednosti varijable i
'kraj petlje

PRINT i;
NEXT i
Rezultat: 1 3 5 7 9

Primjer ispisa opadajueg niza brojeva od 10 do 5:

PROGRAMSKI KOD

OBJANJENJE

FOR i = 10 TO 5 STEP -1

'poetak petlje, definiranje varijable i


'(korak opadajueg niza je negativan!)
'kontrolni ispis vrijednosti varijable i
'kraj petlje

PRINT i;
NEXT i
Rezultat: 10 9 8 7 6 5

DO ... LOOP petlja

Dok je FOR...NEXT petlja pogodna za analizu brojanih podataka, DO...LOOP petljom moete analizirati bilo koju vrstu podataka.
Primjer ispisa rastueg niza brojeva od 1 do 4:
PROGRAMSKI KOD

OBJANJENJE

x=1
DO WHILE x < 5
PRINT x;
x=x+1
LOOP
Rezultat: 1 2 3 4

'definiranje varijable x za uvjet petlje


'poetak petlje i postavka uvjeta
'kontrolni ispis vrijednosti varijable x
'runo poveanje vrijable x
'kraj petlje (povratak na DO sve dok
'varijabla x ne dostigne vrijednost 5)

Primjer provjere upisane ifre:

PROGRAMSKI KOD

OBJANJENJE

REM provjera upisane ifre


CLS
sifra$ = "abcd"
DO
INPUT "Upii ifru:", s$
LOOP WHILE s$ <> sifra$
PRINT "ifra ispravna, idemo dalje..."

'komentar
'brisanje ekrana
'definiranje eljene ifre u varijabli sifra$
'poetak petlje
'prihvat ifre od korisnika u varijablu s$
'kraj petlje i provjera ispravnosti ifre
'(ako je ifra ispravna program nastavlja
'ispod LOOP a ako nije vraa se na DO)

10.

Quick Basic - programske petlje

OBJANJENJE
Programske petlje su strukture koje "vrte u krug" neki dio programskog koda, sve dok se ne ispuni zadani uvjet. Najpoznatija programska petlja je
FOR ... NEXT ali postoje i druge, kao to su DO ... LOOP i WHILE ... WEND.

FOR ... NEXT petlja


Struktura FOR ... NEXT petlje:
FOR x = n1 TO n2 [STEP n]
[... iskazi ... ]
NEXT x

FOR
x

poetak petlje
proizvoljan naziv varijable

n1

poetna vrijednost varijable

n2

maksimalna vrijednost var.

STEP n
NEXT

korak rasta varijable


kraj petlje (povratak na FOR)

* Varijabla x se prolaskom kroz petlju automatski poveava za 1 ako nije naveden korak (STEP).
* Ako je naveden korak (STEP) varijabla x se prolaskom kroz petlju poveava za vrijednost n.
* NEXT vraa izvrenje na poetak petlje (FOR), sve dok x ne dosegne maksimalnu vrijednost (n2).
Primjer ispisa rastueg niza brojeva od 1 do 5:

PROGRAMSKI KOD

OBJANJENJE

FOR i = 1 TO 5
PRINT i;
NEXT i
Rezultat: 1 2 3 4 5

'poetak petlje i definiranje varijable i


'kontrolni ispis vrijednosti varijable i
'kraj petlje (povratak na FOR sve dok
'varijabla i ne dostigne vrijednost 5)

Primjer ispisa svakog drugog broja od 1 do 10:

PROGRAMSKI KOD

OBJANJENJE

FOR i = 1 TO 10 STEP 2

'poetak petlje, definiranje varijable i


'i njezinog koraka rasta (STEP 2)
'kontrolni ispis vrijednosti varijable i
'kraj petlje

PRINT i;
NEXT i
Rezultat: 1 3 5 7 9

Primjer ispisa opadajueg niza brojeva od 10 do 5:

PROGRAMSKI KOD

OBJANJENJE

FOR i = 10 TO 5 STEP -1

'poetak petlje, definiranje varijable i


'(korak opadajueg niza je negativan!)
'kontrolni ispis vrijednosti varijable i
'kraj petlje

PRINT i;
NEXT i
Rezultat: 10 9 8 7 6 5

DO ... LOOP petlja

Dok je FOR...NEXT petlja pogodna za analizu brojanih podataka, DO...LOOP petljom moete analizirati bilo koju vrstu podataka.
Primjer ispisa rastueg niza brojeva od 1 do 4:
PROGRAMSKI KOD

OBJANJENJE

x=1
DO WHILE x < 5
PRINT x;
x=x+1
LOOP
Rezultat: 1 2 3 4

'definiranje varijable x za uvjet petlje


'poetak petlje i postavka uvjeta
'kontrolni ispis vrijednosti varijable x
'runo poveanje vrijable x
'kraj petlje (povratak na DO sve dok
'varijabla x ne dostigne vrijednost 5)

Primjer provjere upisane ifre:

PROGRAMSKI KOD

OBJANJENJE

REM provjera upisane ifre


CLS
sifra$ = "abcd"
DO
INPUT "Upii ifru:", s$
LOOP WHILE s$ <> sifra$
PRINT "ifra ispravna, idemo dalje..."

'komentar
'brisanje ekrana
'definiranje eljene ifre u varijabli sifra$
'poetak petlje
'prihvat ifre od korisnika u varijablu s$
'kraj petlje i provjera ispravnosti ifre
'(ako je ifra ispravna program nastavlja
'ispod LOOP a ako nije vraa se na DO)

11.

Quick Basic - potprogrami i funkcije

OBJANJENJE
Potprogrami i funkcije su zasebni dijelovi programa koji imaju svoja unikatna imena te mogu prihvatiti jednu ili vie vrijednosti na obradu. Koriste se
kada na program mora esto izvoditi isti slijed naredbi ili izraunavati vrijednosti po istim formulama, kako ne bi svaki puta trebalo pisati jedan te isti
programski kod.
Novi potprogram definirate preko izbornika, izborom EDIT -> New Sub... i upisom imena.
Novu funkciju definirate preko izbornika, izborom EDIT -> New Function... i upisom imena.
Editor koda izmeu glavnog programa, potprograma ili funkcije prebacujete izborom VIEW -> SUBs... ili pritiskom na tipku F2 pa izborom glavnog
programa, potprograma ili funkcije.

POTPROGRAMI (SUBRUTINE)
Potprogram zapoinje iskazom SUB iza kojega ide ime potprograma a zavrava iskazom END SUB.
Poziva se iskazom CALL iza kojega ide naziv potprograma koji se poziva (npr. CALL ObradiIme).
Nakon to pozvani potprogram zavri s radom, kontrolu vraa iza iskaza CALL kojim je pozvan.

Primjer prijenosa vrijednosti u potprogram:

PROGRAMSKI KOD

OBJANJENJE

REM prijenos vrijednosti u potprogram


CLS
INPUT "Upii svoje ime:", a$
IF LEN(a$) > 0 THEN
CALL ObradiIme(a$)
END IF
END
__________________

'POETAK GLAVNOG PROGRAMA


'
'prihvat imena u varijablu a$
'ako je upisani broj slova vei od 0
'... pozovi potprogram i prenesi mu a$
'
'KRAJ GLAVNOG PROGRAMA
__________________

SUB ObradiIme (ime$)


PRINT "Prvo slovo je:", LEFT$(ime$,1)
PRINT "Zadnje slovo je:", RIGHT$(ime$,1)
END SUB

'POETAK POTPROGRAMA ObradiIme


'
ispis prvog slova prenesenog imena
'
ispis zadnjeg slova prenesenog imena
'KRAJ POTPROGRAMA

Primjer izbora rada s pozivom potprograma:

PROGRAMSKI KOD

OBJANJENJE

REM izbor rada u glavnom programu


DO
CLS
PRINT "IZBOR RADA:"
PRINT "1 - Ispis brojeva od 1 do 10"
PRINT "2 - Ispis engleske abecede"
PRINT "3 - Izlaz iz programa"
INPUT "IZABERI BROJ (1-3) ", x
IF x = 1 THEN
CALL Brojevi
ELSEIF x = 2 THEN
CALL Abeceda
END IF

'POETAK GLAVNOG PROGRAMA


'poetak DO...LOOP petlje
'
'
ispis izbora rada
'
'
'
'
prihvat odgovora od korisnika
'
ako je korisnik izabrao broj 1
'
... pozovi potprogram Brojevi
'
ako je korisnik izabrao broj 2
'
... pozovi potprogram Abeceda
'

LOOP WHILE x > 0 AND x < 3


PRINT "Kraj programa!"
END
__________________

'vrti petlju sve dok je x = 1 ili x = 2


'
'KRAJ GLAVNOG PROGRAMA
__________________

SUB Brojevi
PRINT : PRINT "Potprogram za ispis brojeva"
FOR i = 1 TO 10
PRINT i;
NEXT i
SLEEP 3
END SUB
__________________

'POETAK POTPROGRAMA Brojevi


'
'
'... ispis brojeva kroz FOR...NEXT petlju
'
'
'KRAJ POTPROGRAMA
__________________

SUB Abeceda
PRINT : PRINT "Potprogram za ispis abecede"
FOR i = 65 TO 90
PRINT CHR$(i);
NEXT i
SLEEP 3
END SUB

'POETAK POTPROGRAMA Abeceda


'
'... ispis slova abecede kroz FOR...NEXT petlju
'
CHR$ vraa ASCII znak navedenog broja
'
'
'KRAJ POTPROGRAMA

FUNKCIJE
Funkcija zapoinje iskazom FUNCTION iza kojega ide ime funkcije a zavrava s END FUNCTION.
Obzirom da funkcija uvijek vraa neku vrijednost, poziva se samo navoenjem njezinog imena.

Primjer poziva funkcije za pretvaranje slova u velika:

PROGRAMSKI KOD

OBJANJENJE

REM pretvaranje slova u velika


CLS
INPUT "Upii svoje ime malim slovima:", a$
b$ = DajVelikaSlova$(a$)
PRINT "Ime velikim slovima:", b$
END
__________________

'POETAK GLAVNOG PROGRAMA


'
'prihvat imena u varijablu a$
'poziv funkcije i prijenos imena (a$) u nju
'ispis pretvorenog imena
'KRAJ GLAVNOG PROGRAMA
__________________

FUNCTION DajVelikaSlova$ (a$)


DajVelikaSlova$ = UCASE$(a$)
END FUNCTION

'POETAK FUNKCIJE DajVelikaSlova


'
pretvaranje imena u velika slova
'KRAJ FUNKCIJE

Primjer poziva funkcije za dijeljenje dva broja i prijenosa brojeva u funkciju:

PROGRAMSKI KOD

OBJANJENJE

REM dijeljenje dva broja


CLS
PRINT "DIJELJENJE BROJEVA"
INPUT "Upii prvi broj:", x
INPUT "Upii drugi broj:", y
r = Podijeli(x, y)
PRINT "REZULTAT JE:", r
END
__________________

'POETAK GLAVNOG PROGRAMA


'
'
'prihvat prvog broja u varijablu x
'prihvat drugog broja u varijablu y
'poziv funkcije i prijenos x i y u nju
'ispis rezultata dijeljenja
'KRAJ GLAVNOG PROGRAMA
__________________

FUNCTION Podijeli (a, b)


IF b > 0 THEN
Podijeli = a / b
ELSE
Podijeli = 0
END IF
END FUNCTION

'POETAK FUNKCIJE Podijeli


'
ako je drugi broj vei od 0
'
... vrijednost Podijeli = a / b
'
ako je drugi broj = 0
'
... vrijednost Podijeli = 0
' (da ne doe do greke zbog dijeljenja s 0)!
'KRAJ FUNKCIJE

12.

Quick Basic - grafika u programu

OBJANJENJE
Za iscrtavanje grafike prvo treba postaviti tzv. grafiki mod ekrana
naredbom SCREEN, npr:
GRAFIKI MOD

OBJANJENJE

SCREEN 0

tekstualni ekran, 25 redova x 80 kolona

SCREEN 1

grafiki ekran, 320 x 200 toaka (pixela)

SCREEN 2

grafiki ekran, 640 x 200 toaka (pixela)

Koordinatni sustav ekrana je podijeljen na vodoravnu osu (X-osa) i


okomitu osu (Y-osa).
Grafiki mod 320 x 200 toaka znai da e ekran po irini imati 320 a po
visini 200 toaka (pixela).
Svaka toka ima svoju jedinstvenu adresu iskazanu s dva broja, sjecitem X i Y ose.
Ove adrese su vane jer se koriste u naredbama za crtanje!
Poetna toka (0,0) je u gornjem lijevom kutu.

PSET - crtanje toke


Naredba PSET crta toku na tono odreenoj adresi koordinatnog sustava:
PROGRAMSKI KOD

OBJANJENJE

SCREEN 2
PSET(200, 100)

'postavka grafikog moda 640 x 200 toaka


'crta toku na adresi 200,100 (slika gore)

LINE - crtanje linije i kvadrata


Naredba LINE iscrtava liniju poev od adrese u prvoj zagradi pa do adrese u drugoj.
Ako na kraju LINE iskaza dodamo parametar B - iscrtava se kvadrat.
Ako na kraju LINE iskaza dodamo parametar BF - iscrtava se kvadrat popunjen bojom.
PROGRAMSKI KOD

OBJANJENJE

SCREEN 2
LINE (50,50)-(100,100)
LINE (200,50)-(300,100),,B
LINE (400,50)-(500,100),,BF

'postavka grafikog moda 640 x 200 toaka


'crta liniju
'crta kvadrat
'crta kvadrat popunjen bojom

Gornji primjer rezultirat e kao na slici dolje.


Ljubiaste toke predstavljaju poetne i zavrne adrese:

CIRCLE - crtanje krunice i elipse


Naredbom CIRCLE moete crtati krunice ili elipse, ovisno od parametra navedenog na kraju.
Podatak u zagradi definira adresu centra krunice ili elipse.
Podatak odmah iza zagrade definira promjer krunice ili elipse.
PROGRAMSKI KOD

OBJANJENJE

SCREEN 2
CIRCLE (100, 100), 50
FOR r = 5 TO 50 STEP 5
CIRCLE (300, 100), r
NEXT r

'postavka grafikog moda 640 x 200 toaka


'crta krunicu promjera 50 na adresi 100,100
'iscrtavanje vie krunica FOR...NEXT petljom
'... na istoj poziciji sa sve veim promjerom (r)

CIRCLE (500, 100), 25,,,, 1

'crtanje elipse
'
(parametar 1 - uspravljena elipsa)
'
(parametar 0.1 - poloena elipsa)

Gornji primjer rezultirat e kao na slici dolje:

13.

Quick Basic - zvuk u programu

OBJANJENJE
Zvuk u programu moete ostvariti pomou naredbi SOUND i PLAY.

SOUND
Naredba SOUND generira zvuk odreene frekvencije i odreenog trajanja.
Na primjer: SOUND frekvencija, trajanje
- Frekvencija se izraava u Hercima i moe biti od 37 do 32767 Hz.
- Trajanje se izraava u tikovima i moe biti od 1 do 65535 tikova (1 sec = 18 tikova).
Primjer promjene frekvencije zvuka:

PROGRAMSKI KOD

OBJANJENJE

CLS
FOR f = 500 TO 1000 STEP 10
SOUND f, 3
NEXT f

'postavka grafikog moda 640 x 200 toaka


'promjena frekvencije do 500 do 1000 Hz
'... zvuk frekvencije f Hz i trajanja 3 tika

PLAY
Naredbom PLAY moemo odsvirati bilo koju melodiju ako znamo tablicu nota, oktava i trajanja.
Tablica nota:

glazbena nota:

oznaava se slovom:

Oznake oktava i trajanja nota:

OKTAVE

o0
o1
...
o6

- oktava 1
- oktava 2
... itd ...
- oktava 7

TRAJANJE NOTE

L1
L2
L4
...

- cijela nota
- polovinka
- etvrtinka
... itd ...

PAUZA

P1
P2
P4
...

- pauza cijela nota


- pauza polovinka
- pauza etvrtinka
... itd ...

Primjer sviranja glazbene ljestvice u 4 oktavi, etvrtinkama nota:

PROGRAMSKI KOD
CLS
PLAY "o3 L4 ABCDEFG"

OBJANJENJE
'svira glazbenu ljestvicu (A B C D E F G)
'u etvrtoj oktavi (o3), etvrtinkama nota (L4)

You might also like