4. Inlämningsuppgift 2

Programmeringsteknik

(Skillnad mellan versioner)
Hoppa till: navigering, sök
Rad 11: Rad 11:
==Rondelet==
==Rondelet==
-
I den här inlämningsuppgiften ska du skriva ett antal funktioner för att
+
I den här inlämningsuppgiften ska du skriva '''ett antal funktioner''' för att
göra ett program som skapar en dikt av en inläst text.
göra ett program som skapar en dikt av en inläst text.
Programmet ska läsa in fyra meningar och sedan skriva ut texten
Programmet ska läsa in fyra meningar och sedan skriva ut texten
Rad 88: Rad 88:
===Inlämning===
===Inlämning===
-
Programmet ska finnas i en fil med namnet <code>Uppgift2.py</code>. Följ den här mallen:
+
Programmet ska finnas i en fil med namnet <code>Förnamn_efternamn_2.py</code>. Följ den här mallen:
<pre># Programmeringsteknik webbkurs KTH inlämningsuppgift 2.
<pre># Programmeringsteknik webbkurs KTH inlämningsuppgift 2.
Rad 103: Rad 103:
När du har finputsat ditt program så går du till kursens förstasida.
När du har finputsat ditt program så går du till kursens förstasida.
Under rubriken Examination hittar du Inlämningsuppgift&nbsp;2 och
Under rubriken Examination hittar du Inlämningsuppgift&nbsp;2 och
-
där kan du lämna in filen Uppgift2.py. Observera att filen måste vara i textformat,
+
där kan du lämna in filen <code>Förnamn_efternamn_1.py </code>. Observera att filen måste vara i .py-format,
vilket den automatiskt blir om du skapar den med hjälp av IDLE.
vilket den automatiskt blir om du skapar den med hjälp av IDLE.
-
Detta för att vi ska kunna prova och testköra ditt program.
+
Detta är för att vi ska kunna prova och testköra ditt program.
<pre>KONTROLL INNAN INLÄMNING:
<pre>KONTROLL INNAN INLÄMNING:
Rad 111: Rad 111:
* Har du namngivit dina variabler och funktioner väl?
* Har du namngivit dina variabler och funktioner väl?
* Ser din körning ut som exemplen?
* Ser din körning ut som exemplen?
-
* Använder du dig av inparametrar och returvärden?
 
-
* Har du undvikit globala variabler?
 
* Har du kommenterat din kod?
* Har du kommenterat din kod?
 +
* Använder du dig av inparametrar och returvärden?
 +
* Har du en huvudprogram som anropar dina andra funktioner?
 +
* Har du undvikit globala variabler (d.v.s. det finns ingen kod utanför funktionerna utom anropet till ditt huvudprogram)?
* Har du undvikit kodupprepning?</pre>
* Har du undvikit kodupprepning?</pre>

Versionen från 15 februari 2017 kl. 13.08

       Teori          Övningar          Rondelet      


Rondelet

I den här inlämningsuppgiften ska du skriva ett antal funktioner för att göra ett program som skapar en dikt av en inläst text. Programmet ska läsa in fyra meningar och sedan skriva ut texten uppdelad på följande rader:

  1. Textens fyra första ord med stora bokstäver
  2. En tom rad
  3. Textens fyra första ord
  4. Resten av första meningen
  5. Textens fyra första ord igen
  6. Andra meningen
  7. Tredje meningen
  8. Fjärde meningen
  9. Textens fyra första ord en sista gång

Texten kommer då att likna en rondelet - en fransk diktform.

Här är ett exempel på en körning:

                DIKTAUTOMATEN

Skriv in fyra meningar och få ut en rondelet!

Skriv mening nr 1: Det fanns ingen fil när jag handlade på Konsum.
Skriv mening nr 2: Bananerna var också slut.
Skriv mening nr 3: Jag köpte bröd istället.
Skriv mening nr 4: Nån sorts limpa med mycket fibrer.


DET FANNS INGEN FIL

Det fanns ingen fil
när jag handlade på Konsum.
Det fanns ingen fil
Bananerna var också slut.
Jag köpte bröd istället.
Nån sorts limpa med mycket fibrer.
Det fanns ingen fil

Tips

Medan du testar programmet kan du ersätta anropet av din inläsningsfunktion med tilldelningssatser. På det sättet slipper du skriva in fyra meningar varje gång du testkör ditt program!

# För testning:
sentence[0] = "Det fanns ingen fil när jag handlade på Konsum.
sentence[1] = "Bananerna var också slut.
sentence[2] = "Jag köpte bröd istället.
sentence[3] = "Nån sorts limpa med mycket fibrer."

Det finns en användbar metod i Python som heter split() med vars hjälp du kan dela upp en mening så att det blir en lista av enskilda ord. Här är ett exempel som visar hur man använder split():

mening = "En ganska kort mening."
lista = mening.split()

lista har nu värdet ["En", "ganska", "kort", "mening."]

Ifall vi vill skriva ut vår lista, så finns metoden join. Den funkar så här: <sträng>.join([lista]). <sträng> är den separator som ska skilja elementen i listan åt, det kan vara t.ex. radbrytning: "\n", mellanrum: " " eller punkter: ".."

"".join(lista)   # ger " "Enganskakortmening."
", ".join(lista) # ger  "En, ganska, kort, mening."

För att göra om små bokstäver till stora i en sträng så kan du använda metoden upper():

mening = "En ganska kort mening."
ny_mening = mening.upper()

ny_mening har nu värdet "EN GANSKA KORT MENING."

Inlämning

Programmet ska finnas i en fil med namnet Förnamn_efternamn_2.py. Följ den här mallen:

# Programmeringsteknik webbkurs KTH inlämningsuppgift 2.
# <Ditt namn>
# <Datum>
# <Kort beskrivning av vad programmet gör>

<Programkod>

Innan du skickar in programmet så ska du se till att där inte finns någon kodupprepning som kan åtgärdas med funktioner och slingor.

När du har finputsat ditt program så går du till kursens förstasida. Under rubriken Examination hittar du Inlämningsuppgift 2 och där kan du lämna in filen Förnamn_efternamn_1.py . Observera att filen måste vara i .py-format, vilket den automatiskt blir om du skapar den med hjälp av IDLE. Detta är för att vi ska kunna prova och testköra ditt program.

KONTROLL INNAN INLÄMNING:
* Har du testat ditt program?
* Har du namngivit dina variabler och funktioner väl?
* Ser din körning ut som exemplen?
* Har du kommenterat din kod?
* Använder du dig av inparametrar och returvärden?
* Har du en huvudprogram som anropar dina andra funktioner?
* Har du undvikit globala variabler (d.v.s. det finns ingen kod utanför funktionerna utom anropet till ditt huvudprogram)?
* Har du undvikit kodupprepning?