#----------OPPGAVE 4A---------- # Ganske rett frem, dette burde v?re veldig enkelt og greit n? class Student: def __init__(self, brukernavn): self._emner = [] self._brukernavn = brukernavn def hentBrukernavn(self): return self._brukernavn #----------OPPGAVE 4B---------- # Ganske rett frem, dette burde ogs? v?re veldig enkelt og greit n? class Emne: def __init__(self, emnekode): self._aktiviteter = [] self._emnekode = emnekode def leggTilAktivitet(self, aktivitet): self._aktiviteter.append(aktivitet) #----------OPPGAVE 4C---------- class Dato: def __init__(self, dag, maaned, aar): # Hvis du har mye tid til overs for finpussing og vil legge inn en ekstra innsats kan du ha med denne if-sjekken # Hvis ikke gj?r det ingenting om den ikke er med og du bare setter instansvariablene til parameterne uansett hva if maaned >= 9 and maaned <= 12: self._dag = dag self._maaned = maaned self._aar = aar else: print("Ugyldig maaned! Kun september til desember er gyldige m?neder") # Hvis vi skulle ha tatt h?yde for alle m?neder, hadde det v?rt enklere ? bruke en liste, men dato minus en som indeks # Men siden vi kun skal ta h?yde for sep-des er det enklere ? bruke en ordbok med dato som n?kkel og streng som innhold self._ordbok = {9: "september", 10: "oktober", 11: "november", 12: "desember"} # Det finnes sikkert en enklere og raskere m?te ? gj?re dette p?, men det var det f?rste jeg kom p? # Ikke bruk massevis av tid p? ? finne fram til den "beste" l?sningen p? oppgavene p? eksamen # Bare bruk den f?rste l?sningen du finner og dobbeltsjekk at den oppfyller kravene til oppgaven def absoluttDato(self): dato = "" if len(str(self._aar)) == 1: dato += "0" + str(self._aar) else: dato += str(self._aar) if len(str(self._maaned)) == 1: dato += "0" + str(self._maaned) else: dato += str(self._maaned) if len(str(self._dag)) == 1: dato += "0" + str(self._dag) else: dato += str(self._dag) return dato # Bruk eksemplene i oppgaveteksten til ? bestemme hvordan koden din skal se ut def __str__(self): dato = "" dato += str(self._dag) + ". " dato += str(self._ordbok[self._maaned]) + " " dato += "20" + str(self._aar) return dato # Her er bare en rask test av de mest kompliserte metodene i Dato-klassen # Det er ikke n?dvendig ? teste veldig enkle konstrukt?rer og metoder # Det verste som kan skje er at du har en skrivefeil og det har ingen uttelling # Det viktigste er at logikken og tenkem?ten din er riktig dato1 = Dato(9, 9, 20) dato2 = Dato(11, 11, 20) print(dato1.absoluttDato()) print(dato2.absoluttDato()) print(dato1) print(dato2)