Till KTH:s startsida Till KTH:s startsida

Labb 2

Laboration 2

Läs kapitel 6 i kursboken, och även resten av kapitel 3 (om while).

Labben redovisas på veckans övning. Det Pythonprogram du skriver kan ge 0-2 bonuspoäng (beroende på hur väl det uppfyller kraven).
Instuderingsfrågorna redovisas med ett prov, som också kan ge max 2 bonuspoäng.

Hemuppgift (ska göras före labben)

Skriv och testa en funktion, som beräknar någon kostnad för en lokal (eller en skola), t ex lokalhyra, el, internet, städning,vatten, värme, försäkring, kontorsmaskiner, telefon,...

Funktionen ska ha minst två parametrar och ett returvärde.

Huvudprogram

  • Be att få fem funktioner som dina gruppkompisar skrivit, via Dropbox.
  • Skriv sedan en main-funktion som
    • Anropar varje funktion och skriver ut kostnaden (returvärdet).
    • Summerar alla kostnader och skriver ut den totala kostnaden.

Testning

Glöm inte att testa att ditt program fungerar som det ska. Tips: Ett enkelt sätt att spara testdata är att köra programmet och kopiera allt som syns på skärmen.

Krav

  • Kraven från första labben måste vara uppfyllda:
    • Programmet ska ha en kommentar överst med författarnas namn och datum.
    • Variabelnamnen ska göra programmet lättare att förstå.
    • Testdata ska finnas med i kommentar sist i programmet.
    • Programfilen ska kopieras till gruppens Dropbox-katalog.
    och dessutom följande:
  • Varje funktion ska ha en förklarande kommentar.
  • Inga globala variabler får förekomma.
  • Alla utskrifter måste ligga i huvudprogrammet (inte i funktionerna).

Instuderingsfrågor

  1. Hur definierar man en funktion?
  2. Vad händer om man glömmer att anropa en funktion?
  3. Hur tar en funktion emot indata? Visa med ett exempel!
  4. Hur skickar man utdata från en funktion? Visa med ett exempel!
  5. Vad är en lokal variabel?
  6. Vad är en default-parameter? Ge ett exempel!
  7. Hur ser man att en funktion är rekursiv?
  8. Vad är det för skillnad på if-satsen och while-slingan? Ge ett exempel!
  9. Vad är en oändlig slinga? Hur avbryter man den?
  10. Ge ett exempel på ett villkor. Vilka värden kan ett villkor anta?
  11. Vilken av villkorsoperatorerna "not" och "==" har högst prioritet?
  12. Beskriv skillnaden mellan "and" och "or" !

Efter labben

Hur tycker du att ditt eget arbete med labben fungerade? Borde du ha gjort något annorlunda? Fundera en stund, och skriv upp några tips till dig själv inför nästa labb!

Frivilliga extrauppgifter

    • Skriv en meny där man kan välja vilken kostnad som ska beräknas.
    • Läs i kap 4-5 om strängar och listor, speciellt metoderna split() och append().
    • Skriv en funktion som frågar efter och läser värden. Inparameter: en sträng med ledtexter åtskilda av komma, t ex "gardinlängd, gardinbredd, antal gardiner"Utparameter: en lista med tal eller strängar (de inlästa värdena).
    • Använd funktionen i ditt program.