napredni qbasic

Post on 31-Dec-2015

136 Views

Category:

Documents

10 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Ljubinko Vidanović, prof.

NAPREDNO NAPREDNO PROGRAMIRANJEPROGRAMIRANJE

QBASICQBASIC

NAPREDNO NAPREDNO PROGRAMIRANJEPROGRAMIRANJE

QBASICQBASIC

ZADATAK• Zadatak je neki problem koji moramo riješiti.• Da bi neki zadatak uspješno riješili moramo ga

dobro proučiti.• Nakon toga trebamo napraviti plan rješavanja

zadatka.• Ako je zadatak složeniji, moramo ga rastaviti

na manje dijelove, te svaki pojedinačno riješiti.

• Postoje trivijalni i netrivijalni zadaci (rješenja).

ALGORITAMAlgoritam je načelno rješenje nekog konkretnog

problema (zadatka). ili Razrada postupka rješenja određenog problema

nazivamo algoritam.• - algoritam je i određeni recept za pripremu jela• - nastavna priprema• - turistički 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

grafičkom obliku i koristi se standardnim grafičkim simbolima.

• Dijagram toka se naročito preporuča kad se rješavaju složeni zadaci iz programiranja.

• Dijagram toka – dijagram tijeka.

OSNOVNI SIMBOLIDIJAGRAMA TOKA

• Početak i kraj

• Unos podataka

• Obrada podataka

• Ispis podataka

• Odlučivanje

• Poveznice

PROGRAMSKI JEZIKQBASIC

• Programski jezik BASIC (Beginner´s All-purpose Symbolic Instruction Code)

• QBASIC = QuickBASIC (Microsoft)• Viši programski jezik namijenjen

programerskim početnicima• Lak prijelaz s QBASIC-a na neki drugi

programski jezik (npr. PASCAL,C++, COBOL, …..)

1. ZADATAK • Napiši 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.

X=1

X < 100

X

X =X + 2

POC

KRAJ

NE

DA

1. RJEŠENJE

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

2. ZADATAK Upiši peteroznamenkasti broj. Ispiši sve znamenke

upisanog broja jednu ispod druge te nakon dva preskočena retka njihov zbroj. Pogledaj ulaz i izlaz.

• Primjer:• ulaz izlaz• 23402 2 • 3 • 4• 0• 2 • -----• 11

ALGORITAM ZADATAK 2.

obriši zaslon• upiši peteroznamenkasti broj• pretvori upisani broj u string varijablu

(alfanumerik) • petlju izvrši pet puta• na zaslon ispiši od prve do pete znamenke• jednu po jednu znamenku, svaku u svoj red• pretvori znamenku u broj i dodaj u zbroj• kraj petlje• preskoči dva reda i nacrtaj crtu• na zaslon ispiši zbroj svih znamenki

2. RJEŠENJE

• CLS• INPUT ”Upiši 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 Napiši program koji će dopustiti upis

peteroznamenkastog broja. Napravi kontrolu da broj znamenki ne bude veći ili manji od 5. Ako je veći ili manji od 5, treba napisati poruku „Ponovite upis.” i omogućiti upis novog broja. Kada se upiše peteroznamenkasti broj, treba zbrojiti taj broj s brojem napisanim pomoću istih znamenki obrnutim redom.

• Primjer:• ulaz izlaz• 23579 23579• + 97532• -----------• 121111

ALGORITAM ZADATAK 3.

obriši zaslon• upiši peteroznamenkasti broj• provjeri logičku kontrolu na 5 znamenki• pretvori upisani broj u string varijablu (alfanumerik) • petlju izvrši pet puta• prebaci iz upisanog broja u novi string od pete do prve

znamenke• kraj petlje• na zaslon ispiši upisan broj• na zaslon ispiši dobiveni broj (obrnuti)• na zaslonu nacrtaj crtu ispod brojeva• zbroj ta dva broja ispiši na zaslonu

3. RJEŠENJE • CLS• start:• INPUT ”Upiši 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• Upiši jedno jednodimenzionalno

polje x od 15 brojeva. Izrazi:• najveći broj i njegovu poziciju u

polju,• najmanji broj i njegovu poziciju u

polju.– 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15X

4. RJEŠENJE• 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 Kuća ima 4 stana na svakom katu. Broj katova može

biti od 1 do 7. Nakon upisa broja katova (1-7) stanove treba popuniti velikim slovima naše abecede počevši od najvišeg kata i ispisati ih na zaslonu.

• Primjer: za 3 kata• A B C Č• Ć D Đ DŽ• E F G H• Nakon upisa slova jednog stanara treba ispisati sve

njegove susjede gore, dolje, lijevo i desno.

• Primjer: stanar D Primjer: stanar A• susjedi: B, F, Ć, Đ susjedi: B, Ć

5. RJEŠENJE • CLS• INPUT ”Upiši 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 ”Upiši stanara: ”, s$• REM Traženje 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

ZADATAKTRIMETE

ALGORITAM Glavnog

programaTRIMETE

• obriši zaslon• postavi grafički zaslon 640 x 480• postavi varijablu x na 120. stupac• postavi varijablu y na 240. redak• petlju izvrši tri puta• pričekaj jednu sekundu• pozovi potprogram nacrtaj• postavi radijus kružnice na nulu• postavi boju kružnice na nulu• povećaj 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 izvrši deset puta• povećaj radijus r za 10• povećaj boju kružnice c za 1• nacrtaj kružnicu• 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

ZADATAKNACRTATI STRUKTURNU

FORMULU ALKANA

Napiši program u QBASIC-u koji će omogućiti upis broja atoma ugljika (C) nekog alkana.

Upisani broj ne smije biti manji od 1 i veći od 10.

Nakon upisa broja atoma ugljika na zaslonu nacrtati strukturnu formulu alkana.

DECLARE SUB ugljik (r!, s!)CLSpoc:INPUT "Upiši broj atoma ugljika (C) u alkanu: ", cIF c < 1 OR c > 10 THEN PRINT "Pogrešan upis!" GOTO pocEND IFREM r = redak , s = stupacr = 10s = 10LOCATE r, sPRINT "H -";FOR x = 1 TO c LOCATE r, s s = s + 4 CALL ugljik(r, s)NEXT xs = s + 2LOCATE r, sPRINT "- H"END

Glavni program

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

Potprogram

KRAJ

top related