Gjentagelser: Løkker/Iterasjoner


Alle programmeringsspråk må ha konstruksjoner for å lage gjentagelser, de vanligste er for-, while og do-sløyfer:

FOR:

var i:int;
for(i=0;i<5;i++){ 			//startverdi: i=0, betingelse: i<5,  opptelling: i++
   trace("Dette kommer 5 ganger");
}

WHILE:

var i:int = 0;				//startverdi
while(i<5){
   trace("Dette kommer 5 ganger");
   i++;
}

While-sløyfer er mer fleksible og generelle enn For-sløyfer, men krever litt mer tenkning...

DO:

var i:int = 0;
do{
   trace("dette kommer 5 ganger");
   i++;
}while(i<5);

Do-while-sløyfer vil alltid bli gjort minst en gang.

Eksempler på bruk:

I kapittel 3: Variabler, tilordning og fundamentale datatyper, hadde vi et eksempel:

var tabell:Array=["Hansen","Olsen","Jensen","Karlsen"];

Her skjøter vi sammen innholdet i alle boksene i tabellen til en ny streng tekst,
som får innholdet "Hansen, Olsen, Jensen, Karlsen":

var tekst: String = tabell[0] + ", " + tabell[1] + ", " + tabell[2] + ", " + tabell[4];

Nå, når vi har lært kontrollstrukturer for gjentagelser, kunne vi gjort dette med kode:

var tekst: String = "";             // Setter tekst som en tom streng
for(var i: int = 0; i < 4; i++) {   // Gjentar for hver boks i tabellen:
   tekst += tabell[i];              //      Legger til innhold i boks nr. i
   if(i<3) {                        //      Legger til komma, unntatt til slutt
      tekst += ", ";
   }//if
}//for

Det ser mer komplisert ut å gjøre med kode, men tenk deg hvordan det ville blitt hvis tabellen hadde
hatt 100 bokser istedenfor 4!

 

Øvingsoppgaver

Bruk gentagelser og så få programlinjer som mulig!

Teknikkene i oppgave 5 er spesielt viktig!

Oppgave 1

Legg inn en tabell med navn:

var tabell: Array = ["Olsen", "Karlsen", "Hansen", "Jensen"];

Skriv ut alle navnene i tabellen i en for-sløyfe.
Skriv ut alle navnene i tabellen i en while-sløyfe

(Innholdet i hver boks i tabellen får man tak i ved hjelp av indekstallet, eksempelvis vil

tabell[2]

inneholde strengen "Hansen". Obs: Indeksen går fra 0 til 3, ikke 1 til 4!

Oppgave 2

Lag kode som skriver ut mønsteret:

*
**
***
****
*****
******
*******
********
*********

Oppgave 3

Lag kode som skriver ut "flagget":

*   *   *   *   *   *========================================
  *   *   *   *   *  ========================================
*   *   *   *   *   *========================================
  *   *   *   *   *  ========================================
*   *   *   *   *   *========================================
  *   *   *   *   *  ========================================
*   *   *   *   *   *========================================
=============================================================
=============================================================
=============================================================
=============================================================
=============================================================
=============================================================
=============================================================

Oppgave 4

Innled et program med:

var celcius: Number = 20;

Regn ut hva dette tilsvarer i Fahrenheitgrader med omregnignsformelen: f= c*9/5+32
og skriv ut svaret.

Lag deretter et program som skriver ut tabellen:

Celcius: Fahrenheit
0 32
10 ?
20 ?
30 ?
40 ?
50 ?
60 ?
70 ?
80 ?
90 ?
100 212

Oppgave 5

Legg inn en del tall i en tabell:

var tall: Array=[22,33,12,32,25,44,9,7,17,43];

Lag deretter kode som finner og skriver ut:

Disse tre problemene (summere tabell, finne største/minste element i en tabell og søke etter et element i en tabell) er grunnleggende og forekommer ofte i nesten alle dataprogrammer. Når vi forstår og kan skrive slike rutiner har vi kommet opp på et nytt nivå i programmeringsfaget!

Flere oppgaver:

Oppgave 6

Fibonaccis tallfølge er slik: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, osv.

Lag et program som finner tall nummer 100 og tall nummer 1000 i Fibonacci-tallfølgen.

Oppgave 7

Lag et kalkulatorprogram for en kunderådgiver i en bank, som regner ut hvor mye som står på konto
etter et visst antall år når du setter inn et fast beløp i starten av hvert år.

Skal se omtrent slik ut:

Oppgave 8

Lag et program som skriver ut gangetabellen. (Se eksempel side 92)

Oppgave 9

Lag et program som tegner mønstreret:

Løsningsskisser