Göm menyn

Seminarium 8 - Experimentering

Kapitel som ska ha lästs

Inga kaptitel behöver läsas inför detta seminarie. Man kan kolla upp datatypen set som kommer att användas i sudoku-uppgiften.

Uppgift: Patrick jagar doktorander

Patrick behöver besöka alla doktorander på IDA, men han vill också få perspektiv på IDA:s korridorer. Därmed vill han ha ett program som berättar för honom om det finns en väg från någon doktorand som går förbi alla andra doktorander så att Patrick besöker alla korridorer exakt en gång, det vill säga en euler-väg. Till skillnad från kårallen saknar E-huset enkelriktade korridorer.

Ritningen över byggnaden ser ut såhär:

  1. Analysera problemet

  2. Specificera vad Patrick vill ha

  3. Designa de funktioner ni behöver för att lösa problemet. Hur bör grafen lagras? Beskriv funktionerna och argument som funktionerna tar och vilken data de returnerar. Föreslå namn på funktionerna. Hur löser ni problemet? (Skriv gärna pseudokod)

Uppgift: Sudoku

Johanna har en passion för det japanska sifferpusslet sudoku. Därför vill hon skriva ett program som kontrollerar om hennes sudokulösningar är korrekta. Nu behöver hon lite hjälp att göra klart sin lösning.

Sudoku är ett logikpussel där siffror ska sättas ut på ett bräde. Brädet består av 3 x 3 block som alla innehåller 3 x 3 rutor (totalt 81 rutor). Varje ruta ska innehålla exakt en siffra, och varje rad, kolumn och block ska innehålla siffrorna 1-9 exakt en gång.

Från början är tillräckligt många siffror givna att endast en lösning finns.

Nedan kan ni se koden som Johanna har skrivit. Er uppgift är att skriva klart implementationen.

I sin kod valde Johanna att använda datatypen set för att kontrollera rader. Set lagrar mängder och har de egenenskaper ni känner igen ifrån den diskreta matematiken. Här är några exempel på hur man kan använda set:

Johannas implementation:


Sidansvarig: Peter Dalenius
Senast uppdaterad: 2016-08-17