Skip to content

Lussen in Python

Bart Jacobs edited this page Feb 16, 2018 · 1 revision

Lussen in Python

Op deze pagina oefenen we de programmeertaal Python in. De reden is dat OCaml er een beetje anders uitziet dan de meeste andere programmeertalen op een aantal vlakken:

  • Je kan in OCaml lokale variabelen niet zomaar wijzigen.
  • In OCaml heb je geen return-opdracht waarmee je uit een functie (en uit een lus) kan springen.

Start Python 3 IDLE op. (Tik "python" in het Start-menu van Windows.)

Opdracht:

  • In Python IDLE, tik xs = [30, -5, -7, 9] in.
  • Tik dan i = 0 in.
  • Tik dan het volgende in:
    while i < len(xs):
        if xs[i] < 0:
            xs[i] = -xs[i]
        i = i + 1
    
  • Tik dan xs in.
  • Python antwoordt met [30, 5, 7, 9]. De negatieve elementen van de array zijn vervangen door hun negatie.

Opdracht:

  • In Python IDLE, tik het volgende in:
    def positie_van_grootste(xs):
        pos_grootste = 0
        grootste = xs[0]
        i = 1
        while i < len(xs):
            if xs[i] > grootste:
                grootste = xs[i]
                pos_grootste = i
            i = i + 1
        return pos_grootste
    
  • Tik dan xs = [3, 40, 2, 30] in.
  • Tik dan positie_van_grootste(xs) in.
  • Python antwoordt met 1.

Opdracht:

  • Tik het volgende in:
    def allemaal_positief(xs):
        i = 0
        while i < len(xs):
            if xs[i] <= 0:
                return False
            i = i + 1
        return True
    
  • Tik dan allemaal_positief([1, 2, -3, 4]) in.
  • Python antwoordt met False.
  • Tik dan allemaal_positief([1, 4, 3]) in.
  • Python antwoordt met True.

Oefening:

  • Definieer een niet-recursieve Python-functie spiegel die het eerste en het laatste element van een gegeven array, het tweede en het voorlaatste, enz., van plaats verwisselt.

Oefening:

  • Definieer een niet-recursieve Python-functie som die de som berekent van de elementen van een gegeven array.

Oefening:

  • Definieer een niet-recursieve Python-functie voeg_in die, gegeven een array en een positie in deze array, het element op de gegeven positie invoegt tussen de elementen op latere posities, waarvan je mag aannemen dat ze gesorteerd zijn. Het element moet zo ingevoegd worden dat achteraf alle elementen vanaf de gegeven positie, inclusief, in de juiste volgorde staan.

Oefening:

  • Definieer een niet-recursieve Python-functie sorteer die, door invoeging, de array sorteert. Je mag de functie voeg_in niet gebruiken; je moet de lus om in te voegen rechtstreeks schrijven in functie sorteer.
Clone this wiki locally