Uke 4
Oppgave 1
I uke_04_oppg_1.py bruk while-løkker for å skrive ut dette mønsteret (for hver rad øker/minsker vi antallet med bindestrek.
Eksempelkjøring:
-->
---->
------>
-------->
---------->
-------->
------>
---->
-->
Oppgave 2
I uke_04_oppg_2.py skriv en program som spør bruker om et positive heltall n
, og den skal skrive ut alle positive heltall mindre enn n
, og er delelig med 7.
For eksempel:
Gi et positivt heltall: 49
7
14
21
28
35
42
Gi et positivt heltall: 100
7
14
21
28
35
42
49
56
63
70
77
84
91
98
Oppgave 3
I denne oppgaven skal du skrive ut en gangetabell til skjermen.
- I uke_04_oppg_3.py skriv et program som spør bruker for et positivt heltall
n
. Programmet skal skrive ut gangetabellen for alle tall fra og med 1 til og med \(n\). Utskriften skal følge mønsteret vist under.
Eksempelkjøringer:
Oppgi et positivt heltall: 3
1: 1 2 3
2: 2 4 6
3: 3 6 9
Oppgi et positivt heltall: 5
1: 1 2 3 4 5
2: 2 4 6 8 10
3: 3 6 9 12 15
4: 4 8 12 16 20
5: 5 10 15 20 25
La programmet ha to nøstede løkker, som begge går igjennom verdiene fra
1
tiln
.En iterasjon av den ytterste løkken er ansvarlig for å skrive ut én linje. Den ytterste løkken inneholder tre elementer: først, utskrift av hvilket tall denne linjen gjelder for, etterfulgt av kolon; deretter den innerste løkken; og til slutt utskrift av et linjeskift.
En iterasjon av den innerste løkken er ansvarlig for å skrive ut ett tall, nemlig produktet av iterandene (løkke-variablene) fra de to løkkene.
Husk at
print(..., end=" ")
vil skrive ut til skjermen og avslutte med et mellomrom istedet for et linjeskift.
Oppgave 4
I uke_04_oppg_4.py lag en chatbot
som snakker med brukere. Chatboten kan bare si tre ting: Hi! Do you want to talk to me?
, That's cool!
, eller All right, bye!
. Du må bruke input() for å hente svar fra brukeren til chatboten.
Eksempler:
Hi! Do you want to talk to me?
yes
That's cool!
Hi! Do you want to talk to me?
hello
That's cool!
Hi! Do you want to talk to me?
egentlig ikke
That's cool!
Hi! Do you want to talk to me?
no
All right, bye!
Denne oppgaven kan løses på flere måter, men siden vi ikke vet hvor mange ganger løkken skal kjøres på forhånd, må vi i alle tilfeller bruke en while-løkke.
Alternativ A: Du kan benytte en
while True
-løkke, og så benyttebreak
dersom brukeren svarerno
.Alternativ B: Du kan opprette en variabel
answer = ""
før while -løkken starter, og la betingelsen for while-løkken væreanswer != "no"
.
Oppgave 5
I uke_04_oppg_5.py skriv en for-løkke som itererer over bokstavene i Taumatawhakatangihangakoauauotamateaturipukakapikimaungahoronukupokaiwhenuakitanatahu
(dette navnet på en ås i New Zealand er verdens lengste stedsnavn)og skriver ut skriver ut hver bokstav på en ny linje.
- Dersom bokstaven er en av de følgende vokaler (a, e, i, o, u), skal den skrives med stor forbokstav. I denne oppgaven teller vi ikke y,w,æ,ø,å som vokaler.
- Dersom bokstaven er noe annet, skal den skrives med små forbokstaver på hver sin linje.
t
A
U
m
A
t
A
w
h
A
k
Du kan bruke .upper() og .lower() for å formatere bokstavene.
Oppgave 6
I en populasjon avhenger antall individer av en art naturlig nok av antall individer av den samme arten ved foregående tidspunkt. La oss si at ingen andre faktorer spiller inn. Da vil antall individer \(N_t\) ved tiden \(t\) være lik antallet individer ved forrige tidspunkt,\(N_{t-1}\) multiplisert med en vekstfaktor \(k\). Utrykket nedenfor angir antall harer etter en gitt tid: $$N_{t+1} = k*N_t$$
La \(k = 1.10\) og i uke_04_oppg_6.py skriv et program som spør bruker for n
antall år og regner ut hvor mange harer det er i poulasjonen etter n
år. Anta at det er 100 harer til å starte med (\(N_0 = 100\)). Skriv ut resultatene som heltall (bruk int()).
Eksempelkjøringer:
Antall år: 10
Antall harer etter 10 år er: 259
Antall år: 13
Antall harer etter 13 år er: 345
Antall år: 100
Antall harer etter 100 år er: 1378061
Bonus 1
Du er uteksaminert fra UiB og har nå en flott jobb! Du flytter til London og bestemmer deg for at du vil begynne å spare for å kjøpe hus. Siden boligprisene er svært høye i London, innser du at du må spare i flere år før du har råd til å skaffe deg egenkapital. Vi skal finne ut hvor lang tid det vil ta deg å spare nok egenkapital gitt følgende forutsetninger:
- Egenkapital er 0,25 (25%) av total kostnad.
- Beløpet du har spart så langt er null.
- Anta at sparingene dine tjener en årlig rente \(r = 0.04\) (4%).
I filen uke_04_bonus_1.py skriv program som ber brukeren om å angi følgende variabler
- årslønn.
- Prosentandel av lønnen som skal spares.
- Total kostnaden for drømmeboligen.
og beregner hvor mange måneder det vil ta deg å spare opp nok egenkapital. Her kan du anta at det etter hver måned blir utbetalt r/12 i renter av det som står på konto.
Hva er årslønn?: 500000
Hvor mange prosent spares?: 20
Hvor mye koster boligen?: 3000000
Det tar 79 måneder å spare nok egenkapital
Hva er årslønn?: 900000
Hvor mange prosent spares?: 10
Hvor mye koster boligen?: 5000000
Det vil ta deg 133 måneder å spare opp nok egenkapital.
Bonus 2
I uke_04_bonus_2.py, skriv en nedtelling som utfører følgende oppgave:
- Brukeren skal angi startverdi for nedtellingen
- For hvert tall i nedtellingen, skal programmet vurdere om tallene er delelige med både 3 og 5, bare 3, eller bare 5
- Hvis tallet er delelig med både 3 og 5, skal programmet skrive ut
*
med lengde lik tallet og tallet - Hvis tallet er delelig med bare 3, skal programmet skrive ut
-
med lengde lik tallet og tallet - Hvis tallet er delelig med bare 5, skal programmet skrive ut
+
med lengde lik tallet og tallet - Hvis ingen av de ovennevnte betingelsene er oppfylt, skal programmet skrive tallet ut bare tallet.
For eksempel:
Hvor lang nedtelling ønsker du? 10
++++++++++ 10
--------- 9
8
7
------ 6
+++++ 5
4
--- 3
2
1