Følg pseudokoden. 2 deloppgaver.
Her er det to deloppgaver, der deloppgave 2 bygger på programkoden fra deloppgave 1.
Du blir bedt om å utarbeide et program som registrerer informasjon om eierne av tråsykler.
Man skal registrere rammenummer, navn og adresse.
Det skal være mulig å gjøre oppslag på eierinformasjon ved å taste rammenummer
Skriv programmet ut i fra pseudokoden under:
rammenr = WBK0132K, VE01562512D, S5A001234, WN17632Z, TA78317B, ME7265T
sykler = {}
# print(type(sykler))
rammenr = ['WBK0132K', 'VE01562512D', 'S5A001234', 'WN17632Z', 'TA78317B', 'ME7265T']
# print(rammenr)
for element in rammenr:
print()
print("Rammenummer: " + element)
navn = input("Tast inn ditt navn: ")
adresse = input("Tast inn din adresse: ")
navn_adresse = navn + " " + adresse
sykler[element] = navn_adresse
print(sykler)
# lage en sløyfe som gjør oppslag på rammenummer
while True:
tekstv = str(input("Tast inn rammenr: "))
print(sykler[tekstv])
svar = input("Vil du avslutte? Ja/nei\n>>> ").lower().strip()
if svar == "ja":
break
Bruk koden fra del 1 som utgangspunkt for koden i denne oppgaven. Det vil si at du kan referere til variabler, funksjoner, osv, som ble definert i koden din fra del 1. Skriv programmet etter pseudokoden under.
Del 2.
# Svar på oppgave 2 kommer her
3.1 I koden under er det to feil i main(). Finn feilene.
Dette programmet bruker en dictionary over planeter med deres repektive avstander i millioner km til Sola.
Print listen over de nærmeste planetene til konsoll
# Programkode med feil som er rettet
# Feilene var:
# # get_dist() ble kalt uten parameter "planeter"
# # get_names(korteAvst, lengstAvst) - Parametrene var byttet om
planeter = {'uranus': 2871, 'venus': 108, 'jupiter': 778, 'jorda': 149, \
'mars': 227, 'merkur': 57, 'neptun': 4497, 'saturn': 1427}
# Hent og sorter avstandene:
def get_dist(planeter):
avst = []
for key, value in planeter.items(): # Itererer over key og values i dectionary
avst.append(value) # Skriver avstandene inn i listen avst
avstSort = sorted(avst) # Oppretter en ny sortert liste
# Bruke den sorterte lista for å finne de fire nærmest og lengst unna
kortAvst = avstSort[:4]
langAvst = avstSort[4:]
return kortAvst, langAvst
# Ut i fra listene med avstander hent navnet til planetene nærmest og lengst unna.
def get_names(kortAvst, langAvst):
kortAvstNavn = []
langAvstNavn = []
for key,value in planeter.items(): # Itererer over keys og values i dictionary
if value in kortAvst: # Sjekk om value eksisterer i listen over de korteste avst
kortAvstNavn.append(key) # Leg key'en til listen
else:
langAvstNavn.append(key) # De avstand som ikke er i lista for korte avst
return kortAvstNavn, langAvstNavn
def main():
korteAvst, lengstAvst = get_dist(planeter) # Feil 1 - parameter planeter manglet
print(korteAvst)
print(lengstAvst)
kortAvst, langAvst = get_names(korteAvst, lengstAvst) # Feil 2. Ombytting av parametere
print(kortAvst)
print(langAvst)
main()
# 2.2 Finn resultatet av kjøringen(10p)
# Hva er resultatet av kjøringen av koden under gitt x? Forklar kort hva koden gjør.
x = ['p', 'g', 'e', 'j', 'p', 'p', 's', 'p', 'v', 'r', 'm', 'k', 't', 'a', 'b', 'k', 't', 'e']
bak = " "
for i in range(0, len(x), 2):
bak += x[i]
print(bak)
4.1 Programmering
Dette programmet skal gi brukeren informasjon om hvorvidt en bil holdt en gjennomsnittsfart som var høyere enn tillatt (80 km/t) på en strekning på 3500 meter.
Lag en funksjon "speedFromTime" som tar inn to argumenter, distanse og tid. Funksjonen skal beregne og returnere hastighet (m/s) ut i fra antall sekunder og distanse. Hastighet = distanse/tid.
Lag en funksjon "speedCheck" som tar inn hastighet som argument. Denne skal sjekke om hastigheten var over 80 km/t eller ikke og returnere True eller False basrt på resultatet. Husk at du må gjøre om resultatet fra speedFromTime fra m/s til km/t.
Lag en funksjon "main" som:
1) Henter ut informasjon fra bruker om registreringsnummer og tiden (antall sekunder) den aktuelle bilen brukte på å kjøre strekningen.
2) Kaller funksjonen "speedFromTime"
3) Kaller funksjonen "speedCheck"
4) Hvis hastigheten var over 80 km/t skal det skrives en setning til bruker om registreringsnummer og hastighet.
Så lenge bruker ønsker å skrive inn ny informasjon skal "main" kalles
# Svar
4.2 Programmering
Dette programmet skal generere en liste med 100 tilfeldige tall mellom 3-1000. Print lista til konsoll. Lag en funksjon som sjekker om tallene i lista er primtall (kun delelig med 1 og seg selv). Legg primtallene i en egen liste. Print ut listen over primtall til konsoll.
# Funksjon som sjekker om tall i en liste er et primtall:
def is_prime(n):
for i in range(3, n):
if n % i == 0:
return False
return True
# Besvarelse
4.3.1 Programmering
Dette er en oppgave med 2 deler. Koden fra del 1 skal også brukes i del 2.
Del 1 - Stave navn baklengs
Lag en funksjon som tar inn et navn. Funksjonen skal snu rekkefølgen på bokstavene i navnet og returnere navnet baklengs.
La brukerne skrive inn et navn som skal sendes til funksjonen.
# Besvarelse
4.3.2 Programmering
Del 2
Denne delen av programmet skal bruke koden fra del 1. Det vil si at du kan referere til variabler, funksjoner osv som ble definert i koden din fra del 1.
Nå skal du skrive en funksjon som lar brukeren skrive inn navnet fra del 1 i koden baklengs. Sjekk så at rekkefølgen på bokstavene er riktig når man sammenligner med resultatet fra funksjonen fra del1. Hvis navnet blir stavet riktig baklengs, så skal det printes ut en beskjed til bruker. Hvis navnet blir feil stavet baklengs, så skal brukeren få mulighet til å prøve på nytt.
# Besvarelse