napredni qbasic

Download napredni QBASIC

Post on 31-Dec-2015

58 views

Category:

Documents

4 download

Embed Size (px)

TRANSCRIPT

  • Ljubinko Vidanovi, prof.NAPREDNO PROGRAMIRANJEQBASIC

  • ZADATAKZadatak 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).

  • ALGORITAMAlgoritam 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 TOKADijagram 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 SIMBOLIDIJAGRAMA TOKA

    Poetak i kraj

    Unos podataka

    Obrada podataka

    Ispis podataka

    Odluivanje

    Poveznice

  • PROGRAMSKI JEZIKQBASICProgramski jezik BASIC (Beginners All-purpose Symbolic Instruction Code)QBASIC = QuickBASIC (Microsoft)Vii programski jezik namijenjen programerskim poetnicimaLak 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.

  • 1. RJEENJE

    CLSFOR x = 1 TO 100 STEP 2 PRINT x;NEXTEND

  • 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 izlaz23402 2 3 4 0 2 ----- 11

  • ALGORITAM ZADATAK 2. obrii zaslonupii peteroznamenkasti brojpretvori upisani broj u string varijablu (alfanumerik) petlju izvri pet putana zaslon ispii od prve do pete znamenke jednu po jednu znamenku, svaku u svoj red pretvori znamenku u broj i dodaj u zbrojkraj petljepreskoi dva reda i nacrtaj crtuna zaslon ispii zbroj svih znamenki

  • 2. RJEENJE

    CLSINPUT Upii peteroznamenkasti broj: , aa$ = LTRIM$(STR$(a))FOR x = 1 TO LEN(a$) PRINT MID$(a$, x, 1) zbr = zbr + VAL(MID$(a$, x, 1))NEXTPRINTPRINT ___PRINT zbrEND

  • 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 izlaz23579 23579 + 97532 ----------- 121111

  • ALGORITAM ZADATAK 3. obrii zaslonupii peteroznamenkasti brojprovjeri logiku kontrolu na 5 znamenkipretvori upisani broj u string varijablu (alfanumerik) petlju izvri pet putaprebaci iz upisanog broja u novi string od pete do prve znamenkekraj petljena zaslon ispii upisan brojna zaslon ispii dobiveni broj (obrnuti)na zaslonu nacrtaj crtu ispod brojevazbroj ta dva broja ispii na zaslonu

  • 3. RJEENJE

    CLSstart:INPUT Upii peteroznamenkasti broj: , aa$ = LTRIM$(STR$(a))IF LEN(a$) < > 5 THEN GOTO startFOR x = LEN(a$) TO 1 STEP -1 b$ = b$ + MID$(a$, x, 1)NEXTPRINT ; a$PRINT +; b$PRINT --------PRINT VAL(a$) + VAL(b$)END

  • 4. ZADATAKUpii jedno jednodimenzionalno polje x od 15 brojeva. Izrazi:najvei 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. RJEENJE

    CLSDIM x(15)DIM p(15)FOR y = 1 TO 15 INPUT Broj > , x(y) p(y) = yNEXTFOR 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) NEXTNEXTPRINT 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 A B C D D E F G HNakon 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. RJEENJE CLSINPUT Upii broj katova (1-7): , nDIM a$(n, 4)FOR x = 1 TO n FOR y = 1 TO 4 READ b$ a$(x, y) = b$ NEXTNEXTDATA A,B,C,,,D,,D,E,F,G,H,I,J,K,LDATA LJ,M,N,NJ,O,P,R,S,,T,U,V,Z,

  • NASTAVAK 5. ZADATKA

    REM Ispis svih stanaraFOR x = 1 TO n FOR y = 1 TO 4 PRINT a$(x, y); ; NEXTPRINTNEXTINPUT Upii stanara: , s$REM Traenje stanaraFOR x = 1 TO n FOR y = 1 TO 4 IF s$ = a$(x, y) THEN GOTO van NEXTNEXT

  • NASTAVAK 5. ZADATKA

    van:REM Ispis susjeda od zadanog stanaraIF 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

    obrii zaslonpostavi grafiki zaslon 640 x 480postavi varijablu x na 120. stupacpostavi varijablu y na 240. redakpetlju izvri tri putapriekaj jednu sekundupozovi potprogram nacrtajpostavi radijus krunice na nulupostavi boju krunice na nulupoveaj stupac x za 200kraj petlje

  • Glavni program TRIMETEDECLARE SUB nacrtaj (x!, y!, r!, c!)CLSSCREEN 12x = 120y = 240FOR i = 1 TO 3 SLEEP 1 CALL nacrtaj(x, y, r, c) r = 0 c = 0 x = x + 200NEXT i

  • ALGORITAM Potprogram nacrtajpreuzmi varijable x, y, r i cpetlju izvri deset putapoveaj radijus r za 10poveaj boju krunice c za 1nacrtaj krunicukraj petljekraj potprograma

  • Potprogram nacrtajSUB nacrtaj (x, y, r, c)FOR j = 1 TO 10 r = r + 10 c = c + 1 CIRCLE (x, y), r, cNEXTEND SUB

  • ZADATAKNACRTATI 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.

  • DECLARE SUB ugljik (r!, s!)CLSpoc:INPUT "Upii broj atoma ugljika (C) u alkanu: ", cIF c < 1 OR c > 10 THEN PRINT "Pogrean 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"ENDGlavni 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 SUBPotprogram

  • KRAJ