125115684 informatika 7 8 dodatak prirucniku qbasic pdf

Upload: zbrco-zbrcic

Post on 09-Oct-2015

88 views

Category:

Documents


3 download

DESCRIPTION

in

TRANSCRIPT

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    1/42

    QBASICzadaci s rjeenjima za 7. i 8. razred

    Darko Krznar

    PROFIL

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    2/42

    IzdavaProfil International, Zagreb, Kaptol 25

    Predsjednik Izdavakog savjetaDaniel deri

    Za izdavaa

    Andrija Peari

    Direktorica izdavatva i razvojaIvanica Knapi

    Glavna urednicaMarija Odak

    UrednicaSilvana Svetlii

    LektoricaVesna ondi

    NaslovnicaStudio 2M

    PrijelomGoran Vukainovi

    TisakProfil

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    3/42

    SADRAJ

    UVOD ..................................................................................................4

    PETLJE ................................................................................................5

    RAD SA STRINGOVIMA ......................................................................... 11

    JEDNODIMENZIONALNI NIZOVI .............................................................. 23

    DVODIMENZIONALNI NIZOVI ................................................................. 33

    POTPROGRAMI .................................................................................... 40

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    4/42

    QBASIC 7. i 8. razred4

    UVOD

    Potovane kolegice i kolege!Qbasic - zadatke s rjeenjimapodjednako smo namijenili uenicima sedmih i osmih razreda,i vama - njihovim uiteljicama i uiteljima informatike.Zadaci koji prate nastavni plan i program, uenicima e olakati usvajanje gradiva izprogramiranja u Qbasicu.Dodatni sadraji(nizovi, rad sa stringovima i sl.) korisna su pomo prilikom pripremanjauenika zanatjecanja iz informatike.Za sve smo zadatke pripremili i rjeenjapa ete lako provjeriti tonost i uspjenost rada svojihuenika.Trudili smo se i ovim dodatnim materijalom odgovoriti na potrebe kolegica i kolega ije ideje,

    potekle iz svakodnevnoga rada u razredu, oslukujemo i pretvaramo u uspjenu suradnju kojae se, vjerujemo, nastaviti i u godinama pred nama.

    Silvana Svetlii, prof.UREDNICA INFORMATIKE

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    5/42

    5PETLJE

    PETLJE

    Osim FOR-NEXT petljom, koja se naziva i petlja bez logikog uvjeta, dio programa u Qbasicumoemo viekratno ponoviti uz pomo neke petlje s logikim uvjetom. Takve petlje rabimo akounaprijed ne znamo koliko ponavljanja dijela programa elimo provesti. Postoje dvije takvepetlje: WHILE i DOLOOP.

    WHILE PETLJA

    WHILE

    WEND

    naredbe

    uvjetistinit WHILEpetlja samo na poetku provedbe provjerava

    zadani uvjet (logiki izraz). Petlja se provodi sve dokje uvjet istinit. Petlja zavrava kljunom rijeiWEND(WHILE END).

    DOLOOP

    Ova petlja s logikim uvjetom moe imati dvije inaice: DOLOOP WHILE i DOLOOPUNTIL.

    DO

    LOOP WHILE

    naredbe

    uvjetistinit

    Petlja se provodi sve dok je logiki uvjet istinit. Uvjetse ispituje na kraju petlje.

    uvjetistinit

    DO WHILE

    LOOP

    naredbe

    Petlja se provodi sve dok je logiki uvjet istinit. Uvjetse ispituje na poetku petlje.

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    6/42

    QBASIC 7. i 8. razred6

    DO

    LOOP UNTIL

    naredbe

    uvjet

    laan

    Petlja se provodi sve dok je logiki uvjetlaan. Uvjet se ispituje na kraju petlje.

    DO UNTIL

    LOOP

    naredbe

    uvjetlaan

    Petlja se provodi sve dok je logiki uvjet laan. Uvjet se ispituje na poetku petlje.

    ZADATAK 1.

    Izradi program kojim se uitavaju brojevi sve dok se ne unese 0. Program treba izraunati iispisati zbroj i srednju vrijednost unesenih brojeva.

    CLS

    DO

    INPUTUnesi broj:,i

    x=x+1

    br=br+i

    LOOP UNTIL i=0

    PRINTSrednja vrijednost:;br/(x-1)

    END

    U programu se rabi DOLOOP UNTILpetlja koja ispituje uvjet na kraju. Program se izvodi svedok je uvjet laan. Program se mogao izraditi i DOLOOP WHILEpetljom, ali bi tada uvjettrebao biti LOOP WHILE i0.

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    7/42

    7PETLJE

    ZADATAK 2.

    Izradi program kojim se uitava prirodni broj manji od 999999 i ispisuju njegove znamenke tese rauna njihov zbroj.

    CLS

    INPUTUnesi broj:,n&DO WHILE n&0

    z=n& MOD 10

    PRINT z

    zbr=zbr+z

    n&=INT(n&/10)

    LOOP

    PRINT zbr

    END

    Osnovni je problem u tom programu matematiki odrediti svaku znamenku iz broja. Budui dase ne zna unaprijed broj znamenaka u broju, rabi se DO WHILEpetlja koja uvjet ispituje napoetku tako da se u sluaju unosa broja 0 petlja nijednom ne izvodi. Znamenke u brojuuzimaju se na nain da se uzme zadnja znamenka kao ostatak kod dijeljenja unesenog broja s10. Nakon toga u liniji n&=INT(n&/10) poetnom broju se uklanja zadnja znamenka te sepostupak ponavlja sve dok ne doemo do prve znamenke. Varijabla n definirana je kao LONGINTEGERvarijabla (n&) jer se u uvjetima zadatka trai unos broja manjeg od 999999.

    Primjer:Unesi broj: 142671. LOOPznamenka 7, broj 1426

    2. LOOPznamenka 6, broj 1423. LOOPznamenka 2, broj 144. LOOPznamenka 4, broj 15. LOOPznamenka 1, broj 0

    Tip varijable Raspon brojeva Oznaka

    INTEGER -32768 do 32767 (16 bitova) %

    LONG INTEGER -2.147.483.648 do 2.147.483.647 &

    SINGLE 32-bitni broj s pominim zarezom !

    DOUBLE 64-bitni broj s pominim zarezom #

    ZADATAK 3.

    Izradi program kojim se uitava prirodni broj i ispisuju svi prosti brojevi manji od njega.

    CLS

    INPUTUnesi broj:,n

    x=2

    ind=0DO

    n=n-1

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    8/42

    QBASIC 7. i 8. razred8

    DO

    IF n MOD x=0 THEN ind=1

    x=x+1

    LOOP WHILE ind=0 AND x

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    9/42

    9PETLJE

    CLS

    INPUTUnesi stranicu najveeg kvadrata:,a

    INPUTUnesi za koliko se smanjuje stranica:,n

    SCREEN 12

    x1=0

    y1=0

    boja=1

    DO

    LINE(x1,y1) - (x1+a,y1+a),boja,BF

    x1=x1+a y1=y1+n

    a=a-n

    boja=boja+1

    IF boja=16 THEN boja=1

    IF 640-x1=20

    Varijable x1 i y1 koordinate su gornjega lijevog vrha kvadrata. Nakon crtanja svakoga kvadrataone se moraju poveati, i to x1 za veliinu stranice kvadrata, a y1 za vrijednost za koju sesmanjuje stranica. Petlja se vrti sve dok je stranica kvadrata vea ili jednaka 20, odnosno sve

    dok ima mjesta za crtanje cijeloga kvadrata.

    ZADATAK 6.

    Ivona ivi u deseterokatnici i svakodnevno se slui liftom. Odluila je izraditi program koji eraunati na kojemu je katu lift preoptereen, a na kojemu se ispraznio. Lift kree iz prizemlja iu njemu se na poetku nalazi odreeni broj ljudi. Lift se pomie i na svakom katu netko moeui ili izii. Lift je preoptereen ako je u njemu vie od estero ljudi, a kada nema nikoga,

    ispranjen je. Izradi program kojemu su ulazni podatci poetni broj ljudi, zatim broj kata, brojljudi koji su uli u lift i broj ljudi koji su izili iz lifta na odreenom katu. Program e stati ilikad lift postane preoptereen ili kada u liftu nema nikoga.

    Ulazni podatci:- poetni broj ljudi u liftu- broj kata (0

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    10/42

    QBASIC 7. i 8. razred10

    CLS

    INPUT Broj ljudi u liftu:, x

    DO

    INPUT Unesi kat:, k

    INPUT Ulo u lift:, u

    INPUT Izilo iz lifta:, i

    x = x + u - i

    IF x > 6 THEN PRINT Lift je preoptereen i stao je na ; k; .

    katu

    PRINT Broj ljudi u liftu:; x

    END

    END IF

    LOOP WHILE x 0

    PRINT Lift je prazan na ; k; .katu

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    11/42

    11RAD SA STRINGOVIMA

    RAD SA STRINGOVIMA

    String varijable znakovne su varijable slue za pohranu niza znakova. String varijabla usvojem nazivu ima znak $. Najbitnije naredbe za rad sa stringovima jesu:

    LEN daje broj znakova u stringuLEFT$(a$,n) s lijeve strane u stringu ispisuje n znakovaRIGHT$(a$,n) s desne strane u stringu ispisuje n znakovaMID$(a$,p,n) s mjesta p u stringu ispisuje n znakova.

    ZADATAK 1.

    Izradi program kojim se unosi reenica, a program ispisuje koliko rijei ima u reenici.

    CLS

    INPUTUnesi reenicu:,a$

    FOR x=1 TO LEN(a$)

    IF MID$(a$,x,1)= THEN br=br+1

    NEXT x

    PRINTReenica ima ;br+1; rijei.

    Broj rijei u reenici moe se ustanoviti na osnovi broja razmaka, broj rijei je za jedan vei odbroja razmaka. Unutar FOR-NEXTpetlje naredbaMID$uzima znak po znak u reenici iprovjerava je li znak razmak. Kada se petlja izvede, varijabla br ima ukupan broj razmaka. Brojrijei je br uvean za 1.

    ZADATAK 2.

    Izradi program kojim se unosi rije i ispisuje na sredini zaslona u etiri smjera.

    CLS

    INPUTUnesi rije:,a$

    LOCATE 12,40

    PRINT a$

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    12/42

    QBASIC 7. i 8. razred12

    Sljedea FOR-NEXT petlja ispisuje rije vertikalno prema gore

    FOR x=1 TO LEN(a$)

    LOCATE 13-x,40

    PRINT MID$(a$,x,1)

    NEXT x

    Sljedea FOR-NEXT petlja ispisuje rije horizontalno ulijevo

    FOR x=1 TO LEN(a$) LOCATE 12,41-x

    PRINT MID$(a$,x,1)

    NEXT x

    Sljedea FOR-NEXT petlja ispisuje rije vertikalno dolje

    FOR x=1 TO LEN(a$)

    LOCATE 11+x,40

    PRINT MID$(a$,x,1)

    NEXT x

    ZADATAK 3.

    Izradi program kojim e se u reenici odreeni znak zamijeniti nekim drugim. Potrebno jeunijeti reenicu, znak koji se mijenja i znak kojim emo zamijeniti postojei znak. Potrebno jeispisati novu reenicu te koliko je zamjena napravljeno.

    Primjer:Reenica: Danas je lijep i sunan dan.

    Znak koji mijenjamo: aZnak kojim emo ga zamijeniti: uREZULTAT: Dunus je lijep i sunun dun.

    CLS

    INPUTUnesi reenicu:,a$

    INPUTUnesi znak koji mijenjamo:,b$

    INPUTUnesi znak kojim emo mijenjati:,c$

    FOR x=1 TO LEN(a$)

    IF MID$(a$,x,1) = b$ THEN

    n$=n$+c$

    br=br+1 ELSE

    n$=n$+MID$(a$,x,1)

    END IF

    NEXT x

    PRINT n$

    PRINTBroj zamjena:;br

    Nova se reenica formira u varijabli n$. Ako pronaemo znak koji elimo mijenjati, umjestonjega stavljamo znak u varijabli c$.

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    13/42

    13RAD SA STRINGOVIMA

    ZADATAK 4.

    Napii program kojim se unosi rije i ispisuje na sljedei nain:Unos: BASICIspis:B

    BA

    BAS

    BASI

    BASIC

    BASI

    BAS

    BA

    B

    CLS

    INPUTUnesi rije:,a$FOR x=1 TO LEN(a$)

    PRINT MID$(a$,1,x)

    NEXT x

    FOR x=LEN(a$) -1 TO 1 STEP -1

    PRINT MID$(a$,1,x)

    NEXT x

    Prva petlja ispisuje prvo slovo rijei, drugo slovo rijei, a druga petlja ispisuje obratno.

    ZADATAK 5.

    Napii program kojim se unosi ime i prezime, a ispisuju inicijali.Unos: Mala VelikaIspis: M.V.

    CLS

    INPUTUnesi ime i prezime:,a$

    PRINT LEFT$(a$,1);.;

    FOR x=2 TO LEN(a$) IF MID$(a$,x,1) = THEN p=x

    NEXT x

    PRINT MID$(a$,p+1,1);.

    U FOR-NEXTpetlji trai se praznina u unesenom stringu. Poloaj praznine pamti se u varijablip. Nakon toga ispisuje se znak koji se nalazi iza praznine jer je to prvo slovo prezimena.

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    14/42

    QBASIC 7. i 8. razred14

    OSTALE STRING NAREDBE

    ASC pretvara znak u njegov kod.Svaki znak potreban kod pisane komunikacije kodiran je za potrebe raunalaASCIIkodom(npr. A ima kod 65, a malo a 97).PRINT ASC(A) Rezultat: 65

    CHR$- pretvara kod u odgovarajui znak.PRINT CHR$(65) Rezultat: A

    UCASE$

    - sva slova u nizu pretvara u velika.

    LCASE$- sva slova u nizu pretvara u mala.

    VAL- pretvara niz znakova (string) u broj.a=VAL(a$)

    STR$pretvara broj u string.a$=STR$(a)Kod pretvaranja broja u string, funkcija STR$dodaje na poetku jedno prazno mjesto. Toprazno mjesto moe se ukloniti funkcijom LTRIM$koja s lijeve strane stringa brie svepraznine.

    INKEY$- vraa znak unesen s tipkovnice.

    ZADATAK 6.

    Izradi program kojim se unosi reenica. Program treba prebrojiti koliko je u reenici malih, akoliko velikih slova.

    CLS

    INPUTUnesite rije:,a$

    FOR x=1 TO LEN(a$)

    b$=MID$(a$,x,1)

    IF ASC(b$)

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    15/42

    15RAD SA STRINGOVIMA

    IF ASC(b$)

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    16/42

    QBASIC 7. i 8. razred16

    ZADATAK 10.

    Izradi program koji e za uneseni troznamenkasti broj odrediti je li mu zbroj prve i zadnjeznamenke jednak srednjoj. Ako jest, treba ispisati DA, a ako nije, treba ispisati NE i prvi veitroznamenkasti broj kojemu je zbroj prve i zadnje znamenke jednak drugoj.

    CLS

    INPUTUnesi troznamenkasti broj:,a$

    broj=VAL(a$)

    p=VAL(LEFT$(a$,1))

    s=VAL(MID$(a$,2,1))

    z=VAL(RIGHT$(a$,1))

    IF p+z=s THEN

    PRINT DA

    END

    ELSE

    PRINTNE FOR x=broj+1 TO 999

    z=x MOD 10

    i=INT(x/10)

    s=i MOD 10

    p=INT(i/10)

    IF p+z=s THEN

    PRINT x

    END

    END IF

    NEXT x

    END IFPRINTTakav broj ne postoji

    END

    Broj se unosi kao string te se izdvoje znamenke i provjeri uvjet iz zadatka. Ako uvjet nije istinitu FOR-NEXTpetlji, trai se prvi vei broj koji ima zadovoljen traeni uvjet. U petlji se brojevine pretvaraju u stringove, ve se rabi matematiki algoritam za izdvajanje znamenaka u brojutraenjem ostataka kod dijeljenja broja s 10. Nakon to se izdvoji zadnja znamenka, ona seuklanja i postupak se nastavlja.

    ZADATAK 11.

    Izradi program kojim se unosi jedan troznamenkasti broj i ispisuje se zbroj znamenaka u broju.Program potom treba ispisati prvi manji troznamenkasti broj s istim zbrojem znamenaka.

    CLS

    INPUTUnesi troznamenkasti broj:,a$

    broj=VAL(a$)

    p=VAL(LEFT$(a$,1))

    s=VAL(MID$(a$,2,1))

    z=VAL(RIGHT$(a$,1))

    zbr=p+s+z

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    17/42

    17RAD SA STRINGOVIMA

    PRINT zbr

    FOR x=broj-1 TO 100 STEP -1

    z=x MOD 10

    i=INT(x/10)

    s=i MOD 10

    p=INT(i/10)

    IF p+s+z=zbr THEN

    PRINT x END

    END IF

    NEXT x

    PRINTTakav broj ne postoji

    END

    Program je vrlo slian prethodnom zadatku.

    ZADATAK 12.

    Napii program koji na sredini zaslona ispisuje slovo M. Slovo M je potrebno pomicati pozaslonu s pomou W-gore, A-lijevo, S-dolje, D-desno. Program se prekida pritiskom na tipkuESC.

    CLS

    X=12

    Y=40

    LOCATE x,y

    PRINTMDO

    c$=INKEY$

    pomak slova prema gore

    IF c$=CHR$(119) THEN

    x=x-1

    IF x=0 THEN x=24

    CLS

    LOCATE x,y

    PRINTM

    END IF

    pomak slova prema doljeIF c$=CHR$(115) THEN

    x=x+1

    IF x=25 THEN x=1

    CLS

    LOCATE x,y

    PRINTM

    END IF

    pomak slova ulijevo

    IF c$=CHR$(97) THEN

    y=y-1

    IF y=0 THEN y=79

    CLS

    LOCATE x,y

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    18/42

    QBASIC 7. i 8. razred18

    PRINTM

    END IF

    pomak slova udesno

    IF c$=CHR$(100) THEN

    y=y+1

    IF y=80 THEN y=1

    CLS

    LOCATE x,y PRINTM

    END IF

    LOOP UNTIL c$=CHR$(27)

    ZADATAK 13.

    Potrebno je unijeti etveroznamenkasti broj. Broj je potrebno promijeniti tako da se parnimznamenkama broja doda jedan, a neparnima oduzme jedan. Ispisati zbroj znamenaka novoga

    broja.

    CLS

    INPUTUnesi etveroznamenkasti broj:,a$

    z1=VAL(LEFT$(a$,1))

    z2=VAL(MID$(a$,2,1))

    z3=VAL(MID$(a$,3,1))

    z4=VAL(RIGHT$(a$,1))

    IF z1 MOD 2=0 THEN z1=z1+1 ELSE z1=z1-1

    IF z2 MOD 2=0 THEN z2=z2+1 ELSE z2=z2-1

    IF z3 MOD 2=0 THEN z3=z3+1 ELSE z3=z3-1

    IF z4 MOD 2=0 THEN z4=z4+1 ELSE z4=z4-1PRINT z1;z2;z3;z4

    ZADATAK 14.

    Izradi program kojim se unesena rije ispisuje na nain da se prvi slog u rijei stavi na kraj. Prvislog u rijei zavrava prvim samoglasnikom. Ako je na prvome mjestu samoglasnik, tada sesamo prvo slovo prebacuje na kraj rijei.

    Unos: BASIC Unos:AEROBIKIzlaz: SICBA Izlaz: EROBIKACLS

    INPUT Unesi rije:, a$

    p$ = LEFT$(a$, 1)

    SELECT CASE p$

    CASE A, E, I, O, U

    GOTO 1

    CASE ELSE

    FOR x = 2 TO LEN(a$)

    b$ = MID$(a$, x, 1) IF b$ = A OR b$ = E OR b$ = I OR b$ = O OR

    b$ = U THEN

    p$ = p$ + b$

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    19/42

    19RAD SA STRINGOVIMA

    GOTO 1

    ELSE

    p$ = p$ + b$

    END IF

    NEXT x

    END SELECT

    1 PRINT RIGHT$(a$, LEN(a$) - LEN(p$)); p$

    ZADATAK 15.

    Izradi program kojim se unosi niz od najvie 10 znamenaka. Umjesto jedne znamenke unesenje znak X. Program treba pronai koliki mora biti X kako bi zbroj svih znamenaka bio najmanjimogui broj djeljiv s 10.

    Ulaz: 276X93Izlaz: 3CLS

    INPUT Unesi niz znamenaka:, niz$

    FOR x = 1 TO LEN(niz$)

    IF MID$(niz$, x, 1) X THEN zbr = zbr + VAL(MID$(niz$, x,

    1))

    NEXT x

    FOR x = zbr TO 100

    IF x MOD 10 = 0 THEN

    PRINT x - zbr

    END

    END IFNEXT x

    U programu se prvo zbroje sve vidljive znamenke. Nakon toga treba pronai prvi vei broj odtoga zbroja koji je djeljiv s 10. To se radi u FOR-NEXTpetlji koja se vrti od zbroja do 100.Kada se pronae prvi broj koji je djeljiv s 10, ispisuje se razlika toga broja i ukupnog zbroja tonam daje traenu znamenku X.

    ZADATAK 16.

    Izradi program kojim se unose dva troznamenkasta broja a i b. Program treba ispisati svebrojeve izmeu x i y koji se slijeva i zdesna jednako itaju.

    CLS

    INPUT Unesi 1.broj:, a

    INPUT Unesi 2.broj:, b

    FOR x = a TO b

    x$ = LTRIM$(STR$(x))

    FOR y = LEN(x$) TO 1 STEP -1

    n$ = n$ + MID$(x$, y, 1)

    NEXT y IF x$ = n$ THEN PRINT x$

    n$ =

    NEXT x

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    20/42

    QBASIC 7. i 8. razred20

    ZADATAK 17.

    Izradi program kojim se unosi niz znamenaka. Program treba ispisati koje se znamenkepojavljuju u nizu barem jedanput.Ulaz: 1213386Izlaz: 12386

    CLS

    INPUT Unesi niz znamenaka:, a$

    PRINT LEFT$(a$, 1);

    x = 1

    DO

    x = x + 1

    FOR y = x - 1 TO 1 STEP -1

    IF MID$(a$, x, 1) = MID$(a$, y, 1) THEN ind = 1

    NEXT y

    1 IF ind = 0 THEN PRINT MID$(a$, x, 1); ind = 0

    LOOP WHILE x 0 THEN FOR x = 1 TO LEN(a$) - LEN(b$)

    b$ = 0 + b$

    NEXT x

    END IF

    IF LEN(b$) - LEN(a$) > 0 THEN

    FOR x = 1 TO LEN(a$) - LEN(b$)

    a$ = 0 + a$

    NEXT x

    END IF

    zbrajanjeFOR x = LEN(a$) TO 1 STEP -1

    z1 = VAL(MID$(a$, x, 1))

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    21/42

    21RAD SA STRINGOVIMA

    z2 = VAL(MID$(b$, x, 1))

    z = z1 + z2 + o

    o = 0

    IF z < 10 THEN

    z$ = LTRIM$(STR$(z))

    n$ = n$ + z$

    ELSE

    z$ = LTRIM$(STR$(z)) z$ = RIGHT$(z$, 1)

    n$ = n$ + z$

    o = 1

    END IF

    z = 0

    NEXT x

    PRINT

    FOR x = LEN(n$) TO 1 STEP -1

    PRINT MID$(n$, x, 1);NEXT x

    Budui da se zbrajati moraju veliki brojevi, unosimo ih u string varijable. Nakon unosa prvo sevri provjera imaju li brojevi jednak broj znamenaka. Ako nemaju, broju koji ima manjeznamenaka, dodaju se vodee 0. Potom se u FORpetlji radi samo zbrajanje ime se formiranovi broj u varijabli n$. Na kraju se znamenke varijable n$ispiu u obratnom redoslijedu.

    ZADATAK 19.

    Izradi program kojim se unose vremena prve i druge vonje skijake slalomske utrke. Programtreba ispisati ukupno vrijeme. Unos je u obliku ss:ss gdje su prve dvije znamenke sekunde (00-59), a druge dvije znamenke stotinke (00-99). Ispis je u obliku mm:ss:ss(minute:sekunde:stotinke).Ulaz: 43:56 46:22Izlaz: 01:29:78

    CLS

    INPUT Unesi vrijeme 1.vonje:, v1$

    INPUT Unesi vrijeme 2.vonje:, v2$

    v1 = VAL(LEFT$(v1$, 2)) * 100 + VAL(RIGHT$(v1$, 2))

    v2 = VAL(LEFT$(v2$, 2)) * 100 + VAL(RIGHT$(v2$, 2))

    vu = v1 + v2

    IF vu > 6000 THEN

    PRINT 01:;

    os = vu - 6000

    os$ = LTRIM$(STR$(os))

    PRINT LEFT$(os$, 2); :;

    PRINT RIGHT$(os$, 2)

    ELSE vu$ = LTRIM$(STR$(vu))

    PRINT LEFT$(vu$, 2); :;

    PRINT RIGHT$(vu$, 2)

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    22/42

    QBASIC 7. i 8. razred22

    END IF

    Svako se vrijeme pretvara u stotinke te se potom vremena zbroje ime se dobije ukupno vrijemeu stotinkama. Ukupno vrijeme u stotinkama potom se pretvara u minute, sekunde i stotinke, azatim ispisuje.

    ZADATAK 20.

    Izradi program kojim se unosi adresa neke web-stranice. Program treba ispitati ispravnostunesene adrese. Adresa web-stranice ispravna je ako ne sadri hrvatske znakove , , , , iako ne sadri razmak. Ako adresa nije pravilna, potrebno je pogrjene znakove zamijenitiodgovarajuima i tako dobivenu adresu ispisati. Znakovi i zamjenjuju se sa c, znak sa s,znak sa d, znak sa z, a razmaknica minusom (-).Ulaz: www.veernji list.hrIzlaz:Adresa nije ispravna.www.vecernji-list.hr

    CLS

    INPUT Unesi web-adresu:, a$

    FOR x = 1 TO LEN(a$)

    b$ = MID$(a$, x, 1)

    IF ASC(b$) = 32 THEN

    n$ = n$ + -

    b = b + 1

    ELSEIF b$ = OR b$ = THEN

    n$ = n$ + c

    b = b + 1 ELSEIF b$ = THEN

    n$ = n$ + s

    b = b + 1

    ELSEIF b$ = THEN

    n$ = n$ + d

    b = b + 1

    ELSEIF b$ = THEN

    n$ = n$ + z

    b = b + 1

    ELSE

    n$ = n$ + b$ END IF

    NEXT x

    IF b = 0 THEN PRINT Adresa je ispravna

    IF b 0 THEN

    PRINT Adresa nije ispravna

    PRINT Broj greaka:; b

    PRINT Ispravna adresa:; n$

    END IF

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    23/42

    23JEDNODIMENZIONALNI NIZOVI

    JEDNODIMENZIONALNI NIZOVI

    Nizovima se kod programiranja koristimo kada radimo s veim skupinama slinih podataka, npr.imena uenika istog razreda, ocjene po predmetima za pojedinog uenika i sl. U navedenimsluajevima, kada se ne bismo koristili nizovima, morali bismo u programu rabiti mnogovarijabla razliitih naziva. Niz u BASIC-u definiramo naredbom DIMiza koje navodimo nazivniza i broj lanova niza.

    Na primjer:DIMa(20) numeriki niz s 20 elemenata (a(1), a(2), ...a(20))DIMa(10)AS STRINGili DIMa$(10) string niz s 10 mjesta

    Niz moemo zamisliti i kao tablicu koja ima jedan red i odreeni broj polja. Svako polje ima svojindex broj koji predstavlja polje.

    a(1) a(2) a(3) a(18) a(19) a(20)

    5 21 13 22 2 32

    Takav niz u kojemu je indeks samo jedan broj, naziva se jednodimenzionalni niz.Jednodimenzionalni niz popunjavamo u jednoj FOR-NEXTpetlji:

    DIM a(10)

    FOR x=1 TO 10

    INPUT a(x)

    NEXT x

    Na slian nain se i ispisuje:FOR x=1 TO 10

    PRINT a(x)

    NEXT x

    Jednodimenzionalni niz moe se i sortirati u dvije ugnijeene FOR-NEXTpetlje, i to urastuem ili padajuem redoslijedu.Primjer sortiranja u padajuem redoslijedu:

    FOR x=1 TO a-1

    FOR y=x+1 TO a

    IF a(y)>a(x) THEN SWAP a(y), a(x)

    NEXT y

    NEXT x

    Vanjska FOR-NEXTpetlja vrti se do broja lanova niza umanjenoga za jedan, a unutarnja odbrojaa u prvoj petlji uveanoga za jedan do broja lanova niza. Ako je sljedei lan niza veiili manji od prethodnoga, radi se zamjena vrijednosti naredbom SWAP. Svaki put kad se izvrtiunutarnjaFOR-NEXTpetlja, dobije se jedan lan sortiranog niza (najvei ili najmanji).

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    24/42

    QBASIC 7. i 8. razred24

    ZADATAK 1.

    Izradi program kojim se unosi n brojeva i ispisuje:- najvei broj- najmanji broj- niz sortiran po veliini od najveega prema najmanjemu- broj parnih i neparnih lanova niza.

    CLS

    INPUTUnesi broj lanova niza:,a

    DIM niz(a)

    Popunjavanje niza i provjera parnih i neparnih lanova

    FOR x=1 TO a

    INPUTUnesi broj:;niz(x)

    IF niz(x) MOD 2=0 THEN p=p+1 ELSE n=n+1

    NEXT x

    Sortiranje niza

    FOR x=1 TO a-1

    FOR y=x+1 TO a

    IF niz(y)>niz(x) THEN swap niz(y),niz(x)

    NEXT y

    NEXT x

    Ispis sortiranog niza

    FOR x=1 TO a

    PRINT niz(x);

    NEXT x

    PRINTPRINTNajvei broj u nizu:;niz(1)PRINTNajmanji broj u nizu:;niz(a)PRINTParnih brojeve u nizu:;pPRINTNeparnih brojeva u nizu:;n

    ZADATAK 2.

    Izradi program kojim se unosi n imena. Program treba ispisati niz imena sortiranih poabecedi.

    CLS

    INPUTUnesi broj imena:,n

    DIM ime$(n)

    Unos imena u niz

    FOR x=1 TO n

    INPUTUnesi ime:; ime$(x)NEXT x

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    25/42

    25JEDNODIMENZIONALNI NIZOVI

    Sortiranje niza imenaFOR x=1 TO n-1

    FOR y=x+1 TO n

    IF ime$(y)

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    26/42

    QBASIC 7. i 8. razred26

    ULAZNI PODATCI: broj elemenata niza elementi prvoga niza elementi drugoga niza.

    RB ULAZ IZLAZ

    1. 5

    1,42,34,9,15

    32,28,4,67,2

    1,9,15,34,42

    101

    67,32,28,4,2

    133

    68,41,43,38,44

    150

    84

    IZLAZNI PODATCI: sortiran prvi niz

    zbroj elemenata prvoga niza sortiran drugi niz zbroj elemenata drugoga niza novi niz zbroj parnih i neparnih elemenata novoga niza.

    CLS

    INPUTUnesi broj lanova niza:,n

    DIM niz1(n), niz2(n), niz3(n)

    Unos elemenata prvoga niza

    PRINT 1.NIZFOR x=1 TO n

    INPUTUnesi broj:,niz1(x)

    zbr1=zbr1+niz1(x)

    NEXT x

    Unos elemenata drugoga niza

    PRINT2.NIZ

    FOR x=1 TO n

    INPUTUnesi broj:,niz2(x)

    zbr2=zbr2+niz2(x)NEXT x

    Sortiranje prvoga i drugoga niza

    FOR x=1 TO n-1

    FOR y=x+1 TO n

    IF niz1(y)niz2(x) THEN SWAP niz2(y), niz2(x)

    NEXT y

    NEXT x

    Formiranje treega niza i zbrajanje parnih i neparnih lanovaFOR x=1 TO n

    niz3(x)=niz1(x)+niz2(x)

    IF niz3(x) MOD 2 = 0 THEN zbrp=zbrp+niz3(x)

    IF niz3(x) MOD 2 = 1 THEN zbrn=zbrn+niz3(x)

    NEXT x

    Ispisi

    FOR x=1 TO n

    PRINT niz1(x);

    NEXT x

    PRINT

    PRINT zbr1

    FOR x=1 TO n

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    27/42

    27JEDNODIMENZIONALNI NIZOVI

    PRINT niz2(x);

    NEXT x

    PRINT

    PRINT zbr2

    FOR x=1 TO n

    PRINT niz3(x);

    NEXT x

    PRINTPRINT zbrp

    PRINT zbrn

    ZADATAK 5.

    Izradi program kojim se unosi jedna reenica (zavrava tokom). Potrebno je ispisati broj rijeiu reenici, svaku rije staviti u novi redak velikim poetnim slovom te reenicu sortiranu premabroju znakova u rijei (od najvee rijei prema najmanjoj). Najduu rije u reenici treba

    ispisati.

    ULAZNI PODATCI:- reenica (malim slovima).

    IZLAZNI PODATCI:- broj rijei u reenici- svaka rije ispisana u novi redak velikim poetnim slovom- ureena reenica (rijei su poredane po broju znakova od najvee prema najmanjoj).

    RB ULAZ IZLAZ1. Volim programirati u qbasicu. 4

    VolimProgramiratiUQbasicuprogramirati qbasicu volim u.

    CLS

    INPUTUnesi reenicu:,a$

    Odreivanje broja rijei radi dimenzioniranja niza

    FOR x=1 TO LEN(a$)

    IF MID$(a$,x,1) = THEN

    br=br+1

    END IF

    NEXT x

    DIM rijec$(br+1), broj(br+1)

    PRINT br+1

    Stavljanje rijei u niz

    FOR x=1 TO LEN (a$) IF MID$(a$,x,1)= OR MID$(a$,x,1)=. THEN

    b=b+1

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    28/42

    QBASIC 7. i 8. razred28

    rijec$(b)=r$

    broj(b)=LEN(r$)

    r$=

    ELSE

    r$=r$+MID$(a$,x,1)

    END IF

    NEXT x

    Ispis svake rijei niza u novi redak velikim poetnim slovom

    FOR x=1 TO b

    PRINT UCASE$(LEFT$(rijec$(x),1));

    PRINT MID$(rijec$(x),2,LEN(rijec$(x))-1)

    NEXT x

    Sortiranje rijei u nizu

    FOR x=1 TO b-1

    FOR y=x+1 to b

    IF LEN(rijec$(y))>LEN(rijec$(x)) THEN SWAP rijec$(y),

    rijec$(x) NEXT y

    NEXT x

    Ispis sortiranih rijei

    FOR x=1 TO b

    PRINT rijec$(x);

    PRINT

    NEXT x

    ZADATAK 6.

    Na Planici se odrava natjecanje u skijakim skokovima. Organizatori trebaju pomo priobraunavanju bodova. Izradi program koji e obraunavati bodove skakaima za izvedeni skok.Ukupan zbroj bodova rezultat je zbroja bodova za duinu skoka i bodova za stil. Bodovanje sevri prema sljedeem kriteriju:

    a) BODOVI ZA DUINU SKOKAZa skok na kritinu toku (120 metara) dobiva se 100 bodova. Za svakih 0.5 metara vie dobivase 1.2 boda, a za svakih 0.5 metara manje dobiva se 1.2 boda.

    b) BODOVI ZA STIL

    Stil skakaa ocjenjuje 5 sudaca ocjenama od 10 do 20 (ukljuujui i polovine boda 10.5; 11.5;12.5...). Najmanja i najvea ocjena se briu, a preostale tri zbrajaju.

    ULAZNI PODATCI:- duljina skoka- pet ocjena za stil.

    RB ULAZ IZLAZ

    1. 125.5

    16;17.5;17;18.5;18

    113.2

    52.5

    165.7

    2. 118

    19;18.5;18.5;18;19

    95.2

    56

    151,2

    IZLAZNI PODATCI:- bodovi za skok- bodovi za stil- ukupno bodova.

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    29/42

    29JEDNODIMENZIONALNI NIZOVI

    CLS

    INPUTUnesi duljinu skoka:,d

    Bodovi za duljinu skoka

    IF d=120 THEN bod1=100

    IF d>120 THEN bod1=100+(d-120)/0.5 * 1.2

    IF ds(x) THEN SWAP s(y), s(x)

    NEXT y

    NEXT x

    PRINT bod1

    bod2 = s(2)+s(3)+s(4)

    PRINT bod2PRINT bod1+bod2

    ZADATAK 7.

    Teniski me igraju igrai A i B. Igraju na dva dobivena seta. Rezultat svakoga seta prikazan jeu nizu (npr. AABAABAA) gdje A oznauje dobiveni gem igraa A, a B dobiveni gem igraa B.Ulazni niz moe imati najmanje 6, a najvie 13 znakova.

    Potrebno je ispisati ukupan broj odigranih gemova, ispisati rezultat seta, ispisati ukupnirezultat i pobjednika.

    ULAZNI PODATCI:- broj odigranih setova- za svaki set rezultat u nizu.

    RB ULAZ IZLAZ

    1. 2AAABAABAAAAAABA

    156:26:12:0A

    2. 3ABABABABABABBAAABBAABABBAABBABB

    316:76:33:61:2B

    IZLAZNI PODATCI:- ukupan broj odigranih gemova- rezultat svakoga seta

    - ukupan rezultat- ime pobjednika.

    CLS

    INPUT Broj setova:;n

    DIM a$(n)

    Unos rezultata po setovima

    FOR x=1 TO n

    INPUTRezultat ;x;. seta:,a$(x)

    brg=brg+LEN(a$(x))

    NEXT x

    PRINT brg

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    30/42

    QBASIC 7. i 8. razred30

    Analiza rezultata po setovima

    FOR x=1 TO n

    FOR y=1 TO LEN(a$(x))

    IF MID$(a$(x),y,1) = A THEN a=a+1 ELSE b=b+1

    NEXT y

    PRINT a;:;b

    IF a>b THEN sa=sa+1 ELSE sb=sb+1

    a=0b=0

    NEXT x

    PRINT sa;:;sb

    IF sa>sb THEN PRINT A ELSE PRINT B

    ZADATAK 8.

    Izradi program kojim se unosi niz slova te jedno ime. Program treba provjeriti moe li seuneseno ime dobiti unesenim nizom slova. Jedno slovo u unesenom nizu moe se rabiti samo

    jedanput.Unos:ACRBNEIOK Unos:ABDEINIme: BRANKO Ime: ANAIzlaz: Mogue je sloiti ime. Izlaz: Nije mogue sloiti ime.

    CLS

    INPUTUnesi niz slova:,niz$

    INPUTUnesi ime:;ime$

    DIM n$(LEN(niz$))

    Upisivanje slova iz unesenoga niza u jednodimenzionalni niz

    FOR x=1 TO LEN(niz$)

    n$(x)=MID$(niz$,x,1)

    NEXT x

    FOR x=1 TO LEN (ime$)

    s$=MID$(ime$,x,1)

    FOR y=1 TO LEN(niz$)

    IF s$=n$(y) THEN

    br=br+1 n$(y)=

    END IF

    NEXT y

    NEXT x

    IF LEN(ime$)=br THEN PRINTMogue je sloiti ime ELSE PRINTNije

    mogue sloiti ime

    U programu se prvo izdvoje sva slova iz prvoga niza u niz. Budui da se slovo u nizu moe samojedanput koristiti u slaganju imena, potrebno je svako pronaeno slovo obrisati. To se radi udvije ugnijeene FOR petlje. Kad se slovo imena pronae u nizu slova, to se slovo brie iz niza(na njegovo se mjesto stavlja praznina) te se broja br. poveava za 1. Ako je broja br na kraju

    jednak broju znakova u unesenom imenu, mogue je iz zadanoga niza znakova sloiti zadanoime.

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    31/42

    31JEDNODIMENZIONALNI NIZOVI

    ZADATAK 9.

    Izradi program kojim se unosi binarni broj. Program treba uneseni binarni broj pretvoriti udekadski.

    Ulaz: 10011

    Izlaz: 19

    CLS

    INPUT Unesi binarni broj:, b$

    DIM b(LEN(b$))

    FOR x = 1 TO LEN(b$)

    b(x) = VAL(MID$(b$, x, 1))

    NEXT x

    p = LEN(b$) - 1

    FOR x = 1 TO LEN(b$) zbr = zbr + b(x) * 2 ^ p

    p = p - 1

    NEXT x

    PRINT zbr

    U ovom se zadatku prvo u niz izdvoje sve binarne znamenke. Budui da je za pretvaranjebinarnog broja u dekadski binarni broj potrebno rastaviti na zbroj potencija broja 2, to se radiu FOR NEXTpetlji. Varijabla p predstavlja potenciju broja 2. Poetna potencija je za jedanmanja od broja znamenaka u broju.

    ZADATAK 10.

    Ivan je velik zaljubljenik u rukomet i oboava pratiti hrvatsku reprezentaciju. Na svakojutakmici vodi vlastitu evidenciju golova est ponajboljih igraa: Lackovia, Balia, Dombe,prema, Vorija i Metliia. Kad igra zabije gol, Ivan zapisuje poetno slovo njegova imena. Akoigra uzastopno postigne nekoliko golova, tada prvo zapisuje broj golova, a zatim poetnoslovo imena igraa. Izradi program kojim se unosi niz u kojemu se mogu pojaviti slova L, B, D,, V i M te brojke 2-9. Program treba ispisati koliko je pojedini igra zabio golova. U nizu se ne

    smiju ispisati igrai koji nisu dali niti jedan gol.

    Ulaz: 3LBVL2VD

    Izlaz:L 4

    B 1

    V 3

    2

    D 1

    CLS

    INPUT Unesi niz:, a$

    DIM ime$(6), gol(6)

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    32/42

    QBASIC 7. i 8. razred32

    ime$(1) = L: ime$(2) = B: ime$(3) = V: ime$(4) = M: ime$(5) =

    : ime$(6) = D

    FOR x = 1 TO LEN(a$)

    b$ = MID$(a$, x, 1)

    provjera da li je izdvojeni znak broj

    IF ASC(b$) < 65 THEN

    bg = VAL(b$)

    ig$ = MID$(a$, x + 1, 1) FOR y = 1 TO 6

    IF ig$ = ime$(y) THEN gol(y) = gol(y) + bg

    NEXT y

    x = x + 1

    ELSE

    FOR y = 1 TO 6

    IF b$ = ime$(y) THEN gol(y) = gol(y) + 1

    NEXT y

    END IF

    NEXT x

    FOR x = 1 TO 6 IF gol(x) = 0 THEN GOTO 1

    PRINT ime$(x), gol(x)

    1 NEXT x

    Prvo se u polje sa 6 elemenata unesu poetna slova imena igraa. Zatim se u ulaznome nizuuzima znak po znak. Ako je uzeti znak znamenka (imaASCIIkod manji od 65), ta se znamenkapretvara u broj i pribraja ukupnom broju golova za odreenog igraa, a potom se jedan znakpreskae. Ako uzeti znak nije broj, tada se ukupan zbroj golova za nekog igraa poveava za1.

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    33/42

    33DVODIMENZIONALNI NIZOVI

    DVODIMENZIONALNI NIZOVI

    Dvodimenzionalni niz je niz koji ima indeks s dva lana (dvije dimenzije). Moe se zamisliti kaotablica s odreenim brojem redova i stupaca. Dvodimenzionalni niz jo se naziva matrica.Takoer se definira naredbom DIM, npr. DIMa(5,4).Na taj smo nain definirali dvodimenzionalni niz od 5 redova i 4 stupca.

    1. stupac 2. stupac 3. stupac 4. stupac

    1. red 10 13 44 34

    2. red 5 2 33 85

    3. red 12 55 22 33

    4. red 11 32 11 65

    5. red 34 24 1 67

    Prvi lan indeksa oznauje red, a drugi lan oznauje stupac.a(5,1) 34a(3,4) 34a(2,2) 2

    Nekim dvodimenzionalnim nizom sa r redova i s stupaca moemo zapamtiti r x s elemenata.Dvodimenzionalni niz koji ima jednak broj redova i stupaca, naziva se kvadratna matrica. Takavniz ima glavnu i sporednu dijagonalu.

    10 13 44 34

    5 2 33 85

    12 55 22 33

    11 32 11 65

    Glavna dijagonala (crvena boja) (1,1), (2,2), (3,3), (4,4)Sporedna dijagonala (uta boja) (1,4), (2,3), (3,2), (4,1)

    Elementi dvodimenzionalnoga niza uitavaju se u dvije ugnijeene FOR-NEXTpetlje.DIM a(r,s)

    FOR x=1 to r

    FOR y=1 TO s

    INPUT a(r,s)

    NEXT y

    NEXT x

    Ispis dvodimenzionalnoga niza takoer se radi dvjema ugnijeenim FOR-NEXTpetljama.DIM a(r,s)

    FOR x=1 to r

    FOR y=1 TO s

    PRINT a(r,s); NEXT y

    PRINT

    NEXT x

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    34/42

    QBASIC 7. i 8. razred34

    Naredba PRINTizmeuNEXT yiNEXT xomoguuje da se nakon ispisanoga prvog redaispis preseli u novi red.

    ZADATAK 1.

    Izradi program kojim se unosi broj redaka i stupaca dvodimenzionalnoga niza te se niz popuni

    brojevima. Program treba ispisati zbroj brojeva u svakom retku.

    CLS

    INPUT Broj redaka niza:, r

    INPUT Broj stupaca niza:, s

    DIM a(r, s)

    DIM red(r)

    popunjavanje niza

    FOR x = 1 TO r

    FOR y = 1 TO s

    INPUT a(x, y)

    NEXT y

    NEXT x

    ispis niza i raunanje zbroja po redcima

    FOR x = 1 TO r

    FOR y = 1 TO s

    PRINT a(x, y);

    zbr = zbr + a(x, y)

    NEXT y

    red(x) = zbr

    zbr = 0 PRINT

    NEXT x

    ispis zbrojeva

    FOR x = 1 TO r

    PRINT x;.; red(x)

    NEXT x

    ZADATAK 2.

    Izradi program kojim se unosi dimenzija kvadratne matrice te popuni niz brojevima. Programtreba ispisati zbroj glavne i sporedne dijagonale.

    CLS

    INPUT Dimenzija kvadratne matrice:, n

    DIM a(n, n)

    popunjavanje niza

    FOR x = 1 TO n

    FOR y = 1 TO n INPUT a(x, y)

    NEXT y

    NEXT x

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    35/42

    35DVODIMENZIONALNI NIZOVI

    ispis niza i raunanje zbroja dijagonala

    FOR x = 1 TO n

    FOR y = 1 TO n

    PRINT a(x, y);

    IF x = y THEN gl = gl + a(x, y)

    IF x + y = n + 1 THEN sp = sp + a(x, y)

    NEXT y

    PRINTNEXT x

    ispis zbrojevaPRINTGlavna dijagonala:, glPRINTSporedna dijagonala:, sp

    Budui da su indeksi elemenata na glavnoj dijagonali jednaki, elementi glavne dijagonale sezbrajaju kad su brojai x i y jednaki. Kod sporedne dijagonale zbroj indeksa uvijek je za jedanvei od dimenzije matrice.

    ZADATAK 3.

    Izradi program kojim se unosi broj redova i stupaca dvodimenzionalnoga niza te se nizpopunjava brojevima od 0 do 100. Potrebno je ispisati najvei i najmanji element niza te red istupac u kojemu se oni nalaze.

    CLS

    INPUT Broj redova niza:, r

    INPUT Broj stupaca niza:, sDIM a(r, s)

    min=99

    max=0

    popunjavanje niza

    FOR x = 1 TO r

    FOR y = 1 TO s

    INPUT a(x, y)

    IF a(x,y) >max THEN

    max=a(x,y)

    maxr=x

    maxs=y END IF

    IF a(x,y) < min THEN

    min=a(x,y)

    minr=x

    mins=y

    END IF

    NEXT y

    NEXT x

    PRINTNajvei element niza je ;max; i nalazi se u ;maxr;. redu i ;maxs;. stupcuPRINTNajmanji element niza je ;min; i nalazi se u ;minr;. redu i ;mins;. stupcu

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    36/42

    QBASIC 7. i 8. razred36

    ZADATAK 4.

    Uitaj poziciju figure lovca u ahu. Potrebno je prebrojiti na koliko polja lovac moe doi. Lovacse kree dijagonalno. ahovsko polje ima 8 redova i 8 stupaca.Unos: 3,5.Izlaz: 11.

    0 0 1 0 0 0 1 0

    0 0 0 1 0 1 0 0

    0 0 0 0 X 0 0 0

    0 0 0 1 0 1 0 0

    0 0 1 0 0 0 1 0

    0 1 0 0 0 0 0 1

    1 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    CLS

    DIM a(8,8)

    INPUTPozicija lovca:,r,s

    popunjavanja desno dolje

    y=s

    FOR x=r+1 TO 8

    y=y+1

    IF y>8 THEN GOTO 1

    a(x,y)=1NEXT x

    popunjavanje lijevo dolje

    1 y=s

    FOR x=r+1 TO 8

    y=y-1

    IF y=0 THEN GOTO 2

    a(x,y)=1

    NEXT x

    popunjavanje desno gore

    2 x=r

    FOR y=s+1 TO 8

    x=x-1

    IF x=0 THEN GOTO 3

    a(x,y)=1

    NEXT x

    popunjavanje lijevo gore

    3 x=r

    FOR y=s-1 TO 1 STEP -1 x=x-1

    IF x=0 THEN GOTO 4

    a(x,y)=1

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    37/42

    37DVODIMENZIONALNI NIZOVI

    NEXT y

    ispis i zbrajanje polja

    4 FOR x=1 TO 8

    FOR y=1 TO 8

    PRINT a(x,y);

    IF a(x,y) = 1 THEN br=br+1

    NEXT yPRINT

    NEXT y

    PRINT

    PRINT br

    Lovac se u ahu moe kretati dijagonalno u 4 smjera. U svako polje na koje moe doi, postavljase vrijednost 1. U svim je ostalim poljima vrijednost 0. Prilikom postavljanja jedinica trebapaziti da se ne prijee izvan dimenzija niza (8 x 8). Na kraju se samo prebroje jedinice.

    ZADATAK 5.

    Uitaj broj redova i stupaca za dvodimenzionalni niz te jednoznamenkasti broj i njegovupoziciju (red i stupac). Cijeli red i stupac u kojemu se nalazi broj, treba popuniti tim brojem.Unos:Dimenzije: 4,5Broj: 5Pozicija: 2,3

    0 0 5 0 0

    5 5 5 5 5

    0 0 5 0 0

    0 0 5 0 0

    CLS

    INPUT Dimenzija niza:, r, s

    DIM a(r, s)

    INPUT Unesi broj (1-9):, x

    INPUT Unesi poziciju broja:, r1, s1a(r1, s1) = x

    popunjavanje reda unesenim brojem

    FOR i = 1 TO s

    a(r1, i) = x

    NEXT i

    popunjavanje stupca unesenim brojem

    FOR i = 1 TO r

    a(i, s1) = x

    NEXT i

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    38/42

    QBASIC 7. i 8. razred38

    ispis popunjenog niza

    FOR i = 1 TO r

    FOR j = 1 TO s

    PRINT a(i, j);

    NEXT j

    PRINT

    NEXT i

    ZADATAK 6.

    Unesi dimenziju kvadratne matrice i popuni ju brojevima 1,2,3 do zadnjeg polja. Potom jepotrebno unijeti jedan broj (vei od 0, a manji ili jednak najveem broju upisanom u niz), aprogram treba ispisati susjede toga broja te njihov ukupan broj. Susjedi broja su brojevi koji senalaze u poljima iznad i ispod te lijevo i desno od zadanoga broja.Unos:

    1 2 3 4 5

    6 7 8 9 10

    11 12 13 14 15

    16 17 18 19 20

    21 22 23 24 25

    Dimenzija: 5Broj: 20Ispis:

    Susjedi: 15,19,25Zbroj: 59

    CLS

    INPUT Dimenzija kvadratne matrice:, n

    DIM a(n, n)

    1 INPUT Unesi broj:; b

    IF b < 1 OR b > n * n THEN

    PRINT POGRJEAN UNOS

    GOTO 1

    END IF

    popunjavanje niza brojevima

    FOR x = 1 TO n

    FOR y = 1 TO n

    br = br + 1

    IF br = b THEN

    r1 = x

    s1 = y

    END IF

    a(x, y) = br

    PRINT br;

    NEXT y

    PRINT

    NEXT x

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    39/42

    39DVODIMENZIONALNI NIZOVI

    traenje susjeda

    IF r1 - 1 0 THEN

    sus1 = a(r1 - 1, s1)

    PRINT sus1;

    zbr = zbr + sus1

    END IF

    IF r1 + 1

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    40/42

    QBASIC 7. i 8. razred40

    POTPROGRAMI

    Potprogrami nam slue kako bismo neki sloeniji program rastavili na manje dijelove kako bisvaki dio rjeavao neki problem. U tom sluaju postoji glavni program i jedan ili vie potprogramakoji se mogu pozvati iz glavnoga programa, i to nekoliko puta. Ako emo se koristitipotprogramom, potrebno ga je definirati naredbom DECLARESUBime_potprograma (a,b) napoetku programa. Iza imena programa navodimo ulazne varijable kojima pozivamopotprogram.Za pisanje potprograma piemo naredbu SUM ime_potprograma (a,b) nakon ega se otvaraprozor u kojemu piemo potprogram, a glavni nam program nestaje. U otvorenom prozoruimamo poetnu i zavrnu naredbu potprograma, a izmeu piemo ostale linije potprograma.Kada se zavri pisanje potprograma, pritiskom na tipku F2 otvara se prozor u kojemu vidimoglavni program i sve potprograme.

    SUBime_potprograma

    END SUB

    Potprogram iz glavnoga programa pozivamo naredbom CALLime_potprograma iza eganavodimo ulazne varijable kojima pozivamo potprogram. Kada se potprogram izvede, kontrolase prebacuje na glavni program, i to na liniju iza on s koje je pozvan potprogram.

    ZADATAK 1.

    Izradi program kojim se unose katete pravokutnoga trokuta. Program treba izraunati i ispisatihipotenuzu, i to s pomou potprograma.DECLARE SUBtrokut (a,b)

    CLS

    INPUTUnesi katete trokuta:,a,b

    CALL trokut (a,b)

    END

    SUB trokut (a,b)

    c=SQR(a*a+b*b)

    PRINT c

    END SUB

    ZADATAK 2.

    Izradi program kojim se unosi dekadski broj manji od 1000. Broj treba po elji pretvoriti ili ubinarni ili u hexadekadski, i to s pomou potprograma.DECLARE SUB binarni (n)

    DECLARE SUB hex (n)

    CLS

    INPUT Unesi broj:, n

    PRINT U koji brojevni sustav elite pretvoriti broj?

    PRINT 1.BINARNI

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    41/42

    41POTPROGRAMI

    PRINT 2.HEKSADEKADSKI

    INPUT i

    IF i = 1 THEN CALL binarni(n) ELSE CALL hex(n)

    END

    SUB binarni (n)

    DIM bin(10)

    DO i = i + 1

    bin(i) = n MOD 2

    n = INT(n / 2)

    LOOP WHILE n 0

    FOR y = i TO 1 STEP -1

    PRINT bin(y);

    NEXT y

    END SUB

    SUB hex (n)

    DIM h(10)

    DO

    i = i + 1

    h(i) = n MOD 16

    n = INT(n / 16)

    LOOP WHILE n 0

    FOR y = i TO 1 STEP -1

    IF h(y) = 10 THEN PRINT A;

    IF h(y) = 11 THEN PRINT B;

    IF h(y) = 12 THEN PRINT C;

    IF h(y) = 13 THEN PRINT D;

    IF h(y) = 14 THEN PRINT E;

    IF h(y) = 15 THEN PRINT F;

    IF h(y) < 10 THEN PRINT h(y);

    NEXT y

    END SUB

    ZADATAK 3.

    Izradi program kojim se unosi polumjer krunice. Program treba nacrtati niz koncentrinihkrunica kojima e polumjer biti manji za 5 sve dok polumjer ne postane manji od 10. Jedna sekrunica crta s pomou potprograma. Koncentrine krunice imaju sredite u istoj toki.

    DECLARE SUB krug (x, y, r)

    CLS

    INPUT Unesi polumjer krunice:, r

    SCREEN 12

    DO

    CALL krug(x, y, r)

    r = r - 5

    LOOP WHILE r >= 10

    END

  • 5/19/2018 125115684 Informatika 7 8 Dodatak Prirucniku Qbasic PDF

    42/42

    QBASIC 7. i 8. razred42

    SUB krug (x, y, r)

    CIRCLE (x, y), r

    END SUB

    ZADATAK 4.

    Izradi program kojim se unose dva broja. Program treba, s pomou potprograma, ispisati svakibroj, njegov kvadrat i kub.

    DECLARE SUB pot (x)

    CLS

    INPUT Unesi prvi broj:, a

    INPUT Unesi drugi broj:, b

    FOR x = a TO b

    CALL pot(x)

    NEXT x

    SUB pot (x)

    PRINT x, x * x, x * x * x

    END SUB