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