Göm menyn

961G24 Programmering i text-baserad miljö

Testa dig själv!

Testa dig själv!

När du nu gjort både lab 0 och lab 1 så kan det vara dags att ta sig en uppgift för att testa sina kunskaper i lite skarpare läge. Observera att uppgiften nedan inte är samma som på det kommande diagnostiska testet.

"Duggauppgift kvadraten"

Skriv ett program som låter användaren mata in ett positivt heltal N. Programmet skall sedan rita ut en kvadrat vars storlek beror på heltalet N. Programmet skall fungera för godtyckligt stora N (även om utskriften kanske inte blir så snygg för jättestora N).

Körexempel 1:

Mata in N: 1

+--+
|  |
+--+

Körexempel 2:

Mata in N: 2

+----+
|    |
|    |
+----+

Körexempel 3:

Mata in N: 4

+--------+
|        |
|        |
|        |
|        |
+--------+

Det är viktigt att du försöker så mycket du kan själv på denna uppgift. Var envis! Tänk på att det kan ta lång tid att lösa även "enkla" uppgifter när man är nybörjare. Det är inte ovanligt att det tar mer än 1 timme att lösa detta. Du kan också behöva gå tillbaka till tidigare laborationer eller teorikapitel för att repetera tidigare material. Om du trots allt har kört helt fast och behöver en vägledning på hur man skall tänka så kan du klicka här för en grundligare genomgång.

Generella principer för god problemlösningssed

  1. Dela upp problemet. Detta behöver man alltid göra som programmerare (förutom de mest triviala problem). Gör man detta på rätt sätt så får man tillslut trivial delproblem att lösa som man sedan kan sammanfoga till en hel lösning. Detta brukar ibland kallas med fina termer för söndra och härska (eng. Divide and Conquer). Mer om detta i teorikapitlet om underprogram.
  2. Testa ditt program ofta. Detta så att du så snart som möjligt upptäcker de fel som lätt uppstår. Det är inte kul (eller produktivt) att lämna testandet till slutet och sedan ha en hel hög fel att tampas med. Då blir man bara ledsen och vill ge upp. Testa även programmet när du förväntar dig att inget är fel, så att du bekräftar att allt stämmer. Om det gör det, då kan du klappa dig själv på axeln för att du är så duktig! Om det inte gör det, så kan det ju bara vara fel på det du just ändrade.
  3. Lös ett mindre generellt problem först. När man söker en generell lösning på ett problem så kan det bli enklare om man fixerar det som varierar och löser ett enklare (mer specifikt) problem först, och sedan generalisera det. Det är oftast enklare att gå den vägen än att försöka komma på det generella först och sedan se de specifika fallen. Just för loopar är det alltid enklast att försöka tänka på vad som skall hända inne i loopen snarare än "hur skriver man for-satsen?" eller "hur många varv skall det snurra?". Tänk på vad som skall ske första gången, sedan andra gången o.s.v. Ibland hjälper det att skriva ut koden sekvensiellt först, för att sedan ersätta den med en generell loop.
  4. Ta den lättaste deluppgiften först. Du behöver inte skriva koden i den ordningen som programmet sedan kör! Som programmerare har man alltså frihet i vilken ordning man vill arbeta. Detta utnyttjar vi självklart och tar det enkla först, så att vi bygger upp självförtroende och förståelse för uppgiften innan vi tar oss an de svårare delarna! Självklart skall man också testa de ingående delarna var för sig innan man går vidare.


Sidansvarig: Pontus Haglund
Senast uppdaterad: 2020-09-08