Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA...

72
Vladimir Batagelj Ferdinand in LOGO Zapiski Zavod Republike Slovenije za ˇ solstvo in ˇ sport Ljubljana 1991

Transcript of Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA...

Page 1: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

Vladimir Batagelj

Ferdinand in

LOGOZapiski

Zavod Republike Slovenije za solstvo in sportLjubljana 1991

Page 2: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

2

CAROBNA NIT, letnik I, 1/91 – PRILOGAZavod Republike Slovenije za solstvo in sportGlavni urednik: Tomaz SKULJ

Odgovorni urednik: Nusa DRAGAN

Vladimir BATAGELJ

Ferdinand in LOGOZapiski

Strokovno pregledal: Rado WECHTERSBACH

Jezikovno pregledal: Tine LOGARc©1991 Vladimir BATAGELJ

CIP – katalogizacija v knjigiNarodna in univerzitetna knjiznica, Ljubljana

519.682

BATAGELJ, VladimirFerdinand in Logo. Zapiski / Vladimir Batagelj. – 1. natis.

– Ljubljana : Zavod Republike Slovenije za solstvo in sport, 1991.– (Carobna nit ; letnik I, 1/91. Priloga)

27765760

LOGOS je narecje in tolmac/prevajalnik za logo. Po narocilu Zavoda R Slovenije zasolstvo in sport ga piseta Marko Grobelnik in Darko Zupanic pod vodstvom dr. VladimirjaBatagelja.

Knjizica je bila pripravljena v emTEXu 3.0, avtor Eberhard Mattes, na racunalniku PC ATin izpisana s programom DVIHPLJ na laserskem tiskalniku HP Laser Jet. Slike zaslonovso bile posnete s programom SCAN, avtor Darko Zupanic.

Izhajanje revije sofinancira republisko Ministrstvo za solstvo in sport.

Po mnenju Ministrstva za solstvo in sport, stevilka 415-50/91 z dne 7.7.1991 je revija sprilogami oproscena temeljnega davka od prometa proizvodov.

Page 3: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

Kazalo

1 Kaj je logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Racunalnistvo in logo v nasih solah . . . . . . . . . . . . . . . . 7

1 Uvod v zelvjo grafiko 91.1 Pomiki in zasuki . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2 Ponavljanje ukazov . . . . . . . . . . . . . . . . . . . . . . . . . 111.3 Stanja peresa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.4 Naloga: Olimpijski krogi . . . . . . . . . . . . . . . . . . . . . . 14

2 Ukazi, koordinate in izpis 152.1 Lastni ukazi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.2 Delo z lastnimi ukazi . . . . . . . . . . . . . . . . . . . . . . . . 182.3 Koordinate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.4 Naloga: Pismo . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.5 Besede in izpis . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.6 Spremenljivke . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.7 Ukazi s parametri . . . . . . . . . . . . . . . . . . . . . . . . . . 222.8 Znakovni zaslon . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3 Racunanje in seznami 273.1 Racunanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.2 Seznami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.3 Naloga: Postevanka do 100 . . . . . . . . . . . . . . . . . . . . . 30

4 Funkcije in odlocitveni stavek 314.1 Stevilske funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . 314.2 Lastne funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . 324.3 Znaki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334.4 Pogoji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344.5 Odlocitveni stavek . . . . . . . . . . . . . . . . . . . . . . . . . 36

3

Page 4: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

4 KAZALO

4.6 Rekurzija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.7 Naloga: Prastevilo . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5 Besede in seznami 395.1 Se nekaj o besedah . . . . . . . . . . . . . . . . . . . . . . . . . 395.2 Delo z besedami in seznami . . . . . . . . . . . . . . . . . . . . 405.3 Nakljucni izbor . . . . . . . . . . . . . . . . . . . . . . . . . . . 425.4 Iskanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425.5 Ulomki in lokalne spremenljivke . . . . . . . . . . . . . . . . . . 435.6 Naloga: Beseda . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

6 Zvok 456.1 Zvok na racunalniku . . . . . . . . . . . . . . . . . . . . . . . . 456.2 Zvocni ucinki . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466.3 Glasba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476.4 Tipkovnica – klavir . . . . . . . . . . . . . . . . . . . . . . . . . 486.5 Skladbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496.6 Izpis not v LOGOSu . . . . . . . . . . . . . . . . . . . . . . . . . 516.7 Naloga: Zvok . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

7 Logo ni samo za otroke 537.1 Podatki ukazi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537.2 Risanje funkcij . . . . . . . . . . . . . . . . . . . . . . . . . . . 557.3 Razvejitveni stavek CASE . . . . . . . . . . . . . . . . . . . . . . 577.4 Rekurzija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587.5 Drevo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587.6 Sto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597.7 Virusi v logu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617.8 Naloga: Rekurzivna risba . . . . . . . . . . . . . . . . . . . . . . 62

8 Resitve nalog 638.1 Olimpijski krogi . . . . . . . . . . . . . . . . . . . . . . . . . . . 638.2 Pismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638.3 Postevanka do 100 . . . . . . . . . . . . . . . . . . . . . . . . . 648.4 Prastevilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658.5 Beseda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658.6 Zvok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678.7 Rekurzivna risba . . . . . . . . . . . . . . . . . . . . . . . . . . 678.8 Kako smo zrebali . . . . . . . . . . . . . . . . . . . . . . . . . . 67

Page 5: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

Uvod

Ekipa Periskopa na Slovenski televiziji in sodelavci Zavoda Republike Slovenije za solstvoin sport so pripravili zaporedje ucnih enot o programskem jeziku logo Periskopov racek ologu. V njih student biologije Alexis Zrimec postopoma uvaja periskopovko Blazko Mullerv posamezne sestavine loga. Ucne enote so si zamislili Vladimir Batagelj, Tatjana Trtnikin Alexis Zrimec, reziral pa jih je Igor Smid. Pri pripravi oddaje sta pomagala tudi MarkoGrobelnik in Darko Zupanic. Uvodna oddaja je bila na sporedu 5. marca 1991, prva ucnaenota 12. marca, naslednje ucne enote pa so si sledile v dvotedenskem razmaku do sredejunija. Vsaka ucna enota je bila zakljucena z nagradno nalogo. Med pravilnimi resitvami sobili vsakic izzrebani po stirje nagrajenci. Ob koncu oddaj pa sta bila izmed vseh pravilnihresitev izzrebana tudi dobitnika velikih nagrad – racunalnika PC in tiskalnika Epson ter sedeset nagrad presenecenja – zabojckov banan. Nagrade sta prispevali podjetji ALTECH inHIPeC.

Da bi olajsali spremljanje ucnih enot in nadaljnje samostojno delo, smo jih podprli spisnim gradivom, ki je izhajalo v Nedeljskem dnevniku in PILu, ter disketo z narecjem logaLCSI/LOGOS.

Za prilogo novi reviji Carobna nit smo ucne enote zdruzili v video kaseto Ferdinandin logo, pisno gradivo pa v tole knjizico. Izpopolnili smo tudi LCSI/LOGOS.

1 Kaj je logoLogo je programski jezik, posebej ustvarjen zato, da bi omogocil zgodnje ucenje z racunal-nikom.

Leta 1964 se je Seymour Papert po petih letih, ki jih je prezivel v Svici kot sodelavecznanega pedagoga Jeana Piageta, vrnil nazaj v ZDA na MIT (Massachusetts Institute ofTechnology) s spoznanjem

Koliko se otroci nauce, ne da bi jih kdo ucil !

Leta 1967 je stekel na MIT projekt MAC, katerega cilj so bile raziskave uporabe racunalni-ka pri ucenju. Projekt je dobil prostore v isti zgradbi, v kateri sta bila laboratorij za umetnointeligenco in laboratorij za racunalnistvo. Sodelovanje s strokovnjaki s teh dveh podrocijje dalo veliko rezultatov. Posebno velik je prispevek Marvina Minskyja.

Ze od vsega zacetka je Papert razmisljal o programskem jeziku, ki bi omogocal zgod-nje uvajanje v svet racunalnistva in uporabo racunalnika za ustvarjanje ucnih okolij, v

5

Page 6: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

6 KAZALO

katerih otrok z lastno dejavnostjo nabira znanje. Pomen ustreznega okolja je v svoji knjigiMindstorms [19] lepo ponazoril z naslednjo primero:

“Ce bi si morali nase mnenje ustvariti na opazanju, kako slabo se v ameriskihsolah otroci nauce francoscine, bi morali zakljuciti, da je vecina ljudi nisposobna obvladati. Toda vemo, da bi jo vsak normalen otrok zlahka ob-vladal, ce bi zivel v Franciji.”

Tako je zacel nastajati logo. Ime logo izvira iz grske besede logos – beseda ali misel. Sno-valci loga so poskusali zdruziti vec, vcasih nasprotujocih si zahtev: preprost za ucenje inuporabo, bogato in razsirljivo besedisce, preprosto sestavljanje delcev v vecje celote . . .Pri tem so se precej zgledovali pri programskem jeziku lisp (list processing language),ki je posebej priljubljen na podrocju umetne inteligence. Logo ni zakljucen jezik. Prila-gajal naj bi se razvoju racunalniske tehnologije in znanosti ter izkusnjam pri uporabah vizobrazevanju.

Logo temelji na tolmacenju ukazov – ukaze sproti prevaja in izvaja. To pride zeloprav pri ucenju loga, saj lahko vsak logov ukaz posebej preizkusimo in raziscemo njegoveucinke. Prvi tolmac za logo so ustvarili leta 1970 pri raziskovalni firmi Bolt Baranek &Newman pod vodstvom W. Fuerzeiga.

Ker so poskusali priblizati racunalnik tudi predsolskim otrokom, ki se niso domaci vracunanju in pisanju, so dopolnili logo z zelvo. Ta je bila spocetka mehanicna naprava, kise je po danih ukazih premikala po tleh; kasneje pa jo je zamenjala slicica na zaslonu, karje veliko cenejse. Zelvja grafika je zelo pomembna sestavina loga in je scasoma postalasinonim zanj, ceprav zmore logo se veliko drugih stvari. Temelji, kakor bi rekli matem-atiki, na polarnem koordinatnem sistemu – pomikih in zasukih, ki so otroku veliko blizjikot obicajni kartezicni koordinatni sistem. Uporaba zelvje grafike precej olajsa dojemanjezveze ukaz – ucinek; poleg tega lahko ze razmeroma preprosti programi ustvarijo pre-senetljivo privlacne slike.

To, da je namenjen otrokom, se ne pomeni, da je logo ”otrocji”jezik – dejansko je logozelo mocan programski jezik, v katerem je mogoce resevati tudi zaresne”probleme.

Leta 1972 so se zaceli z logom ukvarjati tudi v Edinburghu v Veliki Britaniji. Podobrih desetih letih izkusenj so sodelavci projektov sredi osemdesetih let objavili nekajzanimivih knjig [1, 9, 16, 22, 24]. Evropski uporabniki loga se vsako drugo leto sestanejona konferenci EUROLOGO (Dublin 1987, Gent 1989, Parma 1991) [11].

Zelo pomemben dogodek pri uveljavljanju loga predstavljajo mikroracunalniki. Racu-nalnik je postal siroko dostopen. Po letu 1980 najdemo logo na skoraj vseh mikroracu-nalnikih. Ker so pisci tolmacev prilagodili logo posebnostim in zmoznostim posameznegaracunalnika, ne obstaja en sam logo, temvec kopica narecij. Vecina le-teh pripada dvemadruzinama:

• izdelkom Logo Computer Systems, Inc – LCSI Logo: Apple Logo I in II, AtariLogo, IBM Logo, Sinclair Logo; LCSI/LOGOS;

• MIT Logo: Terrapin Logo ali Krell Logo (Apple), Commodore Logo, PC Logo.

Page 7: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

2. Racunalnistvo in logo v nasih solah 7

2 Racunalnistvo in logo v nasih solah

Zacetki uvajanja racunalnistva v slovenske sole segajo v leto 1971, ko je stekel poukracunalnistva v 3. ali 4. letniku tedanjih gimnazij. Kasneje, v letih 1981 do 85, so bilarazvita tri podrocja uvajanja racunalnistva v sole: informatika in racunalnistvo kot fakulta-tivni predmet ali krozek v osnovni soli, racunalniska poglavja v predmetu osnove tehnikein proizvodnje v 1. letniku srednjih sol in v naslednjih letnikih predmet racunalnistvo.Sedaj imajo vse srednje sole vsaj v enem letniku tedensko po dve uri racunalnistva in in-formatike. Od leta 1977 imamo republiska tekmovanja iz racunalnistva za srednjesolce.

Sole so najprej uporabljale za delo in vaje racunalnike podjetij in racunalniskih centrov,nato so se opremljale s hisnimi racunalniki, v zadnjih letih pa potekajo organizirane akcijeopremljanja sol z osebnimi racunalniki in pestro dodatno racunalnisko opremo: tiskalniki,risalniki, dataskopi ... Taksen je tudi projekt RACEK – RACunalniska EKsplozija, ki jeomogocil solam v zadnjih treh letih razumen in s priporocili usklajen nakup racunalniskeopreme.

Srcica projektov opremljanja sol z racunalnisko opremo je nabava tuje programskeopreme, razvoj domace programske opreme in organiziranje izobrazevanja uciteljev zauporabo racunalnikov pri pouku. Leta 1987 so imele osnovne sole 100 osebnih racunalnikov,srednje sole pa 330. Tri leta kasneje v letu 1990 so imele osnovne sole 400, srednje sole pa870 osebnih racunalnikov. Tako imajo sedaj osnovne sole povprecno po en, srednje solepa po 7 osebnih racunalnikov. Konec lanskega leta so bile sklenjene pogodbe za nabavododatnih 450 osebnih racunalnikov za srednje sole. V letosnjem letu (1991) bodo vsesrednje sole prejele komplet osmih racunalniskih programov: Turbo Pascal 5.5, dBASEIV, Quattro, Windows, WORD, WS 6, TEX, PC Tools in multimedijski paket ”Mentoro racunalniku”ter doma razviti tolmac za logo LOGOS. Na vsaki soli je vsaj en ucitelj,ki je obiskoval daljse racunalnisko izobrazevanje. Ena izmed aktivnosti sirsega uvajanjauporabe racunalnikov v sole je tudi Periskopov racek o logu.

K nam je logo prisel sredi osemdesetih let s hisnimi racunalniki Spectrum in C-64[4, 5, 6, 13]. Leta 1986 so na Institutu Jozef Stefan vkljucili tecaj iz loga med svoje tecajeiz racunalnistva za mladino. Nekoliko kasneje je bil vkljucen v dopolnilno izobrazevanjeiz racunalnistva za osnovnosolske ucitelje na Oddelku za matematiko Univerze v Ljubljaniin na Pedagoski fakulteti v Mariboru. Kmalu je logo nasel pot tudi v krozke na osnovnihsolah in na tekmovanja za osnovnosolce [10, 18, 8].

Z uvajanjem osebnih racunalnikov v sole je nastopil pri logu problem, ker tedanjitolmaci za racunalnik IBM PC niso podpirali slikovne kartice Hercules. Zato smo se jesenileta 1989 odlocili [3], da pripravimo svoje lastno narecje loga, ki je dobilo delovno imeLOGO-S (logo Slovenija). Spomladi 1991 smo se odlocili za ime LOGOS.

Pri nacrtovanju narecja LOGOS smo se odlocili, da logo izpopolnimo tako, da boprimerljiv z drugimi sodobnimi programskimi jeziki. Tako bi dobili jezik, ki bi lahkozadoscal vecini potreb ucencev od vrtca do univerze. Posebej naj bi omogocal pripravoizobrazevalnih programov in okolij. V sporocilih tolmaca lahko izbiramo med angleskimiin slovenskimi. Precej so izboljsane graficne zmoznosti. V LOGOSu lahko hkrati krmilimodo osem zelvic in, cez ustrezni vmesnik, tudi igrace-sestave Fischer Technik in Lego. Zaprimerjavo omenimo, da obicajna narecja loga poznajo okrog 150 ukazov, LOGOS pa cez400 ukazov [15].

Page 8: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

8 KAZALO

Tolmac za LOGOS piseta studenta racunalnistva Marko Grobelnik in Darko Zupanic.Uporabljen je bil tudi v Periskopovem racku o logu. Pri pripravi ucnih enot smo se odlocili,da bomo uporabljali narecje LCSI-logo. Pri tem smo se oprli predvsem na tiste sestavine,ki jih najdemo tudi v drugih narecjih. LOGOS je mogoce prilagoditi tako, da razumevecino ukazov LCSI-loga. Tako je pred zacetkom snemanja Periskopovega racka nastalaizpeljanka LOGOSa narecje LCSI/LOGOS, ki smo ga uporabili pri snemanju oddaje in tudipri pripravi teh zapiskov.

Logo najdemo na vecini mikroracunalnikov: Spectrum, Commodore, Atari, PC, Apple... Zaradi pestrosti racunalniske opreme po nasih domovih bomo predpostavili, da znateuporabljati svoj racunalnik, da imate zanj tolmac za logo (z navodili) in da ga znate pognati.Mi bomo uporabljali racunalnik PC in na njem narecje LCSI/LOGOS. Vendar bo vecinopovedanega mogoce preizkusiti tudi na drugih racunalnikih.

Page 9: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

Poglavje 1

Uvod v zelvjo grafiko

Vkljucimo racunalnik in pozenimo tolmac za logo. Na sredini zaslona se prikazetrikotnik, ki predstavlja zelvo. Ce se to ne zgodi, vtipkajte CS ST in pritisnite natipko ENTER ; na racunalniku C-64 pa DRAW in nato ENTER .

Logo pozna vecje stevilo ukazov, s katerimi premikamo zelvo po zaslonu inpocnemo se vrsto drugih stvari. Pravimo jim vgrajeni ukazi ali praukazi. Vsakukaz se zacne z geslom – imenom ukaza. Temu po potrebi sledi nekaj podatkov,ki podrobneje dolocajo ukaz. Gesla in podatki morajo biti med seboj loceni zvsaj enim presledkom. V vecini narecij logo ne razlikuje med velikimi in malimicrkami. Hkrati lahko vnesemo tudi vec ukazov. Vnos zakljucimo s tipko ENTER .

Ker so logo razvili v ZDA, so imena ukazov v anglescini. V naslednjemrazdelku bomo spoznali, kako lahko pripravimo logo, da razume tudi slovenskeukaze.

Logo pozna tri vrste podatkov: stevila, besede (nize znakov) in sezname. Primeristevil so: 14, 1990, -17, 3.145 in -0.00327 . Besede in sezname bomo spoz-nali drugic.

1.1 Pomiki in zasuki

Ob zacetku zelva caka na nase ukaze v izhodiscu na sredini zaslona usmerjena protinjegovemu zgornjemu robu. Z ukazom

FORWARD d

pomaknemo zelvo za d korakov naprej; z ukazom

BACK d

9

Page 10: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

10 Poglavje 1. Uvod v zelvjo grafiko

pa za d korakov nazaj. Poskusimo! Zahtevajte najprej FORWARD 100 in nato seBACK 50. Vsako zahtevo zakljucite s tipko ENTER ! Namesto gesel FORWARDin BACK lahko uporabimo tudi okrajsavi FD in BK. Nazaj v izhodisce se lahkovselej vrnemo z ukazom HOME, zaslon pa pobrisemo z ukazom CLEAN. Skupniucinek obeh ukazov dosezemo z ukazom CLEARSCREEN ali okrajsano CS. NaC-64 deluje ukaz CS kot ukaz CLEAN.

Navadno je pri delu z zelvo zaslon razdeljen na slikovni in ukazni del. V neka-terih narecjih loga lahko tudi ves zaslon namenimo sliki. Med obema razdelitvamazaslona preklapljamo z ukazoma SPLITSCREEN (v nekaterih narecjih MIXEDSCREEN)in FULLSCREEN.

Ukaze moramo pri vnosu natancno vtipkati. Tako na primer logo ne razumezahteve FORWARD30 , ker je napacno natipkana – manjka presledek med geslomin podatkom. Prav tako ne razume zahteve NAPREJ 30 , ker NAPREJ ni imepraukaza.

Na posameznih vrstah racunalnikov je zaslon razlicno velik. Poskusite sedajdolociti, koliko korakov je od izhodisca do zgornjega roba zaslona. Namig: ugan-ite, katero stevilo je treba napisati namesto d v zaporedju ukazov

CS FORWARD d

Kako bi pa dolocili stevilo korakov od izhodisca do desnega roba zaslona? Zato moramo zelvo preusmeriti proti desnemu robu – zasukati za 90 stopinj (pravikot) v desno. To nam omogoca ukaz

RIGHT a

ki zavrti zelvo za a stopinj v desno. Polni obrat sestavlja 360 stopinj. Torej bomosedaj poskusali z ukazi

CS RIGHT 90 FORWARD d

Ukaz CS namrec tudi usmeri zelvo proti zgornjemu robu zaslona. Soroden ukaz

LEFT a

zavrti zelvo za a stopinj v levo. Preizkusite oba ukaza za razlicne kote. Namestogesel RIGHT in LEFT lahko uporabite tudi okrajsavi RT in LT.

Ce uporabljate LOGOS, najprej vnesite zahtevo

LOAD "KOTI KOTI

ki na zaslonu prikaze razdelitev kroga na stopinje, kakor je prikazano na sliki 1.1.Poskusite se naslednje zaporedje ukazov:

Page 11: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

1.2. Ponavljanje ukazov 11

Slika 1.1: KOTI – razdelitev kota na stopinje

CS LT 50 FD 70 BK 70 RT 115 FD 100 BK 100 RT 115FD 50 LT 115 FD 100 RT 65 FD 50 BK 50 LT 130 FD 50LT 50 FD 70 RT 50 FD 50 BK 50 LT 115 FD 100 LT 65FD 50 RT 65 FD 50 BK 50 LT 115 FD 70

1.2 Ponavljanje ukazov

Narisimo kvadrat

FD 100 RT 90FD 100 RT 90FD 100 RT 90FD 100 RT 90

V opisu kvadrata se ukaza FD 100 RT 90 stirikrat ponovita. V takih prime-rih lahko uprabimo ukaz REPEAT , ki ima obliko

REPEAT k [ ukazi ]

in zahteva k-kratno ponovitev ukazov. Torej lahko kvadrat opisemo tudi z

REPEAT 4 [ FD 100 RT 90 ]

Page 12: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

12 Poglavje 1. Uvod v zelvjo grafiko

Podobno opisemo enakostranicni trikotnik

REPEAT 3 [ FD 100 RT 120 ]

pravilni petkotnik

REPEAT 5 [ FD 100 RT 72 ]

pravilni dvanajstkotnik

REPEAT 12 [ FD 30 RT 30 ]

in (skoraj) kroznico

REPEAT 36 [ FD 3 RT 10 ]

V vseh teh primerih je zmnozek kota zasuka in stevila ponovitev enak 360 stopinj– polnemu krogu. Kaj pa ce ta pogoj ni izpolnjen ? Poskusite na primer

REPEAT 20 [ FD 100 RT 137 ]

Ukaze REPEAT lahko tudi gnezdimo

REPEAT 8 [ REPEAT 8 [ FD 50 RT 45 ] RT 45 ]

Ucinek te zahteve je prikazan na sliki 1.2.Poskusite tudi naslednja zaporedja ukazov:

CS REPEAT 18 [ REPEAT 8 [ FD 30 RT 45 ] RT 20 ]

CS REPEAT 5 [ FD 100 RT 144 ]

CS REPEAT 100 [ FD 100 RT 27 FD 10 RT 71 ]

CS REPEAT 10 [ RT 36 REPEAT 5 [ FD 40 RT 72 ]]

CS LT 90 FD 80 REPEAT 2 [ RT 90REPEAT 91 [ FD 300 BK 300 RT 2 ] LT 92 FD 160 ]

1.3 Stanja peresa

Z ukazom PENUP, ali krajse PU, dvignemo pero – zelva pri premikanju ne puscasledi; z ukazom PENDOWN, ali PD, pa pero spustimo – zelva spet pusca sled. Zukazom SETPC n (oziroma PC n na C-64) lahko dolocimo barvo sledi.

V ukazu SETPC n je n stevilka barve. Njen pomen je na posameznih vrstahracunalnikov razlicen. Tako na primer velja na Spectrumu:

Page 13: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

1.3. Stanja peresa 13

Slika 1.2: Gnezdenje ukazov REPEAT

0 crna 4 zelena1 modra 5 sinja2 rdeca 6 rumena3 vijolicasta 7 bela

na racunalniku PC pa imamo na voljo:

0 crna 8 temno siva1 modra 9 svetlo modra2 zelena 10 svetlo zelena3 sinja 11 svetlo sinja4 rdeca 12 svetlo rdeca5 vijolicasta 13 svetlo vijolicasta6 rjava 14 rumena7 svetlo siva 15 bela

Seveda moramo biti za uporabo barv primerno opremljeni – imeti moramo

Page 14: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

14 Poglavje 1. Uvod v zelvjo grafiko

barvni televizor oziroma barvni zaslon z dobro slikovno kartico.Poskusite se naslednji zaporedji ukazov:

CS REPEAT 60 [ PU FD 30 PD FD 30 PUFD 20 PD FD 60 PU BK 140 RT 6 ] PD

CS PU LT 90 FD 120 RT 90 PDREPEAT 5 [ REPEAT 2 [ REPEAT 12 [ FD 10 RT 90

FD 10 RT 90 FD 20 LT 90 FD 10 LT 90 ]RT 180 FD 10 ] PU FD 40 PD ]

Tako, sedaj pa ze poznate dovolj ukazov, da lahko poskusite resiti naslednjonalogo.

1.4 Naloga: Olimpijski krogi

Sestavi zaporedje ukazov v logu, ki na zaslonu narise pobarvane olimpijske kroge.

Page 15: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

Poglavje 2

Ukazi, koordinate in izpis

Ukaze v logu delimo na prave ukaze in funkcije. Pravi ukaz opravi neko oprav-ilo. Funkcijski ukaz pa vrne neko vrednost, ki mora biti podatek nekemu pravemuukazu.

Na primer ukazna vrstica

PRINT SUM 3 4

zahteva izpis vsote stevil 3 in 4. Pri tem je rezultat funkcijskega ukaza SUM zapodatka 3 in 4 podatek za pravi ukaz PRINT.

Poskusite vnesti se ukaz

SUM 3 4

Kaj se bo zgodilo, je odvisno od tolmaca za logo. Najverjetneje se bo tolmacpritozil, da dobljeni rezultat ni podatek za pravi ukaz; nekateri tolmaci pa rezultatbrez pripomb izpisejo.

Ukaze lahko razdelimo se na vgrajene ali praukaze in uporabnikove ali lastneukaze. Vgrajene ukaze pozna logo ze ob zagonu. Uporabnikove ukaze pa morasestaviti uporabnik sam. Sestavljanju teh ukazov pravimo tudi programiranje.

2.1 Lastni ukazi

V obicajnem, sprotnem, pogovornem nacinu dela uvedemo lastni ukaz z ukazomTO. V vecini narecij loga zahtevamo

TO ime

Na to zahtevo preide tolmac za logo v stanje, v katerem sprejema vrstice z opisomukaza ime. Vnos zakljucimo z vrstico, ki vsebuje ukaz END.

15

Page 16: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

16 Poglavje 2. Ukazi, koordinate in izpis

Slika 2.1: Roza

Podobno uvedemo nov ukaz, ce ni predolg, tudi v narecju LOGOS, le da vseskupaj vnesemo kot eno vrstico

TO ime opis END

Tako uvedemo ukaz KVADRAT z

TO KVADRATREPEAT 4 [ FD 100 RT 90 ]

END

in ga pozenemo

CS KVADRAT

Ko je ukaz enkrat uveden, ga lahko uporabljamo enako kot praukaze. Na primer

CS REPEAT 36 [ PU FD 4 PD KVADRAT LT 10 ]

Page 17: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

2.1. Lastni ukazi 17

Slika 2.2: Zid

ki narise ”rozo”prikazano na sliki 2.1.Poglejmo si se nekoliko zapletenejsi primer, kjer kamne in opeke zlagamo v

vrste, te pa nalagamo ene na druge in tako ustvarimo zid. Risanje zida zahtevamoz ukazom SLIKA.

TO KAMENREPEAT 4 [ FD 16 RT 90 ]

ENDTO OPEKAREPEAT 2 [ FD 32 RT 90 FD 16 RT 90 ]

ENDTO VRSTAREPEAT 8 [ PU BK 24 PD KAMEN PU BK 40 PD OPEKA ]

ENDTO ZIDLT 90 REPEAT 7 [ VRSTA RT 90 PU FD 40 RT 90 FD 8VRSTA LT 90 PU FD 8 LT 90 FD 8 ]

ENDTO SLIKACS PU BK 165 LT 90 PU FD 260 RT 90 PD ZID

END

Zid je prikazan na sliki 2.2.

Page 18: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

18 Poglavje 2. Ukazi, koordinate in izpis

2.2 Delo z lastnimi ukazi

Imena vseh uporabniskih ukazov izpise na zaslon ukaz POTS. Ukaz ime izlocimo(zbrisemo) z ukazom

ERASE "ime

Uporabimo lahko tudi okrajsavo ER.Ce zelimo ukaz ime popravljati zahtevamo

EDIT "ime

Ta ukaz deluje na posameznih vrstah racunalnikov zelo razlicno. Zato si podrob-nosti preberite v prirocniku ali pa, za Spectrum, v [4, 6] in, za C-64, v [5, 13].

V LCSI/LOGOSu lahko v sprotnem nacinu spremenimo opis uporabniskegaukaza tako, da njegovo novo definicijo zacnemo z geslom RETO. Na primer, cezelimo, da ima kvadrat dolzino stranice 120 namesto 100, bomo zahtevali

RETO KVADRAT REPEAT 4 [ FD 120 RT 90 ] END

Za pisanje obseznejsnih programov pa raje uporabimo urejevalnik, v katerega pri-demo z ukazom EDITOR.

Vecina narecij loga pozna se naslednje (ali njim podobne) ukaze:

PO i izpisi definicijo ukaza iSAVE d s shrani ukaze iz seznama s na datoteko dSAVEALL d shrani vsebino delovnega prostora na da-

toteko dLOAD d vnesi ukaze z datoteke dCATALOG b izpizi seznam datotek na tekocem podrocju,

katerih imena zadoscajo vzorcu bPOFILE d izpisi vsebino datoteke dERALL zbrisi vsebino delovnega prostora

Najbrz ni potrebno posebej razlagati, kdaj in kako jih lahko uporabite.Posamezna narecja loga imajo razlicne vgrajene podaljske za datoteke, ki vse-

bujejo ukaze v logu. Najpogosteje se uporablja podaljsek .LOG, s katerim panekaj programov oznacuje datoteke z dnevnikom obdelave. LCSI logo na PCjihuporablja podaljsek .LF, LCSI/LOGOS pa podaljsek .LG.

Page 19: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

2.3. Koordinate 19

y

x[0 0]

[150 100]

150

100

[-60 -80]

-60

-80

Slika 2.3: Koordinatni sistem

2.3 Koordinate

Na slikovni zaslon lahko postavimo tudi obicajni koordinatni sistem, kakor smo ganavajeni v matematiki (glej sliko 2.3). Vsaka tocka na zaslonu je dolocena z dvemasteviloma (x, y) – koordinatama, ki merita njen odmik od osi x in osi y. V logutocko (x, y) predstavimo s seznamom [x y] .

Zelvo lahko usmerjamo tudi glede na ta koordinatni sistem. Na voljo imamoukaze:

SETPOS [x y] premik zelve v tocko (x, y);SETX n premik zelve do koordinate x = n;SETY n premik zelve do koordinate y = n;TOWARDS [x y] vrne smer zelve proti tocki (x, y);SETHEADING n postavi smer zelve na n; okrajsava SETH;DOT [x y] narise piko na (x, y), zelvo pusti tam, kjer je.

Prav bosta vcasih prisla tudi ukaza:

SETBG n postavi barvo podlage na n;PENREVERSE odslej zelva rise, tam kjer ni sledi, in brise

(dele) sledi, cez katere gre; okrajsava PX.

Na voljo imamo tudi nekaj funkcijskih ukazov, ki vrnejo posamezne zanimivekolicine:

Page 20: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

20 Poglavje 2. Ukazi, koordinate in izpis

Slika 2.4: Pismo

POSITION polozaj (mesto) zelve; okrajsava POS;XCOR koordinata x (abscisa) zelve;YCOR koordinata y (ordinata) zelve;HEADING smer zelve;PENCOLOR barva sledi; okrajsava PC;BACKGROUND barva podlage; okrajsava BG.

Ti ukazi bodo prisli prav tudi pri resevanju naslednje naloge.

2.4 Naloga: Pismo

Sestavi zaporedje ukazov v logu, ki na zaslonu narise pismo (glej sliko 2.4) v enipotezi – ne da bi dvignili pero – pri cemer nobene crte ne rise dvakrat.

2.5 Besede in izpis

Znake, ki jih najdemo na tipkovnici racunalnika delimo na tri skupine: velike inmale crke A, B, C, ..., Z, a, b, c, ..., z; stevke ali cifre 0, 1, 2, ..., 9 in posebneznake +, -, *, (, :, ?, . . .

Iz znakov lahko sestavljamo nize znakov ali besede. Besedo zacnemo z dvo-jnim narekovajem " . Ta ne pripada besedi, temvec le pove, da zaporedje znakov,ki mu sledi, sestavlja besedo. V besedi ne smemo naravnost uporabiti presledka in

Page 21: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

2.6. Spremenljivke 21

znakov []()+-*/<=> . Ce jih vseeno zelimo uporabiti, moramo pred vsak takznak zapisati znak \. Primeri besed so: "Ljubljana, "!!napaka in "2\+2 .Logo pozna tudi prazno besedo ", ki ne vsebuje nobenega znaka.

Kolicino p lahko izpisemo na zaslon z ukazi:

PRINT p izpise podatek p in gre v novo vrstico;TYPE p samo izpise podatek p;SHOW p izpise podatek p, ce je seznam tudi z zunan-

jimi oklepaji, in gre v novo vrstico.

Ce zelimo naenkrat izpisati vec podatkov p1, p2, . . . pn, zahtevamo

( PRINT p1 p2 . . . pn )

Namesto PRINT lahko uporabimo tudi okrajsavo PR.Za izpis podatkov navadno raje uporabimo znakovni zaslon, na katerega prei-

demo s slikovnega z ukazom TEXTSCREEN ali TS, pobrisemo pa ga z ukazomCLEARTEXT ali CT.

Poskusite

TS CT PR "LjubljanaTYPE 26 TYPE "marecPR 1991 SHOW "Konec

V narecju LCSI/LOGOS lahko dolocimo stevilo decimalnih mest pri izpisustevil z ukazom SETNUMPREC n. Torej, ce delamo s celimi stevili, pred izpisompostavimo SETNUMPREC 0.

2.6 Spremenljivke

Racunalnik si lahko posamezne kolicine tudi zapomni. Shrani jih v svoj pomnil-nik. Uporabnik si lahko pomnilnik predstavlja kot omaro s predalcki. Posameznipredalcek lahko: opremimo z imenom; vanj shranimo kolicino; po potrebi pogle-damo, kaj je v njem shranjeno; ali njegovo vsebino zamenjamo z novo.

V programskih jezikih pravimo takim predalckom spremenljivke. Spremenljivkosestavljajo: ime, tip, prostor in vrednost.

Ce hocemo v programu s spremenljivko kaj poceti, uporabljamo za to njenoime. Ime spremenljivke prevajalnik ali tolmac poveze z njej pripadajocim pros-torom v pomnilniku. Vsebina tega prostora je vrednost spremenljivke. Tip spre-menljivke pa doloca: velikost spremenljivki pripadajocega prostora; vrednosti, kijih lahko vsebuje; kako naj prevajalnik razume vsebino prostora; in kaj lahko s

Page 22: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

22 Poglavje 2. Ukazi, koordinate in izpis

spremenljivko pocnemo. Kot smo ze omenili, pozna logo tri tipe: stevila, besedein sezname.

V logu je ime spremenljivke beseda. Na primer: "PETER, "NOVA.CENA. Dovsebine spremenljivke "ime pridemo z ukazom THING "ime, kar lahko krajsezapisemo :ime. Tako na primer namesto THING "DATUM raje pisemo :DATUM.

Kolicino vrednost shranimo v spremenljivko ime z ukazom

MAKE "ime vrednost

Na primer

MAKE "DAN 23 MAKE "MESEC "marec MAKE "LETO 1991(PR :DAN :MESEC :LETO)

V programskih jezikih, ki temelje na prevajanju, lahko spremenljivka vsebuje levrednosti enega tipa; v logu pa lahko vanjo shranimo katero koli vrednost. Naprimer, brez ugovora bo sedaj sprejel tudi zahtevo

MAKE "LETO "MCMXCI SHOW :LETO

Poskusite se

MAKE "A "KONEC MAKE "B "A SHOW :B SHOW THING :B

2.7 Ukazi s parametri

Kako sestavimo ukaz za risanje kvadrata, smo se ze naucili. Ce zelimo risatikvadrate s spremenljivo velikostjo stranice, moramo ukaz opremiti s podatkom,ki mu bo to povedal. Tudi v opisu ukaza moramo povedati, da je ukaz odvisenod podatka. V ta namen vpeljemo posebno sestavino – parametre. Ime parametraima obliko vrednosti spremenljivke – sestavlja ga dvopicje, ki mu sledi zaporedjeznakov. Uvedba ukaza s parametri ime ima obliko

TO ime parametriopis

END

Kadar zelimo v opisu ukaza uporabiti vrednost kakega parametra, zapisemo nje-govo ime. Pri uporabi ali, kakor pravimo v racunalnistvu, klicu ukaza navedemonjegovo ime in za njim zaporedje vrednosti parametrov.

Recimo, da oznacuje dolzino stranice kvadrata parameter :a . Tedaj lahkosestavimo ukaz

Page 23: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

2.7. Ukazi s parametri 23

TO KVA :aREPEAT 4 [ FD :a RT 90 ]

END

ki ga preizkusimo z zahtevo

CS KVA 30 KVA 50 KVA 70 KVA 100

Uporabniski ukazi so zelo pomembna sestavina vsakega programskega jezika, saj,ce jih pravilno uporabljamo:

• povecajo preglednost in razumljivost programov;

• priblizajo programski jezik podrocju uporabe;

• omogocajo pisanje krajsih programov;

• strokovnjaki lahko pripravijo knjiznice ukazov. Tako lahko tudi nestrokov-njaki uporabljajo zahtevna ”orodja”.

Za nas je pomembna se ena lastnost: ker lahko za imena uporabljamo slovenskebesede, lahko logo ”naucimoslovenscine. Na primer:

TO NAPREJ :kFD :k

ENDTO DESNO :kRT :k

END

Sedaj bo logo razumel tudi zahteve

NAPREJ 100 DESNO 90 NAPREJ 50

Za nekoliko zahtevnejsi primer narisimo gozd. Najprej drevo s koreninami v tockit in korakom velikosti a

TO DREVO :t :aSETH 0 PU SETPOS :t PDREPEAT 10 [FD :a] LT 85REPEAT 36 [FD :a RT 10]

END

vec dreves sestavlja gozd

DREVO [-90 -50] 5 DREVO [10 30] 3 DREVO [110 -30] 4

Na slikah 2.5 in 2.6 je prikazan gozd iz 30 nakljucno velikih in postavljenih dreves.

Page 24: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

24 Poglavje 2. Ukazi, koordinate in izpis

Slika 2.5: Gozd

2.8 Znakovni zaslon

Kot smo ze povedali, poleg slikovnega zaslona, na katerem risemo slike, poznalogo se znakovni zaslon, ki je namenjen za izpis besedil. Nanj nas postavi ukazTEXTSCREEN ali krajse TS. Na znakovni zaslon pisemo z ukazi PRINT, SHOW inTYPE.

Znakovni zaslon je razdeljen na enako velika pravokotna ”okenca”. V vsakotako okence lahko napisemo po en znak. Zaporedna okenca v vodoravni smerisestavljajo vrstice, v navpicni pa stolpce. Vrstice in stolpci so ostevilceni. Stetizacnemo v levem zgornjem vogalu zaslona. Na racunalniku PC ima znakovni za-slon navadno 25 vrstic in 80 stolpcev. Koliko vrstic in stolpcev je na vasem za-slonu?

Z ukazom

SETCURSOR [ s v ]

se postavimo na okence v s-tem stolpcu in v-ti vrstici. Ime ukaza lahko okrajsamos SETCUR. Kje je tekoce okence izvemo z ukazom CURSOR, ki vrne seznam [ s v]. Tako na primer

SETCUR [14 11] TYPE "Logo SHOW CURSOR SHOW CURSOR

Page 25: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

2.8. Znakovni zaslon 25

Slika 2.6: Se en gozd

izpise:

Logo[18 11][25 11]

Ce imamo na voljo barvni zaslon, lahko z ukazom

SETTC [ c p ]

zahtevamo, da naj bodo odslej izpisani znaki barve c (crnilo), pripadajoca okencapa barve p (podlaga, papir). Barve so ostevilcene. Obe barvi podamo tako, danapisemo njuni stevilki. Na posameznih racunalnikih (in celo zaslonih) so na voljorazlicni nabori barv. Seznam, ki vsebuje tekoci barvi papirja in crnila, vrne ukazTEXTCOLOR ali TC.

Za barvo papirja velja na PC samo prvih 8 barv, nadaljnje vrednosti povzro-cijo utripajoci izpis. Z ukazom SETTC lahko na PC tudi na crno-belem zaslonudosezemo posamezne ucinke (utripanje, jakost izpisa, inverzni izpis, podcrtanje) ...Poskusite

TS CTSETTC [ 0 1 ] PR "XXXXXOOOOOSETTC [ 0 7 ] PR "XXXXXOOOOOSETTC [ 1 0 ] PR "XXXXXOOOOO

Page 26: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

26 Poglavje 2. Ukazi, koordinate in izpis

SETTC [ 8 5 ] PR "XXXXXOOOOOSETTC [ 9 0 ] PR "XXXXXOOOOOSETTC [ 24 3 ] PR "XXXXXOOOOOSETTC [ 16 7 ] PR "XXXXXOOOOO

Page 27: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

Poglavje 3

Racunanje in seznami

3.1 Racunanje

V logu lahko tudi racunamo. Za zacetek se bomo zadovoljili z osnovnimi racunskimioperacijami: sestevanjem +, odstevanjem−, mnozenjem ∗ in deljenjem /. Poskusite

TS CTPR 3 + 4PR 17 - 8PR 8 * 7PR 7 / 3

zaporedni odgovori so 7, 9, 56, 2.333333 . Uporabimo lahko tudi zapletenejseizraze. Vrstni red izracuna dolocimo z oklepaji. Tako

PR (5+6)*(12-7)

izracuna in izpise vrednost 55.Ce vrstni red ni dolocen z oklepaji, ga dolocata naslednja dogovora:

• prednostni vrstni red: tako kot je v navadi v matematiki, mnozenje in deljenjemocneje vezeta kot sestevanje in odstevanje;

• izracun z leve proti desni: operacije, ki vezejo enako mocno, se opravljajo zleve proti desni.

Tako je zahteva

PR 3 - 4 * 5 + 7

enakovredna zahtevi

27

Page 28: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

28 Poglavje 3. Racunanje in seznami

PR (3 - (4 * 5)) + 7

Zakaj ? Preizkusite !V izrazih lahko uporabljamo tudi spremenljivke in izracunano vrednost shrani-

mo v neko spremenljivko z ukazi oblike

MAKE "i izraz

ki zahteva, da se izracuna vrednost danega izraza in nato shrani v spremenljivko i.Enak ucinek ima tudi ukaz

NAME izraz "i

Poglejmo, kaj opravita ukaza:

MAKE "k 7MAKE "k :k + 1

Prvi ukaz shrani v spremenljivko k vrednost 7. Drugi ukaz zahteva, da se najprejizracuna vrednost izraza :k + 1 in nato shrani v spremenljivko k. Izraz :k + 1zahteva, da vzamemo vrednost spremenljivke k, to je 7, in ji pristejemo 1. Dobimo8. To vrednost shranimo nazaj v spremenljivko k kot njeno novo vrednost. Torej,ce posplosimo, je pomen drugega ukaza: povecaj vrednost spremenljivke k za 1.

Poizkusite se

MAKE "a "le MAKE "b ska TYPE :a PR :bMAKE c :a MAKE "a :b MAKE "b :c TYPE :a PR :b

Vidimo, da stavki MAKE med stavkoma PR in TYPE premenjajo vrednosti spre-menljivk a in b. Spremenljivko c smo uporabili za zacasno hranjenje zacetne vred-nosti spremenljivke a.

Kaj pa izpisejo ukazi:

TS CT MAKE "a 19 MAKE "b 91 (PR :a :b)MAKE "a :a + :b MAKE "b :a - :b MAKE "a :a - :b(PR :a :b)

in

MAKE "a 1 MAKE "b 1 PR :a PR :bREPEAT 10 [ MAKE "a :a + :b

MAKE "b :a + :b PR :a PR :b ]

Za zahtevnejse bralce bo najbrz poucen tudi naslednji zgled:

Page 29: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

3.2. Seznami 29

TO povecaj :stevecMAKE :stevec (THING :stevec) + 1

END

MAKE "n 0 (PR [:n =] :n)povecaj "n (PR [:n =] :n)

3.2 Seznami

Ce so kolicine a1a2 . . . an znane, dobimo seznam tako, da zaporedje kolicin ob-damo z oglatima oklepajema [ in ]. Kolicine, ki nastopajo v seznamu, so lahkotudi same seznami. Na primer:

[ 1 2 3 ][ [ 1 ] 4 [ 2 3 ] "aha x ]

Seznamu [ ], ki vsebuje prazno zaporedje, pravimo prazni seznam. S seznamilahko opisemo najrazlicnejse vrste podatkov.

Kadar kolicine dobimo kot vrednosti spremenljivk ali kot rezultat izracuna, jihzdruzimo v seznam z ukazom LIST

( LIST a1 a2 . . . an )

Ukazu LIST je soroden ukaz SENTENCE, ali krajse SE, oblike

( SE s1 s2 . . . sn )

ki elemente seznamov s1, s2, ..., sn zdruzi v skupni seznam. Na primer, naj bo

MAKE "p [1 2] MAKE "q [3 4]

Tedaj ukaz

SHOW (LIST :p :q)

izpise seznam [[1 2][3 4]]; ukaz

SHOW (SE :p :q)

pa seznam [1 2 3 4]. Podobno ukaz

( WORD b1 b2 . . . bn )

zdruzi dane besede v eno besedo.Poglejmo si se zgled, ki zdruzuje vec sestavin, ki smo jih spoznali v tem

razdelku. Ukazi

Page 30: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

30 Poglavje 3. Racunanje in seznami

TS CT MAKE "v 1REPEAT 20 [

SETCUR (LIST 2*:v :v) TYPE :v MAKE "v :v + 1 ]

izpisejo ”diagonalno”po znakovnem zaslonu prvih 20 naravnih stevil.Tako, sedaj pa ze poznate vse, kar je potrebno za resitev naslednje naloge.

3.3 Naloga: Postevanka do 100

Sestavi zaporedje ukazov v logu, ki na znakovnem zaslonu izpise postevanko do100.

1 2 3 4 5 6 7 8 9 101 1 2 3 4 5 6 7 8 9 102 2 4 6 8 10 12 14 16 18 203 3 6 9 12 15 18 21 24 27 304 4 8 12 16 20 24 28 32 36 405 5 10 15 20 25 30 35 40 45 506 6 12 18 24 30 36 42 48 54 607 7 14 21 28 35 42 49 56 63 708 8 16 24 32 40 48 56 64 72 809 9 18 27 36 45 54 63 72 81 9010 10 20 30 40 50 60 70 80 90 100

Page 31: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

Poglavje 4

Funkcije in odlocitveni stavek

4.1 Stevilske funkcije

Vsoto a + b lahko v logu zapisemo tudi v obliki SUM a b ; in veccleno vsotoa1 + a2 + ... + an v obliki

( SUM a1 a2 ... an )

Podobno lahko za zmnozek a ∗ b uporabimo obliko PRODUCT a b ; in za a1 ∗ a2 ∗... ∗ an izraz

( PRODUCT a1 a2 ... an )

Ukaza SUM in PRODUCT sta funkcijska ukaza, ker dane podatke predelata vnov podatek – zahteva SUM 3 4 predela stevili 3 in 4 v njuno vsoto 7. Tudi zaostale racunske operacije pozna logo funkcijske ukaze:

DIFFERENCE a b

je enakovreden izrazu a− b in izracuna razliko stevil a in b;

QUOTIENT a b

je enakovreden izrazu a/b in izracuna kvocient stevil a in b;

DIV a b

izracuna celostevilski kvocient celih stevil a in b;

REMAINDER a b

31

Page 32: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

32 Poglavje 4. Funkcije in odlocitveni stavek

izracuna ostanek pri deljenju celega stevila a z b. V zadnjih treh funkcijah morabiti vrednost b razlicna od 0.

Poskusite

PR QUOTIENT 91 19PR DIV 91 19PR REMAINDER 91 19

Zaporedoma dobimo 4.78947368, 4 in 15.Poleg funkcij za posamezne racunske operacije pozna vecina narecij loga se

naslednje funkcije:

PI π = 3.14159265INT n celi delROUND n najblizje celo steviloSQRT n kvadratni koren, n ≥ 0ABS n absolutna vrednostRANDOM n nakljucno celo stevilo med 0 in n− 1SIN n sinusCOS n kosinusTAN n tangensARCTAN n locni tangensEXP n eksponentnaLOG n naravni logaritem, n > 0

Trigonometrijske funkcije SIN, COS, TAN in ARCTAN delajo s koti, izrazenimi vstopinjah. V LOGOSu pa lahko uporabljamo tudi funkcije SINR, COSR, TANR inATANR, ki delajo s koti, izrazenimi v radianih.

V nekaterih narecjih loga lahko z ukazom RANDOMIZE zagotovimo, da bozaporedje nakljucnih stevil, ki jih daje funkcija RANDOM, pri ponovni izvedbi pro-grama drugacno.

4.2 Lastne funkcije

Uporabnik lahko sestavi tudi lastne funkcijske ukaze. Opis funkcijskega ukaza imaobicajno obliko

TO ime parametriizracun vrednostiOUTPUT vrednost

END

Page 33: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

4.3. Znaki 33

Ukaz OUTPUT v, ali krajse OP v, prekine izvajanje funkcijskega ukaza in vrnevrednost v kot njegovo vrednost.

Tako na primer funkciji

TO ENICE :nOP REMAINDER ABS :n 10

ENDTO DESETICE :nOP ENICE DIV :n 10

END

vrneta enice oziroma desetice danega celega stevila. Na zahtevo

PR ENICE -253 PR DESETICE -253

logo izpise stevili 3 in 5.

4.3 Znaki

V racunalniku so tudi znaki shranjeni kot stevila. Vsak znak je predstavljen znjegovo zaporedno stevilko v tabeli znakov. Predpisu, ki vsakemu znaku priredizaporedno stevilko in obratno, pravimo koda. V racunalnistvu se najpogostejeuporablja koda ASCII. ASCII pomeni American Standard Code for InformationInterchange – Standardna ameriska koda za izmenjavo podatkov.

Tabela ASCII vsebuje 256 znakov s stevilkami od 0 do 255. Stevilkam 0 – 31in 128 – 255 na razlicnih racunalnikih ustrezajo razlicni znaki.

Zvezo, ki jo doloca koda ASCII, povzemata v logu funkcijska ukaza ASCII inCHAR. Zahteva ASCII znak vrne zaporedno stevilko danega znaka; zahteva CHARn pa vrne znak z zaporedno stevilko n. Tako

PR ASCII "a PR CHAR 65

izpise 97 in A .Za izpis znaka, ki pripada dani stevilki, lahko sestavimo poseben ukaz

TO ZNAK :n(PR :n CHAR :n)

END

Na racunalniku PC zahteva

ZNAK 201 ZNAK 205 ZNAK 187 ZNAK 200 ZNAK 188 ZNAK 186

Page 34: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

34 Poglavje 4. Funkcije in odlocitveni stavek

Slika 4.1: Nakljucni vzorec

izpise znake, iz katerih lahko sestavimo okvir.Sestavimo se ukaz, ki izpise vse znake s kodami od od do do:

TO Znaki :od :doTS CT MAKE znak :odREPEAT :do - :od + 1 [(PR :znak CHAR :znak)MAKE znak :znak + 1 ]

END

Poskusite Znaki 31 50 . Oglejte si se druge znake na vasem racunalniku.Na racunalniku PC kodam 220 – 223 ustrezajo pol beli, pol crni znaki. To je

uporabljeno v naslednjem programu

TS CTREPEAT 2000 [ TYPE CHAR 220 + RANDOM 4 ]

ki izpise na znakovni zaslon nakljucni vzorec, kakrsen je prikazan na sliki 4.1.

4.4 Pogoji

Logo pozna tudi logicni vrednosti "TRUE (resnicno) in "FALSE (lazno). Izrazom,ki dajo logicno vrednost pravimo pogoji. Enostavni pogojni izrazi imajo oblikoprimerjav

Page 35: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

4.4. Pogoji 35

a < b manjsia = b enaka > b vecji

Poskusite

MAKE c 1 PR :c < 5 PR 0 = :c

Logo izpise TRUE in FALSE.Logicno vrednost vracajo tudi nekatere vgrajene funkcije. Lahko pa tako funkcijo

sestavi tudi uporabnik. Na primer, kakor vemo, je stevilo n deljivo s stevilom dnatanko takrat, ko je ostanek pri deljenju n z d enak 0. To izrazimo s funkcijo

TO DELJIV :n :dOP 0 = REMAINDER :n :d

END

Pogoje lahko povezemo v sestavljene pogoje z izjavnimi povezavami

NOT a negacija; ni res aAND a b konjunkcija; a in bOR a b disjunkcija; a ali b

katerih delovanje je opisano s tabelama

a NOT a

F TT F

in

a b AND a b OR a b

F F F FF T F TT F F TT T T T

V tabelah T oznacuje "TRUE, F pa "FALSE. Uporabljamo lahko tudi obliki (ORa1 a2 ... an) in (AND a1 a2 ... an) .

Z uporabo izjavnih povezav lahko pogoj a ≤ x < b zapisemo v logu takole

AND OR :a=:x :a<:x :x<:b

Page 36: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

36 Poglavje 4. Funkcije in odlocitveni stavek

4.5 Odlocitveni stavek

Pogoje uporabljamo v ukazih oblike

IF pogoj [ res ukazi ][ laz ukazi ]

ki preveri, ali je dani pogoj izpolnjen (resnicen). Ce je izpolnjen, opravi res ukaze,sicer pa opravi laz ukaze.

Tako na primer ukaz

TO VECJI :a :bIF :a > :b [ OP :a ] [ OP :b ]

END

vrne vecje izmed stevil a in b. Na zahtevo

PR VECJI -14 7 PR VECJI 8 5

logo izpise 7 in 8.Odlocitveni stavek ima v razlicnih narecjih loga se druge oblike. Na primer:

IF pogoj THEN res ukazi

ki jo lahko nadaljujemo z

ELSE laz ukazi

Ker vecina narecij loga ne dopusca, da bi se stavek raztezal cez vec vrstic, poznajostavke

TEST pogojIFTRUE res ukaziIFFALSE laz ukazi

Prvi ukaz preveri dani pogoj; preostala dva pa povesta, kaj naj se opravi glede namozna izida preverjanja.

Pri pisanju lastnih ukazov nam bo prisel prav se ukaz STOP, ki zahteva prekinitevizvajanja ukaza, v opisu katerega se nahaja. Izvajanje se nadaljuje na ukazu, kisledi klicu – zahtevi, ki je sprozila prekinjeni ukaz.

Page 37: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

4.6. Rekurzija 37

4.6 Rekurzija

Kot nekoliko zapletenejsi primer si oglejmo funkcijski ukaz VSOTA, ki vrne kotvrednost vsoto stevk (cifer) v desetiskem zapisu stevila n. Postopek temelji naugotovitvi, da je vsota vseh stevk enaka vsoti enic in vsote stevk stevila brez enic

TO VSOTA :nIF :n = 0 [ OP 0 ][ OP (REMAINDER :n 10) + VSOTA DIV :n 10 ]

END

Kaj se zgodi, ko zahtevamo

PR VSOTA 3958

Najprej se izracuna VSOTA 3958

VSOTA 3958 → 8 + VSOTA 395VSOTA 395 → 5 + VSOTA 39VSOTA 39 → 9 + VSOTA 3VSOTA 3 → 3 + VSOTA 0VSOTA 0 ↔ 0VSOTA 3 ← 3 + 0 = 3VSOTA 39 ← 9 + 3 = 12VSOTA 395 ← 5 + 12= 17VSOTA 3958 ← 8 + 17= 25

Torej VSOTA preda ukazu PR vrednost 25, ki jo le-ta izpise.Kot vidimo, ukaz VSOTA zahteva v svojem opisu ponovno svojo izvedbo.

Takim ukazom, ki posredno ali neposredno zahtevajo svojo ponovno izvedbo, prav-imo, da so rekurzivni. Za programiranje v logu je uporaba rekurzivnih ukazovznacilna.

Sami preiskusite se ukaz

TO SPIRALA :d :s :aIF :d > 300 [ STOP ] [ ]FD :d RT :aSPIRALA (:d + :s) :s :a

END

recimo z zahtevama SPIRALA 0 4 90 in SPIRALA 0 3 178. Na sliki 4.2 jeprikazana SPIRALA 0 1.2 53.

Page 38: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

38 Poglavje 4. Funkcije in odlocitveni stavek

Slika 4.2: Spirala

4.7 Naloga: Prastevilo

V logu sestavi ukaz PRASTEVILO :n, ki za dano naravno stevilo n izpise, ali jeprastevilo ali ni.

Ce ste pozabili, naravno stevilo n > 1 je prastevilo natanko takrat, ko je deljivosamo z 1 in samim seboj – torej, ko ima natanko dva delitelja.

Page 39: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

Poglavje 5

Besede in seznami

5.1 Se nekaj o besedah

Pomudimo se najprej nekoliko pri samem zapisu besed. Kot vemo, besedo napo-vemo z dvojnimi navednicami ", ki jim sledi niz znakov, ki sestavlja besedo. No,v tem nizu ne smemo naravnost uporabiti nekaterih znakov. To so presledek inznaki

+ - * / ( ) [ ] < > = " : ; \

ter v narecju LOGOS se znaki

$ % & , | ˜ { } ’

Nekatera narecja uporabljajo znak # za napoved zapisa stevila v drugi osnovi. Takoso na primer #B1011, #O13 in #H0B zaporedoma zapisi stevila 11 v dvojiskem,osmiskem in sestnajstiskem sestavu.

Ce vseeno zelimo katerega izmed omenjenih znakov vkljuciti v besedo, moramopredenj postaviti ubezni znak \ (nekatera narecja loga poznajo druge ubezne znake)ali pa uprabiti ukaz CHAR. Tako ukaz

MAKE "kraj "Nova\ Gorica

shrani v spremenljivko kraj besedo Nova Gorica. Ce pa bi ubeznemu znaku \sledila dva presledka, bi se logo pritozil, da ne pozna ukaza Gorica.

Tako lahko v vecini narecij loga uporabljamo v besedah kot navadne znake leznake

. ! ? _ ˆ @ ‘

39

Page 40: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

40 Poglavje 5. Besede in seznami

Pogosto uporabljamo imena, ki vsebujejo znak @ ali ., za poimenovanje ”sistem-skihspremenljivk in ukazov.

V narecju LOGOS lahko s tem, da del besede postavimo v enojne navednice ’,zahtevamo, da ga uposteva dobesedno. Tako bi lahko prejsnji ukaz zapisali tudi vobliki:

MAKE "kraj "’Nova Gorica’

Do sedaj smo spoznali za delo z besedami funkcijske ukaze ASCII, CHAR inWORD. Poleg teh poznajo nekatera narecja loga se funkciji: LOWERCASEw, ki vsecrke besede w predela v male; in UPPERCASE w, ki vse crke besede w predela vvelike. Uporabimo lahko tudi okrajsavi LC in UC. Tako na primer na zahtevo

MAKE "b "LogoS PR :b PR UC :b PR LC :b

logo izpise zaporedoma LogoS, LOGOS in logos.Preberemo lahko tudi znak, ki ga uporabnik pritisne na tipkovnici. To nam

omogoca ukaz READCHAR, ali krajse RC, ki pocaka na pritisk na tipko in vrneustrezni znak. Ali je pritisnjena kaka tipka, pa nam pove logicna funkcija KEYP.

Uporabniki narecja LCSI/LOGOS imajo na voljo ukaz RdEKey, ki omogocabranje tudi posebnih (smerne, funkcijske . . . ) tipk na tipkovnici. Vrne seznam kodpritisnjene tipke.

Ukaz READCHAR nam omogoca napisati ukaz, ki izpisuje kode ASCII znakovs tipk, na katere pritisnemo. Zapustimo ga s tipko ENTER , ki ima kodo ASCII13.

TO TIPKEMAKE "@z RC IF 13 = ASCII :@z [ STOP ] [](TYPE "ASCII\( :@z "\)\ \=\ ) PR ASCII :@zTIPKE

END

5.2 Delo z besedami in seznami

Obstaja se nabor funkcij, ki delujejo tako nad besedami kot tudi nad seznami.Kadar je podatek lahko ali beseda ali seznam, mu bomo rekli objekt. Nastejmojih:

EMPTYP o ali je objekt o prazenCOUNT o stevilo clenov v objektu oMEMBERP x o ali x pripada objektu oFIRST o prvi clen objekta o

Page 41: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

5.2. Delo z besedami in seznami 41

LAST o zadnji clen objekta oITEM n o n–ti clen objekta oBUTFIRST o objekt o brez prvega clena; okrajsava BFBUTLAST o objekt o brez zadnjega clena; okrajsava BLFPUT o s dodaj objekt o na zacetek seznama sLPUT o s dodaj objekt o na konec seznama sEQUALP o1 o2 ali sta objekta o1 in o2 enaka

Sedaj pa si poglejmo njihove ucinke. Ukazi

MAKE "a "Peter MAKE "b ["V S Z "J]PR COUNT :a PR COUNT :b PR ITEM 3 :aPR MEMBERP FIRST "JV :b PR FPUT FIRST :b BF :a

izpisejo zaporedoma 5, 4, t, TRUE in Veter.Ukaz READLIST, ali krajse RL, prebere z zaslona vneseni objekt. O tipu vse-

bine spremenljivke x pa lahko poizvemo z ukazi

NAMEP x ali ima x vrednostNUMBERP x ali je x steviloWORDP x ali je x besedaLISTP x ali je x seznam

Veckrat pride prav tudi naslednji ukaz ZNAKI, ki iz dane besede b ustvari sez-nam znakov, ki jo sestavljajo:

TO ZNAKI :bIF EMPTYP :b [ OP [] ][]OP FPUT FIRST :b ZNAKI BF :b

END

Poskusite z zahtevo

SHOW ZNAKI "matematika

Logo izpise seznam

[ m a t e m a t i k a ]

Ukaz PRAFAKTORJI pa ustvari seznam prafaktorjev danega stevila n

Page 42: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

42 Poglavje 5. Besede in seznami

TO @F :n :dIF :n<2 [ OP [] ] []IF :d*:d>:n [ OP (LIST :n) ] []IF 0=REMAINDER :n :d [OP FPUT :d @F DIV :n :d :d] []

OP @F :n :d+1ENDTO PRAFAKTORJI :n

OP @F :n 2END

Na zahtevo

SHOW PRAFAKTORJI 499905

dobimo

[3 3 3 5 7 23 23]

Poskusite se stevila 499928, 500000 in 500094.

5.3 Nakljucni izbor

Razmeroma preprosto je sestaviti ukaz IZBERI, ki nakljucno izbere neki clen izdane besede ali seznama

TO IZBERI :sOP ITEM (1+RANDOM COUNT :s) :s

END

Tako smo na zahtevo

REPEAT 20 [TYPE IZBERI "VSZJ]

dobili zaporedje znakov

JZVZSSVVSJJVSVJZSZVV

5.4 Iskanje

Napisimo se ukaz KJE, ki vrne zaporedno stevilko clena z v besedi / seznamu b;ce ga ne najde, vrne stevilko 0

Page 43: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

5.5. Ulomki in lokalne spremenljivke 43

TO KJE :z :bMAKE "@k 1REPEAT COUNT :b [IF EQUALP :z ITEM :@k :b [ OP :@k ] []MAKE "@k :@k + 1 ]

OP 0END

Preiskusimo ga!

MAKE s "AEIOU PR KJE "I :s PR KJE "B :s

Logo izpise odgovora 3 in 0. LCSI/LOGOS pozna ukaz MEMBERN, ki ima istiucinek kot ukaz KJE.

5.5 Ulomki in lokalne spremenljivke

Veckrat v opisu ukaza uporabimo spremenljivke, v katere shranimo kak zacasnirezultat in jih po izteku ukaza ne potrebujemo vec. Take spremenljivke lahko pro-glasimo za lokalne spremenljvke z ukazom LOCAL (glej primere v tem razdelku).S tem dosezemo dvoje:

• tolmac po izteku ukaza sprosti lokalnim spremenljivkam pripadajoci prostor;

• ce v okolju, v katerem klicemo ukaz, obstaja spremenljivka z istim imenomkot lokalna spremenljivka, njene vrednosti ne pokvarimo nehote.

Poglejmo si se en primer uporabe seznamov. Ulomek a

blahko predstavimo s

seznamom [a b]. Za delo z ulomki lahko tedaj sestavimo ustrezne ukaze. UkazNAJDEL doloci najvecji skupni delitelj stevil a in b (Evklidov algoritem)

TO NAJDEL :a :bIF :b=0 [OP ABS :a] [OP NAJDEL :b REMAINDER :a :b]

END

Ukaz OBLIKA vrne dani ulomek v okrajsani obliki, pri cemer je imenovalec pozi-tiven.

TO OBLIKA :aLOCAL "dIF 0 = LAST :a [ OP :a ] []MAKE "d NAJDEL FIRST :a LAST :aOP IF 0 < LAST :a

Page 44: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

44 Poglavje 5. Besede in seznami

[ (LIST DIV FIRST :a :d DIV LAST :a :d) ][ (LIST (-DIV FIRST :a :d) (-DIV LAST :a :d)) ]

END

Sestavimo se ukaz SESTEJ, ki doloci vsoto danih dveh ulomkov

TO SESTEJ :a :b(LOCAL s "i)MAKE s (FIRST :a)*(LAST :b) + (FIRST :b)*(LAST :a)MAKE "i (LAST :a)*(LAST :b)OP OBLIKA (LIST :s :i)

END

Ostale, manjkajoce ukaze za delo z ulomki boste sedaj najbrz zmogli dodati sami.Preverimo ukaze

MAKE "u1 [6 -9] MAKE "u2 [-3 -4]SHOW :u1 TYPE "\+ SHOW :u2 TYPE "\=SHOW SESTEJ :u1 :u2

Dobimo

[6 -9]+[-3 -4]=[1 12]

5.6 Naloga: Beseda

Vrednost posamezne crke je enaka njeni zaporedni stevilki v (nasi) abecedi. Takoima A vrednost 1, B ima vrednost 2, . . . in Z ima vrednost 25. Vrednost besede jeenaka produktu vrednosti crk, ki jo sestavljajo. Na primer

v(BABICA) = 2 · 1 · 2 · 10 · 3 · 1 = 120

v(LOGOS) = 13 · 16 · 8 · 16 · 19 = 505 856

Poisci slovensko besedo, ki ima vrednost cim blizjo stevilu 500 000. Kako si si pritem pomagal(a) z logom ?

Page 45: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

Poglavje 6

Zvok

Fizikalno je zvok valovanje. Ce je to valovanje enakomerno – ima dolocljivofrekvenco, mu pravimo ton; sicer govorimo o sumu. Frekvenco ali, kakor prav-ijo glasbeniki, visino merimo v stevilu nihajev na sekundo – hertzih (Hz). Tako je300 Hz = 300 nihajev na sekundo. Ljudje slisimo zvok v obsegu od 15–20000 Hzin lahko pojemo v obsegu 200–2000 Hz.

Ton sestavljajo stiri sestavine: visina, trajanje, moc (glasnost, amplituda ni-hanja) in barva. Barva je dolocena z ovojnico – krivuljo spreminjanja moci.

6.1 Zvok na racunalniku

Vecina mikroracunalnikov lahko ustvarja zvok. Vendar so razlike med njimi pre-cejsne. V najpreprostejsih izvedbah zvoka (Spectrum, PC) lahko spreminjamo levisino in trajanje. V ostalih mikroracunalnikih (C-64, Atari, Amiga, Spectrum+2) je ustvarjanje zvoka prepusceno posebnemu cipu, ki lahko nadzira vse stirisestavine tona. Navadno lahko tudi upravlja z nekaj vzporednimi viri zvoka. Nanekaterih mikroracunalnikih lahko racunalnik s posebnim vmesnikom MIDI (Mu-sical Instrument Digital Interface) povezemo z elektronskimi zvocnimi napravami(sintesizerji, zvocniki, mikrofoni . . . ). Seveda se vse te zmoznosti odrazajo tudi vnaboru ukazov, s katerimi krmilimo zvok. Tudi zvocne zmogljivosti racunalnikaPC lahko dopolnimo z vgraditvijo posebne zvocne kartice. Zadnji cas se posebejuveljavlja kartica Sound Blaster.

Pri nasem seznanjanju z zvokom v logu se bomo drzali planinskih nacel in seprilagodili najsibkejsemu clenu v verigi. Predpostavili bomo, da imamo na voljoukaz BEEP v t , ki ustvari t/50 sekunde trajajoci ton visine v.

V narecju LCSI/LOGOS je ukazu BEEP enakovreden ukaz TONE v t; lahko paga tudi sestavimo iz se osnovnejsih ukazov

45

Page 46: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

46 Poglavje 6. Zvok

SOUND v zacni pisk visine v;NOSOUND prekini piskanje;WAIT t pocakaj t/50 sekunde.

takole

TO BEEP :v :tSOUND :v WAIT :t NOSOUND

END

Ce za programiranje zvoka uporabljamo ukaz SOUND, lahko posamezni ukaz WAITnadomestimo s kakim kratkim koristnim opravilom.

Atarijev logo pozna ukaz TOOT c v g t , kjer je c vir zvoka (0 ali 1) in g (0 do15) moc tona. Z njim lahko izrazimo ukaz BEEP takole:

TO BEEP :v :tTOOT 0 :v 15 :t

END

Kako je z zvokom na racunalniku C-64, je opisano v knjigi [13, str. 128-132].Bralec naj sam sestavi ukaz BEEP z uporabo Commodorejevega ukaza SOUND.

6.2 Zvocni ucinki

Ukaz BEEP lahko uporabimo za ustvarjanje najrazlicnejsih zvocnih ucinkov. Takona primer ukaz

REPEAT 10 [ BEEP 267 40 BEEP 200 30 ]

posnema sireno resevalnega avtomobila. Pozvonimo pa z

REPEAT 8 [ REPEAT 2 [REPEAT 12 [ BEEP 700 1 ] WAIT 10 ] WAIT 70 ]

Ukaz

TO ZMES :n :od :do :tREPEAT :n [ BEEP :od + RANDOM (:do - :od) :t ]

END

zaigra n nakljucnih tonov z visinami med od in do ter trajanjem t. Poskusite

ZMES 50 100 500 10

Page 47: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

6.3. Glasba 47

h c d e f g a h c

do re mi fa so la ti

c] d] f] g] a]

Slika 6.1: Oktava

Zaporedno igranje tonov nam omogoca ukaz

TO TONI :od :do :k :tMAKE "v :odREPEAT ABS DIV (:do - :od) :k[ BEEP :v :t MAKE "v :v + :k ]

END

ki zaigra vse tone od visine od do visine do s korakom k in trajanjem t. Najprejposkusite

TONI 0 1000 25 20

Zanimiv ucinek pa ustvari tudi zahteva

TONI 6000 1000 -25 1 BEEP 50 10

6.3 Glasba

V glasbi praviloma uporabljamo le tone izbranih visin, ki sestavljajo tonski sis-tem. Za oznacevanje osnovnih tonov uporabljamo v evropski glasbi obicajno crke

Page 48: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

48 Poglavje 6. Zvok

ton O o o1 o2 o3

c 65 131 262 523 1046c](d[) 69 139 277 554 1109d 73 147 294 587 1175d](e[) 78 156 311 622 1244e 82 165 330 659 1318f 87 175 349 698 1397f](g[) 92 185 370 740 1480g 98 196 392 784 1568g](a[) 104 208 415 831 1661a 110 220 440 880 1760a](h[) 117 233 466 932 1865h 123 247 494 988 1976

Tabela 6.1: Tonski sistem

abecede c, d, e, f, g, a, h (anglezi uporabljajo namesto crke h crko b) ali pasolmizacijske zloge do, re, mi, fa, so (sol), la, ti (si). V tonskem sistemu se za-poredje osnovnih tonov veckrat ponovi. Del tonskega sistema med zaporednimaponovitvama oznake tona imenujemo oktava (glej sliko 6.1). Glede na osnovnomalo oktavo oznacujemo tone v nizjih oktavah z velikimi crkami in odmikom, npr.D2; tone v visjih oktavah pa z malo crko in odmikom, npr a1.

Razmiki med toni so vecji ali manjsi. Manjsemu pravimo polton, vecjemu paceli ton. Dva poltona sestavljata celi ton. Z visajem ] oznacujemo zvisanje tonaza polton, z nizajem [ pa znizanje tona za polton. Podrobnosti si lahko preberete vucbeniku [21].

V racunalnistvu navadno uporabljamo c-durovo lestvico in tonski sistem, kitemelji na komornem tonu a1 = 440 Hz. V tem sistemu sestavljajo toni geometri-jsko zaporedje. Razmerje med visinama zaporednih tonov je enako 12

√2 = 1.05946.

To zagotavlja, da ima posamezni ton v nizji (visji) oktavi polovicno (dvojno) visino.

6.4 Tipkovnica – klavir

Za primer sestavimo ukaz KLAVIR, ki tipkovnico pretvori v klaviaturo, tako kot jeprikazano na sliki 6.2. Izvajanje ukaza prekinemo s pritiskom na piko.

TO KLAVIR

Page 49: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

6.5. Skladbe 49

A

c

S

d

D

e

F

f

G

g

H

a

J

h

K

c

L

d

W

c]

E

d]

R T

f]

Y

g]

U

a]

I O

c]

Slika 6.2: Tipkovnica – klavir

TSMAKE s [262 2 3 330 311 349 392 440 9 494 523587 13 14 554 16 17 18 294 370 466 22 277 24 415 ]REPEAT 10000 [MAKE c LC RCIF EQUALP :c ". [ STOP ] []IF MEMBERP :c "asdfghjklwetyuo[ MAKE "t ITEM ((ASCII :c) - 96) :s BEEP :t 20 ][ ]

]END

6.5 Skladbe

V programskih jezikih so navadno toni izbranega sistema ostevilceni. Na primertakole:

. . . A] H c c] d . . . h c1 c1] . . .

. . . -2 -1 0 1 2 . . . 11 12 13 . . .

Namesto ukaza BEEP tedaj uporabljamo ukaz oblike NOTA n t , ki zaigra ton sstevilko n in trajanjem t.

Pogosto zelimo zaigrati vec tonov z enakim trajanjem. To krajse zapisemo zukazom IGRAJ

TO IGRAJ :s :tIF EMPTYP :s [ STOP ] []

Page 50: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

50 Poglavje 6. Zvok

NOTA FIRST :s :t IGRAJ BF :s :tEND

ki zaigra tone iz danega seznama s s trajanjem t. S tem ukazom lahko zapisemoskladbo Cukova zenitev (glej [25]) takole:

TO CUK :tIGRAJ [ 0 2 4 5 ] :t IGRAJ [ 7 7 9 9 ] 2*:tIGRAJ [ 7 ] 4*:t IGRAJ [ 9 9 ] 2*:tREPEAT 2 [ IGRAJ [ 7 ] 4*:tIGRAJ [ 5 5 5 5 ] :t IGRAJ [ 4 4 2 2 ] 2*:t ]

IGRAJ [ 0 ] 4*:tEND

V naslednjih ukazih je pokazano, kako lahko sami sprogramiramo ukaz NOTA zuporabo ukaza BEEP.

TO VOS :n :osIF :n = 0 [ OP :os ] []IF :n > 12 [ OP VOS (:n - 12) :os*2 ][ IF :n < 0 [ OP VOS (:n + 12) :os/2 ][ OP VOS (:n - 1) :os*1.05946 ] ]

ENDTO VISINA :n

OP ROUND VOS :n 110ENDTO NOTA :n :t

BEEP ITEM 13+:n :note :tENDTO TEST

MAKE "note [] MAKE "k -9REPEAT 48 [ MAKE "noteLPUT VISINA :k :note MAKE "k :k + 1]

TS PR :note CUK 10 WAIT 25 CUK 15END

Ukaz VISINA doloci visino tona s stevilko n. Uporabimo ga v ukazu TEST. Tanajprej ustvari seznam note, ki vsebuje visine tonov s stevilkami od –12 do 35. Iztega seznama dobi ukaz NOTA podatek o visini tona. Nato ukaz TEST se izpiseseznam note in dvakrat zaigra skladbo Cukova zenitev; drugic nekoliko pocasneje.

Page 51: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

6.6. Izpis not v LOGOSu 51

Slika 6.3: Notna pisava

6.6 Izpis not v LOGOSu

Ker je treba zapolniti se eno stran, da pride novo poglavje na liho stran, pokazimo,kako lahko note izpisemo v LOGOSu. Ta moznost je dostopna tudi v LCSI/LOGOSu.

Nabor znakov z notno pisavo je pripravljen na datoteki NOTE.CHR in imavlogo uporabniskega nabora znakov ("UserFont). Vgrajeni LOGOSovi naboriznakov pa so "DefaultFont,"TriplexFont,SmallFont,"GothicFont,SansSerifFont, ScriptFont in "LComFont.

Ukaz PrintNote izpise na tekoce mesto k-ti znak iz notne pisave in gaopremi z njegovo stevilko. Uporabljen je v ukazu PrintNotes, ki izpise znakedolocene z danim seznamom. Izpis znakov na sliki 6.3 je dobljen z ukazomIzpisiNote.

TO PrintNote :k(LOCAL "v s)MAKE "v DIV :n 10 MAKE s REMAINDER :n 10SetTextFont "UserFontSETCUR (LIST 9*:s+2 10.5*:v+5)TYPE CHAR :k SETCUR (LIST 2.4*:s+1.5 2.1*:v+1.8)SetTextFont "DefaultFont TYPE :k MAKE "n :n + 1

Page 52: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

52 Poglavje 6. Zvok

ENDTO PrintNotes :s

IF EMPTYP :s [ STOP ] [ ]PrintNote FIRST :s PrintNotes BF :s

ENDTO IzpisiNote

CS HTSetTextUserFont "note SetTextFont "UserFontSetTextSize 1 1 SetTextColor YellowMAKE "n 0PrintNotes [ 16 17 18 19 20 21 22 23 24 29 ]PrintNotes [ 2 3 40 41 42 43 4 5 6 7 ]PrintNotes [ 64 65 66 67 71 72 90 91 92 88 ]PrintNotes [ 48 53 57 31 32 58 59 80 82 83 ]WAIT 0

END

6.7 Naloga: Zvok

Sestavi zaporedje ukazov v logu, ki zaigra melodijo, ki si si jo izbral (na primerNasa cetica koraka), ali pa ustvari kak zvocni ucinek (na primer tiktakanje ure).

Page 53: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

Poglavje 7

Logo ni samo za otroke

Do sedaj smo videli, da lahko v logu pocnemo celo vrsto stvari in ne samo podimozelvico po zaslonu. V tem razdelku bomo spoznali se nekaj ukazov, ki logo bistvenolocijo od programskih jezikov (pascal, C ...), katerih izvajanje temelji na preva-janju.

7.1 Podatki ukazi

Kot vemo, za izvajanje ukazov v logu skrbi tolmac (interpreter). V takih program-skih jezikih meja med podatki in ukazi ni ostra. V logu omogocajo prehode medpodatki in ukazi naslednji ukazi:

RUN s izvede ukaze iz seznama sTEXT p vrne seznam z opisom ukaza pDEFINE p s vpelje ukaz z imenom p in opisom s

Poleg tega lahko seznam, kot vrednost izraza, podtaknemo tudi krmilnim stavkomREPEAT in IF.

Ker narecje LOGOS ne uposteva vrstic v zapisu ukaza, seznam z opisom ukaza,ki ga vrne ukaz TEXT, v LCSI/LOGOSu zgleda takole:

[ [ parametri ] [ ukazi ] ]

v ostalih narecjih loga pa takole:

[ [ parametri ] [ seznami vrstice ] ]

Tako, na primer, za ukaz

53

Page 54: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

54 Poglavje 7. Logo ni samo za otroke

TO ZNAK :x :y :zSETCUR (LIST :x :y)TYPE :z

END

na zahtevo

SHOW TEXT ZNAK

LCSI/LOGOS izpise

[[:x :y :z] [SETCUR (LIST :x :y) TYPE :z]]

v drugih narecjih loga pa dobimo

[[:x :y :z] [[SETCUR (LIST :x :y)] [TYPE :z]]]

V nadaljevanju si bomo najprej podrobneje ogledali ukaz RUN.Zacnimo s preprostim primerom

MAKE "u [3 * 4 + 5] SHOW :u SHOW RUN :u

Logo izpise [ 3 * 4 + 5 ] in 17.Ukaz RUN omogoca razsirljivost jezika logo – sestavljamo lahko lastne krmilne

ukaze. Za primer sestavimo ukaz ZAVSAK e s u , ki vsak clen seznama s postaviv spremenljivko e in nad njo izvede ukaze u

TO ZAVSAK :e :s :uREPEAT COUNT :s[ MAKE :e FIRST :s MAKE s BF :s RUN :u ]

END

Postavimo

MAKE "m [Maribor Celje Ljubljana Kranj Koper]MAKE "a [0 -1 2 -3 4]

Tedaj zahtevi

ZAVSAK c :m [PR :c]ZAVSAK c :m [PR FIRST :c]

izpiseta imena krajev in nato se zacetnice imen krajev. Zahteva

ZAVSAK "x :a [PR SIN 30*:x]

Page 55: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

7.2. Risanje funkcij 55

pa izpise sinuse kotov 0, -30, 60, 90 in 120 stopinj. Poskusimo se

ZAVSAK "x :a [PR SQRT :x]

Pri drugem clenu logo prekine izvajanje s sporocilom, da funkcija kvadratni korenni definirana za -1. No, logo omogoca nadzor tudi nad takimi primeri. Za toje namenjen ukaz CATCH "oznaka ukazi , ki prestreze oznako "oznaka, ki jo”vrzez ukazom THROW "oznaka kaksen od stavkov iz seznama ukazi. Sam logoob napaki vrze oznako "ERROR . Z ukazom CATCH lahko sestavimo nov funkcijskiukaz KOREN, ki vrne funkcijsko vrednost, kadar je ta definirana, sicer pa vrnebesedo Napaka.

TO KOREN :tCATCH "ERROR [ OP SQRT :t ]OP "Napaka

END

Logo bo sedaj zahtevo

ZAVSAK "x :a [PR KOREN :x]

izvedel brez tezav.Poglejmo sedaj, kako lahko te ukaze uporabimo pri sestavljanju ukazov za

risanje funkcij.

7.2 Risanje funkcij

V naslednjih vrsticah so podani ukazi za risanje funkcije F. Ukaz OSI narise ko-ordinatni sistem. Kolicini OX in OY dolocata mesto koordinatnega izhodisca nazaslonu, EX in EY pa dolzino enot na obeh oseh. Ukazi omogocajo tudi risanjefunkcij, ki niso povsod definirane (glej sliko 7.1).

TO RISICS HT SETPC 4MAKE "ox -50 MAKE "oy 0 MAKE "ex 20 MAKE "ey 20MAKE "dx :ox/:ex MAKE "dy :oy/:ey MAKE "h 1/:exOSI :ox :oy :ex :eyMAKE "f [SQRT ((:x + 3)*(:x - 2))/3]SETPC 10 GRAFMAKE "f[ -4 + 2*(SIN(180*:x/PI)) + COS(720*:x/PI) ]

SETPC 14 GRAF

Page 56: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

56 Poglavje 7. Logo ni samo za otroke

Slika 7.1: Risanje funkcij

WAIT 0ENDTO OSI :ox :oy :ex :ey

PU SETPOS (LIST :ox -200) PD SETH 0 FD 400PU SETPOS (LIST -300 :oy) PD SETH 90 FD 600 PU

ENDTO GRAF

MAKE "i -285 PUREPEAT 570 [MAKE "x :i*:h - :dx VREDNOSTIF :def [ SETPOS (LIST :i :j) PD ] [ PU ]MAKE "i :i + 1 ]

ENDTO VREDNOST

CATCH "ERROR [ MAKE "j ((RUN :f) + :dy)*:eyMAKE "def "TRUE STOP ]

MAKE "def "FALSEEND

Dani ukazi predstavljajo le okostje zaresnega sestava ukazov za risanje funkcij. Vnarecju LCSI/LOGOS je treba ukaz RUN v ukazu VREDNOST zamenjati z ukazom

Page 57: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

7.3. Razvejitveni stavek CASE 57

EVAL:

TO VREDNOSTMAKE "j ((EVAL :f) + :dy)*:eyMAKE "def 0 = ERRORN

END

Funkcija ERRORN vrne stevilko zadnje napake in jo postavi zopet na 0.

7.3 Razvejitveni stavek CASE

V sodobnih programskih jezikih navadno najdemo tudi stavek, ki omogoca izbiromed vec moznostmi. V logu bi izgledal recimo takole:

CASE izraz [v1 [ ukazi 1 ]. . .vk [ ukazi k ]. . .

ELSE[ ukazi * ]]

Stavek CASE zahteva: ce ima izraz vrednost vk opravi ukaze k; sicer opravi ukaze *.Clen ELSE in pripadajoci seznam ukazov lahko tudi izpustimo.

Za opisani stavek CASE je razmeroma preprosto sestaviti ustrezni ukaz v logu:

TO CASE :i :sLOCAL "@isMAKE "@is MEMBERN :i :sIF 0 < :@is[ RUN ITEM 1 + :@is :s ][ MAKE "@is MEMBERN CM "ELSE :sIF 0 < :@is[ RUN ITEM 1 + :@is :s ] [ ]

]END

Opis ukaza CASE smo zapisali v LCSI/LOGOSu. Pri tem smo uporabili ukaza

MEMBERN x o zaporedna stevilka prve pojavitve clena x vobjektu o; ce je ni, je vrednost 0

CM b ukaz (klic ukaza) z imenom b

Page 58: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

58 Poglavje 7. Logo ni samo za otroke

Ukaz MEMBERN je v bistvu enakovreden ukazu KJE, ki smo ga sestavili na strani43. Namesto ukaza CM "ELSE, ki besedo "ELSE predela v ukaz ELSE, pa lahkonapisemo, na primer, FIRST [ ELSE ] .

Delovanje ukaza CASE preverimo z naslednjim ukazom

TO CaseTestTS CTREPEAT 800 [CASE 1 + RANDOM 6 [1 [ TYPE "’. ’ ]3 [ TYPE "’+ ’ ]5 [ TYPE "’- ’ ]

ELSE [ TYPE "’* ’ ]]

]END

7.4 Rekurzija

S pojmom rekurzije smo se ze srecali. V logu je nepogresljiva. Z uporabo rekurzijelahko sestavimo zelo kratke opise krivulj, kakrsna je zmajnica (glej sliko 7.2).

TO Zmaj :n :a :hIF :n < 1 [ FD :h STOP ] []Zmaj :n - 1 90 :h RT :a Zmaj :n - 1 -90 :h

END

Poskusite z zahtevo

CS HT PU SETPOS [-100 -50] PD Zmaj 10 90 8

V naslednjih vrsticah bomo spoznali se dva primera uporabe rekurzije.

7.5 Drevo

Drevo raste po pravilih prikazanih na sliki 7.3, kjer debele crte predstavljajo ole-senele dele. Pravili rasti lahko prepisemo v naslednja ukaza:

TO IgliceFD 10 LT 30REPEAT 6 [ FD 10 BK 10 RT 12 ]

Page 59: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

7.6. Sto 59

Slika 7.2: Zmajnica

LT 42 BK 10ENDTO Deblo :n :dIF :n = 0 [ Iglice STOP ] []FD :d RT 45 Deblo (:n - 1) :d * 0.7LT 45 FD :d LT 30 Deblo (:n - 1) :d * 0.5RT 30 BK :d * 2

END

ki na zahtevo Deblo 8 80 ustvarita drevo prikazano na sliki 7.4.

7.6 Sto

Med sosednji stevki (cifri) v zaporedju

9 8 7 6 5 4 3 2 1

ali na zacetek zaporedja vstavimo plus ali minus ali pa ju staknemo. Nato izracunamovrednost tako dobljenega izraza. Na primer

Page 60: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

60 Poglavje 7. Logo ni samo za otroke

Slika 7.3: Pravila rasti drevesa

98-76+54+3+21 = 100

Ali obstaja se kak tak izraz z vrednostjo 100 ? Vse odgovore na to vprasanje namdasta na zahtevo TS Izraz 8 [ 9 ] ukaza

TO PREVERI :sIF 100 = RUN :s [ PR :s ] []MAKE "t FPUT (- FIRST :s ) BF :sIF 100 = RUN :t [ PR :t ] []

ENDTO Izraz :n :s

IF :n = 0 [ PREVERI :s STOP ] []Izraz :n - 1 LPUT :n (SE :s [ + ])Izraz :n - 1 LPUT :n (SE :s [ - ])Izraz :n - 1 LPUT 10*(LAST :s) + :n BL :s

END

V narecju LCSI/LOGOS je treba ukaz RUN nadomestiti z ukazom EVAL. Kaj pa,ce bi vrstni red stevk obrnili 1,2,3,...,9 ?

Page 61: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

7.7. Virusi v logu 61

Slika 7.4: Drevo

7.7 Virusi v logu

V svojem prispevku na konferenci EUROLOGO 91 [12] je Gerald Futschek pokazal,da lahko v logu sestavimo tudi ukaze-viruse, ki okuzijo druge uporabnikove ukaze.V tem razdelku je podana izvedba takega virusa v narecju LCSI/LOGOS. Z manjsimispremembami ga je mogoce predelati tudi za druga narecja loga.

Za prenasanje virusa na zdrave ukaze skrbi ukaz

TO Okuzi :Zrtve :VirusIF EMPTYP :Zrtve [ STOP ] [ ]LOCAL ZrtevMAKE Zrtev FIRST :Zrtve TYPE :ZrtevIF NOT (OR EQUALP :Zrtev "Okuzi

EQUALP "@ ITEM 2 LAST TEXT :Zrtev)[ PR "’ okuzen’DEFINE :Zrtev

Page 62: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

62 Poglavje 7. Logo ni samo za otroke

(LIST FIRST TEXT :Zrtev(SE :virus LAST TEXT :Zrtev))

] [ PR " ]Okuzi BF :Zrtve :Virus

END

ki na zacetek opisa vsakega se neokuzenega ukaza iz seznama zrtve doda virusneukaze. Sam virus je dolocen z ukazom

TO SproziLOCAL "@MAKE "@ [ Okuzi PROCEDURES(SE LPUT :@ [ LOCAL "@ MAKE "@ ] [ RUN :@ ])PR "’... Nasvidenje’ ]

RUN :@PR "’... Dober dan’

END

ki ob klicu povzroci sirjenje virusa na ostale ukaze v delovnem prostoru. Funkcijskiukaz PROCEDURES vrne seznam vseh uporabniskih ukazov v delovnem prostoru.Ukaza PRINT v ukazu Sprozi lahko izpustimo ali nadomestimo z drugimi boljali manj prijaznimi ukazi.

Za preizkus delovanja virusa sestavimo se dva ukaza

TO AbcPR "’... Abc’

ENDTO Preveri

TS CT SHOW TEXT "Abc PR "Sprozi SHOW TEXT "Abc PR " WAIT 0CT Abc WAIT 0CT LOAD "roze Abc WAIT 0

END

in zahtevamo Preveri.

7.8 Naloga: Rekurzivna risba

Sestavi ukaze v logu, ki narisejo neko rekurzivno risbo (drevo, krivuljo . . . ).

Page 63: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

Poglavje 8

Resitve nalog

Resitve so pripravljene za LCSI/LogoS za racunalnik PC. Ce na vasem racunalnikuslika sili cez rob zaslona, razpolovite vrednosti v ukazih FD in BK – npr. namestoFD 70 napisite FD 35.

8.1 Olimpijski krogi

Objavljamo nekoliko predelano resitev, ki jo je poslala Urska Lesjak iz Kopra:

TO KROGREPEAT 360 [ FD 70 PD FD 7 PU BK 77 LT 1]

ENDTO KROGICS HT PU FD 50 RT 90FD 165 LT 90 SETPC 4 KROGLT 90 FD 165 SETPC 8 KROGFD 165 SETPC 1 KROGRT 40 BK 110 RT 140 SETPC 14 KROGFD 165 SETPC 2 KROG

END

Risanje krogov sprozimo z zahtevo KROGI.

8.2 Pismo

Ze v prvi polovici 18. stoletja je znani matematik Leonhard Euler (1707–1783)dokazal: Risbo lahko narisemo v eni potezi natanko takrat, ko sta izpolnjena pogoja:

63

Page 64: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

64 Poglavje 8. Resitve nalog

• po risbi lahko pridemo iz vsakega krizisca v vsako drugo krizisce;

• na risbi sta najvec dve krizisci, v katerih se stika liho stevilo crt.

Ce ni nobenega lihega krizisca, lahko zacnemo risanje v katerem koli kriziscu; cepa sta dve lihi krizisci, moramo risanje zaceti v enem izmed njiju in v drugemkoncati.

V primeru pisma sta lihi krizisci v levem in desnem spodnjem vogalu. Sedaj nivec tezko najti resitev in jo zapisati v logu:

TO PISMOCS PU SETPOS [ -200 -120 ] PDSETPOS [ 0 -40 ] WAIT 50SETPOS [ -200 40 ] WAIT 50SETPOS [ 0 120 ] WAIT 50SETPOS [ 200 40 ] WAIT 50SETPOS [ 200 -120 ] WAIT 50SETPOS [ -200 -120 ] WAIT 50SETPOS [ -200 40 ] WAIT 50SETPOS [ 200 40 ] WAIT 50SETPOS [ 0 -40 ] WAIT 50SETPOS [ 200 -120 ]

END

Risanje pisma sprozimo z zahtevo PISMO. V resitev so dodani ukazi WAIT 50,ki po vsaki narisani crti zadrzijo izvajanje za eno sekundo in tako omogocijo pre-veritev pravilnosti resitve.

8.3 Postevanka do 100

Nalogo je bilo mogoce resiti na vec nacinov. Najpreprostejsa, ceprav nekolikodaljsa resitev je napisati 11 ukazov oblike

PR [ 3 3 6 9 12 15 18 21 24 27 30 ]

Ta ukaz izpise vrstico postevanke, ki pripada stevilu 3. Stolpci v tako dobljenitabeli niso poravnani. To lahko dosezemo, ce enomestne stevilke dopolnimo spredajs presledkom in izpisemo kot nize – na primer stevilko 6 v seznamu nadomestimoz nizom "\ 6.

Tisti, ki bolje poznajo LOGO in prisegajo na to, da je lenoba gibalo razvoja, pabi se najbrz odlocili za krajso resitev:

Page 65: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

8.4. Prastevilo 65

TS CT MAKE "a 1 MAKE "b 0 MAKE "y 1REPEAT 10 [SETCUR (LIST 16 + 4*:a :y) TYPE :aMAKE "a :a + 1 ]

REPEAT 10 [MAKE "a 1 MAKE "b :b + 1 MAKE "y :y + 2SETCUR (LIST 16 :y) TYPE :bREPEAT 10 [SETCUR (LIST 16 + 4*:a :y) TYPE :a*:bMAKE "a :a + 1 ]

]

8.4 Prastevilo

Nalogo je bilo enostavno resiti z uporabo ukaza PRAFAKTORJI s strani 42 –stevilo je prastevilo natanko takrat, ko ima en sam prafaktor. Poglejmo si se premoresitev:

V resitvi naloge je upostevano, da ima naravno stevilo n, ki ni prastevilo, vsajen delitelj, ki ne presega

√n. Tako dobimo razmeroma ucinkovit postopek prever-

janja prastevilskosti:

TO PRA :nLOCAL "k MAKE "k 2REPEAT (ROUND SQRT :n) - 1 [IF 0 = REMAINDER :n :k [ OP "FALSE ][ MAKE "k :k + 1 ] ]

OP "TRUEENDTO PRASTEVILO :n(TYPE stevilo\ :n "\ )IF PRA :n [TYPE "je][TYPE "ni] PR "\ prastevilo

END

8.5 Beseda

Kot zadovoljivo resitev naloge bomo steli vsako besedo, ki za manj kot 10 odstotkovodstopa od ciljne vrednosti 500000.

Najprej napisimo tabelo vrednosti nasih crk:

Page 66: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

66 Poglavje 8. Resitve nalog

A 1 E 6 J 11 O 16 T 21B 2 F 7 K 12 P 17 U 22C 3 G 8 L 13 R 18 V 23C 4 H 9 M 14 S 19 Z 24D 5 I 10 N 15 S 20 Z 25

Pri resevanju naloge je bilo mogoce uporabiti logo na razlicne nacine. Najpre-prosteje za racunanje produktov – na primer za besedo MUREN

PRINT 14*22*18*6*15

Ce smo leni in se nam ne ljubi samim iskati vrednosti crk, lahko to zaupamo logu

TO KJE :z :bLOCAL "k MAKE "k 1REPEAT COUNT :b[IF EQUALP :z ITEM :k :b [OP :k][MAKE "k :k+1]]

OP 0ENDTO V :b

IF EMPTYP :b [OP 1] []OP (KJE FIRST :b "abcxdefghijklmnoprsytuvzw ) *V BF :b

END

pri tem smo nase crke c, s in z nadomestili zaporedoma s crkami x, y in w.Vrednost najboljse, a nekoliko vprasljive, resitve ZABA DISI dobimo tedaj z

zahtevo

PRINT V "wabadiyi

Z uporabo nekoliko predelanega ukaza PRAFAKTORJI s strani 42 pa lahko dolocimostevila okrog 500000, ki so mogoce vrednosti besed – nimajo nobenega prafaktorja,vecjega od 23. To so: 500000, 499928, 500094, 499905, 499851, 500175, 499800,500346, 499681, 500480, ...

Nastejmo se nekaj resitev iz odgovorov resevalcev:

500000 ZABA DISI500480 POVOD499392 POPER499200 COLNIC, GNILOBA, NABODALO498960 BATERIJA, MUREN, RUMENA, KUHATI

Page 67: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

8.6. Zvok 67

8.6 Zvok

Ce uporabimo ukaza NOTA in IGRAJ s strani 50, lahko zapisemo ”Nasa ceticakoraka”takole:

TO CETICA :tNOTA 7 3*:t NOTA 5 :tIGRAJ [ 4 5 7 9 7 7 9 9 9 9 ] 2*:tIGRAJ [ 7 7 ] 4*:t NOTA 5 3*:t NOTA 9 :tIGRAJ [ 7 5 4 7 5 4 2 5 4 2 4 5 ] 2*:tNOTA 7 4*:t NOTA 5 3*:t NOTA 9 :tIGRAJ [ 7 5 4 7 5 4 2 5 4 2 ] 2*:tNOTA 0 4*:t NOTA 0 :t

END

Igranje sprozimo z zahtevo CETICA 10.

8.7 Rekurzivna risba

Za primer napisimo ukaz Hilbert, ki narise Hilbertovo krivuljo (slika 8.1):

TO Hilbert :n :a :hIF :n = 0 [ STOP ] []RT :a Hilbert :n - 1 (-:a) :h FD :hLT :a Hilbert :n - 1 :a :h FD :hHilbert :n - 1 :a :h LT :a FD :hHilbert :n - 1 (-:a) :h RT :a

END

Risanje sprozimo z zahtevo:

CS HT PU SETPOS [ -160 -160 ] PD Hilbert 5 90 10

8.8 Kako smo zrebali

Povejmo se, kako smo zrebali nagrajence. Vsakic smo pregledali odgovore nanagradno nalogo in zadovoljive ostevilcili z zaporednimi stevilkami. Nato smo zzahtevo ZREB sprozili ukaza:

Page 68: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

68 Poglavje 8. Resitve nalog

Slika 8.1: Hilbertova krivulja

TO IZBERI :p :rIF :p = 0 [ STOP ] []MAKE "k 1 + RANDOM :r PR :kIF MEMBERP :k :s [ IZBERI :p :r ][ MAKE s LPUT :k :s IZBERI (:p - 1) :r ]

ENDTO ZREB

RANDOMIZE TS CT MAKE s [ ]TYPE [ resitev = ] MAKE "r RLTYPE [ nagrad = ] MAKE "n RLIZBERI :n :r SHOW :s WAIT 0

END

Kot podatka smo vnesli stevilo zadovoljivih resitev in stevilo nagrad (4). Na za-slonu smo dobili seznam stirih nakljucnih stevilk, ki so predstavljale stevilke na-grajenih resitev.

Page 69: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

Literatura

[1] Abelson H., di Sessa A.: Turtle Geometry; The Computer as a Medium forExploring Mathematics. The MIT Press, Cambridge Massachusetts 1981.

[2] Allan B.: Introducing LOGO. Granada, London 1984.

[3] Batagelj V.: LOGO-S, osnutek. Ljubljana, oktober 1989.

[4] Batagelj V., Horvat B., Pisanski T.: Logo na racunalniku Spectrum -SOLI/LCSI Sinclair Logo. Presek 14(1986-87)3, 162-169.

[5] Batagelj V., Horvat B., Pisanski T.: Logo na racunalniku Commodore 64.Presek 14(1986-87)4, 232-239.

[6] Batagelj V. in sodelavci: Z racunalnikom v matematiko. Racunalniska ob-zorja, DZS, Ljubljana 1987.

[7] Bratley P., Millo J.: Self-Reproducing Programs. Software – Practice andExperience, 2(1972), 397-400.

[8] Bilten 6. republiskega tekmovanja iz znanja racunalnistva za osnovnosolce.Gimnazija Bezigrad, Ljubljana 11. maja 1991. ZOTKS, Ljubljana 1991.

[9] Byte, the small systems journal; Logo. 7(August 1982)8.

[10] CICIBAN 1988. Slenc T., Rovtar B.: vec prispevkov o logu.

[11] EUROLOGO 91. (E. Calabrese, Ed.) Proceedings, Third European LogoConference, Parma, Italy, 27-30 August 1991. A.S.I., Parma 1991.

[12] Futschek G.: Experiments with Self-reproductive Logo-programs; Virusesfor Logo-programs and Countermeasures. v EUROLOGO 91. (E. Calabrese,Ed.) Proceedings, Third European Logo Conference, Parma, Italy, 27-30 Au-gust 1991. A.S.I., Parma 1991, 311-327.

69

Page 70: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

70 LITERATURA

[13] Gerlic I.: Prvi koraki v logo. ZOTKS, Ljubljana 1988.

[14] Grigorieff V.: Devenir champion de LOGO PLUS. Marabout, Alleur (Bel-gija) 1989.

[15] Grobelnik M., Zupanic D.: LOGO-S, verzija 1.0, tehnicni prirocnik. Ljubl-jana, januar 1991.

[16] Harvey B.: Computer Science Logo Style, Volume 1: Intermediate Program-ming; Volume 2: Projects, Styles, and Techniques. The MIT Press, Cam-bridge, Massachusetts 1985, 1986.

[17] Haas E.F.: Schuler programmieren in Logo. Schoningh, Paderborn 1988.

[18] Logo v osnovni soli, program dela krozka. Projekt 1988/90. Zavod SRSlovenije za solstvo, Ljubljana, februar 1988.

[19] Papert S.: Mindstorms: Children, Computers and Powerfull Ideas. BasicBooks, New York 1980.

[20] PC Logo. Reference Manual, Version 3.0. Harvard Associates, Inc., Cam-bridge, MA 1988.

[21] Prek S.: Teorija glasbe. DZS, Ljubljana 1990.

[22] Ross P.: Logo Programming for the IBM PC. Addison-Wesley, Wokingham,England 1985.

[23] Sauer G.: Das große LOGO Buch zum ATARI ST. Data Becker, Dusseldorf1986.

[24] Solomon C., Minsky M., Harvey B.: Logo Works, Challenging Programs inLogo. McGraw-Hill, New York 1986.

[25] Voglar M., Nograsek M.: Majhna sem bila. DZS, Ljubljana 1990.

Page 71: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

71

Page 72: Ferdinand in LOGO - Vladimir Batageljvlado.fmf.uni-lj.si/educa/logo/ferdo/logo.pdf · 2 CAR OBNA NIT, letnik I, 1/91 Œ PRILOGA Zavod Republike Slovenije za solstv o in sport Glavni

72

c©1991 Vladimir BATAGELJ

Izdal in zalozil: Zavod Republike Slovenije za solstvo in sportPredstavnik: dr. Srecko ZAKRAJSEK

Urednica: Nada RAZPET

Racunalnisko stavil: avtorOpremila: avtor in Natasa PROSENC

Razmnozil: DOMUSNaklada: 800 izvodov, prvi natis

Ljubljana, 1991