Övning 3: Talföljder, summering, strängar
Begrepp att öva på: for över talföljder (range), summering och/eller multiplikation i while, for över strängar, funktioner med parameterar och returvärden, anrop av funktioner.
Förslag till lösningar finns nu. Observera att assistenterna kan lösa uppgifterna på andra sätt eller välja helt andra uppgifter. Lösningarna använder endast begrepp som vi gått igenom hittills under kursen.
Förslag till uppgifter:
- Skriv ett program som läser in ett antal tal och beräknar deras medelvärde. Två lösningsförslag: medel1.py medel2.py
- Skriv en funktion som beräknar n-fakultet, alltså 1*2*3*...*n. Visa anrop av funktionen.
Lösning: fakultet.py - Skriv ett program som beräknar ett närmevärde till sin(x) m.h.a. Taylorutvecklingen
sin(x) = x - x^3/3! + x^5/5! -x^7/7! + x^9/9! + ..... Utnyttja att en term i serien liknar föregående term ganska mycket! Lösning: sin.py - Beräkna (i program eller funktion) semifakultet: n*(n-2)*(n-4)*...*s där s är 1 eller 2 beroende på om n är udda eller jämn. Det går att lösa problemet utan att testa om n är udda eller jämn! Lösning: semifakultet.py.
- Skriv en funktion som avgör från ett personnummer om en person har tilldelats manligt eller kvinnligt kön vid födseln. Lösning: pk53.py.
- Byt ordning på två ord. Från indata "Li Jiarong" producera och skriv ut "Jiarong Li". Lösning: pk54.py.
- Från en KTH-årskursbeteckning, t.ex. "F-08", beräkna hur många år som gått sedan personen började på KTH. Lösning: pk55.py.
- Skriv en funktion som beräknar största gemensamma delare till två tal med Euklides algoritm Links to an external site.. Lösning: euklides.py. Här är en minimal lösning som använder dubbel tilldelning: Lösning: euklidesMINI.py