Övning 7

Denna övning är det tänkt att du skall försöka göra färdigt inlämningsuppgift 2 (deadline är inte förrän i slutet av nästa vecka, men det är bra att ha den klar så snart som möjligt) - dessutom har vi några andra uppgifter som du kan öva på.

Det är inte omöjligt att det tar mer än de schemalagda två timmarna att lösa de rekommenderade uppgifterna och inlämningsuppgiften, men enligt studiehandboken är det meningen att man skall lägga ner i genomsnitt ca 3-4 timmars självstudietid för varje övningspass, utöver övningstiden. Om det finns någon ledig plats i en övningssal under något annat övningspas än ditt eget så får du gärna gå dit också (de studenter vars grupp har schemalagd övningstid får dock förtur för hjälp) -- du kan se vilken grupp du tillhör genom att i kommandofönstret skriva ptgroup.

Snabbkommandon i emacs

Den som använder emacs som texteditor kan använda ett antal snabb-kommandon som underlättar en del av arbetet under övningarna:

Rekommenderade uppgifter

Hoppande gubbe -- slumpvanding i en (och en halv) dimension

Vi vill ha ett program som visar en gubbe som försöker hoppa på stenar över en flod -- i kurspaketet finns en klass Path som kan visa gubben och stenarna (se bild längre ner).

Gubben skall ta ett antal steg, och i varje steg kan endera av tre saker inträffa:

Meningen är att programmet skall börja med att fråga efter antalet stenar, och sannolikheterna att i ett givet steg hoppa framåt eller falla i vattnet (det är alltså två sannolikheter som skall läsas in) -- om gubben i ett steg varken hoppar framåt eller faller i vattnet så skall han hoppa bakåt.

Antal stenar: 10
Sannolikhet att hoppa framåt (i %): 80
Sannolikhet att falla (i %): 4

Därefter skall programmet rita ut stenarna och låta gubben börja hoppa fram och tillbaka slumpmässigt enligt de sannolikheter som vi läst in:

Vandringen håller på tills gubben antingen når den sista stenen, eller faller i vattnet.

När vandringen är över skall programmet skriva:

Klarade det på 13 hopp!
eller:
Hoppade 7 gånger, men misslyckades...
beroende på hur det gick.

Klassen Clock beskrivs här, och ett lösningsförslag finns här.