Uke 10 - Nøstede lister og et litt større eksempel

Denne uken skal vi se på hvordan vi kan representere rutenett som nøstede lister og gå igjennom et litt større eksempel. Vi skal også se mer på hvordan man kan bygge klasser som bruker klasser.

 

Trikkeeksempel.

Løsninger:

Løsningsvariant 1

Trikkeklassen fra timen:

trikk.py (de andre filene er uendret i forhold til filene over)

Gitt en klasse passasjer (passasjer.py).

Skriv klassen trikk.

1. Konstruktøren tar inn et rutenr og antallRader. Alle trikker har plass til 5 personer på hver rad. 1 rad kan se slik ut:

Betty ledig Lon Rodger Cora

(ledig er plasser som ingen person sitter på)

2. Lag en privat metode som tar inn antallRader og lager trikken i form av

et rutenett. Hvor hver rad har en rekke plasser (seter) per rad.

Marker alle setene som ledige. 

 

3. Lag en __str__ metode som gir en visuel representasjon av trikken:

Slik at trikken ved ett stopp kan se slik ut:

Mindy Oren Norberto Lola Gale
Betty ledig Lon Rodger Cora
Colin ledig ledig ledig Fermin
Warren ledig ledig ledig Clifton
Carmine ledig ledig ledig

Sonny

Graciela ledig ledig ledig Janna
Elvira ledig ledig ledig Daphne
Araceli ledig Antione Amber Jerold

 

4. Lag en metode gaaPaaTrikk, som tar inn en passasjer som setter seg hvis

det er en ledig plass på trikken. Returner true hvis det var et ledig sete

og det er plass til passasjereren. Hvis det ikke er plass returner false

 

5. Lag en metode gaaAvTrikk som tar inn en stasjon. Som finner alle passasjerer

som skal av på gitt stasjon, og fjerner dem fra trikken. (Metoden hentAvstigning til

klassen passasjer returner hvor passasjereren skal gå av). Bruk metoden gaarAvRiktig

slik at passasjereren blir markert til å ha gått av på riktig stopp. Sett sete

som ledig. Dersom en passasjer ikke skal av på stasjonen oppdater antall dager personen har sittet på med bruk av metoden ookAntallStasjoner til klassen passasjer.

 

6. Utvid metoden gaaAvTrikk slik at hvis mer enn 4 av naboene til en passasjer

stinker (bruk passasjer sin metode stinker). Så går denne passasjereren av pga dårlig

lukt.

 

Naboene til Rodger (fra oppgave 3) er:

Norberto Lola Gale
Lon (Rodger) Cora
ledig ledig Fermin

 

Altså de som sitter rundt en person


 

7.Lag et hovedprogram som oppretter en trikk med 10 rader. Leser inn en liste med

stopp fra filen "trikk13.txt", og en som oppretter en liste med passasjerere.

Lag så metoden kjorTrikk som tar inn de to listene og som kjører trikken

så lenge brukeren vil. Til slutt skriv ut en statestikk som innholder:

  • antall som skulle ta trikken
  • antall som kom fram
  • antall som kom på
  • antall som lukter
  • antall som ikke kom fram pga lukt
Publisert 21. okt. 2020 22:02 - Sist endret 6. des. 2020 01:00