Vladimir Batagelj. Ferdinand in LOGO. Zapiski

Σχετικά έγγραφα
Funkcijske vrste. Matematika 2. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 2. april Gregor Dolinar Matematika 2

MATEMATIČNI IZRAZI V MAFIRA WIKIJU

Diferencialna enačba, v kateri nastopata neznana funkcija in njen odvod v prvi potenci

Zaporedja. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 22. oktober Gregor Dolinar Matematika 1

Funkcije. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 14. november Gregor Dolinar Matematika 1

Odvod. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 5. december Gregor Dolinar Matematika 1

Tretja vaja iz matematike 1

Funkcije. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 21. november Gregor Dolinar Matematika 1

matrike A = [a ij ] m,n αa 11 αa 12 αa 1n αa 21 αa 22 αa 2n αa m1 αa m2 αa mn se števanje po komponentah (matriki morata biti enakih dimenzij):

KODE ZA ODKRIVANJE IN ODPRAVLJANJE NAPAK

Booleova algebra. Izjave in Booleove spremenljivke

Zaporedja. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 15. oktober Gregor Dolinar Matematika 1

Kotne in krožne funkcije

Odvod. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 10. december Gregor Dolinar Matematika 1

IZPIT IZ ANALIZE II Maribor,

Splošno o interpolaciji

1. Έντυπα αιτήσεων αποζημίωσης Αξίωση αποζημίωσης Έντυπο Πίνακας μεταφράσεων των όρων του εντύπου...

Osnove elektrotehnike uvod

Kotni funkciji sinus in kosinus

PONOVITEV SNOVI ZA 4. TEST

Funkcije. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 12. november Gregor Dolinar Matematika 1

13. Jacobijeva metoda za računanje singularnega razcepa

1. Definicijsko območje, zaloga vrednosti. 2. Naraščanje in padanje, ekstremi. 3. Ukrivljenost. 4. Trend na robu definicijskega območja

SKUPNE PORAZDELITVE VEČ SLUČAJNIH SPREMENLJIVK

Na pregledni skici napišite/označite ustrezne točke in paraboli. A) 12 B) 8 C) 4 D) 4 E) 8 F) 12

1 Fibonaccijeva stevila

Reševanje sistema linearnih

*M * Osnovna in višja raven MATEMATIKA NAVODILA ZA OCENJEVANJE. Sobota, 4. junij 2011 SPOMLADANSKI IZPITNI ROK. Državni izpitni center

NEPARAMETRIČNI TESTI. pregledovanje tabel hi-kvadrat test. as. dr. Nino RODE

Enačba, v kateri poleg neznane funkcije neodvisnih spremenljivk ter konstant nastopajo tudi njeni odvodi, se imenuje diferencialna enačba.

Kontrolne karte uporabljamo za sprotno spremljanje kakovosti izdelka, ki ga izdelujemo v proizvodnem procesu.

Integralni račun. Nedoločeni integral in integracijske metrode. 1. Izračunaj naslednje nedoločene integrale: (a) dx. (b) x 3 +3+x 2 dx, (c) (d)

Osnove matematične analize 2016/17

DISKRETNA FOURIERJEVA TRANSFORMACIJA

VEKTORJI. Operacije z vektorji

V tem poglavju bomo vpeljali pojem determinante matrike, spoznali bomo njene lastnosti in nekaj metod za računanje determinant.

Matematika vaja. Matematika FE, Ljubljana, Slovenija Fakulteta za Elektrotehniko 1000 Ljubljana, Tržaška 25, Slovenija

Podobnost matrik. Matematika II (FKKT Kemijsko inženirstvo) Diagonalizacija matrik

vezani ekstremi funkcij

1. Trikotniki hitrosti

Matematika 2. Diferencialne enačbe drugega reda

Numerično reševanje. diferencialnih enačb II

Gimnazija Krˇsko. vektorji - naloge

SEMINARSKA NALOGA Funkciji sin(x) in cos(x)

Delovna točka in napajalna vezja bipolarnih tranzistorjev

8. Diskretni LTI sistemi

II. LIMITA IN ZVEZNOST FUNKCIJ

Kotne funkcije poljubnega kota. Osnovne zveze med funkcijamo istega kota. Uporaba kotnih funkcij v poljubnem trikotniku. Kosinusni in sinusni izrek.

Statistična analiza. doc. dr. Mitja Kos, mag. farm. Katedra za socialno farmacijo Univerza v Ljubljani- Fakulteta za farmacijo

Algebraične strukture

FAKULTETA ZA STROJNIŠTVO Matematika 4 Pisni izpit 22. junij Navodila

osnovni koraki Matija Lokar in Srečo Uranič V 0.9 oktober 2008

Univerza v Ljubljani Fakulteta za računalništvo in informatiko MATEMATIKA. Polona Oblak

cot x ni def. 3 1 KOTNE FUNKCIJE POLJUBNO VELIKEGA KOTA (A) Merske enote stopinja [ ] radian [rad] 1. Izrazi kot v radianih.

Kvadratne forme. Poglavje XI. 1 Definicija in osnovne lastnosti

Funkcija je predpis, ki vsakemu elementu x iz definicijskega območja D R priredi neko število f (x) R.

Matematika. Funkcije in enačbe

Matematika 1. Gabrijel Tomšič Bojan Orel Neža Mramor Kosta

diferencialne enačbe - nadaljevanje

Spoznajmo sedaj definicijo in nekaj osnovnih primerov zaporedij števil.

Funkcije več spremenljivk

Frekvenčna analiza neperiodičnih signalov. Analiza signalov prof. France Mihelič

Matematika I (VS) Univerza v Ljubljani, FE. Melita Hajdinjak 2013/14. Pregled elementarnih funkcij. Potenčna funkcija. Korenska funkcija.

CM707. GR Οδηγός χρήσης SLO Uporabniški priročnik CR Korisnički priručnik TR Kullanım Kılavuzu

Definicija. definiramo skalarni produkt. x i y i. in razdaljo. d(x, y) = x y = < x y, x y > = n (x i y i ) 2. i=1. i=1

Najprej zapišemo 2. Newtonov zakon za cel sistem v vektorski obliki:

Programiranje 1 PROGRAMIRANJE 1 MATIJA LOKAR SREČO URANIČ

Analiza 2 Rešitve 14. sklopa nalog

Programski jezik C# zanke

Matrike. Poglavje II. Matrika je pravokotna tabela realnih števil. Na primer: , , , 0 1

Vaje iz MATEMATIKE 8. Odvod funkcije., pravimo, da je funkcija f odvedljiva v točki x 0 z odvodom. f (x f(x 0 + h) f(x 0 ) 0 ) := lim

Realne funkcije. Elementarne funkcije. Polinomi in racionalne funkcije. Eksponentna funkcija a x : R R + FKKT Matematika 1

Iterativno reševanje sistemov linearnih enačb. Numerične metode, sistemi linearnih enačb. Numerične metode FE, 2. december 2013

Kombinatorika. rekurzivnih enačb in rodovne funkcije. FMF Matematika Finančna matematika. Vladimir Batagelj. Ljubljana, april

POROČILO 3.VAJA DOLOČANJE REZULTANTE SIL

Tabele termodinamskih lastnosti vode in vodne pare

OSNOVE PROGRAMSKEGA JEZIKA C NA PRIMERU MIKROKRMILNIKA ARM7

REˇSITVE. Naloga a. b. c. d Skupaj. FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Verjetnost 2. kolokvij 23.

Preklopna vezja 1. poglavje: Številski sistemi in kode

Transformator. Delovanje transformatorja I. Delovanje transformatorja II

Tema 1 Osnove navadnih diferencialnih enačb (NDE)

Gnuplot program za risanje grafov

Uporabna matematika za naravoslovce

UVOD V PROGRAMSKI JEZIK C

Izpeljava Jensenove in Hölderjeve neenakosti ter neenakosti Minkowskega

Inverzni problem lastnih vrednosti evklidsko razdaljnih matrik

Afina in projektivna geometrija

VERIŽNI ULOMKI IN NESKONČNE VRSTE

Multivariatna analiza variance

IZVODI ZADACI (I deo)

Poliedri Ines Pogačar 27. oktober 2009

Matematika 1. Gabrijel Tomšič Bojan Orel Neža Mramor Kosta

Teorija programskih jezikov. Andrej Bauer

Matematika 1. Gregor Dolinar. 2. januar Fakulteta za elektrotehniko Univerza v Ljubljani. Gregor Dolinar Matematika 1

p 1 ENTROPIJSKI ZAKON

Uvod v L A TEX 2ε. Osnove pisanja poročil. Špela Bolka. Ljubljana, 21. marec 2013

Οι εντολές του MaLT+

IZZIVI DRUŽINSKE MEDICINE. U no gradivo zbornik seminarjev

POROČILO. št.: P 1100/ Preskus jeklenih profilov za spuščen strop po točki 5.2 standarda SIST EN 13964:2004

- Geodetske točke in geodetske mreže

Transcript:

Vladimir Batagelj Ferdinand in LOGO Zapiski Zavod Republike Slovenije za šolstvo in šport Ljubljana 1991

2 ČAROBNA NIT, letnik I, 1/91 PRILOGA Zavod Republike Slovenije za šolstvo in šport Glavni urednik: Tomaž SKULJ Odgovorni urednik: Nuša DRAGAN Vladimir BATAGELJ Ferdinand in LOGO Zapiski Strokovno pregledal: Rado WECHTERSBACH Jezikovno pregledal: Tine LOGAR c 1991 Vladimir BATAGELJ CIP katalogizacija v knjigi Narodna in univerzitetna knjižnica, Ljubljana 519.682 BATAGELJ, Vladimir Ferdinand in Logo. Zapiski / Vladimir Batagelj. 1. natis. Ljubljana : Zavod Republike Slovenije za šolstvo in šport, 1991. (Čarobna nit ; letnik I, 1/91. Priloga) 27765760 LOGOS je narečje in tolmač/prevajalnik za logo. Po naročilu Zavoda R Slovenije za šolstvo in šport ga pišeta Marko Grobelnik in Darko Zupanič pod vodstvom dr. Vladimirja Batagelja. Knjižica je bila pripravljena v emtexu 3.0, avtor Eberhard Mattes, na računalniku PC AT in izpisana s programom DVIHPLJ na laserskem tiskalniku HP Laser Jet. Slike zaslonov so bile posnete s programom SCAN, avtor Darko Zupanič. Izhajanje revije sofinancira republiško Ministrstvo za šolstvo in šport. Po mnenju Ministrstva za šolstvo in šport, številka 415-50/91 z dne 7.7.1991 je revija s prilogami oproščena temeljnega davka od prometa proizvodov.

Kazalo 1 Kaj je logo.............................. 5 2 Računalništvo in logo v naših šolah................ 7 1 Uvod v želvjo grafiko 9 1.1 Pomiki in zasuki.......................... 9 1.2 Ponavljanje ukazov......................... 11 1.3 Stanja peresa............................ 12 1.4 Naloga: Olimpijski krogi...................... 14 2 Ukazi, koordinate in izpis 15 2.1 Lastni ukazi............................. 15 2.2 Delo z lastnimi ukazi........................ 18 2.3 Koordinate............................. 19 2.4 Naloga: Pismo........................... 20 2.5 Besede in izpis........................... 20 2.6 Spremenljivke............................ 21 2.7 Ukazi s parametri.......................... 22 2.8 Znakovni zaslon........................... 24 3 Računanje in seznami 27 3.1 Računanje.............................. 27 3.2 Seznami............................... 29 3.3 Naloga: Poštevanka do 100..................... 30 4 Funkcije in odločitveni stavek 31 4.1 Številske funkcije.......................... 31 4.2 Lastne funkcije........................... 32 4.3 Znaki................................ 33 4.4 Pogoji................................ 34 4.5 Odločitveni stavek......................... 36 3

4 KAZALO 4.6 Rekurzija.............................. 37 4.7 Naloga: Praštevilo.......................... 38 5 Besede in seznami 39 5.1 Še nekaj o besedah......................... 39 5.2 Delo z besedami in seznami.................... 40 5.3 Naključni izbor........................... 42 5.4 Iskanje................................ 42 5.5 Ulomki in lokalne spremenljivke.................. 43 5.6 Naloga: Beseda........................... 44 6 Zvok 45 6.1 Zvok na računalniku........................ 45 6.2 Zvočni učinki............................ 46 6.3 Glasba................................ 47 6.4 Tipkovnica klavir......................... 48 6.5 Skladbe............................... 49 6.6 Izpis not v LOGOSu......................... 51 6.7 Naloga: Zvok............................ 52 7 Logo ni samo za otroke 53 7.1 Podatki ukazi............................ 53 7.2 Risanje funkcij........................... 55 7.3 Razvejitveni stavek CASE...................... 57 7.4 Rekurzija.............................. 58 7.5 Drevo................................ 58 7.6 Sto.................................. 59 7.7 Virusi v logu............................ 61 7.8 Naloga: Rekurzivna risba...................... 62 8 Rešitve nalog 63 8.1 Olimpijski krogi........................... 63 8.2 Pismo................................ 63 8.3 Poštevanka do 100......................... 64 8.4 Praštevilo.............................. 65 8.5 Beseda................................ 65 8.6 Zvok................................. 67 8.7 Rekurzivna risba.......................... 67 8.8 Kako smo žrebali.......................... 67

Uvod Ekipa Periskopa na Slovenski televiziji in sodelavci Zavoda Republike Slovenije za šolstvo in šport so pripravili zaporedje učnih enot o programskem jeziku logo Periskopov raˇcek o logu. V njih študent biologije Alexis Zrimec postopoma uvaja periskopovko Blažko Müller v posamezne sestavine loga. Učne enote so si zamislili Vladimir Batagelj, Tatjana Trtnik in Alexis Zrimec, režiral pa jih je Igor Šmid. Pri pripravi oddaje sta pomagala tudi Marko Grobelnik in Darko Zupanič. Uvodna oddaja je bila na sporedu 5. marca 1991, prva učna enota 12. marca, naslednje učne enote pa so si sledile v dvotedenskem razmaku do srede junija. Vsaka učna enota je bila zaključena z nagradno nalogo. Med pravilnimi rešitvami so bili vsakič izžrebani po štirje nagrajenci. Ob koncu oddaj pa sta bila izmed vseh pravilnih rešitev izžrebana tudi dobitnika velikih nagrad računalnika PC in tiskalnika Epson ter še deset nagrad presenečenja zabojčkov banan. Nagrade sta prispevali podjetji ALTECH in HIPeC. Da bi olajšali spremljanje učnih enot in nadaljnje samostojno delo, smo jih podprli s pisnim gradivom, ki je izhajalo v Nedeljskem dnevniku in PILu, ter disketo z narečjem loga LCSI/LOGOS. Za prilogo novi reviji Čarobna nit smo učne enote združili v video kaseto Ferdinand in logo, pisno gradivo pa v tole knjižico. Izpopolnili smo tudi LCSI/LOGOS. 1 Kaj je logo Logo je programski jezik, posebej ustvarjen zato, da bi omogočil zgodnje učenje z računalnikom. Leta 1964 se je Seymour Papert po petih letih, ki jih je preživel v Švici kot sodelavec znanega pedagoga Jeana Piageta, vrnil nazaj v ZDA na MIT (Massachusetts Institute of Technology) s spoznanjem Koliko se otroci nauče, ne da bi jih kdo učil! Leta 1967 je stekel na MIT projekt MAC, katerega cilj so bile raziskave uporabe računalnika pri učenju. Projekt je dobil prostore v isti zgradbi, v kateri sta bila laboratorij za umetno inteligenco in laboratorij za računalništvo. Sodelovanje s strokovnjaki s teh dveh področij je dalo veliko rezultatov. Posebno velik je prispevek Marvina Minskyja. Že od vsega začetka je Papert razmišljal o programskem jeziku, ki bi omogočal zgodnje uvajanje v svet računalništva in uporabo računalnika za ustvarjanje učnih okolij, v 5

6 KAZALO katerih otrok z lastno dejavnostjo nabira znanje. Pomen ustreznega okolja je v svoji knjigi Mindstorms [19] lepo ponazoril z naslednjo primero: Če bi si morali naše mnenje ustvariti na opažanju, kako slabo se v ameriških šolah otroci nauče francoščine, bi morali zaključiti, da je večina ljudi ni sposobna obvladati. Toda vemo, da bi jo vsak normalen otrok zlahka obvladal, če bi živel v Franciji. Tako je začel nastajati logo. Ime logo izvira iz grške besede logos beseda ali misel. Snovalci loga so poskušali združiti več, včasih nasprotujočih si zahtev: preprost za učenje in uporabo, bogato in razširljivo besedišče, preprosto sestavljanje delcev v večje celote... Pri tem so se precej zgledovali pri programskem jeziku lisp (list processing language), ki je posebej priljubljen na področju umetne inteligence. Logo ni zaključen jezik. Prilagajal naj bi se razvoju računalniške tehnologije in znanosti ter izkušnjam pri uporabah v izobraževanju. Logo temelji na tolmaˇcenju ukazov ukaze sproti prevaja in izvaja. To pride zelo prav pri učenju loga, saj lahko vsak logov ukaz posebej preizkusimo in raziščemo njegove učinke. Prvi tolmač za logo so ustvarili leta 1970 pri raziskovalni firmi Bolt Baranek & Newman pod vodstvom W. Fuerzeiga. Ker so poskušali približati računalnik tudi predšolskim otrokom, ki še niso domači v računanju in pisanju, so dopolnili logo z ˇzelvo. Ta je bila spočetka mehanična naprava, ki se je po danih ukazih premikala po tleh; kasneje pa jo je zamenjala sličica na zaslonu, kar je veliko cenejše. Želvja grafika je zelo pomembna sestavina loga in je sčasoma postala sinonim zanj, čeprav zmore logo še veliko drugih stvari. Temelji, kakor bi rekli matematiki, na polarnem koordinatnem sistemu pomikih in zasukih, ki so otroku veliko bližji kot običajni kartezični koordinatni sistem. Uporaba želvje grafike precej olajša dojemanje zveze ukaz učinek; poleg tega lahko že razmeroma preprosti programi ustvarijo presenetljivo privlačne slike. To, da je namenjen otrokom, še ne pomeni, da je logo otročji jezik dejansko je logo zelo močan programski jezik, v katerem je mogoče reševati tudi žaresne probleme. Leta 1972 so se začeli z logom ukvarjati tudi v Edinburghu v Veliki Britaniji. Po dobrih desetih letih izkušenj so sodelavci projektov sredi osemdesetih let objavili nekaj zanimivih knjig [1, 9, 16, 22, 24]. Evropski uporabniki loga se vsako drugo leto sestanejo na konferenci EUROLOGO (Dublin 1987, Gent 1989, Parma 1991) [11]. Zelo pomemben dogodek pri uveljavljanju loga predstavljajo mikroračunalniki. Računalnik je postal široko dostopen. Po letu 1980 najdemo logo na skoraj vseh mikroračunalnikih. Ker so pisci tolmačev prilagodili logo posebnostim in zmožnostim posameznega računalnika, ne obstaja en sam logo, temveč kopica narečij. Večina le-teh pripada dvema družinama: izdelkom Logo Computer Systems, Inc LCSI Logo: Apple Logo I in II, Atari Logo, IBM Logo, Sinclair Logo; LCSI/LOGOS; MIT Logo: Terrapin Logo ali Krell Logo (Apple), Commodore Logo, PC Logo.

2. Raˇcunalništvo in logo v naših šolah 7 2 Računalništvo in logo v naših šolah Začetki uvajanja računalništva v slovenske šole segajo v leto 1971, ko je stekel pouk računalništva v 3. ali 4. letniku tedanjih gimnazij. Kasneje, v letih 1981 do 85, so bila razvita tri področja uvajanja računalništva v šole: informatika in računalništvo kot fakultativni predmet ali krožek v osnovni šoli, računalniška poglavja v predmetu osnove tehnike in proizvodnje v 1. letniku srednjih šol in v naslednjih letnikih predmet računalništvo. Sedaj imajo vse srednje šole vsaj v enem letniku tedensko po dve uri računalništva in informatike. Od leta 1977 imamo republiška tekmovanja iz računalništva za srednješolce. Šole so najprej uporabljale za delo in vaje računalnike podjetij in računalniških centrov, nato so se opremljale s hišnimi računalniki, v zadnjih letih pa potekajo organizirane akcije opremljanja šol z osebnimi računalniki in pestro dodatno računalniško opremo: tiskalniki, risalniki, dataskopi... Takšen je tudi projekt RAČEK RAČunalniška EKsplozija, ki je omogočil šolam v zadnjih treh letih razumen in s priporočili usklajen nakup računalniške opreme. Srčica projektov opremljanja šol z računalniško opremo je nabava tuje programske opreme, razvoj domače programske opreme in organiziranje izobraževanja učiteljev za uporabo računalnikov pri pouku. Leta 1987 so imele osnovne šole 100 osebnih računalnikov, srednje šole pa 330. Tri leta kasneje v letu 1990 so imele osnovne šole 400, srednje šole pa 870 osebnih računalnikov. Tako imajo sedaj osnovne šole povprečno po en, srednje šole pa po 7 osebnih računalnikov. Konec lanskega leta so bile sklenjene pogodbe za nabavo dodatnih 450 osebnih računalnikov za srednje šole. V letošnjem letu (1991) bodo vse srednje šole prejele komplet osmih računalniških programov: Turbo Pascal 5.5, dbase IV, Quattro, Windows, WORD, WS 6, TEX, PC Tools in multimedijski paket Mentor o računalniku ter doma razviti tolmač za logo LOGOS. Na vsaki šoli je vsaj en učitelj, ki je obiskoval daljše računalniško izobraževanje. Ena izmed aktivnosti širšega uvajanja uporabe računalnikov v šole je tudi Periskopov raˇcek o logu. K nam je logo prišel sredi osemdesetih let s hišnimi računalniki Spectrum in C-64 [4, 5, 6, 13]. Leta 1986 so na Inštitutu Jožef Stefan vključili tečaj iz loga med svoje tečaje iz računalništva za mladino. Nekoliko kasneje je bil vključen v dopolnilno izobraževanje iz računalništva za osnovnošolske učitelje na Oddelku za matematiko Univerze v Ljubljani in na Pedagoški fakulteti v Mariboru. Kmalu je logo našel pot tudi v krožke na osnovnih šolah in na tekmovanja za osnovnošolce [10, 18, 8]. Z uvajanjem osebnih računalnikov v šole je nastopil pri logu problem, ker tedanji tolmači za računalnik IBM PC niso podpirali slikovne kartice Hercules. Zato smo se jeseni leta 1989 odločili [3], da pripravimo svoje lastno narečje loga, ki je dobilo delovno ime LOGO-S (logo Slovenija). Spomladi 1991 smo se odločili za ime LOGOS. Pri načrtovanju narečja LOGOS smo se odločili, da logo izpopolnimo tako, da bo primerljiv z drugimi sodobnimi programskimi jeziki. Tako bi dobili jezik, ki bi lahko zadoščal večini potreb učencev od vrtca do univerze. Posebej naj bi omogočal pripravo izobraževalnih programov in okolij. V sporočilih tolmača lahko izbiramo med angleškimi in slovenskimi. Precej so izboljšane grafične zmožnosti. V LOGOSu lahko hkrati krmilimo do osem želvic in, čez ustrezni vmesnik, tudi igrače-sestave Fischer Technik in Lego. Za primerjavo omenimo, da običajna narečja loga poznajo okrog 150 ukazov, LOGOS pa čez 400 ukazov [15].

8 KAZALO Tolmač za LOGOS pišeta študenta računalništva Marko Grobelnik in Darko Zupanič. Uporabljen je bil tudi v Periskopovem raˇcku o logu. Pri pripravi učnih enot smo se odločili, da bomo uporabljali narečje LCSI-logo. Pri tem smo se oprli predvsem na tiste sestavine, ki jih najdemo tudi v drugih narečjih. LOGOS je mogoče prilagoditi tako, da razume večino ukazov LCSI-loga. Tako je pred začetkom snemanja Periskopovega račka nastala izpeljanka LOGOSa narečje LCSI/LOGOS, ki smo ga uporabili pri snemanju oddaje in tudi pri pripravi teh zapiskov. Logo najdemo na večini mikroračunalnikov: Spectrum, Commodore, Atari, PC, Apple... Zaradi pestrosti računalniške opreme po naših domovih bomo predpostavili, da znate uporabljati svoj računalnik, da imate zanj tolmač za logo (z navodili) in da ga znate pognati. Mi bomo uporabljali računalnik PC in na njem narečje LCSI/LOGOS. Vendar bo večino povedanega mogoče preizkusiti tudi na drugih računalnikih.

Poglavje 1 Uvod v želvjo grafiko Vključimo računalnik in poženimo tolmač za logo. Na sredini zaslona se prikaže trikotnik, ki predstavlja ˇzelvo. Če se to ne zgodi, vtipkajte CS ST in pritisnite na tipko ENTER ; na računalniku C-64 pa DRAW in nato ENTER. Logo pozna večje število ukazov, s katerimi premikamo želvo po zaslonu in počnemo še vrsto drugih stvari. Pravimo jim vgrajeni ukazi ali praukazi. Vsak ukaz se začne z geslom imenom ukaza. Temu po potrebi sledi nekaj podatkov, ki podrobneje določajo ukaz. Gesla in podatki morajo biti med seboj ločeni z vsaj enim presledkom. V večini narečij logo ne razlikuje med velikimi in malimi črkami. Hkrati lahko vnesemo tudi več ukazov. Vnos zaključimo s tipko ENTER. Ker so logo razvili v ZDA, so imena ukazov v angleščini. V naslednjem razdelku bomo spoznali, kako lahko pripravimo logo, da razume tudi slovenske ukaze. Logo pozna tri vrste podatkov: števila, besede (nize znakov) in sezname. Primeri števil so: 14, 1990, -17, 3.145 in -0.00327. Besede in sezname bomo spoznali drugič. 1.1 Pomiki in zasuki Ob začetku želva čaka na naše ukaze v izhodišču na sredini zaslona usmerjena proti njegovemu zgornjemu robu. Z ukazom FORWARD d pomaknemo želvo za d korakov naprej; z ukazom BACK d 9

10 Poglavje 1. Uvod v ˇzelvjo grafiko pa za d korakov nazaj. Poskusimo! Zahtevajte najprej FORWARD 100 in nato še BACK 50. Vsako zahtevo zaključite s tipko ENTER! Namesto gesel FORWARD in BACK lahko uporabimo tudi okrajšavi FD in BK. Nazaj v izhodišče se lahko vselej vrnemo z ukazom HOME, zaslon pa pobrišemo z ukazom CLEAN. Skupni učinek obeh ukazov dosežemo z ukazom CLEARSCREEN ali okrajšano CS. Na C-64 deluje ukaz CS kot ukaz CLEAN. Navadno je pri delu z želvo zaslon razdeljen na slikovni in ukazni del. V nekaterih narečjih loga lahko tudi ves zaslon namenimo sliki. Med obema razdelitvama zaslona preklapljamo z ukazoma SPLITSCREEN (v nekaterih narečjih MIXEDSCREEN) in FULLSCREEN. Ukaze moramo pri vnosu natančno vtipkati. Tako na primer logo ne razume zahteve FORWARD30, ker je napačno natipkana manjka presledek med geslom in podatkom. Prav tako ne razume zahteve NAPREJ 30, ker NAPREJ ni ime praukaza. Na posameznih vrstah računalnikov je zaslon različno velik. Poskusite sedaj določiti, koliko korakov je od izhodišča do zgornjega roba zaslona. Namig: uganite, katero število je treba napisati namesto d v zaporedju ukazov CS FORWARD d Kako bi pa določili število korakov od izhodišča do desnega roba zaslona? Za to moramo želvo preusmeriti proti desnemu robu zasukati za 90 stopinj (pravi kot) v desno. To nam omogoča ukaz RIGHT a ki zavrti želvo za a stopinj v desno. Polni obrat sestavlja 360 stopinj. Torej bomo sedaj poskušali z ukazi CS RIGHT 90 FORWARD d Ukaz CS namreč tudi usmeri želvo proti zgornjemu robu zaslona. Soroden ukaz LEFT a zavrti želvo za a stopinj v levo. Preizkusite oba ukaza za različne kote. Namesto gesel RIGHT in LEFT lahko uporabite tudi okrajšavi RT in LT. Če uporabljate LOGOS, najprej vnesite zahtevo LOAD "KOTI KOTI ki na zaslonu prikaže razdelitev kroga na stopinje, kakor je prikazano na sliki 1.1. Poskusite še naslednje zaporedje ukazov:

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 115 FD 50 LT 115 FD 100 RT 65 FD 50 BK 50 LT 130 FD 50 LT 50 FD 70 RT 50 FD 50 BK 50 LT 115 FD 100 LT 65 FD 50 RT 65 FD 50 BK 50 LT 115 FD 70 1.2 Ponavljanje ukazov Narišimo kvadrat FD 100 RT 90 FD 100 RT 90 FD 100 RT 90 FD 100 RT 90 V opisu kvadrata se ukaza FD 100 RT 90 štirikrat ponovita. V takih primerih lahko uprabimo ukaz REPEAT, ki ima obliko REPEAT k [ ukazi ] in zahteva k-kratno ponovitev ukazov. Torej lahko kvadrat opišemo tudi z REPEAT 4 [ FD 100 RT 90 ]

12 Poglavje 1. Uvod v ˇzelvjo grafiko Podobno opišemo enakostranični 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) krožnico REPEAT 36 [ FD 3 RT 10 ] V vseh teh primerih je zmnožek kota zasuka in števila ponovitev enak 360 stopinj polnemu krogu. Kaj pa če 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 ] Učinek 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 90 REPEAT 91 [ FD 300 BK 300 RT 2 ] LT 92 FD 160 ] 1.3 Stanja peresa Z ukazom PENUP, ali krajše PU, dvignemo pero želva pri premikanju ne pušča sledi; z ukazom POWN, ali PD, pa pero spustimo želva spet pušča sled. Z ukazom SETPC n (oziroma PC n na C-64) lahko določimo barvo sledi. V ukazu SETPC n je n številka barve. Njen pomen je na posameznih vrstah računalnikov različen. Tako na primer velja na Spectrumu:

1.3. Stanja peresa 13 Slika 1.2: Gnezdenje ukazov REPEAT 0 črna 4 zelena 1 modra 5 sinja 2 rdeča 6 rumena 3 vijoličasta 7 bela na računalniku PC pa imamo na voljo: 0 črna 8 temno siva 1 modra 9 svetlo modra 2 zelena 10 svetlo zelena 3 sinja 11 svetlo sinja 4 rdeča 12 svetlo rdeča 5 vijoličasta 13 svetlo vijoličasta 6 rjava 14 rumena 7 svetlo siva 15 bela Seveda moramo biti za uporabo barv primerno opremljeni imeti moramo

14 Poglavje 1. Uvod v ˇzelvjo grafiko barvni televizor oziroma barvni zaslon z dobro slikovno kartico. Poskusite še naslednji zaporedji ukazov: CS REPEAT 60 [ PU FD 30 PD FD 30 PU FD 20 PD FD 60 PU BK 140 RT 6 ] PD CS PU LT 90 FD 120 RT 90 PD REPEAT 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 že poznate dovolj ukazov, da lahko poskusite rešiti naslednjo nalogo. 1.4 Naloga: Olimpijski krogi Sestavi zaporedje ukazov v logu, ki na zaslonu nariše pobarvane olimpijske kroge.

Poglavje 2 Ukazi, koordinate in izpis Ukaze v logu delimo na prave ukaze in funkcije. Pravi ukaz opravi neko opravilo. Funkcijski ukaz pa vrne neko vrednost, ki mora biti podatek nekemu pravemu ukazu. Na primer ukazna vrstica PRINT SUM 3 4 zahteva izpis vsote števil 3 in 4. Pri tem je rezultat funkcijskega ukaza SUM za podatka 3 in 4 podatek za pravi ukaz PRINT. Poskusite vnesti še ukaz SUM 3 4 Kaj se bo zgodilo, je odvisno od tolmača za logo. Najverjetneje se bo tolmač pritožil, da dobljeni rezultat ni podatek za pravi ukaz; nekateri tolmači pa rezultat brez pripomb izpišejo. Ukaze lahko razdelimo še na vgrajene ali praukaze in uporabnikove ali lastne ukaze. Vgrajene ukaze pozna logo že ob zagonu. Uporabnikove ukaze pa mora sestaviti uporabnik sam. Sestavljanju teh ukazov pravimo tudi programiranje. 2.1 Lastni ukazi V običajnem, sprotnem, pogovornem načinu dela uvedemo lastni ukaz z ukazom TO. V večini narečij loga zahtevamo TO ime Na to zahtevo preide tolmač za logo v stanje, v katerem sprejema vrstice z opisom ukaza ime. Vnos zaključimo z vrstico, ki vsebuje ukaz. 15

16 Poglavje 2. Ukazi, koordinate in izpis Slika 2.1: Roža Podobno uvedemo nov ukaz, če ni predolg, tudi v narečju LOGOS, le da vse skupaj vnesemo kot eno vrstico TO ime opis Tako uvedemo ukaz KVADRAT z TO KVADRAT REPEAT 4 [ FD 100 RT 90 ] in ga poženemo 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 ]

2.1. Lastni ukazi 17 Slika 2.2: Zid ki nariše rožo prikazano na sliki 2.1. Poglejmo si še nekoliko zapletenejši primer, kjer kamne in opeke zlagamo v vrste, te pa nalagamo ene na druge in tako ustvarimo zid. Risanje zida zahtevamo z ukazom SLIKA. TO KAMEN REPEAT 4 [ FD 16 RT 90 ] TO OPEKA REPEAT 2 [ FD 32 RT 90 FD 16 RT 90 ] TO VRSTA REPEAT 8 [ PU BK 24 PD KAMEN PU BK 40 PD OPEKA ] TO ZID LT 90 REPEAT 7 [ VRSTA RT 90 PU FD 40 RT 90 FD 8 VRSTA LT 90 PU FD 8 LT 90 FD 8 ] TO SLIKA CS PU BK 165 LT 90 PU FD 260 RT 90 PD ZID Zid je prikazan na sliki 2.2.

18 Poglavje 2. Ukazi, koordinate in izpis 2.2 Delo z lastnimi ukazi Imena vseh uporabniških ukazov izpiše na zaslon ukaz POTS. Ukaz ime izločimo (zbrišemo) z ukazom ERASE "ime Uporabimo lahko tudi okrajšavo ER. Če želimo ukaz ime popravljati zahtevamo EDIT "ime Ta ukaz deluje na posameznih vrstah računalnikov zelo različno. Zato si podrobnosti preberite v priročniku ali pa, za Spectrum, v [4, 6] in, za C-64, v [5, 13]. V LCSI/LOGOSu lahko v sprotnem načinu spremenimo opis uporabniškega ukaza tako, da njegovo novo definicijo začnemo z geslom RETO. Na primer, če želimo, da ima kvadrat dolžino stranice 120 namesto 100, bomo zahtevali RETO KVADRAT REPEAT 4 [ FD 120 RT 90 ] Za pisanje obsežnejšnih programov pa raje uporabimo urejevalnik, v katerega pridemo z ukazom EDITOR. Večina narečij loga pozna še naslednje (ali njim podobne) ukaze: PO i SAVE d s SAVEALL d LOAD d CATALOG b POFILE d ERALL izpiši definicijo ukaza i shrani ukaze iz seznama s na datoteko d shrani vsebino delovnega prostora na datoteko d vnesi ukaze z datoteke d izpiži seznam datotek na tekočem področju, katerih imena zadoščajo vzorcu b izpiši vsebino datoteke d zbriši vsebino delovnega prostora Najbrž ni potrebno posebej razlagati, kdaj in kako jih lahko uporabite. Posamezna narečja loga imajo različne vgrajene podaljške za datoteke, ki vsebujejo ukaze v logu. Najpogosteje se uporablja podaljšek.log, s katerim pa nekaj programov označuje datoteke z dnevnikom obdelave. LCSI logo na PCjih uporablja podaljšek.lf, LCSI/LOGOS pa podaljšek.lg.

2.3. Koordinate 19 y 100 [150 100] -60 [0 0] 150 x [-60-80] -80 Slika 2.3: Koordinatni sistem 2.3 Koordinate Na slikovni zaslon lahko postavimo tudi običajni koordinatni sistem, kakor smo ga navajeni v matematiki (glej sliko 2.3). Vsaka točka na zaslonu je določena z dvema številoma (x, y) koordinatama, ki merita njen odmik od osi x in osi y. V logu točko (x, y) predstavimo s seznamom [x y]. Želvo lahko usmerjamo tudi glede na ta koordinatni sistem. Na voljo imamo ukaze: SETPOS [x y] premik želve v točko (x, y); SETX n premik želve do koordinate x = n; SETY n premik želve do koordinate y = n; TOWARDS [x y] vrne smer želve proti točki (x, y); SETHEADING n postavi smer želve na n; okrajšava SETH; DOT [x y] nariše piko na (x, y), želvo pusti tam, kjer je. Prav bosta včasih prišla tudi ukaza: SETBG n postavi barvo podlage na n; PENREVERSE odslej želva riše, tam kjer ni sledi, in briše (dele) sledi, čez katere gre; okrajšava PX. Na voljo imamo tudi nekaj funkcijskih ukazov, ki vrnejo posamezne zanimive količine:

20 Poglavje 2. Ukazi, koordinate in izpis Slika 2.4: Pismo POSITION XCOR YCOR HEADING PENCOLOR BACKGROUND položaj (mesto) želve; okrajšava POS; koordinata x (abscisa) želve; koordinata y (ordinata) želve; smer želve; barva sledi; okrajšava PC; barva podlage; okrajšava BG. Ti ukazi bodo prišli prav tudi pri reševanju naslednje naloge. 2.4 Naloga: Pismo Sestavi zaporedje ukazov v logu, ki na zaslonu nariše pismo (glej sliko 2.4) v eni potezi ne da bi dvignili pero pri čemer nobene črte ne riše dvakrat. 2.5 Besede in izpis Znake, ki jih najdemo na tipkovnici računalnika delimo na tri skupine: velike in male ˇcrke A, B, C,..., Z, a, b, c,..., z; števke ali cifre 0, 1, 2,..., 9 in posebne znake +, -, *, (, :,?,... Iz znakov lahko sestavljamo nize znakov ali besede. Besedo začnemo z dvojnim narekovajem ". Ta ne pripada besedi, temveč le pove, da zaporedje znakov, ki mu sledi, sestavlja besedo. V besedi ne smemo naravnost uporabiti presledka in

2.6. Spremenljivke 21 znakov []()+-*/<=>. Če jih vseeno želimo uporabiti, moramo pred vsak tak znak zapisati znak \. Primeri besed so: "Ljubljana, "!!napaka in "2\+2. Logo pozna tudi prazno besedo ", ki ne vsebuje nobenega znaka. Količino p lahko izpišemo na zaslon z ukazi: PRINT p izpiše podatek p in gre v novo vrstico; TYPE p samo izpiše podatek p; SHOW p izpiše podatek p, če je seznam tudi z zunanjimi oklepaji, in gre v novo vrstico. Če želimo naenkrat izpisati več podatkov p 1, p 2,... p n, zahtevamo ( PRINT p 1 p 2... p n ) Namesto PRINT lahko uporabimo tudi okrajšavo PR. Za izpis podatkov navadno raje uporabimo znakovni zaslon, na katerega preidemo s slikovnega z ukazom TEXTSCREEN ali TS, pobrišemo pa ga z ukazom CLEARTEXT ali CT. Poskusite TS CT PR "Ljubljana TYPE 26 TYPE "marec PR 1991 SHOW "Konec V narečju LCSI/LOGOS lahko določimo število decimalnih mest pri izpisu števil z ukazom SETNUMPREC n. Torej, če delamo s celimi števili, pred izpisom postavimo SETNUMPREC 0. 2.6 Spremenljivke Računalnik si lahko posamezne količine tudi zapomni. Shrani jih v svoj pomnilnik. Uporabnik si lahko pomnilnik predstavlja kot omaro s predalčki. Posamezni predalček lahko: opremimo z imenom; vanj shranimo količino; po potrebi pogledamo, kaj je v njem shranjeno; ali njegovo vsebino zamenjamo z novo. V programskih jezikih pravimo takim predalčkom spremenljivke. Spremenljivko sestavljajo: ime, tip, prostor in vrednost. Če hočemo v programu s spremenljivko kaj početi, uporabljamo za to njeno ime. Ime spremenljivke prevajalnik ali tolmač poveže z njej pripadajočim prostorom v pomnilniku. Vsebina tega prostora je vrednost spremenljivke. Tip spremenljivke pa določa: velikost spremenljivki pripadajočega prostora; vrednosti, ki jih lahko vsebuje; kako naj prevajalnik razume vsebino prostora; in kaj lahko s

22 Poglavje 2. Ukazi, koordinate in izpis spremenljivko počnemo. Kot smo že omenili, pozna logo tri tipe: števila, besede in sezname. V logu je ime spremenljivke beseda. Na primer: "PETER, "NOVA.CENA. Do vsebine spremenljivke "ime pridemo z ukazom THING "ime, kar lahko krajše zapišemo :ime. Tako na primer namesto THING "DATUM raje pišemo :DATUM. Količino vrednost shranimo v spremenljivko ime z ukazom Na primer MAKE "ime vrednost MAKE "DAN 23 MAKE "MESEC "marec MAKE "LETO 1991 (PR :DAN :MESEC :LETO) V programskih jezikih, ki temelje na prevajanju, lahko spremenljivka vsebuje le vrednosti enega tipa; v logu pa lahko vanjo shranimo katero koli vrednost. Na primer, brez ugovora bo sedaj sprejel tudi zahtevo Poskusite še MAKE "LETO "MCMXCI SHOW :LETO MAKE "A "KONEC MAKE "B "A SHOW :B SHOW THING :B 2.7 Ukazi s parametri Kako sestavimo ukaz za risanje kvadrata, smo se že naučili. Če želimo risati kvadrate s spremenljivo velikostjo stranice, moramo ukaz opremiti s podatkom, ki mu bo to povedal. Tudi v opisu ukaza moramo povedati, da je ukaz odvisen od podatka. V ta namen vpeljemo posebno sestavino parametre. Ime parametra ima obliko vrednosti spremenljivke sestavlja ga dvopičje, ki mu sledi zaporedje znakov. Uvedba ukaza s parametri ime ima obliko TO ime parametri opis Kadar želimo v opisu ukaza uporabiti vrednost kakega parametra, zapišemo njegovo ime. Pri uporabi ali, kakor pravimo v računalništvu, klicu ukaza navedemo njegovo ime in za njim zaporedje vrednosti parametrov. Recimo, da označuje dolžino stranice kvadrata parameter :a. Tedaj lahko sestavimo ukaz

2.7. Ukazi s parametri 23 TO KVA :a REPEAT 4 [ FD :a RT 90 ] ki ga preizkusimo z zahtevo CS KVA 30 KVA 50 KVA 70 KVA 100 Uporabniški ukazi so zelo pomembna sestavina vsakega programskega jezika, saj, če jih pravilno uporabljamo: povečajo preglednost in razumljivost programov; približajo programski jezik področju uporabe; omogočajo pisanje krajših programov; strokovnjaki lahko pripravijo knjiˇznice ukazov. Tako lahko tudi nestrokovnjaki uporabljajo zahtevna orodja. Za nas je pomembna še ena lastnost: ker lahko za imena uporabljamo slovenske besede, lahko logo naučimošlovenščine. Na primer: TO NAPREJ :k FD :k TO DESNO :k RT :k Sedaj bo logo razumel tudi zahteve NAPREJ 100 DESNO 90 NAPREJ 50 Za nekoliko zahtevnejši primer narišimo gozd. Najprej drevo s koreninami v točki t in korakom velikosti a TO DREVO :t :a SETH 0 PU SETPOS :t PD REPEAT 10 [FD :a] LT 85 REPEAT 36 [FD :a RT 10] več 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 naključno velikih in postavljenih dreves.

24 Poglavje 2. Ukazi, koordinate in izpis 2.8 Znakovni zaslon Slika 2.5: Gozd Kot smo že povedali, poleg slikovnega zaslona, na katerem rišemo slike, pozna logo še znakovni zaslon, ki je namenjen za izpis besedil. Nanj nas postavi ukaz TEXTSCREEN ali krajše TS. Na znakovni zaslon pišemo z ukazi PRINT, SHOW in TYPE. Znakovni zaslon je razdeljen na enako velika pravokotna okenca. V vsako tako okence lahko napišemo po en znak. Zaporedna okenca v vodoravni smeri sestavljajo vrstice, v navpični pa stolpce. Vrstice in stolpci so oštevilčeni. Šteti začnemo v levem zgornjem vogalu zaslona. Na računalniku PC ima znakovni zaslon navadno 25 vrstic in 80 stolpcev. Koliko vrstic in stolpcev je na vašem zaslonu? Z ukazom SETCURSOR [ s v ] se postavimo na okence v s-tem stolpcu in v-ti vrstici. Ime ukaza lahko okrajšamo s SETCUR. Kje je tekoče okence izvemo z ukazom CURSOR, ki vrne seznam [ s v ]. Tako na primer SETCUR [14 11] TYPE "Logo SHOW CURSOR SHOW CURSOR

2.8. Znakovni zaslon 25 Slika 2.6: Še en gozd izpiše: Logo[18 11][25 11] Če imamo na voljo barvni zaslon, lahko z ukazom SETTC [ c p ] zahtevamo, da naj bodo odslej izpisani znaki barve c (črnilo), pripadajoča okenca pa barve p (podlaga, papir). Barve so oštevilčene. Obe barvi podamo tako, da napišemo njuni številki. Na posameznih računalnikih (in celo zaslonih) so na voljo različni nabori barv. Seznam, ki vsebuje tekoči barvi papirja in črnila, vrne ukaz TEXTCOLOR ali TC. Za barvo papirja velja na PC samo prvih 8 barv, nadaljnje vrednosti povzročijo utripajoči izpis. Z ukazom SETTC lahko na PC tudi na črno-belem zaslonu dosežemo posamezne učinke (utripanje, jakost izpisa, inverzni izpis, podčrtanje)... Poskusite TS CT SETTC [ SETTC [ SETTC [ 0 1 ] PR "XXXXXOOOOO 0 7 ] PR "XXXXXOOOOO 1 0 ] PR "XXXXXOOOOO

26 Poglavje 2. Ukazi, koordinate in izpis SETTC [ 8 5 ] PR "XXXXXOOOOO SETTC [ 9 0 ] PR "XXXXXOOOOO SETTC [ 24 3 ] PR "XXXXXOOOOO SETTC [ 16 7 ] PR "XXXXXOOOOO

Poglavje 3 Računanje in seznami 3.1 Računanje V logu lahko tudi računamo. Za začetek se bomo zadovoljili z osnovnimi računskimi operacijami: seštevanjem +, odštevanjem, množenjem in deljenjem /. Poskusite TS CT PR 3 + 4 PR 17-8 PR 8 * 7 PR 7 / 3 zaporedni odgovori so 7, 9, 56, 2.333333. Uporabimo lahko tudi zapletenejše izraze. Vrstni red izračuna določimo z oklepaji. Tako PR (5+6)*(12-7) izračuna in izpiše vrednost 55. Če vrstni red ni določen z oklepaji, ga določata naslednja dogovora: prednostni vrstni red: tako kot je v navadi v matematiki, množenje in deljenje močneje vežeta kot seštevanje in odštevanje; izraˇcun z leve proti desni: operacije, ki vežejo enako močno, se opravljajo z leve proti desni. Tako je zahteva PR 3-4 * 5 + 7 enakovredna zahtevi 27

28 Poglavje 3. Raˇcunanje in seznami PR (3 - (4 * 5)) + 7 Zakaj? Preizkusite! V izrazih lahko uporabljamo tudi spremenljivke in izračunano vrednost shranimo v neko spremenljivko z ukazi oblike MAKE "i izraz ki zahteva, da se izračuna vrednost danega izraza in nato shrani v spremenljivko i. Enak učinek ima tudi ukaz NAME izraz "i Poglejmo, kaj opravita ukaza: MAKE "k 7 MAKE "k :k + 1 Prvi ukaz shrani v spremenljivko k vrednost 7. Drugi ukaz zahteva, da se najprej izračuna vrednost izraza :k + 1 in nato shrani v spremenljivko k. Izraz :k + 1 zahteva, da vzamemo vrednost spremenljivke k, to je 7, in ji prištejemo 1. Dobimo 8. To vrednost shranimo nazaj v spremenljivko k kot njeno novo vrednost. Torej, če posplošimo, je pomen drugega ukaza: povečaj vrednost spremenljivke k za 1. Poizkusite še MAKE "a "le MAKE "b ška TYPE :a PR :b MAKE č :a MAKE "a :b MAKE "b :c TYPE :a PR :b Vidimo, da stavki MAKE med stavkoma PR in TYPE premenjajo vrednosti spremenljivk a in b. Spremenljivko c smo uporabili za začasno hranjenje začetne vrednosti spremenljivke a. in Kaj pa izpišejo 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) MAKE "a 1 MAKE "b 1 PR :a PR :b REPEAT 10 [ MAKE "a :a + :b MAKE "b :a + :b PR :a PR :b ] Za zahtevnejše bralce bo najbrž poučen tudi naslednji zgled:

3.2. Seznami 29 TO povecaj :stevec MAKE :stevec (THING :stevec) + 1 MAKE "n 0 povecaj "n (PR [:n =] :n) (PR [:n =] :n) 3.2 Seznami Če so količine a 1 a 2... a n znane, dobimo seznam tako, da zaporedje količin obdamo z oglatima oklepajema [ in ]. Količine, ki nastopajo v seznamu, so lahko tudi same seznami. Na primer: [ 1 2 3 ] [ [ 1 ] 4 [ 2 3 ] "aha x ] Seznamu [ ], ki vsebuje prazno zaporedje, pravimo prazni seznam. S seznami lahko opišemo najrazličnejše vrste podatkov. Kadar količine dobimo kot vrednosti spremenljivk ali kot rezultat izračuna, jih združimo v seznam z ukazom LIST ( LIST a 1 a 2... a n ) Ukazu LIST je soroden ukaz SENTENCE, ali krajše SE, oblike ( SE s 1 s 2... s n ) ki elemente seznamov s 1, s 2,..., s n združi v skupni seznam. Na primer, naj bo Tedaj ukaz MAKE "p [1 2] MAKE "q [3 4] SHOW (LIST :p :q) izpiše seznam [[1 2][3 4]]; ukaz SHOW (SE :p :q) pa seznam [1 2 3 4]. Podobno ukaz ( WORD b 1 b 2... b n ) združi dane besede v eno besedo. Poglejmo si še zgled, ki združuje več sestavin, ki smo jih spoznali v tem razdelku. Ukazi

30 Poglavje 3. Raˇcunanje in seznami TS CT MAKE "v 1 REPEAT 20 [ SETCUR (LIST 2*:v :v) TYPE :v MAKE "v :v + 1 ] izpišejo diagonalno po znakovnem zaslonu prvih 20 naravnih števil. Tako, sedaj pa že poznate vse, kar je potrebno za rešitev naslednje naloge. 3.3 Naloga: Poštevanka do 100 Sestavi zaporedje ukazov v logu, ki na znakovnem zaslonu izpiše poštevanko do 100. 1 2 3 4 5 6 7 8 9 10 1 1 2 3 4 5 6 7 8 9 10 2 2 4 6 8 10 12 14 16 18 20 3 3 6 9 12 15 18 21 24 27 30 4 4 8 12 16 20 24 28 32 36 40 5 5 10 15 20 25 30 35 40 45 50 6 6 12 18 24 30 36 42 48 54 60 7 7 14 21 28 35 42 49 56 63 70 8 8 16 24 32 40 48 56 64 72 80 9 9 18 27 36 45 54 63 72 81 90 10 10 20 30 40 50 60 70 80 90 100

Poglavje 4 Funkcije in odločitveni stavek 4.1 Številske funkcije Vsoto a + b lahko v logu zapišemo tudi v obliki SUM a b ; in veččleno vsoto a 1 + a 2 +... + a n v obliki ( SUM a 1 a 2... a n ) Podobno lahko za zmnožek a b uporabimo obliko PRODUCT a b ; in za a 1 a 2... a n izraz ( PRODUCT a 1 a 2... a n ) Ukaza SUM in PRODUCT sta funkcijska ukaza, ker dane podatke predelata v nov podatek zahteva SUM 3 4 predela števili 3 in 4 v njuno vsoto 7. Tudi za ostale računske operacije pozna logo funkcijske ukaze: DIFFERENCE a b je enakovreden izrazu a b in izračuna razliko števil a in b; QUOTIENT a b je enakovreden izrazu a/b in izračuna kvocient števil a in b; DIV a b izračuna celoštevilski kvocient celih števil a in b; REMAINDER a b 31

32 Poglavje 4. Funkcije in odloˇcitveni stavek izračuna ostanek pri deljenju celega števila a z b. V zadnjih treh funkcijah mora biti vrednost b različna od 0. Poskusite PR QUOTIENT 91 19 PR DIV 91 19 PR REMAINDER 91 19 Zaporedoma dobimo 4.78947368, 4 in 15. Poleg funkcij za posamezne računske operacije pozna večina narečij loga še naslednje funkcije: PI π = 3.14159265 INT n celi del ROUND n najbližje celo število SQRT n kvadratni koren, n 0 ABS n absolutna vrednost RANDOM n naključno celo število med 0 in n 1 SIN n sinus COS n kosinus TAN n tangens ARCTAN n ločni tangens EXP n eksponentna LOG n naravni logaritem, n > 0 Trigonometrijske funkcije SIN, COS, TAN in ARCTAN delajo s koti, izraženimi v stopinjah. V LOGOSu pa lahko uporabljamo tudi funkcije SINR, COSR, TANR in ATANR, ki delajo s koti, izraženimi v radianih. V nekaterih narečjih loga lahko z ukazom RANDOMIZE zagotovimo, da bo zaporedje naključnih števil, ki jih daje funkcija RANDOM, pri ponovni izvedbi programa drugačno. 4.2 Lastne funkcije Uporabnik lahko sestavi tudi lastne funkcijske ukaze. Opis funkcijskega ukaza ima običajno obliko TO ime parametri izraˇcun vrednosti OUTPUT vrednost

4.3. Znaki 33 Ukaz OUTPUT v, ali krajše OP v, prekine izvajanje funkcijskega ukaza in vrne vrednost v kot njegovo vrednost. Tako na primer funkciji TO ENICE :n OP REMAINDER ABS :n 10 TO DESETICE :n OP ENICE DIV :n 10 vrneta enice oziroma desetice danega celega števila. Na zahtevo PR ENICE -253 PR DESETICE -253 logo izpiše števili 3 in 5. 4.3 Znaki V računalniku so tudi znaki shranjeni kot števila. Vsak znak je predstavljen z njegovo zaporedno številko v tabeli znakov. Predpisu, ki vsakemu znaku priredi zaporedno številko in obratno, pravimo koda. V računalništvu se najpogosteje uporablja koda ASCII. ASCII pomeni American Standard Code for Information Interchange Standardna ameriška koda za izmenjavo podatkov. Tabela ASCII vsebuje 256 znakov s številkami od 0 do 255. Številkam 0 31 in 128 255 na različnih računalnikih ustrezajo različni znaki. Zvezo, ki jo določa koda ASCII, povzemata v logu funkcijska ukaza ASCII in CHAR. Zahteva ASCII znak vrne zaporedno številko danega znaka; zahteva CHAR n pa vrne znak z zaporedno številko n. Tako PR ASCII "a PR CHAR 65 izpiše 97 in A. Za izpis znaka, ki pripada dani številki, lahko sestavimo poseben ukaz TO ZNAK :n (PR :n CHAR :n) Na računalniku PC zahteva ZNAK 201 ZNAK 205 ZNAK 187 ZNAK 200 ZNAK 188 ZNAK 186

34 Poglavje 4. Funkcije in odloˇcitveni stavek Slika 4.1: Naključni vzorec izpiše znake, iz katerih lahko sestavimo okvir. Sestavimo še ukaz, ki izpiše vse znake s kodami od od do do: TO Znaki :od :do TS CT MAKE žnak :od REPEAT :do - :od + 1 [ (PR :znak CHAR :znak) MAKE žnak :znak + 1 ] Poskusite Znaki 31 50. Oglejte si še druge znake na vašem računalniku. Na računalniku PC kodam 220 223 ustrezajo pol beli, pol črni znaki. To je uporabljeno v naslednjem programu TS CT REPEAT 2000 [ TYPE CHAR 220 + RANDOM 4 ] ki izpiše na znakovni zaslon naključni vzorec, kakršen je prikazan na sliki 4.1. 4.4 Pogoji Logo pozna tudi logični vrednosti "TRUE (resnično) in "FALSE (lažno). Izrazom, ki dajo logično vrednost pravimo pogoji. Enostavni pogojni izrazi imajo obliko primerjav

4.4. Pogoji 35 a < b a = b a > b manjši enak večji Poskusite MAKE č 1 PR :c < 5 PR 0 = :c Logo izpiše TRUE in FALSE. Logično vrednost vračajo tudi nekatere vgrajene funkcije. Lahko pa tako funkcijo sestavi tudi uporabnik. Na primer, kakor vemo, je število n deljivo s številom d natanko takrat, ko je ostanek pri deljenju n z d enak 0. To izrazimo s funkcijo TO DELJIV :n :d OP 0 = REMAINDER :n :d Pogoje lahko povežemo v sestavljene pogoje z izjavnimi povezavami NOT a AND a b OR a b negacija; ni res a konjunkcija; a in b disjunkcija; a ali b katerih delovanje je opisano s tabelama a F T NOT a T F in a b AND a b OR a b F F F F F T F T T F F T T T T T V tabelah T označuje "TRUE, F pa "FALSE. Uporabljamo lahko tudi obliki (OR a 1 a 2... a n ) in (AND a 1 a 2... a n ). Z uporabo izjavnih povezav lahko pogoj a x < b zapišemo v logu takole AND OR :a=:x :a<:x :x<:b

36 Poglavje 4. Funkcije in odloˇcitveni stavek 4.5 Odločitveni stavek Pogoje uporabljamo v ukazih oblike IF pogoj [ res ukazi ][ laˇz ukazi ] ki preveri, ali je dani pogoj izpolnjen (resničen). Če je izpolnjen, opravi res ukaze, sicer pa opravi laˇz ukaze. Tako na primer ukaz TO VECJI :a :b IF :a > :b [ OP :a ] [ OP :b ] vrne večje izmed števil a in b. Na zahtevo PR VECJI -14 7 PR VECJI 8 5 logo izpiše 7 in 8. Odločitveni stavek ima v različnih narečjih loga še druge oblike. Na primer: IF pogoj THEN res ukazi ki jo lahko nadaljujemo z ELSE laˇz ukazi Ker večina narečij loga ne dopušča, da bi se stavek raztezal čez več vrstic, poznajo stavke TEST pogoj IFTRUE res ukazi IFFALSE laˇz ukazi Prvi ukaz preveri dani pogoj; preostala dva pa povesta, kaj naj se opravi glede na možna izida preverjanja. Pri pisanju lastnih ukazov nam bo prišel prav še ukaz STOP, ki zahteva prekinitev izvajanja ukaza, v opisu katerega se nahaja. Izvajanje se nadaljuje na ukazu, ki sledi klicu zahtevi, ki je sprožila prekinjeni ukaz.

4.6. Rekurzija 37 4.6 Rekurzija Kot nekoliko zapletenejši primer si oglejmo funkcijski ukaz VSOTA, ki vrne kot vrednost vsoto števk (cifer) v desetiškem zapisu števila n. Postopek temelji na ugotovitvi, da je vsota vseh števk enaka vsoti enic in vsote števk števila brez enic TO VSOTA :n IF :n = 0 [ OP 0 ] [ OP (REMAINDER :n 10) + VSOTA DIV :n 10 ] Kaj se zgodi, ko zahtevamo PR VSOTA 3958 Najprej se izračuna VSOTA 3958 VSOTA 3958 8 + VSOTA 395 VSOTA 395 5 + VSOTA 39 VSOTA 39 9 + VSOTA 3 VSOTA 3 3 + VSOTA 0 VSOTA 0 0 VSOTA 3 3 + 0 = 3 VSOTA 39 9 + 3 = 12 VSOTA 395 5 + 12 = 17 VSOTA 3958 8 + 17 = 25 Torej VSOTA preda ukazu PR vrednost 25, ki jo le-ta izpiše. Kot vidimo, ukaz VSOTA zahteva v svojem opisu ponovno svojo izvedbo. Takim ukazom, ki posredno ali neposredno zahtevajo svojo ponovno izvedbo, pravimo, da so rekurzivni. Za programiranje v logu je uporaba rekurzivnih ukazov značilna. Sami preiskusite še ukaz TO SPIRALA :d :s :a IF :d > 300 [ STOP ] [ ] FD :d RT :a SPIRALA (:d + :s) :s :a recimo z zahtevama SPIRALA 0 4 90 in SPIRALA 0 3 178. Na sliki 4.2 je prikazana SPIRALA 0 1.2 53.

38 Poglavje 4. Funkcije in odloˇcitveni stavek 4.7 Naloga: Praštevilo Slika 4.2: Spirala V logu sestavi ukaz PRASTEVILO :n, ki za dano naravno število n izpiše, ali je praštevilo ali ni. Če ste pozabili, naravno število n > 1 je praštevilo natanko takrat, ko je deljivo samo z 1 in samim seboj torej, ko ima natanko dva delitelja.

Poglavje 5 Besede in seznami 5.1 Še nekaj o besedah Pomudimo se najprej nekoliko pri samem zapisu besed. Kot vemo, besedo napovemo z dvojnimi navednicami ", ki jim sledi niz znakov, ki sestavlja besedo. No, v tem nizu ne smemo naravnost uporabiti nekaterih znakov. To so presledek in znaki + - * / ( ) [ ] < > = " : ; \ ter v narečju LOGOS še znaki $ % &, { } Nekatera narečja uporabljajo znak # za napoved zapisa števila v drugi osnovi. Tako so na primer #B1011, #O13 in #H0B zaporedoma zapisi števila 11 v dvojiškem, osmiškem in šestnajstiškem sestavu. Če vseeno želimo katerega izmed omenjenih znakov vključiti v besedo, moramo predenj postaviti ubeˇzni znak \ (nekatera narečja loga poznajo druge ubežne znake) ali pa uprabiti ukaz CHAR. Tako ukaz MAKE "kraj "Nova\ Gorica shrani v spremenljivko kraj besedo Nova Gorica. Če pa bi ubežnemu znaku \ sledila dva presledka, bi se logo pritožil, da ne pozna ukaza Gorica. Tako lahko v večini narečij loga uporabljamo v besedah kot navadne znake le znake.!? _ ˆ @ 39

40 Poglavje 5. Besede in seznami Pogosto uporabljamo imena, ki vsebujejo znak @ ali., za poimenovanje sistemskihšpremenljivk in ukazov. V narečju LOGOS lahko s tem, da del besede postavimo v enojne navednice, zahtevamo, da ga upošteva dobesedno. Tako bi lahko prejšnji ukaz zapisali tudi v obliki: MAKE "kraj " Nova Gorica Do sedaj smo spoznali za delo z besedami funkcijske ukaze ASCII, CHAR in WORD. Poleg teh poznajo nekatera narečja loga še funkciji: LOWERCASE w, ki vse črke besede w predela v male; in UPPERCASE w, ki vse črke besede w predela v velike. Uporabimo lahko tudi okrajšavi LC in UC. Tako na primer na zahtevo MAKE "b "LogoS PR :b PR UC :b PR LC :b logo izpiše zaporedoma LogoS, LOGOS in logos. Preberemo lahko tudi znak, ki ga uporabnik pritisne na tipkovnici. To nam omogoča ukaz READCHAR, ali krajše RC, ki počaka na pritisk na tipko in vrne ustrezni znak. Ali je pritisnjena kaka tipka, pa nam pove logična funkcija KEYP. Uporabniki narečja LCSI/LOGOS imajo na voljo ukaz RdEKey, ki omogoča branje tudi posebnih (smerne, funkcijske... ) tipk na tipkovnici. Vrne seznam kod pritisnjene tipke. Ukaz READCHAR nam omogoča napisati ukaz, ki izpisuje kode ASCII znakov s tipk, na katere pritisnemo. Zapustimo ga s tipko ENTER, ki ima kodo ASCII 13. TO TIPKE MAKE "@z RC IF 13 = ASCII :@z [ STOP ] [] (TYPE "ASCII\( :@z "\)\ \=\ ) PR ASCII :@z TIPKE 5.2 Delo z besedami in seznami Obstaja še nabor funkcij, ki delujejo tako nad besedami kot tudi nad seznami. Kadar je podatek lahko ali beseda ali seznam, mu bomo rekli objekt. Naštejmo jih: EMPTYP o COUNT o MEMBERP x o FIRST o ali je objekt o prazen število členov v objektu o ali x pripada objektu o prvi člen objekta o

5.2. Delo z besedami in seznami 41 LAST o ITEM n o BUTFIRST o BUTLAST o FPUT o s LPUT o s EQUALP o 1 o 2 zadnji člen objekta o n ti člen objekta o objekt o brez prvega člena; okrajšava BF objekt o brez zadnjega člena; okrajšava BL dodaj objekt o na začetek seznama s dodaj objekt o na konec seznama s ali sta objekta o 1 in o 2 enaka Sedaj pa si poglejmo njihove učinke. Ukazi MAKE "a "Peter MAKE "b ["V Š Ž "J] PR COUNT :a PR COUNT :b PR ITEM 3 :a PR MEMBERP FIRST "JV :b PR FPUT FIRST :b BF :a izpišejo zaporedoma 5, 4, t, TRUE in Veter. Ukaz READLIST, ali krajše RL, prebere z zaslona vnešeni objekt. O tipu vsebine spremenljivke x pa lahko poizvemo z ukazi NAMEP x NUMBERP x WORDP x LISTP x ali ima x vrednost ali je x število ali je x beseda ali je x seznam Večkrat pride prav tudi naslednji ukaz ZNAKI, ki iz dane besede b ustvari seznam znakov, ki jo sestavljajo: TO ZNAKI :b IF EMPTYP :b [ OP [] ][] OP FPUT FIRST :b ZNAKI BF :b Poskusite z zahtevo SHOW ZNAKI "matematika Logo izpiše seznam [ m a t e m a t i k a ] Ukaz PRAFAKTORJI pa ustvari seznam prafaktorjev danega števila n

42 Poglavje 5. Besede in seznami Na zahtevo dobimo TO @F :n :d IF :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+1 TO PRAFAKTORJI :n OP @F :n 2 SHOW PRAFAKTORJI 499905 [3 3 3 5 7 23 23] Poskusite še števila 499928, 500000 in 500094. 5.3 Naključni izbor Razmeroma preprosto je sestaviti ukaz IZBERI, ki naključno izbere neki člen iz dane besede ali seznama TO IZBERI :s OP ITEM (1+RANDOM COUNT :s) :s Tako smo na zahtevo REPEAT 20 [TYPE IZBERI "VSZJ] dobili zaporedje znakov JZVZSSVVSJJVSVJZSZVV 5.4 Iskanje Napišimo še ukaz KJE, ki vrne zaporedno številko člena z v besedi / seznamu b; če ga ne najde, vrne številko 0

5.5. Ulomki in lokalne spremenljivke 43 TO KJE :z :b MAKE "@k 1 REPEAT COUNT :b [ IF EQUALP :z ITEM :@k :b [ OP :@k ] [] MAKE "@k :@k + 1 ] OP 0 Preiskusimo ga! MAKE š "AEIOU PR KJE "I :s PR KJE "B :s Logo izpiše odgovora 3 in 0. LCSI/LOGOS pozna ukaz MEMBERN, ki ima isti učinek kot ukaz KJE. 5.5 Ulomki in lokalne spremenljivke Večkrat v opisu ukaza uporabimo spremenljivke, v katere shranimo kak začasni rezultat in jih po izteku ukaza ne potrebujemo več. Take spremenljivke lahko proglasimo za lokalne spremenljvke z ukazom LOCAL (glej primere v tem razdelku). S tem dosežemo dvoje: tolmač po izteku ukaza sprosti lokalnim spremenljivkam pripadajoči prostor; če v okolju, v katerem kličemo ukaz, obstaja spremenljivka z istim imenom kot lokalna spremenljivka, njene vrednosti ne pokvarimo nehote. Poglejmo si še en primer uporabe seznamov. Ulomek a b lahko predstavimo s seznamom [a b]. Za delo z ulomki lahko tedaj sestavimo ustrezne ukaze. Ukaz NAJDEL določi največji skupni delitelj števil a in b (Evklidov algoritem) TO NAJDEL :a :b IF :b=0 [OP ABS :a] [OP NAJDEL :b REMAINDER :a :b] Ukaz OBLIKA vrne dani ulomek v okrajšani obliki, pri čemer je imenovalec pozitiven. TO OBLIKA :a LOCAL "d IF 0 = LAST :a [ OP :a ] [] MAKE "d NAJDEL FIRST :a LAST :a OP IF 0 < LAST :a

44 Poglavje 5. Besede in seznami [ (LIST DIV FIRST :a :d DIV LAST :a :d) ] [ (LIST (-DIV FIRST :a :d) (-DIV LAST :a :d)) ] Sestavimo še ukaz SESTEJ, ki določi vsoto danih dveh ulomkov TO SESTEJ :a :b (LOCAL š "i) MAKE š (FIRST :a)*(last :b) + (FIRST :b)*(last :a) MAKE "i (LAST :a)*(last :b) OP OBLIKA (LIST :s :i) Ostale, manjkajoče ukaze za delo z ulomki boste sedaj najbrž zmogli dodati sami. Preverimo ukaze Dobimo MAKE "u1 [6-9] MAKE "u2 [-3-4] SHOW :u1 TYPE "\+ SHOW :u2 TYPE "\= SHOW SESTEJ :u1 :u2 [6-9]+[-3-4]=[1 12] 5.6 Naloga: Beseda Vrednost posamezne črke je enaka njeni zaporedni številki v (naši) abecedi. Tako ima A vrednost 1, B ima vrednost 2,... in Ž ima vrednost 25. Vrednost besede je enaka produktu vrednosti črk, ki jo sestavljajo. Na primer v(babica) = 2 1 2 10 3 1 = 120 v(logos) = 13 16 8 16 19 = 505 856 Poišči slovensko besedo, ki ima vrednost čim bližjo številu 500 000. Kako si si pri tem pomagal(a) z logom?

Poglavje 6 Zvok Fizikalno je zvok valovanje. Če je to valovanje enakomerno ima določljivo frekvenco, mu pravimo ton; sicer govorimo o šumu. Frekvenco ali, kakor pravijo glasbeniki, višino merimo v številu nihajev na sekundo hertzih (Hz). Tako je 300 Hz = 300 nihajev na sekundo. Ljudje slišimo zvok v obsegu od 15 20000 Hz in lahko pojemo v obsegu 200 2000 Hz. Ton sestavljajo štiri sestavine: višina, trajanje, moč (glasnost, amplituda nihanja) in barva. Barva je določena z ovojnico krivuljo spreminjanja moči. 6.1 Zvok na računalniku Večina mikroračunalnikov lahko ustvarja zvok. Vendar so razlike med njimi precejšne. V najpreprostejših izvedbah zvoka (Spectrum, PC) lahko spreminjamo le višino in trajanje. V ostalih mikroračunalnikih (C-64, Atari, Amiga, Spectrum +2) je ustvarjanje zvoka prepuščeno posebnemu čipu, ki lahko nadzira vse štiri sestavine tona. Navadno lahko tudi upravlja z nekaj vzporednimi viri zvoka. Na nekaterih mikroračunalnikih lahko računalnik s posebnim vmesnikom MIDI (Musical Instrument Digital Interface) povežemo z elektronskimi zvočnimi napravami (sintesizerji, zvočniki, mikrofoni... ). Seveda se vse te zmožnosti odražajo tudi v naboru ukazov, s katerimi krmilimo zvok. Tudi zvočne zmogljivosti računalnika PC lahko dopolnimo z vgraditvijo posebne zvočne kartice. Zadnji čas se posebej uveljavlja kartica Sound Blaster. Pri našem seznanjanju z zvokom v logu se bomo držali planinskih načel in se prilagodili najšibkejšemu členu v verigi. Predpostavili bomo, da imamo na voljo ukaz BEEP v t, ki ustvari t/50 sekunde trajajoči ton višine v. V narečju LCSI/LOGOS je ukazu BEEP enakovreden ukaz TONE v t; lahko pa ga tudi sestavimo iz še osnovnejših ukazov 45