You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 17 Next »

Oppgave 1 - Teori løkker

  1. Hvordan er syntaksen til en for-løkke?
  2. Når bruker man helst for-løkker? Er det når antall iterasjoner (runder i for-løkken) er kjent, eller når antallet er ukjent?
  3. Skriv om en for-løkke til en while-løkke:
for i in range (0,6):
	print i

Oppgave 1 - Minste tall

  • Lag en funksjon minsteTall som tar inn 2 tall, a og b, og returnerer det minste tallet.
  • Lag en ny funksjon minsteAvTreTall som tar inn 3 tall, ab og c, og returnerer det minste tallet.

Oppgave 2 - Passord

I en uendelig løkke, be brukeren om å skrive inn et passord, og deretter om å skrive inn det samme passordet igjen. Gi så brukeren beskjed om at enten:

  • Passordet ble gjentatt riktig, eller
  • Passordene har ulik lengde, eller
  • Det andre passordet kommer alfabetisk før det første, eller
  • Det andre passordet kommer alfabetisk etter det første.

Hopp deretter tilbake til starten av løkken.

Oppgave 3 - Funksjonskall i funksjon

  • Lag en funksjon lagVerb som tilfeldig returnerer ett av 5 verb i presens.
  • Lag en funksjon lagNavn som tilfeldig returnerer ett av 5 navn.
  • Lag en funksjon lagAdverb som tilfeldig returnerer ett av 5 adverb.
  • Lag en funksjon lagSetning som returnerer en setning bestående av et navn, et verb og et adverb, f.eks. «Bob kjører fort».
  • Til slutt; Bruk en løkke til å skrive ut 10 tilfeldige setninger på skjermen.

Oppgave 4 - Speedometer

  • Bob har importert bilen sin fra USA, og strever fælt med å følge de norske fartsgrensene. For å hjelpe seg skal kona sitte i passasjersetet med en laptop i fanget og regne om fra kilometer i timen til miles per hour. Skriv en funksjon som tar inn km/t som parameter og returnerer farten i mph (mph = km/t / 1.6). 
  • Kona har ikke alltid tid til å være med Bob på biltur. Skriv ut en oversikt over hver 10. km/t, fra 10 til 110, og hva de tilsvarer i mph. Det vil si:

10 km/t = 6 mph
20 km/t = 13 mph.
Osv…

Gjør dette ved hjelp av en for-løkke.

Oppgave 5 - Produkt

Lag en løkke som trekker to tilfeldige tall mellom 1 og 10, multipliserer dem, og skriver ut regnestykket til skjermen. Løkken skal fortsette så lenge produktet er mindre enn 70.

Oppgave 6 - Badekaret

Tenk deg at du har et badekar som skal fylles med vann. Dette er et veldig lite badekar, så det tar bare 20 liter. Tenk deg så at du skal lage et program som kontrollerer vannkrana som fyller opp badekaret. Det programmet skal gjøre er å sjekke om badekaret er fullt (dvs 20 liter), hvis ikke skal det fylle på en liter til med vann. Programmet skal skrive ut antall liter i badekaret ettersom det fylles opp, og ”Badekaret er fullt” når vannkrana må lukkes. Realiser dette ved hjelp av en whileløkke. Det er 5 liter vann i badekaret når programmet startes.

Oppgave 7 - Sjakkbrett

Et sjakkbrett har 8 x 8 ruter. La oss si at rute (1,1), er nederst til venstre, og er svart.

  • Skriv en funksjon som finner ut om sjakkrute (X,Y) er svart eller hvit, og returnerer svaret.
  • Ved hjelp av denne funksjonen og nøstede løkker, skriv til skjermen fargen på hver rute på sjakkbrettet. Det vil si:

Rute 1,1 er svart
Rute 2,1 er hvit
Rute 3,1 er svart
Osv..

Oppgave 8 - Sum av gangetabellen

Bruk nøstede løkker til å summere alle produktene i gangetabellen (opp til 10x10), og skriv ut svaret til skjerm.

Oppgave 9 - Sum av tall

  • Lag en funksjon sumAvTall som tar inn et tall n og, returnerer summen av tallene fra 1 til n ved hjelp av en løkke.
  • Hva er den minste n som gjør at funksjonen sumAvTall returnerer en verdi større enn 500? Bruk en while-løkke til å kalle funksjonen sumAvTallmed stadig større n-er, og skriv til slutt svaret på spørsmålet til skjerm.

Oppgave 10 - Stigende sekvenser

Lag et program som bruker en nøstet for-løkke til å skrive ut det følgende:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 10

Tips: Hvis du ønsker å skrive ut noe i python uten å samtidig starte på ny linje, kan du skrive import sys og bruke sys.stdout.write() i stedet for print().

 

  • No labels