35
Osnove programskog Osnove programskog jezika QBasic jezika QBasic

Qbasic

Embed Size (px)

Citation preview

Page 1: Qbasic

Osnove programskogOsnove programskogjezika QBasicjezika QBasic

Page 2: Qbasic

QBASICQBASICQBASIC

• Korisničko sučelje• Elementi• Ulazno / Izlazne instrukcije• Instrukcije grananja (odluke)• Programske petlje• Funkcije• Datoteke

•• Korisničko sučeljeKorisničko sučelje•• ElementiElementi•• Ulazno Ulazno / / Izlazne instrukcijeIzlazne instrukcije•• Instrukcije grananja Instrukcije grananja ((odlukeodluke))•• Programske petljeProgramske petlje•• FunkcijeFunkcije•• DatotekeDatoteke

Page 3: Qbasic

Korisničko sučelje u kojem se gradiQBASIC program

Korisničko sučelje Korisničko sučelje u u kojemkojem se se gradigradiQBASIC programQBASIC program

• File - New, Open, Save, Save As.., Print, Exit• Edit - Cut, Copy, Paste, Clear, Sub, Fun• View - Subs, Split, Output screen• Search - Find, Repeat Last Find, Change• Run - Start (shit+F5),Restart, Continue• Debug - Otklanjanje pogrešaka• Options - Opcije• Help - Index, Contents, Topic

•• FileFile - New, Open, Save, Save As.., Print, Exit- New, Open, Save, Save As.., Print, Exit•• EditEdit - Cut, Copy, Paste, Clear, Sub, Fun- Cut, Copy, Paste, Clear, Sub, Fun•• ViewView - Subs, Split, Output screen- Subs, Split, Output screen•• SearchSearch - Find, Repeat Last Find, Change- Find, Repeat Last Find, Change•• RunRun - Start (shit+F5),Restart, Continue- Start (shit+F5),Restart, Continue•• DebugDebug - - Otklanjanje pogrešakaOtklanjanje pogrešaka•• OptionsOptions - - OpcijeOpcije•• HelpHelp - Index, Contents, Topic- Index, Contents, Topic QBasicQBasic

Page 4: Qbasic

Elementi QBASIC-aElementi Elementi QBASIC-aQBASIC-a

• Variables and Constants• Operators and Formulas• Hierarchy of operations• Uses of parentheses (uporaba

zagrada)• Assigning (pridruživanje)

•• Variables and ConstantsVariables and Constants•• Operators and FormulasOperators and Formulas•• Hierarchy of operationsHierarchy of operations•• Uses of parentheses (Uses of parentheses (uporabauporaba

zagradazagrada))•• Assigning (Assigning (pridruživanjepridruživanje))

Page 5: Qbasic

Variables and ConstantsVariables and ConstantsVariables and Constants• Numeric - RealA=12.33 AB=1.11E+03A1=13.22 AC1=2.77E-05• IntegerA=12A1=13• StringA$=“123”AB$=“Pero”

•• Numeric - RealNumeric - RealA=12.33 AB=1.11E+03A=12.33 AB=1.11E+03A1=13.22 AC1=2.77E-05A1=13.22 AC1=2.77E-05•• IntegerIntegerA=12A=12A1=13A1=13•• StringStringA$=“123”A$=“123”AB$=“AB$=“PeroPero””

Nizovi

• Real

• Integer

• String

A(10)

A$(15)

NizoviNizovi

•• RealReal

•• IntegerInteger

•• StringString

A(10)A(10)

A$(15)A$(15)

Page 6: Qbasic

Arithmetic OperatorsArithmetic OperatorsArithmetic Operators

Operator Example Meaning + A + B Add A to B - A - B Substract B from A * A * B Multiple A by B / A / B Divide A by B ^ A ^ B Calculate A to the power B

Operator Example MeaningOperator Example Meaning + A + B Add A to B+ A + B Add A to B - A - B - A - B Substract Substract B from AB from A * A * B Multiple A by B * A * B Multiple A by B / A / B / A / B Divide A by B Divide A by B ^ A ^ B Calculate A to the power B ^ A ^ B Calculate A to the power B

Page 7: Qbasic

Arithmetic Relational OperatorsArithmetic Relational OperatorsArithmetic Relational Operators

Operator Example Meaning = A = B A is equal to B < A < B A is less than B > A > B A is greater than B <=,=< A <= B A is less than or equal to B >=,=> A >= B A is greater than or equal to B <>, >< A <> B A is not equal to B

String Relational Operators- vrijedi isto ali za stringove -

Operator Example MeaningOperator Example Meaning = A = B = A = B A is equal to B A is equal to B < A < B < A < B A is less than B A is less than B > A > B A is greater than B > A > B A is greater than B <=,=< A <= B A is less than or equal to B <=,=< A <= B A is less than or equal to B >=,=> A >= B A is greater than or equal to B >=,=> A >= B A is greater than or equal to B <>, >< A <> B A is not equal to B<>, >< A <> B A is not equal to B

String Relational OperatorsString Relational Operators-- vrijedi isto ali za stringovevrijedi isto ali za stringove - -

Page 8: Qbasic

Hierarchy of operationsHierarchy of operationsHierarchy of operations

A = 15^ 2 + 12*2 + (35 * 8)

→ (35 * 8) = 280→ 15^ 2 = 225→ 12*2 = 24→ 225 + 24 = 249→ 249 + 280 = 529

A = 15^ 2 + 12*2 + (35 * 8)A = 15^ 2 + 12*2 + (35 * 8)

→→ (35 * 8) = 280(35 * 8) = 280→→ 15^ 2 = 22515^ 2 = 225→→ 12*2 = 2412*2 = 24→→ 225 + 24 = 249225 + 24 = 249→→ 249 + 280 = 529249 + 280 = 529

Page 9: Qbasic

Arrays - Nizovi (real, integer, string)Arrays - Arrays - Nizovi Nizovi (real, integer, string)(real, integer, string)

Program za unos deset varijabli:Deklaracija niza Ne koristi se nizDeklaracija niza Ne koristi se niz Input AFor i = 1 to 7 Input B Input A(i) Input CNext i Input D Input E Input F Input G

Page 10: Qbasic

Ulazno (Input) / Izlazne (Print)instrukcije

Ulazno Ulazno (Input) / (Input) / Izlazne Izlazne (Print)(Print)instrukcijeinstrukcije

I. NačinInput A, BC = A + BPrint C

II. NačinPrint “Unesi A”;Input APrint “Unesi B”;Input BC = A + BPrint C

III. NačinInput “Unesi A i B”;A,C = A + BPrint “A+B=”, C

Page 11: Qbasic

Ulazne instrukcije Read - Data - RestoreUlazne instrukcije Ulazne instrukcije Read - Data - RestoreRead - Data - Restore

Primjer 1:Read A,B,C,DPrint CData 2,3,4,5

Primjer 2:Read A,B,C,DPrint CData 2,3,4

Primjer 3:Read A,BPrint BRestoreRead CPrint CData 2,3,4

Page 12: Qbasic

Instrukcije grananja If … Than … ElseInstrukcije grananjaInstrukcije grananja If … Than … Else

Primjer 1:Input A,Bif A<B Then x = A*BElse x = A+BEndif

Primjer 2:Input A,Bif A<B Then x = A*B ElseIf A>0 Then x = A+B ElseIf A=0 Then x = A/BElse B = 0 x = A-BEndif

Page 13: Qbasic

Programske petlje Programske petlje 1/51/5

REM REM InstrukcijaInstrukcija IF ... THEN … ELSE IF ... THEN … ELSE CLSCLS n = 1n = 110 10 PRINT "Ana"PRINT "Ana" n = n + 1n = n + 1 IF n <= 5 THEN 10IF n <= 5 THEN 10

Page 14: Qbasic

Programske petlje Programske petlje 2/52/5

REMREM Petlja pomoću instrukcije Petlja pomoću instrukcije FOR ... FOR ...NEXTNEXT

FOR i = 1 to 5FOR i = 1 to 5 PRINT "Ana" PRINT "Ana"NEXT iNEXT i

Page 15: Qbasic

Programske petlje Programske petlje 3/53/5

DOi = i + 1print i

LOOP WHILE i<10

DO WHILE i< 10i = i + 1print i

LOOP

Page 16: Qbasic

Programske petlje Programske petlje 4/54/5

REM REM Umetnuta petlja pomoćuUmetnuta petlja pomoćuinstrukcijeinstrukcije

odluke odluke IF ... THEN IF ... THEN CLS CLS i = 1 i = 120 j = 120 j = 110 PRINT "Ana"10 PRINT "Ana" IF j < 3 THEN j = j + 1: GOTO 10 IF j < 3 THEN j = j + 1: GOTO 10 PRINT "*****" PRINT "*****" IF i < 3 THEN i = i + 1: GOTO 20 IF i < 3 THEN i = i + 1: GOTO 20

Page 17: Qbasic

Programske petlje Programske petlje 5/55/5

REM REM Umetnuta petlja pomoćuUmetnuta petlja pomoću FOR ... NEXT FOR ... NEXTCLSCLSFOR i = 1 TO 3FOR i = 1 TO 3 FOR j = 1 TO 3 FOR j = 1 TO 3 PRINT "Ana" PRINT "Ana" NEXT j NEXT j

PRINT "*****” PRINT "*****”NEXT iNEXT i

Page 18: Qbasic

FunkcijeFunkcijeFunkcije

•• TrigonometrijskeTrigonometrijske•• Funkcije sa stringovimaFunkcije sa stringovima•• Funkcije vremena Funkcije vremena i i datumadatuma•• Funkcije pretvorbeFunkcije pretvorbe•• OstaleOstale

Page 19: Qbasic

FunkcijeFunkcije - - TrigonometrijskeTrigonometrijske

REM REM FunkcijeFunkcije sin(x); sin(x); coscos(x)(x) CLS CLS pi = 3.141592 pi = 3.141592 FOR i = 0 TO 360 STEP 15 FOR i = 0 TO 360 STEP 15 PRINT i; "( PRINT i; "(stst) ";) "; PRINT " PRINT "coscos -> "; (COS(i * (pi / 180))); -> "; (COS(i * (pi / 180))); PRINT "sin -> "; (SIN(i * (pi / 180))) PRINT "sin -> "; (SIN(i * (pi / 180))) SLEEP (1) SLEEP (1) NEXT i NEXT i

Page 20: Qbasic

FunkcijeFunkcije - - Trigonometrijske Trigonometrijske

REM REM Funkcije atnFunkcije atn(x); tan(x)(x); tan(x) CLS CLS CONST PI = 3.141592654# CONST PI = 3.141592654# FOR i = 15 TO 180 STEP 15 FOR i = 15 TO 180 STEP 15 PRINT " PRINT "atnatn ->"; i; "( ->"; i; "(stst) "; ATN(TAN(PI / i))) "; ATN(TAN(PI / i)) PRINT "tan ->"; i; "( PRINT "tan ->"; i; "(stst) "; (TAN(i * (PI / 180)))) "; (TAN(i * (PI / 180))) NEXT i NEXT i

Page 21: Qbasic

FunkcijeFunkcije - - Funkcije sa stringovimaFunkcije sa stringovima

•• INSTRINSTR•• LEFT$LEFT$•• RIGHT$RIGHT$•• LENLEN•• MID$MID$•• VALVAL•• STRING$STRING$

•• SPCSPC•• SPACE$SPACE$•• LTRIM$LTRIM$•• RTRIM$RTRIM$

Page 22: Qbasic

FunkcijeFunkcije - - Funkcije vremena i datuma

•• DATE$DATE$•• TIME$TIME$

FunkcijeFunkcije - - Funkcije pretvorbe

• ASC - ASCII u decimalni ekvivalenmt• CHR$ - decimalni ekvivalent u ASCII• HEX$ - decimalni u HEX• OCT$ - decimalni u OCT

Page 23: Qbasic

Funkcije Funkcije - - OstaleOstale

•• ABSABS•• SGNSGN•• rnd rnd (randomize)(randomize)

Page 24: Qbasic

Funkcije Funkcije - - grafikagrafika

REM Boja SCREEN 7 FOR i% = 0 TO 15 COLOR i% PRINT i% REM SLEEP (2) NEXT i%

Rem Pravci i zvuk SCREEN 7 i = 110 xa = 20 * i ya = 10 xb = 700 - 50 * (i - 1) yb = 300 i = i + 1 IF xa > xb THEN STOP LINE (xa, ya)-(xb, yb) SOUND 100 * i, 10 GOTO 10

Page 25: Qbasic

Potprogrami Potprogrami - Subroutine- Subroutine

REM Poprogram - slučaj GOSUB CLS PRINT " i i*i" PRINT "-------------------" FOR i% = 1 TO 10 GOSUB Square NEXT i% ENDSquare: PRINT i%, i%*i% RETURN

Page 26: Qbasic

PotprogramiPotprogrami - Subroutine - Subroutine

REM Poprogram - slučaj DECLARE DECLARE SUB kvad (i%) CLS PRINT " i i*i " PRINT "------------------" FOR i% = 1 TO 10 kvad (i%) NEXT i% END SUB kvad (i%) PRINT i%, i% * i% END SUB

Page 27: Qbasic

Organizacija podatakaOrganizacija podataka- - datotekedatoteke u QBASIC-u - u QBASIC-u -

•• Temeljna znanja o organizaciji podataka uTemeljna znanja o organizaciji podataka udatoteke podatakadatoteke podataka

•• Podaci i procesiPodaci i procesi•• Jednostavni primjeri za unos i čitanjeJednostavni primjeri za unos i čitanje

podatakapodataka•• Program za unos i čitanje podataka sProgram za unos i čitanje podataka s

korištenjemkorištenjem potprograma potprograma

Page 28: Qbasic

Zašto datotekeZašto datoteke ? - ? - PrimjerPrimjer 1 1

1.1. Izvršite popis učenika Izvršite popis učenika u u razredu razredu..2.2. Unesite popis Unesite popis u u računalo računalo..3.3. Izvršite Izvršite SORT SORT po ancednom redu po ancednom redu..4.4. Tiskajmo izvještaj Tiskajmo izvještaj..•• PROBLEM !!!PROBLEM !!!•• DošaoDošao// otišao učenik otišao učenik ! !•• Što učinitiŠto učiniti ? ?•• OčitoOčito - - Ponoviti radnje po stavkama Ponoviti radnje po stavkama 1.; 2.; 3. i 4. 1.; 2.; 3. i 4.•• DA LI JE OVO UČINKOVITO ?? (DA LI JE OVO UČINKOVITO ?? (Sigurno nijeSigurno nije !) !)

Page 29: Qbasic

PrimjerPrimjer 2: 2: Osobni karton djelatnikaOsobni karton djelatnika

Podaci kojiPodaci koji se se vode vode - - evidentiraju evidentiraju u u osobnomosobnomkartonukartonu::

–– PrezimePrezime–– ImeIme–– Adresa stanovanjaAdresa stanovanja

•• Ulica Ulica i i brojbroj•• mjestomjesto

–– Jedinstveni matičbi broj građaninaJedinstveni matičbi broj građanina–– Telefonski brojTelefonski broj

Page 30: Qbasic

Temeljni pojmoviTemeljni pojmovi::

Datoteka (File): Organizirani skup podatakakoji se obrađuju kao cjelina i posprema umemoriju računalnog sustava.

Podatak (Date):Bilo koji predmet mišljenja kojimože prenijeti informaciju; Formaliziraniznakovni prikaz činjenica, pojmova i instrukcijapogodan za priopćavanje, interpretaciju iliobradu;

Page 31: Qbasic

Datoteka Datoteka - - sadržajsadržaj,, vrste vrste

Datoteka - Tekstualni sadržaj (DOC, TXT)Datoteka - Tekstualni sadržaj (DOC, TXT)Datoteka - Programska (BAS, PAS, FOR …)Datoteka - Programska (BAS, PAS, FOR …)Datoteka - Slika (WMF, GIF, BMP, ICO …)Datoteka - Slika (WMF, GIF, BMP, ICO …)Datoteka - Animacija (AVI, JPG, MOV ….)Datoteka - Animacija (AVI, JPG, MOV ….)Datoteka - Zvuk (WAW …)Datoteka - Zvuk (WAW …)Datoteka -Datoteka - Arhivska Arhivska (ZIP, ARJ, BAK …) (ZIP, ARJ, BAK …)

Datoteka čiji su sadržaj podaci je predmetDatoteka čiji su sadržaj podaci je predmetrasprava i analiza ovog dijela izlaganjarasprava i analiza ovog dijela izlaganja

Podatkovna datotekaPodatkovna datoteka

Page 32: Qbasic

Podatkovna datotekaPodatkovna datoteka

Definicija: Skup podataka koji mogu bitiDefinicija: Skup podataka koji mogu bitipredmet obrade jednog ili više programapredmet obrade jednog ili više programau nekom programskom jeziku.u nekom programskom jeziku.StrukturaStruktura::

DatotekaDatoteka(File) - (File) - Zapis Zapis (Record) - (Record) - PoljePolje(Field)(Field)

OrganizacijaOrganizacija- - UstrojUstroj: : Logička Logička i i fizičkafizičkaorganizacija podatakaorganizacija podataka..

Page 33: Qbasic

Podatkovna datoteka - StrukturaPodatkovna datoteka - Struktura

Antić

Jukić

Osobni karton

Prezime KuzmanićIme KuzmaJMBG 1203940380001Adresa Teslina 111Mjesto SplitTelefonski broj 123-231

Zapis

Polje

Page 34: Qbasic

Podatkovna datotekaPodatkovna datotekaOrganizacija- Ustroj: Logička i fizičkaOrganizacija- Ustroj: Logička i fizičkaorganizacija podataka.organizacija podataka.Logička organizacija: Skup logičko-Logička organizacija: Skup logičko-semantičkih zapisa koji se odnose nasemantičkih zapisa koji se odnose naodređeni niz pojmova iste vrste. Svakiodređeni niz pojmova iste vrste. Svakilogički zapis u datoteci ima isti opis i istilogički zapis u datoteci ima isti opis i istiredosljedredosljed polja podataka u svojoj polja podataka u svojojstrukturi.strukturi.Fizička organizacija: Skup fizičkih zapisaFizička organizacija: Skup fizičkih zapisana fizičkom nosiocu podataka (masovnomna fizičkom nosiocu podataka (masovnommemorijskommemorijskom mediju, radnoj memoriji) mediju, radnoj memoriji)

Page 35: Qbasic

Tipični procesi Tipični procesi - procedure - procedure zazaobradu podatakaobradu podataka

•• Unos podatakaUnos podataka•• Ažuriranje podatakaAžuriranje podataka

–– BrisanjeBrisanje–– PromjenePromjene

•• Prikazi podatakaPrikazi podataka–– IzvještajiIzvještaji–– TraženjaTraženja