Tilbake til startsida 

 

 

Meny:Dokumentasjon

 

Opna LibreLogo
Flytte
Pennen
Fyll
Menyen
Teikneobjekt

Programmering
Løkker og vilkår
Variablar
Funksjonar
Eigendefinerte funksjonar
Tekst
Matematikk
Diagram
Reglar
Kommandooversyn
linjestil

LibreLogo

Løkker

LibreLogo 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.

GJENTA x

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 [
  FRAMOVER 100 HØGRE 45
]

Kommandoen FRAMOVER 100 HØGRE 45 blir gjentatt 8 gonger etter kvarandre.

FOR

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] [
  FOROVER x
  VENSTRE 90
]

vil legge data frå lista [10, 50, 80, 120, 180] over i x-en og utføre kommandoane i tur og orden. Første kommandoen blir då FOROVER 10 VENSTRE 90. Neste blir FOROVER 50 VENSTRE 90 og så vidare til rekka blir avslutta med FOROVER 180 VENSTRE 90.

Også tekststrengar blir oppfata som liste, så det er råd å hente data også frå tekst.

FOR x I "Dette er ein tekststreng" [
  ETIKETT x
  FOROVER 10
]

vil skrive ut teksten bokstav for bokstav på skjermen.

For å laga ei løkke som går frå 0 til 20, skriv FOR :n I OMRÅDE 20 [ handling ].
Dette tilsvarar FOR n=0 to 19 i andre programmeringsspråk.

TELJAR

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.

MEDAN vilkår

Noe liknande FOR, men held på til vilkåret er oppfylt.

MEDAN TELJAR <= 10 [
  FOROVER 45
  HØGRE 36
]

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.

AVBRYT

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 [
  TILBAKE 50 VENSTRE 45
  VISS TELJAR = 20 [ AVBRYT ]
]

I dette eksemplet vil prosedyren bli gjentatt til teljaren er lik 20. Altså eigentleg det same som GJENTA 20.

STOPP

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.

HALD FRAM

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 [
  TILBAKE 60 HØGRE 45
  VISS TELJAR % 2 = 0 [HALD FRAM]
  KVADRAT 15
]

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

PAUSE 500 ; Vent i 0,5 sekund.

Blir, ikkje uventa, brukt for å lage ein pause i programmet. Tida blir målt i millisekund.

Vilkår

Ein del kommandoar kan endra funksjon om bestemte vilkår er oppfylde. I LibreLogo blir vilkåra bestemt med kommandoen
VISS. Testen følgjer dette mønsteret: VISS a < 10 [ utfør viss sann ] [ utfør viss usann ].

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 [
  FOROVER 50
  VISS TELJAR <= 5 [ VENSTRE 90 ] [ HØGRE 90 ]
]

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 [
  FOROVER 50
  VISS TELJAR = 5 ELLER TELJAR = 7 [ VENSTRE 90 ] [ HØGRE 90 ]
]

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.


Send melding

© Innhald og design:  Kolbjørn StuestølStuestøl heimesideSist endra 29. juni 2016