Transcript LOGO

METODIKA NASTAVE INFORMATIKE 1
1
PROGRAMSKI JEZIK LOGO
Zašto LOGO?
 Radi se o verziji jezika Lisp kreiranoj 1967. za upotrebu u
nastavi
 Jasan i jednostavan programski jezik
 Posebno prikladan i za učenje kako učiti
 Glavna karakteristika: kornjačina grafika (engl. turtle graphics)
 Grafičke naredbe su kratke i jednostavne – sve se može
nacrtati sa 7 osnovnih naredbi, no postoje i klasične naredbe
koordinatne grafike
 Ima i sve standardne naredbe/mogućnosti za programiranje,
uključivši liste, mogućnost rekurzivnih procedura isl.

2
OSNOVNA SVOJSTVA JEZIKA LOGO
LOGO je danas poznat kao interpretirani jezik, iako su
razvijene i neke verzije s compiler-om
 Zadaća: Interpretirani i kompilirani programski jezici
 Mogućnost interaktivnog rada jer ima mogućnost
zadavanja neposredno izvršivih naredbi
 Proceduralnost: program se može podijeliti u procedure
 Svaka definirana procedura postaje dijelom biblioteke
procedura (ne treba posebno uključivanje u program)
 Besplatni intepreter: MSW Logo

3
KORNJAČINA GRAFIKA
kornjačina
glava
Metoda programiranja vektorske grafike koristeći kursor
(kornjaču) u Kartezijevom koordinatnom sustavu
 Zadaća: Usporedba vektorske i rasterske grafike
 Kornjača ima 3 atributa: pozicija, orijentacija i pisaljka (koja
ima daljne atribute: boju, debljinu, spusti/digni)
 Kornjača je obično vizualizirana ili kao kornjača ili kao trokutić
– jasno je u kom smjeru gleda
 Često se koristi analogija: zamisli kornjaču kojoj je za rep
zakačena pisaljka – kako se kornjača miče, tako za sobom
ostavlja crtu
 Seminar: Uloga kornjače u učenju

(http://technologyhistory.blogspot.com/2007/05/logo-and-seymour-papert.html;
http://othes.univie.ac.at/5521/1/2009-06-09_9711007.pdf (str. 51-59))
4
POČNIMO CRTATI
Naredbe upisujemo u Commander
 CS = CLEARSCREEN – briše ekran i postavlja kornjaču u sredinu
 Skretanje ulijevo: LT = LEFT pa broj
 Skretanje udesno: RT = RIGHT
 Idi naprijed za određeni broj koraka: FD = FORWARD pa broj
 Idi natrag za određeni broj koraka: BK = BACK pa broj
 Zadatak 1. Nacrtajte kvadrat stranice 50 i sliku
 Zadatak 2. Kako biste pomoću
kornjačine grafike objasnili da puni
okret kornjače iznosi 360?
5

DALJNJI ZADACI
Zadatak 3. Nacrtajte jednakostranični trokut trokut
kojemu su sve stranice jednake duljine
 Zadatak 4. Nacrtajte sljedeće crteže…

6
Nacrtajte pravokutnik kojem je duljina veća od širine,
zakrivljenu crtu, npr. oblik puževe kućice,
pravilni n-terokut za n>5 po vlastitom izboru,
7
KAKO PRESKOČITI DIO?

PU = PENUP, PD = PENDOWN
8
BRISANJE
PE = PENERASE – kornjača će umjesto da piše brisati
 Npr.
 PE
 BK 50
 RT 90
 FD 50
 PPT

9
NIZ NAREDBI ČINI PROGRAM
Kako biste učenicima objasnili što je to programski jezik? A
što je to program?
 Naredba je poruka računalu da obavi određenu operaciju.
 Editor je prostor u koji prvo možemo upisati sve naredbe, a
tek onda ih izvršiti.
 EDIT “KVADRAT”:
 TO KVADRAT”

END
 Tako upisane naredbe – sve skupa – ostaju zapamćene te ih
možemo mijenjati, ili ponovno izvesti. Sve one skupa čine
program:
 Konačan niz naredbi razumljivih računalu zove se program.

10
PRVI PROGRAMI
Program počinje s TO ime, a završava s END
 Da bi se program izveo, treba izaći iz editora: pritiskom na tipku
ESC
 Program se pokreće tako da mu upišemo ime na komandnu
liniju
 Ime smije biti niz znakova (ne: hrvatska slova!)
 Dva različita programa moraju imati različita imena
 Napiši programe koji crtaju kvadrat, jednakostranični trokut i
pravilni šesterokut.
 Program se može pozivati u drugom programu – nacrtaj saće s 3
šesterokuta i kvadrat kojem su nad svakom stranicom nacrtani
jednakostranični trokuti

11
ZADACI
Itd. (zadaci str. 26/27 u Kniewald: Programski jezik LOGO)
12
OSNOVNE NAREDBE ZA RAD S KORNJAČOM
FD 100 – pomakni kornjaču naprijed za 100 koraka
 RT 90 – zaokreni kornjaču udesno za pravi kut
 LT 90 – zaokreni kornjaču ulijevo za pravi kut
 BK 100 – pomakni kornjaču natrag za 100 koraka
 PE – prebaci se u mod brisanja
 HOME – vrati kornjaču na početni položaj
 PU – podigni kornjačinu olovku od podloge
 PD – spusti olovku
 CS – očisti ekran
 HT – sakrij kornjaču
 ST – pokaži kornjaču
 REPEAT 3 [FD 100 LEFT 90] – ponovi naredbe u
zagradama triput

13
KRUŽNICA I KRUG
Kako biste nacrtali kružnicu koristeći samo dosad poznate
naredbe?
 Što pravilan mnogokut ima više stranica, to je sličniji kružnici
 Pravilni n-terokuti nastaju (primjerice) naredbom tipa REPEAT
n [FD a RT kut], gdje je n puta kut jednako 360
 Napišite program koji crta kružnicu. Zatim ga iskoristite da
nacrtate sliku poput one dolje lijevo.
 Napišite program koji crta polukružnicu. Zatim ga iskoristite
da nacrtate sliku poput one dolje lijevo.

14
Nacrtajte zvijezdu poput gornje s proizvoljnim brojem
jednako dugih krakova
 Kako biste nacrtali krug?
 Što je više krakova, to je slika sličnija krugu
 Napišite program koji crta četvrt kruga!

15
KAKO OBJASNITI RAD PETLJE?
Uočavanje da se u nekim programima određene sekvence
naredbi moraju ponoviti više puta (npr. u crtanju pravilnog
trokuta FD 30 RT 120)
 Naredba REPEAT 20 [FD 100 RT 170] radi što?
 Isprobati REPEAT __ [FD ___ RT ___ ] s različitim brojevima
 Korisne su kad imamo dijelove koji jednako izgledaju, no
stvarni osjećaj za petlju se razvija kad imamo ponavljanje
_sličnih_ dijelova
 Pogodite što se dobije s CS REPEAT 100 [FD 10 RT
REPCOUNT] (REPCOUNT je broj koji iznosi točno koliko puta
se prošlo kroz petlju)

16
NACRTAJTE ČETVRTASTU SPIRALU
REPEAT 100 [ FORWARD REPCOUNT * 2 RIGHT 90 ]
 Što ako se promijeni kut zaokreta?
 Što ako se faktor 2 promijeni u 3?

17
NIZOVI I MREŽE LIKOVA
Niz likova: nacrtaj lik, postavi kornjaču na novo mjesto
početka crtanja lika
 Napiši program koji će nacrtati niz od 5 istovrsnih likova
po izboru tako da svaki sljedeći dodiruje prethodnu
 Iskoristi taj program za crtanje mreže tih likova koja ima
4 reda i 5 stupaca, a svaki lik se dodiruje sa svojim
horizontalnim i vertikalnim susjedima
 Nacrtaj pravilni šesterokut kojem je nad svakom
stranicom nacrtan pravilni trokut

18
BOJE
SETPENCOLOR = SETPC: postavlja boju kornjače (0,…,15)
 SETSCREEN COLOR: postavlja boju pozadine (0, 1, … , 15)
 SETFLOODCOLOR – boja popunjenja za FILL
 FILL: kornjača u boji 1 ispuni dio u kojem se nalazi (ako je
ograđena zatvorenom krivuljom, inače oboji veći dio zaslona;
ako je na liniji, naredba nema efekta)
 Nacrtaj plavo popunjeni kvadrat na žutoj pozadini (sami otkrijte
koje Vam boje za to trebaju)
 Druge boje možemo navesti njihovim RGB-kodom
 SETSCREENCOLOR [255 255 0]
 Nacrtaj kućicu s plavim prozorima, smeđim vratima, crvenim
krovom i sivim zidom, na zelenoj pozadini
19
 Nacrtajte zastavu neke države (ako sadrži grb, umjesto grba
nacrtajte pentagram)

Oznaka boje
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[R G B]
[0 0 0]
[0 0 255]
[0 255 0]
[0 255 255]
[255 0 0]
[255 0 255]
[255 255 0]
[255 255 255]
[155 96 59]
[197 136 18]
[100 162 64]
[120 187 187]
[255 149 119]
[144 113 208]
[255 163 0]
[183 183 183]
UVOD U KORIŠTENJE VARIJABLI – PRIJENOS U POTPOGRAM
Napišite program koji crta 5 kružnica jednu u drugoj, tako da
imaju jednu točku zajedničku
 Vidimo da smo 5 puta crtali gotovo istu petlju – jedine razlike
su u vrijednosti koraka (stranice n-terokuta kojim
aproksimiramo kružnicu)
 Skratite sad program tako da crta samo jednu kružnicu
 Uz ime programa i umjesto duljine stranice napišite :A
 Npr.
 TO KRUZNICA :A
 REPEAT 36 [FD :A RT 10]
 END
21
 Poziv: KRUZNICA 40

Možemo reći i ovako: ako se programskim jezikom
sporazumijevamo s računalom koje ga razumije, pisanjem
programa mi uvodimo nove riječi, a njih možemo uvesti i
tako da se moraju izreči skupa s nekim brojem – kad ih
definiramo, definiramo ih skupa s jednom nepoznanicom
čije ime počinje s :
 Kad koristimo riječ s brojem, kornjača taj broj shvaća kao
stavljen na mjesto nepoznanice
 Što radi REPEAT 100 [kruznica REPCOUNT RT 10]?
 Nacrtajte kvadrata tako da su im po jedna stranica sve na
istom pravcu i svaki sljedeći je za isti faktor manji od
prethodnog (broj kvadrata i boju odaberite sami)

22
DVIJE NEPOZNANICE –
PROGRAMI S 2 VARIJABLE
TO POLIGON :STRANA :DULJINA
 SETPENCOLOR 6
 SETSCREENCOLOR 10
 REPEAT :STRANA [ FORWARD :DULJINA RT 360 / :STRANA ]
 END

TO ORNAMENT :DIJELOVA
 REPEAT :DIJELOVA [ POLiGON 5 50 RT 360 / :DIJELOVA ]
 END

23

Napomena: 4 računske operacije +, - , * , /
A MOŽE I TRI…
TO NIZ :K :N :A
 PU
 LT 90
 FD 130
 RT 90
 REPEAT :K [PD LIK :N :A PU RT 90 FD 2 * :A LT 90]
 END


Gdje je LIK program koji crta N-terokut stranice A (sami
ga napišite)
24
POJAM VARIJABLE
MAKE “B 10 – Na mjesto B stavi broj 10.
 MAKE “C :B + 10 – Pročitaj što se nalazi na mjestu B, uvećaj
za 10 i stavi na mjesto C.
 “X označava mjesto u memoriji koje se zove X
 :X označava broj koji se nalazi na mjestu X
 Naredba MAKE je naredba pridruživanja


Kako biste napisali naredbu koja crta kružnicu polumjera :R?
MAKE “O 6.28 * :R
 REPEAT 36 [FD :O/36LT 10]

25
PRIMJER
TO LIST :A :KUT
 REPEAT 2 [FD :A RT :KUT FD :A RT 180 - :KUT]
 END

TO KNJIGA :A :KUT
 LT 90
 MAKE “N (180 - :KUT)/12
 REPEAT :N [LIST :A :KUT MAKE “KUT :KUT + 12]
 END

26
ZADACI
Napiši program koji crta zadani broj pravilnih šesterokuta
zadane duljine stranice, tako da je svaka sljedeća veća za
zadanu duljinu.
 Napiši program koji crta šesterokutnu spiralu (zadaje se
duljina prve stranice i povećanje duljine za svaki korak).
 Napiši program koji crta piramidu kvadrata (zadaje se duljina
stranice kvadrata i broj kvadrata u prvom retku, a svaki
sljedeći redak treba imati po jedan kvadrat manje; piramida
mora imati zrcalnu simetriju).
 Napiši program koji crta kružnicu podijeljenu na zadani broj
dijelova.
 Napiši program koji crta pravilni šesterokut skupa s opisanom
mu i upisanom kružnicom.
27
 Napiši program koji crta mrežu jednako velikih krugova
zadanog polumjera, tako da im boje alterniraju.

PROGRAMSKI JEZIK LOGO - NASTAVAK
Kako uvesti element slučajnosti?
 Slučajni (prirodni) brojevi generiraju se naredbom RANDOM
koju možemo koristiti na mjestu gdje pišemo broj u svim
naredbama
 Ispis 20 slučajnih brojeva od 0 do 11:
 REPEAT 20 [PRINT RANDOM 12]
 Slučajna šetnja kornjače
 REPEAT 1000 [ FORWARD 10 RIGHT RANDOM 360 ]
 Crtanje slučajnih pravaca
 Naredba SETXY 20 30 postavlja kornjaču u točku 20 desno i
30 gore u odnosu na HOME poziciju

TO LINES

REPEAT 100 [SETXY RANDOM 200 RANDOM 200]

END

28
JOŠ O SLUČAJNIM BROJEVIMA
Imate li ideju kako generirati slučajni broj između 10 i
19?
 (RANDOM 10) + 10
 A kako generirati slučajni višekratnik od 10 između -100 i
100?
 (RANDOM 20) * 10 – 100
 Koja je razlika između RANDOM 10 i RANDOM 5 +
RANDOM 5?

29
ŠTO RADI PROGRAM BOXPICTURE?
TO SQUARE :SIZE
 REPEAT 4 [ FORWARD :SIZE RIGHT 90 ]
 END

TO RANDOMBOXES
 REPEAT 10 [ SQUARE RANDOM 100 ]
 END

TO BOXPICTURE
 REPEAT 4 [ RANDOMBOXES RIGHT 90 ]
 END

30
KOORDINATNA GRAFIKA (7. I 8. RAZRED)
Zadatak: Nacrtati pravilni n-terokut s dijagonalama.
 Problem: Kako spojiti vrhove bez trigonometrijskog
računa?
 Svaki vrh je točka na zaslonu. Ona je određena s dva
broja. Jedan određuje pomak lijevo-desno, a drugi
pomak gore-dolje.
 CS
 RT 90 FD 40 LT 90 FD 30
 PR POS
 Dakle, trenutni položaj kornjače opisan je s 40 30
 Položaj na poziciji HOME je 0 0

31
…
Osmislite zadačiće kojima će đaci otkriti značenje brojeva i
njihovih predznaka u opisu pozicije kornjače!
 Nove naredbe:
 POS: vraća koordinate kornjače; pojedine koordinate
dohvaćamo s XCOR i YCOR
 SETX: postavlja kornjaču na poziciju sa zadanom apscisom,
bez promjene ordinate
 SETY: analogno
 SETXY a b postavlja kornjaču na poziciju (a,b)
 HEADING: vraća broj koji kaže koliko je kornjača okrenuta
udesno od početnog položaja
 SETH: postavlja kornjaču u zadanom smjeru

32
ŠTO RADI PROGRAM?
TO STRINGART
 REPEAT 10 [ PENUP SETXY (REPCOUNT * 10) 0
 PENDOWN SETXY 0 (REPCOUNT * 10) ]
 END


Napišite program koji crta sliku
Osmislite zanimljiv skup točaka koje ćete spajati koristeći
SETCY.
 Neki od programa koji ste radili bez koordinata
preformulirajte u novi kontekst.

33