Övning 2

Det är ganska många uppgifter på denna övning, och det är antagligen en av de övningar under hela kursen som kommer att ta längst tid -- det beror på att det är väldigt viktigt att snabbt komma igång med programmeringen, återstående övningar blir betydligt enklare om ni får lite större säkerhet i början av kursen (många av er slipper dessutom vara oroliga att ni inte skulle kunna lära er programmera, för ni kommer redan efter denna vecka att kunna skriva program som gör användbara saker).

Det är alltså troligt att det tar mer än de schemalagda två timmarna att lösa alla uppgifter som rekommenderas nedan, 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.

Under övningen kommer du att träna på sådant som vi behandlade under den andra föreläsningen (både måndag och tisdag), det kan därför eventuellt hjälpa att i ett annat fönster ha anteckningarna från föreläsning 2.

Övningen behandlar framförallt:

Eftersom det är tidigt i kursen är du kanske fortfarande lite ovan vid att använda kommandofönstret, så ta gärna även denna övning som ett tillfälle att lära dig skriva linux-kommandon (en kort sammanställning finns här).

Uppgifterna är hämtade från kapitel 2 och 3 i kompendiet -- det är tänkt att du skall läsa igenom texten i kompendiet och sedan försöka lösa de uppgifter som rekommenderas nedan -- lösningsförslag till samtliga uppgifter markerade med (*) finns i slutet av kompendiet (alla de uppgifter som rekommenderas nedan har ett lösningsförslag). Om du kör fast på en uppgift kan du förhoppningsvis få hjälp genom att läsa texten i det aktuella avsnittet i kompendiet, eller genom att titta på anteckningarna från föreläsningen -- din övningsledare försöker gärna hjälpa dig om du kör fast.

Innan du börjar

Om du inte gjorde den första övningen bör du gå till övning 1 och skriva in det inledande initieringskommandot.

Gör därefter följande (även om du har gjort den första övningen):

Du får själv välja om du vill lägga källkoden till alla program under övningen i en fil (exempelvis ovn2.java), eller om du vill skriva varje program i en egen källkodsfil (exempelvis ex272.java, ex273.java, ...).

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:

Uppgifter ur introduktionskapitlet

Kapitel 2 introducerar ett antal begrepp som vi kommer att behandla mer noggrannt i senare kapitel, det innebär att man i vissa uppgifter måste läsa texten ganska noga, för att inte missa någon detalj som kanske inte är självklar så här långt in i kursen.

Loopar

Avsnitt 2.7 behandlar först while-lopar, och vi har två uppgifter på dem:

Därefter behandlas for-loopen, som vi har ytterligare några uppgifter på:

Sist i kapitlet finns kapiteluppgifterna, och där har vi två rekommenderade uppgifter -- observera att lösningarna till kapiteluppgifterna finns i ett särskilt kapitel (och alltså inte i samma kapitel som lösningarna till kontrolluppgifterna):

Objekt och referenser

I kapitel 3 behandlas begreppen klass, objekt och referens, och de är centrala för hela kursen. Vi kommer under kursens första veckor att använda färdigskrivna klasser, för att sedan under pass 7 och framåt lära oss skriva egna klasser.

Uppgifter med tärningar

Sköldpaddsuppgifter

Avslutande uppgifter

Vi avslutar med ett antal blandade kapiteluppgifter (de finns i slutet av kapitlet):