420 likes | 1.28k Views
METODIKA NASTAVE INFORMATIKE 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 )
E N D
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.
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
kornjačina glava Kornjačina grafika • 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))
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?
Daljnji zadaci • Zadatak 3. Nacrtajte jednakostranični trokut trokut kojemu su sve stranice jednake duljine • Zadatak 4. Nacrtajte sljedeće crteže…
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,
Kako preskočiti dio? • PU = PENUP, PD = PENDOWN
brisanje • PE = PENERASE – kornjača će umjesto da piše brisati • Npr. • PE • BK 50 • RT 90 • FD 50 • PPT
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.
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
zadaci Itd. (zadaci str. 26/27 u Kniewald: Programski jezik LOGO)
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
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.
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!
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)
Nacrtajte četvrtastu spiralu • REPEAT 100 [ FORWARD REPCOUNT * 2 RIGHT 90 ] • Što ako se promijeni kut zaokreta? • Što ako se faktor 2 promijeni u 3?
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
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 • Nacrtajte zastavu neke države (ako sadrži grb, umjesto grba nacrtajte pentagram)
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 • 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)
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 • 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)
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]
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
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. • 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
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?
Š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
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
… • 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
Š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.