Digitalklokke med tallvisere

Hele eksamen, alle hjelpemidler

Digitalklokke med tallvisere

I denne oppgaven får du utdelt et klassediagram som viser strukturen til en digital klokke. Diagrammet består av to klasser: Tallviser og Digitalklokke.

Tallviser representerer en enkel teller med en verdi og en maksimal verdi. Den kan brukes for timer og minutter.

Digitalklokke består av to tallvisere, en for timer og en for minutter, og har metoder for å stille inn tiden, la tiden gå og vise tiden som tekst.

Klassediagram med klassene Tallviser (verdi, maks_verdi, set_verdi, øk, vis_verdi) og Digitalklokke (timer, minutter, set_tid, tid_går, vis_tid), koblet med en fylt rombe ved Digitalklokke

Hjelpemiddelkrav: For hånd

Forklar diagrammet ved å beskrive relasjonen mellom klassene og hva klassene representerer. Du skal også identifisere og forklare attributtene og metodene i klassene.

Hjelpemiddelkrav: Krever PC

Implementer klassene i ditt programmeringsspråk ved å lage klassen Tallviser med alle nødvendige attributter og metoder, og ved å lage klassen Digitalklokke, som bruker to instanser av klassen Tallviser.

Hjelpemiddelkrav: Krever PC

Implementer et testprogram som oppretter en instans av klassen Digitalklokke, og som tester metodene for å stille inn tid, la tiden gå og vise tiden. Test også at 60 minutter blir til en time når klokken går.

Hjelpemiddelkrav: Krever PC

Implementer nødvendig håndtering av feil og unntak i programmet. Hvis du allerede har skrevet programmet slik at dette er håndtert, trenger du bare å påpeke dette med kommentarer i koden.

Fasit

Komposisjon: en Digitalklokke består av to Tallviser-objekter, timer og minutter, som bare finnes som deler av klokka. Tallviser er en teller med verdi og maks_verdi og metodene set_verdi, øk og vis_verdi. Digitalklokke har metodene set_tid, tid_går og vis_tid, som bruker metodene i de to tallviserne.

LøsningsforslagKI-generert

Oversikt. Diagrammet er et UML-klassediagram med to klasser. Hver boks har tre felt: klassenavnet øverst, attributtene med datatype i midten og metodene nederst. Etter kolon står datatypen til et attributt eller returverdien til en metode.

Relasjonen. Linjen mellom klassene har en fylt rombe ved Digitalklokke. Det betyr komposisjon: Digitalklokke er helheten, og Tallviser er en del av den. Attributtene timer: Tallviser og minutter: Tallviser viser at klokka har to slike deler. Det er komposisjon og ikke aggregering fordi tallviserne lages av klokka og ikke har noen mening alene. Slettes klokka, forsvinner tallviserne med den.

Tallviser representerer en teller som teller fra 0 og opp til en øvre grense, og så begynner på nytt. Den samme klassen brukes både til timer og til minutter. Forskjellen er bare den øvre grensen.

  • verdi: int er tallet telleren viser nå, for eksempel 7 timer eller 45 minutter.
  • maks_verdi: int er grensen der telleren går rundt til 0 igjen: 24 for timer og 60 for minutter. Gyldige verdier er da 0–23 og 0–59. Man kan også tolke maks_verdi som den største tillatte verdien, altså 23 og 59. Det viktige er at valget brukes likt i hele klassen.
  • set_verdi(int) stiller telleren til en bestemt verdi. Metoden bør kontrollere at verdien er gyldig, altså mellom 0 og maks_verdi − 1.
  • øk() øker verdi med 1. Når verdien når maks_verdi, settes den til 0. Det er praktisk om metoden også sier fra når telleren har gått rundt, slik at klokka vet at timene skal økes.
  • vis_verdi(): str returnerer verdien som tekst med to sifre, for eksempel "07".

Digitalklokke representerer selve klokka, med timer og minutter.

  • timer: Tallviser og minutter: Tallviser er de to tellerne klokka består av.
  • set_tid(int, int) stiller klokka. Den tar inn timer og minutter og kaller set_verdi på hver av tallviserne.
  • tid_går() lar ett minutt gå. Den kaller øk() på minutter. Går minuttene rundt fra 59 til 0, kalles også øk() på timer. Etter 23:59 blir tiden dermed 00:00.
  • vis_tid(): str returnerer tiden som tekst på formen "TT:MM", for eksempel "09:05", ved å sette sammen vis_verdi() fra de to tallviserne med et kolon imellom.

Ansvarsfordeling. Digitalklokke vet ikke selv hvordan det telles. Den overlater det til tallviserne og samordner dem bare. Det er et eksempel på innkapsling: detaljene om telling og grenser ligger i Tallviser, og klokka bruker bare metodene. Diagrammet viser ikke synlighet (+/-) eller konstruktører. Attributtene bør være private, og Tallviser trenger en konstruktør som tar inn maks_verdi.

Forstå oppgaven med en KI

Du får en ferdig tekst du limer inn i den KI-chatboten du bruker. Teksten inneholder oppgaven og en instruks om at chatboten skal hjelpe deg å tenke selv — stille spørsmål, gi ett hint av gangen og la deg gjøre regningen.

Anbefalt. Chatboten får beskjed om å bruke det til å veilede deg riktig vei — ikke til å røpe svaret. Du kan slå det av hvis du vil være helt sikker på at ingenting lekker.

Hva du bør vite
  • Ingenting sendes herfra. Teksten kopieres bare til utklippstavla på enheten din. Det du limer inn i en chatbot, går til den tjenesten — og de har sine egne regler for hva de lagrer.
  • Ikke lim inn personopplysninger — navn, skole eller noe annet om deg selv eller andre. Oppgaveteksten holder.
  • KI kan ta feil, også i informasjonsteknologi. Sjekk alltid mot løsningsforslaget her på siden.
  • Er du usikker på om du har lov til å bruke KI på skolearbeidet ditt, spør læreren din først.

Tastatursnarveier

Navigasjon

⌘K / Ctrl+K
Åpne søk
G F
Gå til Fag
G E
Gå til Eksamener
G T
Gå til Temaer
G K
Gå til Kompetansemål
G H
Hjem
?
Vis snarveier

I oppgave

←/→ · J/K
Forrige / neste oppgave
0
Marker som ikke prøvd
1
Marker som prøvd
2
Marker som trenger hjelp
3
Marker som ferdig
S
Vis / skjul løsningsforslag
A
Legg til i liste
N
Skriv notat
Esc
Tilbake / avslutt