Du er ikke logget inn. Så lenge du ikke er logget inn går du glipp av muligheten for å holde styr på din egen progresjon.

Filtrering:

6.04: Sett data med _init_

a) Skriv en klasse Person med en init-funksjon
b) Ta inn navn og alder som argumenter i initfunksjonen og sett variablene navn og alder. Om disse parameterene ikke gis funksjonen, skal variablene navn og alder ha verdiene None og 0
c) Skriv en metode hent_navn() som returnerer variabelen navn
d) Skriv en metode hent_alder() som returnerer variabelen alder
d) Lag et objekt av Person med ditt navn og alder og skriv ut verdiene til objektet

class Person:
    def __init__(self, navn = None, alder = 0) :
        self._navn = navn
        self._alder = alder

    def hent_navn(self):
        return self._navn

    def hent_alder(self):
        return self._alder

meg = Person("Navn Navnesen", 400)
print("Navn:", meg.hent_navn(), " Alder:", meg.hent_alder())

6.07: Fotballkort

Vi skal i denne oppgaven modellere barn som samler på fotballkort. For å kjøpe fotballkort må man ha penger, og penger får man selvfølgelig når man rydder rommet.

a) Skriv en klasse Barn med en init-metode som tar inn navn, penger og antall kort som parameter. Sett disse verdiene. Skriv metoder for å hente disse instansvariablene.

b) Skriv en funksjon rydd_rommet hvor barnet tjener 15 kr

c) Skriv en funksjon kjop_fotballkort hvor barnet bruker 8 kr på å kjøpe et fotballkort. Husk å teste om barnet har råd til et kort

d) Opprett et objekt av klassen Barn og la barnet rydde rommet tre ganger.
Bruk så en løkke til å kjøpe så mange fotballkort som mulig og skriv ut hvor mye penger og hvor mange kort barnet har. Kjøp så enda et kort.

# A
class Barn :
    def __init__(self, navn, penger, kort):
        self._navn = navn
        self._penger = penger
        self._fotballkort = kort


    def hent_penger(self):
        return self._penger


    def hent_navn(self):
        return self._navn


    def antall_fotballkort(self):
        return self._fotballkort


# B
    def rydd_rommet(self):
        # Tjener 15 kr
        self._penger += 15


# C
    def kjop_fotballkort(self):
        if self._penger >= 8 :
            self._penger-= 8
            self._fotballkort+= 1
        else: 
            print(self._navn, "har bare", self._penger, 
                  "kr, og har ikke raad til kort")


# D
magne = Barn("Magne", 0, 0)

magne.rydd_rommet()
magne.rydd_rommet()
magne.rydd_rommet()

while magne.hent_penger() >= 8 :
    magne.kjop_fotballkort()

print("Magne har", magne.hent_penger(), "kr og", 
      magne.antall_fotballkort(), "fotballkort")

magne.kjop_fotballkort()

6.08: Stiftemaskin

Du skal i denne oppgaven modellere en stiftemaskin. Stiftemaskiner begynner med 0 stifter i magasinet, og kan fylles opp med stifter. Man kan kun stifte dersom det finnes stifter i maskinen.

a) Opprett en klasse Stiftemaskin

b) Skriv metoden fyll, som tar inn antall stifter som parameter.

c) Skriv metoden stift, som skriver ut "STIFT!" til terminalen, og fjerner én stift fra maskinen.

Vi skal nå utvide stiftemaskinen slik at den får begrenset plass i magasinet.

d) Lag en instansvariabel maks_antall som inneholder maksimalt antall stifter. Denne verdien skal setter via en parameter til init

e) Endre metoden fyll slik at bruker ikke kan fylle på flere stifter enn det er plass til i magasinet. Om bruker forsøker å fylle på for mye, skal det gis tilbakemelding om at det fylles for mange stifter.

6.09: Semesterside

Vi skal her lage en klasse for å holde styr på våre besøk på semestersiden til INF1001. Hver gang emneansvarlige oppdaterer siden, økes et versjonsnummer. Vi vil forsikre oss om at vi alltid har lest siste utgave av nettsiden.

a) Opprett klassen Emneside.

b) Lag instansvariabler for nyeste versjonsnummer, og siste versjonsnummer sett av bruker.

c) Lag en metode for å oppdatere nettsiden (øk versjonsnummer)

d) Lag en metode for å se på nettsiden. Funksjonen oppdaterer siste sette versjon til nåværende versjonsnummer.

e) Lag en funksjon som returnerer true eller false, avhengig av om bruker har sett siste versjon av emnesiden eller ei.

# A
class Emneside : 

# B    
    def __init__(self, versjonsnr):
        self.versjon = versjonsnr
        self.versjon_sett = 0

# C
    def oppdater_side(self) :
        self.versjon += 1

# D 
    def se_paa_siden(self) :
        self.versjon_sett = self.versjon

# E
    def sett_siste(self) : 
        return self.versjon == self.versjon_sett