You are on page 1of 16

DODATNA NASTAVA

INFORMATIKE Lovro Sindičić


UVOD U REKURZIJE
ŠTO RADI OVAJ PROGRAM?

to primjer :n :duljina
if :n<3 [stop]
repeat :n [fd :duljina rt quotient 360 :n]
end
ZADATAK
Napišite proceduru nizkvadrata :n :d koja crta :n kvadrata duljine :d
u nizu kao što je prikazano dolje na slici.
Primjer: nizkvadrata 4 50

Primjer: nizkvadrata 6 70
RJEŠENJE
to kvadrat :d
repeat 4 [fd :d rt 90]
end
to nizkvadrata :n :d
for [i 1 :n][kvadrat :d rt 90 fd :d lt 90]
end
PRIMJER - REKURZIJE
to crta :d
fd :d
crta :d-1
end
PRIMJER - REKURZIJE
to crta :d
fd :d
if :d<=0 [stop]
crta :d-1
end
PRIMJER U MATEMATICI
Je li ovaj broj djeljiv s 3?

234578912367
Suma znamenka je
57 Suma znamenka od Suma
broja 57 je 12 znamenaka
od broja 12
3 je djeljiv s 3 pa je početni broj djeljiv je s 3. je 3.
:s je različito od 0, pa idemo dalje
PRIMJER 1: :s je različito od 0, pa idemo
to kvadrat2 :d :s dalje(s=3)
if :s=0 [stop] :s je različito od 0, pa idemo
dalje(s=2)
fd :d rt 90
:s je različito od 0, pa idemo
kvadrat2 :d :s-1 dalje(s=1)
end

kvadrat2 100 4 :s =0 [stop]


1. ZADATAK
Napišite proceduru nizkvadrata :n :d koja crta :n kvadrata duljine :d
u nizu kao što je prikazano dolje na slici.
Zadatak riješi rekurzivno!
Primjer: nizkvadrata 4 50

Primjer: nizkvadrata 6 70
RJEŠENJE
to kvadrat :d
repeat 4 [fd :d rt 90]
end
to nizkvadrata :n :d
if :n = 0 [stop]
kvadrat :d
rt 90 fd :d lt 90
nizkvadrata :n-1 :d
end
2. ZADATAK
Učitelji su se u OŠ dogovorili da će djeci koja su nemirna
na satu zadati zadatak da zbrajaju brojeve od 1 do n.
Kako taj n može biti jako velik učitelji te traže za pomoć
da napišeš proceduru suma :n koja ispisuje zbroj prvih :n
prirodnih brojeva.

Primjer: suma 10 55
Primjer suma 20 210
RJEŠENJE – BEZ REKURZIJE

to suma1 :n
make "rezultat 0
for [i 1 :n][ make "rezultat :rezultat + :i]
pr :rezultat
end
RJEŠENJE - REKURZIJA
to suma3 :n
if :n=1 [op 1]
op :n + suma3(:n-1)
end

Postoji li treće rješenje?


3. ZADATAK
Napišite proceduru Meta :d :n gdje je :n broja slojeva mete,
a :d veličina kvadrata. U svakom sloju imamo 4 kvadrata
veličine dvostruko manje od prijašnjeg, a u prvom sloju
kvadrati su veličine :d.
Primjer meta 50 3

Primjer meta 100 4


RJEŠENJE

to meta :d :n
if :n=0 [stop]
repeat 4[kvadrat :d rt 90]
meta :d/2 :n-1
end

You might also like