125115684 informatika 7 8 dodatak prirucniku qbasic pdf
Post on 09-Oct-2015
93 Views
Preview:
DESCRIPTION
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
top related