|
LibreLogoLøkkerLibreLogo har fleire løkkefunksjonar, det vil seie funksjonar som blir utført fleire gonger. Kor mange gonger, er anten bestemt på førehand, eller til eit bestemt vilkår er oppfylt. Talet x bestemmer kor mange gonger funksjonen skal repeterast. Dersom du sløyfer x, vil funksjonen gå til evig tid, eller i praksis til datamaskinen blir slått av. Eit eksempel: GJENTA 8 [ Denne funksjonen hentar data ein for ein frå ei liste med data. Funksjonen sluttar når det ikkje er fleire element i lista. FOR x I [10, 50, 80, 120, 180] [ Også tekststrengar blir oppfata som liste, så det er råd å hente data også frå tekst. FOR x I "Dette er ein tekststreng" [ For å laga ei løkke som går frå 0 til 20, skriv FOR :n I OMRÅDE 20 [ handling ]. Vil du i eksemplet ovanfor heller bruke verdien for teljaren enn verdiane frå lista, må du gå vegen om TELJAR. Dersom du i eksemplet byter ut x med TELJAR, vil programmet bruke verdien av teljaren som held styr på elementa i lista. TELJAR kan brukast i løkkene GJENTA, FOR og MEDAN. Noe liknande FOR, men held på til vilkåret er oppfylt. MEDAN TELJAR <= 10 [ Løkka vil bli utført så lenge teljaren er mindre enn eller lik 10. Teljaren byrjar med 1, ikkje 0 slik du kanskje er van med frå andre program. Difor vil funksjonen køyre kommandoane 10 gonger og teikne opp ei ti-kant. Dette er ikkje ein prosedyre, men ein kommando som bryt av, eller avsluttar, sløyfa. Blir alltid brukt saman med eit vilkår (sjå nedanfor). Eksempel: GJENTA [ I dette eksemplet vil prosedyren bli gjentatt til teljaren er lik 20. Altså eigentleg det same som GJENTA 20. Denne skal truleg verke omlag som AVBRYT, men eg har ikkje fått denne til å verke. Sam kva samanheng eg prøver kommandoen i, får eg ei feilmelding. Også dette er ein kommando og ikkje ein prosedyre. Uttrykket gjer at prosedyren hoppar over den kommandoen eller dei kommandoane som kjem etter HALD FRAM og byrjar på nytt igjen. Kommandoen kunne kanskje like gjerne heitt GÅ TIL START. Eit eksempel: GJENTA 8 [ Uttrykket «TELJAR % 2 = 0» er SANN dersom TELJAR : 2 gir resten 0, altså at divisjonen går opp. (Sjå kapitlet om matematikk). Så dersom teljaren er eit partal, vil uttrykket inne i hakeparentesen bli utført. Her står det HALD FRAM, noe som betyr at prosedyren blir utført frå starten, utan å bry seg om resten av kommandoane i prosedyren. Eksemplet vil teikne ein 8-kant med eit kvadrat i annankvart hjørne. PAUSE 500 ; Vent i 0,5 sekund. Blir, ikkje uventa, brukt for å lage ein pause i programmet. Tida blir målt i millisekund. VilkårEin del kommandoar kan endra funksjon om bestemte vilkår er oppfylde. I LibreLogo blir vilkåra
bestemt med kommandoen Dette betyr at dersom a er mindre enn 10 vil den første kommandoen bli utført, dersom a er lik eller større enn 10, vil den andre kommandoen bli utført. LibreLogo må (førebels?) ha desse blokkene på same linja. Her er eit eksempel på bruken av vilkår: GJENTA 10 [ Dette betyr at dersom teljaren er mindre enn eller lik 5, vil skjelpadda bli snudd mot venstre, elles mot høgre. I vilkår kan du også bruke dei såkalla logiske operatørane OG, ELLER, IKKJE. Dei betyr det same i Logo som i vanleg norsk. GJENTA 10 [ Setninga med vilkåret kan lesast slik: Dersom teljaren er lik 5 eller 7, utfør VENSTRE 90, elles utfør HØGRE 90. Byter du ut ELLER med OG, blir vilkåret aldri oppfylt og HØGRE 90 blir utført kvar gong. Dette fordi TELJAR då må vere både lik 5 og lik 7 for at vilkåret skal opfyllast. Bruk av IKKJE bryt litt med vanleg norsk, men ikkje verre enn at det er forståeleg. VISS IKKJE TELJAR = 5 OG IKKJE TELJAR = 7 [ VENSTRE 90 ] [ HØGRE 90 ]. Dette betyr at dersom teljaren er 1, 2, 3, 4, 6, 8 eller 9, vil vil VENSTRE 90 bli utført. Dersom teljaren er 5 eller 7, vil HØGRE 90 bli utført. |
|
© Innhald og design: Kolbjørn Stuestøl | Stuestøl heimeside | Sist endra 29. juni 2016 |