napredni qbasic
Post on 31-Dec-2015
136 Views
Preview:
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