You are on page 1of 31

NAPREDNO PROGRAMIRANJE QBASIC

Ljubinko Vidanovi, prof.

ZADATAK
Zadatak je neki problem koji moramo rijeiti. Da bi neki zadatak uspjeno rijeili moramo ga dobro prouiti. Nakon toga trebamo napraviti plan rjeavanja zadatka. Ako je zadatak sloeniji, moramo ga rastaviti na manje dijelove, te svaki pojedinano rijeiti. Postoje trivijalni i netrivijalni zadaci (rjeenja).

ALGORITAM
Algoritam je naelno rjeenje nekog konkretnog problema (zadatka). ili Razrada postupka rjeenja odreenog problema nazivamo algoritam. - algoritam je i odreeni recept za pripremu jela - nastavna priprema - turistiki plan obilaska neke zemlje - putanja kretanja po ulicama kroz grad -putanja kretanja od mjesta do mjesta -itd.

DIJAGRAM TOKA
Dijagram toka je algoritam napisan u grafikom obliku i koristi se standardnim grafikim simbolima. Dijagram toka se naroito preporua kad se rjeavaju sloeni zadaci iz programiranja. Dijagram toka dijagram tijeka.

OSNOVNI SIMBOLI DIJAGRAMA TOKA


Poetak i kraj Unos podataka Ispis podataka
Odluivanje

Obrada podataka Poveznice

PROGRAMSKI JEZIK QBASIC


Programski jezik BASIC (Beginners Allpurpose Symbolic Instruction Code) QBASIC = QuickBASIC (Microsoft) Vii programski jezik namijenjen programerskim poetnicima Lak prijelaz s QBASIC-a na neki drugi programski jezik (npr. PASCAL,C++, COBOL, ..)

1. ZADATAK
Napii program koji e na zaslonu ispisati sve prirodne neparne brojeve od 1 do 100. Brojevi trebaju biti ispisani jedan iza drugoga. 1 3 5 7 9 ..95 97 99

DIJAGRAM TOKA ZADATAK 1.


POC X=1 NE

X < 100 DA

KRAJ

X
X =X + 2

1. RJEENJE
CLS FOR x = 1 TO 100 STEP 2 PRINT x; NEXT END

2. ZADATAK
Upii peteroznamenkasti broj. Ispii sve znamenke upisanog broja jednu ispod druge te nakon dva preskoena retka njihov zbroj. Pogledaj ulaz i izlaz. Primjer: ulaz izlaz 23402 2 3 4 0 2 ----11

ALGORITAM ZADATAK 2.

obrii zaslon upii peteroznamenkasti broj pretvori upisani broj u string varijablu (alfanumerik) petlju izvri pet puta na zaslon ispii od prve do pete znamenke jednu po jednu znamenku, svaku u svoj red pretvori znamenku u broj i dodaj u zbroj kraj petlje preskoi dva reda i nacrtaj crtu na zaslon ispii zbroj svih znamenki

2. RJEENJE
CLS INPUT Upii peteroznamenkasti broj: , a a$ = LTRIM$(STR$(a)) FOR x = 1 TO LEN(a$) PRINT MID$(a$, x, 1) zbr = zbr + VAL(MID$(a$, x, 1)) NEXT PRINT PRINT ___ PRINT zbr END

3. ZADATAK
Napii program koji e dopustiti upis peteroznamenkastog broja. Napravi kontrolu da broj znamenki ne bude vei ili manji od 5. Ako je vei ili manji od 5, treba napisati poruku Ponovite upis. i omoguiti upis novog broja. Kada se upie peteroznamenkasti broj, treba zbrojiti taj broj s brojem napisanim pomou istih znamenki obrnutim redom. Primjer: ulaz izlaz 23579 23579 + 97532 ----------121111

ALGORITAM ZADATAK 3.

obrii zaslon upii peteroznamenkasti broj provjeri logiku kontrolu na 5 znamenki pretvori upisani broj u string varijablu (alfanumerik) petlju izvri pet puta prebaci iz upisanog broja u novi string od pete do prve znamenke kraj petlje na zaslon ispii upisan broj na zaslon ispii dobiveni broj (obrnuti) na zaslonu nacrtaj crtu ispod brojeva zbroj ta dva broja ispii na zaslonu

3. RJEENJE
CLS start: INPUT Upii peteroznamenkasti broj: , a a$ = LTRIM$(STR$(a)) IF LEN(a$) < > 5 THEN GOTO start FOR x = LEN(a$) TO 1 STEP -1 b$ = b$ + MID$(a$, x, 1) NEXT PRINT ; a$ PRINT +; b$ PRINT -------- PRINT VAL(a$) + VAL(b$) END

4. ZADATAK
Upii jedno jednodimenzionalno polje x od 15 brojeva. Izrazi: najvei broj i njegovu poziciju u polju, najmanji broj i njegovu poziciju u polju.

2 3 4

6 7 8

9 10 11 12 13 14 15

4. RJEENJE
CLS DIM x(15) DIM p(15) FOR y = 1 TO 15 INPUT Broj > , x(y) p(y) = y NEXT FOR c = 1 TO 15 FOR cc = 1 TO 15 IF x(c) < x(cc) THEN SWAP x(c), x(cc): SWAP p(c), p(cc) NEXT NEXT PRINT x(1); p(1) PRINT x(15); p(15) END

5. ZADATAK
Kua ima 4 stana na svakom katu. Broj katova moe biti od 1 do 7. Nakon upisa broja katova (1-7) stanove treba popuniti velikim slovima nae abecede poevi od najvieg kata i ispisati ih na zaslonu. Primjer: za 3 kata ABC D D EFGH Nakon upisa slova jednog stanara treba ispisati sve njegove susjede gore, dolje, lijevo i desno.

Primjer: stanar D susjedi: B, F, ,

Primjer: stanar A susjedi: B,

5. RJEENJE
CLS INPUT Upii broj katova (1-7): , n DIM a$(n, 4) FOR x = 1 TO n FOR y = 1 TO 4 READ b$ a$(x, y) = b$ NEXT NEXT DATA A,B,C,,,D,,D,E,F,G,H,I,J,K,L DATA LJ,M,N,NJ,O,P,R,S,,T,U,V,Z,

NASTAVAK 5. ZADATKA
REM Ispis svih stanara FOR x = 1 TO n FOR y = 1 TO 4 PRINT a$(x, y); ; NEXT PRINT NEXT INPUT Upii stanara: , s$ REM Traenje stanara FOR x = 1 TO n FOR y = 1 TO 4 IF s$ = a$(x, y) THEN GOTO van NEXT NEXT

NASTAVAK 5. ZADATKA
van: REM Ispis susjeda od zadanog stanara IF x > 1 THEN PRINT a$(x - 1, y); IF x < n THEN PRINT a$(x + 1, y); IF y > 1 THEN PRINT a$(x, y - 1); IF y < 4 THEN PRINT a$(x, y + 1); END

ZADATAK TRIMETE

ALGORITAM Glavnog programaTRIMETE


obrii zaslon postavi grafiki zaslon 640 x 480 postavi varijablu x na 120. stupac postavi varijablu y na 240. redak petlju izvri tri puta priekaj jednu sekundu pozovi potprogram nacrtaj postavi radijus krunice na nulu postavi boju krunice na nulu poveaj stupac x za 200 kraj petlje

Glavni program TRIMETE


DECLARE SUB nacrtaj (x!, y!, r!, c!) CLS SCREEN 12 x = 120 y = 240 FOR i = 1 TO 3 SLEEP 1 CALL nacrtaj(x, y, r, c) r=0 c=0 x = x + 200 NEXT i

ALGORITAM Potprogram nacrtaj


preuzmi varijable x, y, r i c petlju izvri deset puta poveaj radijus r za 10 poveaj boju krunice c za 1 nacrtaj krunicu kraj petlje kraj potprograma

Potprogram nacrtaj
SUB nacrtaj (x, y, r, c) FOR j = 1 TO 10 r = r + 10 c=c+1 CIRCLE (x, y), r, c NEXT END SUB

ZADATAK NACRTATI STRUKTURNU FORMULU ALKANA

Napii program u QBASIC-u koji e omoguiti upis broja atoma ugljika (C) nekog alkana. Upisani broj ne smije biti manji od 1 i vei od 10. Nakon upisa broja atoma ugljika na zaslonu nacrtati strukturnu formulu alkana.

Glavni program
DECLARE SUB ugljik (r!, s!) CLS poc: INPUT "Upii broj atoma ugljika (C) u alkanu: ", c IF c < 1 OR c > 10 THEN PRINT "Pogrean upis!" GOTO poc END IF REM r = redak , s = stupac r = 10 s = 10 LOCATE r, s PRINT "H -"; FOR x = 1 TO c LOCATE r, s s = s + 4 CALL ugljik(r, s) NEXT x s = s + 2 LOCATE r, s PRINT "- H" END

Potprogram
SUB ugljik (r, s) r = r - 2 LOCATE r, s PRINT "H" r = r + 1 LOCATE r, s PRINT "|" r = r + 1 LOCATE r, s PRINT "C -" r = r + 1 LOCATE r, s PRINT "|" r = r + 1 LOCATE r, s PRINT "H" r = r - 2 END SUB

KRAJ