7 Cas

You might also like

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 11

Nastavnik: as: 7

Datum: 17.10.2008. Razred: 9


Nastavna tema: Osnove programiranja i programski jezik QBASIC
Nastavna jedinica: RAUNAR DONOSI ODLUKE - IF - THEN - ELSE I GOTO NAREDBE
Cilj sata: osposobiti uenike za samostalno kodiranje kraih programa u QBASIC-u
Zadaci nastave:
o vaspitni shvatiti nain na koji raunar donosi odluke! nauiti pojam logikog uslova!
nauiti kako se algoritmi grananja kodiraju u programskom jeziku QBASIC
o "unk#ionalni razvijati logiko mi$ljenje! razvijati sposobnosti ra$lanjivanja problema
o vaspitni potisti#ati saradniki odnos u radu! marljivost! upornost i urednost
Nastavne metde: metode praktinog rada na raunaru! razgovora! pismenih radova! demonstra#ije!
#rtanja
Nastavna sredstva: prezenta#ija %%&! gra"o"olija
!"lici rada: "rontalni! grupni! individualni rad
#rtikulacija nastavn$ %asa:
'vod
%ostavljanje problema Sjetimo se problema
Vi ste ef raunovodstva u jednom velikom raunskom centru koje ima 10000 radnika. Direktor trai da mu u
roku pola sata kaete koji radnik ima najveu, a koji radnik najmanju platu, i kolika je prosjena plata po
radniku.
(oje algoritamske postupke moramo koristiti da bi rije$ili postavljeni zadatak) *+rananje i petlja,
%onovimo (ako smo u dijagramu tijeka opisali simbol za odluku) *-omb unutar kojeg se nalazi uslov! koji je
imao . izlaza / 0A ako je uslov istinit te 12 ako je uslov la3an4,
1ajava #ilja
0anas emo nauiti kako u programskom jeziku QBASIC mo3emo kodirati granaje! te jedan mogui nain za
petlju4 1akon toga moi ete na raunaru rije$iti zadani problem4 'poznat emo I5 / &621 / 27S2 naredbu4
Obrada novih sadr3aja
&rimjer ':
1api$imo program koji za dva upisana razliita broja ispisuje vei od ta dva broja44
-je$enje
algoritam:
poetak
upi$i A!B
ako je A8B
onda ispi$i A
inae ispi$i B
kraj

9
0A
12
uslov
dijagram toka:
%rogram
C7S
I1%'& :'pi$i dva razliita broja:! a! b
I5 a 8 b &621 %-I1& :;ei je:< a 27S2 %-I1& :;ei je:< b
'poznali smo novu naredbu () * +,-N nared"u4 Op$ti oblik I5 - &621 naredbe je sljedei
() uslv +,-N nared"a -./- nared"a
0slv koji slijedi iza I5 mora biti l$i%k$ ti1a! $to znai da na njega mo3emo uvijek tano odgovoriti da li je
istinit ili la3an4 Ako je uslov istinit! izvr$it e se nareda i!a THEN! a ako uslov ni"e istinit izvr$it e se
nareda i!a ELSE!
uslv
da ne

nared"a nared"a
iza +,-N iza -./-

Sada emo upoznati kako postupiti ako moramo provjeriti vi$e od jednog uslova4
1avikavati uenike na preglednom pisanju koda! tj4 slo3enu I5 naredbu nauiti pisati pregledno 27S2 ispod
&621! naredbe za pojedini uslova jedna ispod druge! uvueno ispod kljunih rijei &621 ili 27S241aredba
za kraj petlje 210 I5 pi$e se ispod kljune rijei I5 na koju se odnosi4
%rimjer =
' pro$lom primjeru pretpostavili smo da upisujemo dva razliita broja4 1api$imo program koji za zadana dva
broja ispisuje poruku je li a8b ili a>b ili a?b4 1pr4 za brojeve = i @ treba ispisati =>@! a za brojeve A i . treba
ispisati A8.4
-je$enje
Bitav program sastoji se od uitavanja dva broja koji se pamte na nepoznani#ama a i " i jedne slo3ene I5-
&621-27S2 naredbe4 %rvo treba provjeriti je li a8b4 Ako je taj uslov istinit ispisujemo poruku i program
zavr$ava4 Ako nije a8b! tada treba provjeriti je li a>b4 Opet ako je sada uslov istinit ispisujemo poruku4
CeDutim ako uslov a>b nije istinit onda mo3emo odmah ispisati poruku da je a?b *jer smo provjerili da nije
a8b niti a>b! pa je to jedina mogunost,4
.
12
S&A-&
A! B
A
(-AE
A8B
B
0A
%rika3imo tu naredbu shematski
a2"
DA NE
(s1is 1ruke: a3"
a2"
DA NE

(s1is 1ruke: (s1is 1ruke:
a3" a4"
' ovakvom sluaju koristimo tzv4 slo3enu I5 / &621 / 27S2 naredbu4 Ona se mo3e pisati u vi#e redova! ali
tada itava I5 naredba mora zavr$iti s kljunom rijei -ND () *$to znai kraj I5 naredbe,4
2vo programa
C7S
I1%'& :'pi$i dva broja:! a! b
I5 a 8 b &621
%-I1& a< :8:< b
27S2
I5 a > b &621
%-I1& a< :>:< b
27S2
%-I1& a< :?:< b
210 I5
210 I5
1aglasimo i sljedee ' slo3enoj I5 - &621 - 27S2 naredbi! naredbe iza &621 i 27S2 pi$u se u novi red4
Obrada novog gradiva
Sada emo upoznati novu naredbu koja nam u kombina#iji s I5- &621- 27S2 naredbom omoguava
kodiranje petlje4
%rimjer @
1api$imo program za ispis prvih .F prirodnih brojeva4
%risjetimo se postupka
94 Odaberimo jednu nepoznani#u koja e pamtiti koji broj trenutno ispisujemo4 1eka je to nepoznani#a
G4
.4 %rvo stavimo 9 u G4 *G?9,
H4 Ispi$emo vrijednost od G4 *%-I1& G,
=4 %oveamo vrijednost od G za 94 *G?GI9,
@4 Ako je G .F vraamo se na ispisivanje G *korak H4,! a inae zavr$imo program *jer znai da je G8.F
pa su svi brojevi od 9 do .F su ispisani,
0akle za ovaj posljednji korak potrebna nam je naredba koja nam omoguuje da odemo natrag na korak H4 &o
je naredba 5!+!4 (ljunu rije 5!+! slijedi broj koji oznaava red programa na koji se 3elimo vratiti4
algoritam
poetak
G?9
ispi$i G
G?GI9
ako je G .F idi na naredbu ispi$i G
kraj
H
dijagram toka:
%rogram
C7S
J ? 9
9F %-I1& J
J ? J I 9
I5 J >? .F &621 +O&O 9F
%rilikom pokretanja programa ispisat e se prvih .F prirodnih brojeva4
;je3banje
0a bi rije$ili problem s poetka asa *raunovodstvo, potrebno je znati napisati program za odreDivanje
najveeg broja4
%odijelimo uenike u grupe i potaknimo ih da sami slu3ei se knjigom rije$e sljedei primjer
%rimjer A4
1api$imo program koji za zadane prirodne brojeve odreDuje najvei meDu njima4 Brojevi se zadaju sve dok se
ne upi$e F4
Cetodom razgovora moramo provjeriti jesu li grupe dobro rije$ile zadatak4 %ritom inzistirati na logikom
povezivanju algoritma! dijagrama toka i programa4

algoritam:
poetak
najvei?F
upi$i J
ako je
J?F
onda ispi$i najvei! idi na kraj
inae ako je
=
S&A-&
0A
12
X 20
G?9
G?GI9
G
(-AE
J8najvei
onda najvei?J
vrati se na naredbu upi$i J
dijagram toka:
%rogram
C7S
najve#i ? F
9F I1%'& J
I5 J ? F &621 +O&O .F
I5 J 8 najve#i &621 najve#i ? J
+O&O 9F
.F %-I1& :1ajvei broj:< najve#i
0i"eren#irani rad
0o sada steenim znanjem ueni#i mogu rje$avati razliite programske zadatke4 Ovdje nam se ine zgodnim
razliiti zada#i s is#rtavanjem nizova raznobojnih znakova! npr4 zvjezdi#a koji tvore neke oblike4 1apredniji
ueni#i mogu rje$avati Kproblem raunovodstvaL! dok ostali mogu #rtati programe sa zvjezdi#ama4 I rad Ksa
zvjezdi#amaL treba di"eren#irati dok e jedni znati sami odmah kodirati program! drugima emo pomoi da
@
S&A-&
najvei?F
najvei?J
12
0A
J?F
(-AE
najvei
J
12
0A
J8najvei
prvo razrade algoritam i na#rtaju dijagram toka! a zatim kodiraju4 Cogue je da e biti i onih uenika koji e
samo prepisivati gotov program u raunaru i izvr$iti ga4
%rimjer M4
1api$imo program koji uitava prirodan broj 1>.= i #rta niz od 1 zvjezdi#a
jednu ispod druge u razliitim bojama! od prve do 1-te boje4 Ako je zadan
18.= treba ponoviti zadavanje broja 14
%rilikom izvr$enja programa dobit emo ovu sliku4
Opi$imo postupak
94 %rvo uitavamo prirodan broj 14 'koliko je 18 .H treba se vratiti na
ponovno uitavanje broja4
.4 %otrebna nam je jedna nepoznani#a na kojoj emo brojati koji red u
kojem trenutno ispisujemo zvjezdi#u4 1eka je to nepoznani#a "rj4
%ostavljamo broj ? 94
H4 Boja prve zvjezdi#e je 9 *plava,! boja druge zvjezdi#e je . *zelena,!
itd4 pa boju pojedine zvjezdi#e namje$tamo naredbom CO7O- broj4
=4 Ispisujemo zvjezdi#u u redu broj i 9F4 stup#u 4
@4 Broja redova "rj poveavamo za 94
A4 %rovjeravamo jesmo li ispisali sve redove4 'koliko je broj N1 *u QBASIC-u se znak N *manje ili
jednako, pi$e K>?L,! vraamo se na namje$tanje boje kojom e se ispisati sljedea zvjezdi#a4
%rogram
C7S
@ I1%'& 1
I5 1 8 .H &621 +O&O @
broj ? 9
9F CO7O- broj
7OCA&2 broj! 9F %-I1& :O:
broj ? broj I 9
I5 broj >? 1 &621 +O&O 9F
%rimjer P4 1api$imo program koji uitava prirodni broj 1 *1>.=, i
#rta 1 redova zvjezdi#a4 ' prvom redu ima jedna
zvjezdi#a! a u svakom sljedeem redu ima jedna
zvjezdi#a vi$e nego u predhodnom redu4 ;idi sliku
-je$enje primjera P4 treba izgledati ovako
Opi$imo postupak
94 (ao i u pro$lom primjeru uitavamo 1 i provjeravamo je li
18.H! pa ako jest vraamo se na ponovno uitavanje4
.4 Osim brojaa "rj za broj redova koje moramo ispisati!
potreban nam je broja 6 koji broji koliko smo trenutno
zvjezdi#a u pojedinom redu ispisali4
H4 Sada treba ispisati red zvjezdi#a4 ' prvom redu je jedna
zvjezdi#a! u drugom redu dvije! u treem tri itd4 0akle u
svakom redu je onoliko zvjezdi#a koliko trenutno pi$e na
nepoznani#i broj4
A
=4 %ostavljamo J ?F i ispisujemo zvjezdi#e jednu pokraj druge *%-I1& :O:<, sve dok je J>broj4
@4 (ad je J? broj znai da smo ispisali sve zvjezdi#e u tom redu i pokaziva treba preba#iti u drugi red4
&o radi naredba %-I1&4
A4 Ostaje poveati broja "rj za broj redova i provjeriti je li broj N1 kako se vratili na ispisivanje
sljedeeg reda4
%rogram
C7S
@ I1%'& n
I5 n 8 .H &621 +O&O @
broj ? 9
.F CO7O- broj
J ? F
9F %-I1& :O:<
J ? J I 9
I5 J > broj &621 +O&O 9F
broj ? broj I 9
%-I1&
I5 broj >? n &621 +O&O .F
%rimjer Q4
1api$imo program koji #rta piramidu
zvjezdi#a od 1 redova! 1 treba uitati
*1>.=,! na sljedei nain ' prvoj redu je
jedna zvjezdi#a! u sljedeem redu su tri
zjezdi#e! pa @ zvjezdi#a! itd4 Svaki red
obojan je drugom bojom redom poev$i od
plave4 *program FFHF=-9M4bas,4 ;idi sliku
-je$enje primjera Q4 treba izgledati
ovako
Opi$imo postupak
94 'itavamo 1 i provjeravamo je li 1> .= kao u pro$lim primjerima4
.4 %ostavljamo nepoznani#u za broj redova "rj broj?9 i boju prvog reda CO7O- broj
H4 Sada treba odrediti koliko zvjezdi#a ima u pojedinom redu4 Ako u prvom redu ima jedna zvjezdi#a! a u
drugom redu H! u treem @ zvjezdi#a! to su redom neparni brojevi! pa u retku "rj ima !roj"1
zvjezdi#a4
=4 Rvjezdi#a u prvom redu neka bude na sredini ekrana / =F stupa#! a prva zvjezdi#a u svakom sljedeem
redu pomie se jedno mjesto udesno! pa je 7OCA&2 broj! =F - *broj - 9,4
@4 Sada mo3emo ispisivati zvjezdi#e u pojedinom redu4 &reba nam nepoznani#a pomou koje emo
brojati koliko je zvjezdi#a ispisano u pojedinom redu4 Stavimo ispisano?F4
A4 Ispi$imo prvu zvjezdi#u %-I1& :O:<
M4 %oveajmo nepoznani#u koja broji koliko smo zvjezdi#a ispisali ispisano ? ispisano I 9
P4 Ako nismo ispisali sve zvjezdi#e u tom retku vraamo se na ispis sljedee zvjezdi#e! a ako smo ispisali
sve zvjezdi#e u pojedinom redu! prelazimo u novi red na ekranu *%-I1&,
Q4 'pravo smo ispisali #ijeli red! pa poveavamo nepoznani#u koja broji redove *broj?brojI9,
M
9F4 'koliko nismo ispisali 1 redaka treba se vratiti na liniju koja e odrediti boju novog reda4
%rogram
C7S
@ I1%'& :n?:! n
I5 n 8 .H &621 +O&O @
broj ? 9
.F CO7O- broj
imaih ? . O broj - 9
7OCA&2 broj! =F - *broj - 9,
ispisano ? F
9F %-I1& :O:<
ispisano ? ispisano I 9
I5 ispisano > imaih &621 +O&O 9F
%-I1&
broj ? broj I 9
I5 broj > n I 9 &621 +O&O .F
%rimjer 9F
1api$imo program koji zbraja prvih 1 prirodnih brojeva4 %rirodan broj 1 treba uitati! a ispisati zbroj4
Opi$imo postupak
1. Radajemo broj 14
2. %otrebne su nam dvije napoznani#e pomou nepoznani#e 6 pamtit emo koji broj trenutno
zbrajamo! a u nepoznani#i z"rj pamtit emo trenutni zbroj brojeva do broja J4 Objema
pridru3imo nulu4
'. %oveavamo J za 9 *J?JI9, i taj broj dodajemo nepoznani#i zbroj
*zbroj ? zbrojIJ,4
7. Ako je J>1 tada treba dodati sljedei broj nepoznani#i z"rj *nismo jo$ sve brojeve zbrojili,! a
inae treba ispisati vrijednost nepoznani#e z"rj.
2vo programa
C7S
I1%'& n
J ? F
zbroj ? F
9F J ? J I 9
zbroj ? zbroj I J
I5 J > n &621 +O&O 9F
%-I1& :Rbroj?:< zbroj
P
-je$enje Kproblema raunovodstvaL
algoritam:
poetak
broj?F
upi$i radni#i
upi$i plata
maJ?plata
min?plata
zbroj?plata
sve dok je broj>radni#i ponavljaj
upi$i plata
ako je
plata>CI1
onda CI1?plata
ako je
plata8CAG
onda CAG?plata
zbroj?zbrojIplata
broj?brojI9
kraj ponavljanja
prosjek?zbrojSradni#i
ispi$i CI1! CAG! prosjek
kraj
Q
dijagram toka:
9F
(-AE
MIN,
MAX,
prosjek
S&A-&
broj?9
CI1?plata
0A
12
broj>9FFFF
F
maJ?plata
min?plata
zbroj?plata
plata
12
0A
plata>CI1
12
0A
plata8CAG CAG?plata
zbroj?zbrojIplata
prosjek?zbrojS9FFFF
broj?brojI9
plata
%rogram
C7S
broj ? F
I1%'& :Broj radnika?:! radni#i
I1%'& plata
min ? plata
maJ ? plata
zbroj ? plata
broj ? broj I 9
9F I5 broj > radni#i &621
I1%'& plata
I5 plata > min &621 min ? plata
I5 plata 8 maJ &621 maJ ? plata
zbroj ? zbroj I plata
broj ? broj I 9
27S2
+O&O .F
210 I5
+O&O 9F
.F prosjek ? zbroj S radni#i
%-I1& :1ajvea plata je :< maJ
%-I1& :1ajmanja plata je:< min
%-I1& :%rosjena plata je :< prosjek
99
(za8i iz du9ana.

You might also like