Vi ser p? noen konkruransebaner fra i fjor

....

Tidligere eksamensoppgave

a) Skriv en funksjon som tar en liste av tall som parameter. Funksjonen skal returnere -1 hvis ikke alle tallene i listen er like. Hvis alle tallene i listen er like, skal funksjonen returnere det tallet listen best?r av.

b) Dersom du kaller funksjonen fra a) med en ikke-tom liste av tall og f?r -1 tilbake, kan du da v?re sikker p? ikke alle tallene i listen du sendte inn var like? Begrunn svaret.

Lenkede objekter

class Node:
    def __init__(self, verdi):
        self._verdi = verdi
        self._neste = None

    def sett_neste(self, neste):
        self._neste = neste
        
    def hent_neste(self):
        return self._neste
        
    def __str__(self):
        return self._verdi


a = Node("Hei")
a.sett_neste(Node("p?"))
a.hent_neste().sett_neste(Node("deg"))

node = a
while node is not None:
    print(node)
    print(type(node))
    node = node.hent_neste()

Hva printes over?

Hva hvis vi legger til denne linjen f?r while-l?kken?

a.hent_neste().hent_neste().sett_neste(a)

Kort stikk-pr?ve p? referanser

def oek_tall_med_en(tall):
    tall += 1
    
tall = 4
oek_tall_med_en(tall)
print(tall)

Litt om obligen

Vi g?r gjennom:

Vanskelig oppgave p? n?stede lister

a) Skriv en funksjon som tar to parametere (x, y) og som lage en liste med lengde x som for hvert element har en liste med lengde y der hvert element er 0. Denne n?stede listen skal representere et 2-dimensjonalt spillbrett.

b) Lag en funksjon fyll_brett som tar en liste av typen laget i oppgave 1 som parameter, og som endrer verdien i hver “rute” til 1 med en viss sannsynlighet (f. eks 50% for at en rute skal bli 1).

c) Lag en funksjon tell_naboer som tar en koordinat (x, y) og som returnerer antallet naboer med verdi 1 til den ruten p? brettet. Naboer er alle ruter over, til siden eller skr?tt opp/ned.

d) Lag en test til tell_naboer (lag f. eks et brett med st?rrelse 4x4 der du selv fyller inn verdiene)

Ekstra oppgaver:

e) Lag en funksjon som printer den n?stede listen p? en pen m?te (slik at det ser ut som et rutenett)

f) Lag en funksjon oppdater som tar en slik n?stet liste som parameter. Alle ruter som har to eller tre ruter rundt seg med verdien 1 skal f? verdien 1. Alle andre skal f? verdien 0. Kall oppdater mange ganger og print rutenettet for hver gang. Start med et tilfeldig utvalg ruter som har verdien 1.