Läromedel för GY2011 PROGRAMMERING 1. Programmering 1 ARBETSBOK. Krister Trangius 2012 ISBN: Thelin Läromedel.

Relevanta dokument
7 GRUNDERNA I PROGRAMMERING

2 INNEHÅLLSFÖRTECKNING

Användarhandledning Version 1.2

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

Programmering B med Visual C

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

C++ Slumptalsfunktioner + switch-satsen

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

L04.1 Marodören. Inledning. Mål. Genomförande. Uppgift 1 Hello World. Moment I

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Grundläggande programmering med C# 7,5 högskolepoäng

TENTAMEN OOP

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering...

Föreläsning 3-4 Innehåll

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

JAVA Mer om klasser och objektorientering

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Laboration 1 Introduktion till Visual Basic 6.0

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Programmering för språkteknologer I, VT2012. Rum

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel

Statistik över heltal

Diagnostiskt Prov. Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas.

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Chapter 3: Using Classes and Objects

Objektorienterad programmering Föreläsning 2

Chapter 4: Writing Classes/ Att skriva egna klasser.

Grundläggande programmering med C# 7,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för: TEN1 NGC011 ADAEK17, ASYST17 samt öppen för alla

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Innehållsförteckning

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

FILSPARNING OCH FILLADDNING MED KLASSEN HIGHSCORE

Tentamen OOP

OOP Tenta

KARLSTADS UNIVERSITET 12/8/09 informatik & datavetenskap Johan Öfverberg, Kerstin Andersson Laboration 4, ISG A04 och DVG A08 HT-09

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

Föreläsning 1 & 2 INTRODUKTION

TUTORIAL: KLASSER & OBJEKT

Att skriva till och läsa från terminalfönstret

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

JAVAUTVECKLING LEKTION 4

F4. programmeringsteknik och Matlab

Frekvenstabell över tärningskast med C#

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Objektorienterad Programmering (TDDC77)

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Kursplanering för EE3D i kursen Programmering 1, 100p.

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

OOP Objekt-orienterad programmering

Lab5 för prgmedcl04 Grafik

Kompilera och exekvera Javakod

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Instuderingsfrågor, del D

TUTORIAL: SAMLING & KONSOLL

TDIU01 - Programmering i C++, grundkurs

i LabVIEW. Några programmeringstekniska grundbegrepp

Programmering för språkteknologer II, HT2011. Rum

Objektorientering i liten skala

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.

Planering Programmering grundkurs HI1024 HT TIDAA

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

SKOLFS. beslutade den -- maj 2015.

Classes och Interfaces, Objects och References, Initialization

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: Fredagen den 21 oktober 2011,

Tentamen , Introduktion till Java, dtaa98, dtea53

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

Tentamen i Introduktion till programmering

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

Föreläsning 1 & 2 INTRODUKTION

En kort text om programmering i C.

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

DD1311 Programmeringsteknik för S1 Laborationer läsåret

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy cards. Slingor

Föreläsning 7 Innehåll. Rekursion. Rekursiv problemlösning. Rekursiv problemlösning Mönster för rekursiv algoritm. Rekursion. Rekursivt tänkande:

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat

Planering Programmering grundkurs HI1024 HT data

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

Programmering A. Johan Eliasson

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass

Transkript:

Läromedel för GY2011 PROGRAMMERING 1 Programmering 1 C# Krister Trangius 2012 ISBN: 978-91-7379-172-4 Thelin Läromedel www.skolportalen.se

FÖRORD Detta är arbetsbok som hör till Läroboken Programmering 1 med C#. Boken är anpassad efter gymnasieskolans kursplan GY2011 för kursen Programmering 1 med kurskod PRRPRR01. Boken är skriven av Krister Trangius, erfaren gymnasielärare i programmering. Boken är utgiven av Thelin Läromedel. Boken finns även tillgänglig för läsning via internet via Skolportalen ebooks. Om du som läsare skulle hitta några felaktigheter i boken är du välkommen att kontakta Krister på krister@trangius.se. Eventuella uppdateringar och rättelser till boken som tillkommit efter denna upplagas tryckning finns att ladda hem via www.trangius.se. Thelin Läromedel och Krister Trangius, april 2012. Förord till reviderad upplaga Detta är den reviderade upplagan. De flesta uppgifter är desamma. Vissa uppgifter har dock ändrats, vissa har flyttats om, ett par har tagits bort och det har kommit till ett par uppgifter. Detta efter kommentarer från lärare samt ytterligare genomgång av innehållet. Jag hoppas att denna upplaga ska vara än mer komplett och heltäckande. Krister Trangius, april 2012. Samtliga varumärken som förekommer i boken tillhör innehavaren av varumärket. OBSERVERA ATT ALL KOPIERING ELLER ANNAT MÅNGFALDIGANDE AV DENNA BOK ELLER DELAR AV DEN ÄR FÖRBJUDET ENLIGT LAG. THELIN LÄROMEDEL, LIDKÖPING Tel. 0510 66100, www.skolportalen.se Andra upplagan, utskriven 2012 06 20 Beställningsnummer J200 4101 Tryckeri: JustNu ISBN: 978 91 7379 172 4 THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 1

ATT ANVÄNDA DETTA LÄROMEDEL Detta häfte innehåller övningar till läroboken Programmering 1 med C#. Övningarna är anpassade efter gymnasiekursen Programmering 1. Övningarna är upplagda enligt kapitelindelningen i läroboken och bygger ibland på innehållet i denna bok. Vissa kapitel har inga övningar knutna till sig i denna bok. Det beror antingen på att inga övningar behövs för kapitlet (vilket är fallet för kapitel 1 4) eller att det som kapitlet lär ut, är så pass genomgående att man tränar på det när man gör i stort sett alla övningar (vilket är fallet för kapitel 9 och 10). Övningarna bör göras någorlunda i ordning. Många av de senare övningarna bygger på att man har tillägnat sig kunskap från tidigare övningar. Boken kan ses som indelad i två delar. Först kommer mindre uppgifter för de olika kapitlen, sist i boken finns ett enskilt kapitel för mer komplexa uppgifter. Småuppgifterna är tänkt att öva upp en viss aspekt inom programmering. Om det är ett visst moment man inte behärskar i den mer komplexa övningen, kan man göra vissa enkla övningar för att träna sig i det moment. Jag vill hävda att de viktigaste uppgifterna är de komplexa uppgifterna. Det är med dem man lär sig det logiska tänket som man behöver behärska som programmerare. Att lära sig logiskt tänk kan vara svårt och göras på olika sätt: individuell handledning, klassrumsdiskussioner, grupparbeten med mera. I vassa av de komplexa uppgifterna finns också krav på att pseudokod och aktivitetsdiagram skapas. Det är inte tänkt att alla elever ska lösa alla uppgifter i häftet. För de flesta räcker det med ett lämpligt urval. De komplexa uppgifterna lämpar sig ofta för grupparbeten (men aldrig för större grupper än 3). Utöver övningarna finns det också frågor. Svaren på frågorna går att finna i boken. En viktig del inom programmering är att hitta själv hitta svar på olika uppgifter. För att göra detta behöver man ofta dela upp problemen i mindre delproblem. Det står mer om detta i läroboken. Programmering är något man lär sig genom att göra. Att göra för att lära, är syftet med detta häfte! Lycka till! Krister Trangius THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 2

INNEHÅLLSFÖRTECKNING FÖRORD... 1 Förord till reviderad upplaga... 1 Att använda detta läromedel... 2 Frågor till kapitel 5 (Bakgrund)... 7 Fråga 5.1 Olika typer av programmering... 7 Fråga 5.2 Algoritm... 8 Fråga 5.3 Operativsystemet... 8 Fråga 5.4 Plattformsoberoende... 9 Fråga 5.5 Turingkomplett... 9 Fråga 5.6 C#:s rötter... 10 Fråga 5.7 CLI... 10 Övningar och frågor till kapitel 6 (Komma igång med VS C#)... 11 Övning 6.1 Hello World... 11 Fråga 6.2 Rader i C#... 11 Fråga 6.3 Kompilering... 11 Fråga 6.4 Skriptspråk vs C#... 12 Fråga 6.5 Kommentarer... 12 Övningar och frågor till kapitel 7.1 (Variabler)... 13 Fråga 7.1.1 Namngivning av variabler... 13 Övning 7.1.2 Summan av två tal... 13 Övning 7.1.3 Summan och medelvärdet av tre tal... 13 Övning 7.1.4 Decimaltal till heltal... 13 Övning 7.1.5 En saga med två string variabler... 14 Övning 7.1.6 Avrunda flyttal... 14 Övning 7.1.7 Char... 14 Fråga 7.1.8 När använder man char?... 14 Övning 7.1.9 felaktiga variabeltyper... 15 THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 3

Övning 7.1.10 Operatorn %... 15 Övningar till kapitel 7.3 (if satsen)... 16 Övning 7.3.1 Kontrollera vädret (del 1)... 16 Övning 7.3.2 Kontrollera vädret (del 2)... 16 Övning 7.3.3 Kontrollera vädret (del 3)... 16 Övning 7.3.4 Var är det kallast? (del 1)... 16 Övning 7.3.5 Var är det kallast? (del 2)... 17 Övning 7.3.6 Felaktig if sats... 17 Övningar och frågor till kapitel 7.4 (switch satsen)... 18 Fråga 7.4.1 If eller switch?... 18 Övning 7.4.2 banksimulator... 18 Övningar till kapitel 7.5 (while och do while)... 19 Övning 7.5.1 Skriva ut en talföljd (1 20)... 19 Övning 7.5.2 Skriva ut en talföljd (upp till 100)... 19 Övning 7.5.3 Krona eller klave... 19 Övning 7.5.4 Felaktig loop... 20 Övning 7.5.5 Yatzy... 20 Övningar till kapitel 8 (Pseudokod och strukturdiagram)... 21 Övning 8.1 termostat... 22 Övningar till kapitel 11 (Metoder)... 23 Övning 11.1 Hello()... 23 Övning 11.2 Lägga samman två textsträngar... 23 Övning 11.3 Addera()... 23 Övning 11.4 Räkna ut moms (del 1)... 23 Övning 11.5 Räkna ut moms (del 2)... 23 Övning 11.6 ToPercentage()... 23 Övning 11.7 Myndig?... 23 Övning 11.8 Skapa en meny... 24 Övning 11.9 Klassen MyTemperature... 24 THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 4

Övningar till kapitel 12 (Vektorer och listor)... 25 Övning 12.1 Alla namn (del 1)... 25 Övning 12.2 Alla namn (del 2)... 25 Övning 12.3 Väderstationen... 25 Övning 12.4 Väderstationen (version 2)... 25 Övning 12.5 Tvådimensionell vektor... 26 Övningar och frågor till kapitel 13 (Objektorientering)... 27 Fråga 13.1 Objekt vs klasser... 27 Fråga 13.2 Objekt vs variabler... 27 Uppgift 13.3 Djuret (del 1)... 28 Uppgift 13.4 Djuret (del 2)... 28 Uppgift 13.5 Djuret (del 3)... 28 Uppgift 13.6 Temperatur i olika städer... 28 Övningar till kapitel 14 (Sökning, sortering och rekursion)... 29 Övning 14.1 Binär sökning... 29 Utökningar... 29 Övning 14.2 Bubblesort... 29 Övning 14.3 Rekursion... 30 Övning 14.4 Andra algoritmer... 30 Övningar till kapitel 15 (Grafiska användargränssnitt)... 31 Övning 15.1 Kalkylatorn... 31 Övning 15.2 Kalkylatorn (del 2 fixa buggar)... 32 Övning 15.3 Kalkylatorn (del 3 utökningar)... 32 Komplexa övningar... 33 Komplex övning 1 Gissa talet... 33 Komplex övning 2 Höja talet... 34 Komplex övning 3 Reaktionsspelet... 35 Komplex övning 4 FindPrim()... 35 Komplex Övning 5 Godisautomaten... 36 THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 5

Komplex övning 6 Klassen HighScore... 37 Två klasser... 37 Klassen HighScore... 37 Detaljerad beskrivning av de olika metoderna... 38 Testkör... 39 Implementering... 40 Utökningar... 40 THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 6

FRÅGOR TILL KAPITEL 5 (BAKGRUND) I kapitel fem går vi igenom viss bakgrund till programmering. Det finns inga specifika övningar till detta kapitel, då det är främst teoretiskt. Svaren på alla frågor går att finna i boken. Diskutera gärna svaren i grupper! Fråga 5.1 Olika typer av programmering Vi skiljer på tre olika typer av programmering: sekventiell, objektorienterad och händelsebaserad. Förklara skillnaden så gott du kan: THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 7

Fråga 5.2 Algoritm Beskriv vad en algoritm är för något: Fråga 5.3 Operativsystemet Beskriv vilken roll operativsystemet spelar i en dator: THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 8

Fråga 5.4 Plattformsoberoende Beskriv vad det innebär att ett programmeringsspråk är plattformsoberoende: Fråga 5.5 Turingkomplett Beskriv vad det innebär att något (en dator eller ett operativsystem, tex) är turingkomplett: THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 9

Fråga 5.6 C#:s rötter Beskriv vilka språk som C# är släkt med: Fråga 5.7 CLI Beskriv vad CLI är och vad det är bra för: THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 10

ÖVNINGAR OCH FRÅGOR TILL KAPITEL 6 (KOMMA IGÅNG MED VS C#) I kapitel 6 skapar vi vårt första projekt i C# och skriver ut text på skärmen. Kapitlet är främst teoretiskt. Övning 6.1 Hello World Skapa ett nytt projekt i Visual Studio. Skriv ett program som skriver ut texten Hello World på skärmen. Fråga 6.2 Rader i C# Viket tecken använder man för att avsluta en vanlig rad i C#: Fråga 6.3 Kompilering Förklara vad som händer när man kompilerar ett program i C#. Använd begreppen källkod, Just In Time och CIL i din beskrivning (rita gärna figurer): THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 11

Fråga 6.4 Skriptspråk vs C# Beskriv vad skillnaden är på ett skriptspråk och C#: Fråga 6.5 Kommentarer Beskriv varför det är viktigt att kommentera sin kod: THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 12

ÖVNINGAR OCH FRÅGOR TILL KAPITEL 7.1 (VARIABLER) I kapitel 7.1 lär vi oss om variabler som är ett sätt för programmeraren att lagra data. Fråga 7.1.1 Namngivning av variabler Beskriv vad du tycker att man bör tänka på när man namnger variabler:... Övning 7.1.2 Summan av två tal Skapa ett program där man matar in två tal, sedan lägger programmet ihop dessa tal. Övning 7.1.3 Summan och medelvärdet av tre tal Skapa ett program där man får mata in tre heltal. Programmet beräknar sedan beräknar summan och medelvärdet av dessa tal. Övning 7.1.4 Decimaltal till heltal Skapa ett program som omvandlar ett inmatat decimaltal till närmsta heltal. Ange ett decimaltal: 11,534 decimaltalet 11,534 avrundas till heltalet 12 THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 13

Övning 7.1.5 En saga med två string variabler Låt användaren mata in namnet på två personer. Skriv sedan ut en kort berättelse om dessa två personer. Övning 7.1.6 Avrunda flyttal Använd metoden Math.Round() för att avrunda ett flyttal som användaren skriver in till två decimaler. Övning 7.1.7 Char Använd dig av exempel 7.16 i läroboken. Prova att använda olika numeriska värden i UNICODEtabellen. Vilka slutsatser kan du dra av detta? Fråga 7.1.8 När använder man char? Beskriv i vilka lägen det kan vara smart att använda char (istället för string): THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 14

Övning 7.1.9 felaktiga variabeltyper I följande kodstycke ger inte rätt utskrift: int a = 1; int b = 2; float c = a / b; Console.WriteLine(c); Utskriften vi får är: 0 Men det vi vill ha är ju 0,5 inte 0. Det finns två lösningar på problemet, finn båda! Övning 7.1.10 Operatorn % Analysera följande kodstycke och vilken utskrift som ges: int a = 8 % 3; Console.WriteLine(a); Testa med olika värden på sidan om % tecknet. Dra slutsatser. THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 15

ÖVNINGAR TILL KAPITEL 7.3 (IF SATSEN) I kapitel 7.3 lär vi oss jämförelsesatsen if. Övning 7.3.1 Kontrollera vädret (del 1) Skapa ett program som ställer frågan Är det fint väder?. Om användaren svarar j skriver programmet ut Vi går på picknick!. Annars händer ingenting. Övning 7.3.2 Kontrollera vädret (del 2) Arbeta vidare på övning 7.2.1 men lägg till att användaren kan svara n. Då skriver programmet ut Vi stannar inne och läser en bok. Det ska inte spela någon roll om man användaren matar in liten eller stor bokstav. Övning 7.3.3 Kontrollera vädret (del 3) Arbeta vidare på övning 7.2.2. Gör så att om användaren matar in något annat än j, J, n eller N, så skriver programmet ut Jag förstår inte. Övning 7.3.4 Var är det kallast? (del 1) Skapa ett program där man får mata in temperaturen i Östersund och Åmål. Programmet ska sedan berätta var det är kallast. THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 16

Övning 7.3.5 Var är det kallast? (del 2) Skapa ett program som jämför temperaturen mellan Östersund, Åmål och Arboga. Programmet ska berätta var det är kallast. Du kommer att behöva använda OCH operatorn &&. Utgå från följande kod och ersätt... med kod: Console.Write("Ange temperatur för Östersund: "); int ostersund = Convert.ToInt32(Console.ReadLine()); Console.Write("Ange temperatur för Åmål: "); int amal = Convert.ToInt32(Console.ReadLine()); Console.Write("Ange temperatur för Arboga: "); int arboga = Convert.ToInt32(Console.ReadLine()); if (...) { Console.WriteLine("Det är kallast i Östersund "); } else if (...) { Console.WriteLine("Det är kallast i Åmål"); } else { Console.WriteLine("Det är kallast i Arboga"); } Övning 7.3.6 Felaktig if sats Något stämmer inte riktigt med följande if sats: int var = 10; if (var = 10) Console.WriteLine("den är 10!"); Fundera över följande: När vi försöker kompilera koden så får vi ett felmeddelande, varför får vi just detta felmeddelande tror du? Skriv om koden så att det blir rätt! THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 17

ÖVNINGAR OCH FRÅGOR TILL KAPITEL 7.4 (SWITCH SATSEN) Switch satsen är en annan jämförelsesats än if satsen. Egentligen kan man göra allt med en if sats men switch har också sina användningsområden. Fråga 7.4.1 If eller switch? Beskriv när man ska använda sig av en if sats och när man ska använda sig av en switch sats: Övning 7.4.2 banksimulator Skriv ett program som simulerar en bank. Man ska kunna sätta in pengar och ta ut pengar, samt kola saldo. Detta görs via en meny som du ska göra med en switch sats: [I]nsättningt [U]ttag [S]aldo [A]vsluta Observera att du bör arbeta med loopar för denna uppgift, se kapitel 7.5! THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 18

ÖVNINGAR TILL KAPITEL 7.5 (WHILE OCH DO WHILE) I kapitel 7.5 lär vi oss att göra loopar för att köra samma kodslinga om och om igen. while och do while är två olika loopar i C#. Övning 7.5.1 Skriva ut en talföljd (1 20) Skapa ett program som skriver ut alla tal mellan 1 och 20. Övning 7.5.2 Skriva ut en talföljd (upp till 100) Skapa ett program där användaren får mata in ett tal mellan 1 och 100. Programmet skriver sedan ut alla tal, från talet som användaren matade in upp till och med 101. Allt på samma rad. Om man matar in något annat än ett tal mellan 1 och 100 stängs programmet av. Exempel: Mata in ett tal: 42 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 Övning 7.5.3 Krona eller klave Be användaren mata in hur många gånger denne vill singla slant. Programmet ska sedan slumpvis mata ut om det blir krona eller klave, lika många gånger som användaren angett. För att implementera uppgiften i C# behöver du söka reda på hur man slumpar fram saker. THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 19

Övning 7.5.4 Felaktig loop I följande loop får vi ett felmeddelande: string str; do { Console.WriteLine("Vil du fortsätta loopen?"); str = Console.ReadLine(); } while(str = "j"); Vad innebär felmeddelandet? Hur fixar du så att det blir rätt? Övning 7.5.5 Yatzy Skapa ett program som sex gånger slumpar fram tärningsslag (tal mellan 1 och 6). Börja med att skriva pseudokod för detta. För att implementera uppgiften i C# behöver du söka reda på hur man slumpar fram saker. THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 20

ÖVNINGAR TILL KAPITEL 8 (PSEUDOKOD OCH STRUKTURDIAGRAM) I kapitel 8 lär vi oss mer om pseudokod och att skapa strukturdiagram. I övningar som kommer senare i denna bok kommer vi vidare att öva på att skapa både pseudokod och strukturdiagram. I detta kapitel finner du en övning då du ska skapa kod utifrån ett redan färdigt strukturdiagram! För att skapa C# kod utifrån pseudokod kan jag rekommendera implementering av sök och sorteringsalgoritmer. (Övning på nästa sida.) THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 21

Övning 8.1 termostat Skapa pseudokod och C# kod för strukturdiagramet nedan. Nån stans bör också temperaturen skrivas ut. THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 22

ÖVNINGAR TILL KAPITEL 11 (METODER) I kapitel 11 lär vi oss att strukturera kod med hjälp av metoder. Övning 11.1 Hello() Skapa en metod Hello() som tar en string variabel som indata och skriver ut texten ihop med ett annat meddelande. Övning 11.2 Lägga samman två textsträngar Skapa en metod som tar in två string variabler, lägger samman dessa och returnerar som en sträng. (T.ex. strängarna Hej din gamle galosch! och Hur mår du? blir alltså Hej du gamle galosch! Hur mår du? ) Övning 11.3 Addera() Skapa (den smått meningslösa) metoden Addera() som tar in två heltal och returnerar summan. Övning 11.4 Räkna ut moms (del 1) Skapa en metod som lägger till momsen till en viss summa. Antag att momsen är 25%. (T.ex. talet 100 ger alltså svaret 125). Övning 11.5 Räkna ut moms (del 2) Gör om funktionen i uppgift 8.4, så att man i metodanropet (via parameterlistan) får ange vad momsen ligger på. Övning 11.6 ToPercentage() Skapa metoden ToPercentage() som tar in ett decimaltal och returnerar ett heltal. (T.ex. flyttalet 0.73 ger alltså heltalet 73.) Övning 11.7 Myndig? Skapa en metod som kontrollerar om en person är myndig. Metoden ska ta in ett heltal och returnera true eller false. THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 23

Övning 11.8 Skapa en meny Skapa ett program med ett menyval. I menyn får man välja att exekvera olika uppgifter som du hittills löst. Ett exempel på hur menyn kan se ut: Välj ett alternativ genom att trycka respektive tangent: [K]ontrollera vädret [övning 7.3.3] [S]kriva ut en talföljd 1 20 [övning 7.5.1] [A]ddera() [övning 11.3] [R]äkna ut moms [övning 11.5] [Q]uit Alla menyalternativ ska ligga i olika metoder. Övning 11.9 Klassen MyTemperature Utgå från klassen i exempel 11.14 i läroboken. Gör följande förbättringar: Som det är nu ligger uträkningen från Celsius till Fahrenheit (fahrenheit = ((celsius * 9) / 5) + 32) på två ställen. En i varje överlagring. Skapa istället en intern metod för denna uträkning. Metoden ska inte vara synlig utifrån (private). De båda överlagringarna ska använda denna interna metod. Kalla metoden CTF(). Skapa en konverterare från Fahrenheit till Celsius med två överlagringar (int och float). På samma sätt som med Celsius till Fahrenheit ska själva uträkningen ligga i en intern metod (se punkten ovan). Skapa och anropa den interna metoden FTC(). THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 24

ÖVNINGAR TILL KAPITEL 12 (VEKTORER OCH LISTOR) I kapitel 12 lär vi oss att lagra listor i vektorer och i List klassen. Övning 12.1 Alla namn (del 1) Skapa en string vektor med fem element. Användaren får mata in fem namn via en for loop. Programmet skriver sedan ut dessa namn via en annan for loop. Övning 12.2 Alla namn (del 2) Efter att alla namn har skrivits ut, ska användaren kunna skriva ett index och därefter ett annat namn. Personen på detta index i vektorn byts då ut och alla namn skrivs ut igen. Om användaren istället skriver Q eller q så avslutas programmet direkt. Övning 12.3 Väderstationen Skapa en vektor som ska innehålla temperaturmätningar från en väderstation. I programmets början ska användaren få ange hur många mätningar som har gjorts. Därefter får användaren mata in olika temperaturer. Temperaturerna ska anges i decimaltal. Programmet ska sedan skriva ut de olika temperaturerna och medeltemperaturen. Bestäm själv om du använder for eller foreach. Motivera ditt val som en kommentar i koden! Innan du kodar programmet i C#, skapa ett strukturdiagram av det. Övning 12.4 Väderstationen (version 2) Denna övning påminner om den förra, men man skriver inte in i början hur många mätningar som ska göras. Allt sköts istället via en meny: [L] ägg till temperaturmätning [S]kriv ut alla temperaturer och medeltemperatur [T]ag bort temperaturmätning [A]vsluta När man väljer att ta bort en temperaturmätning, så anger man viken mätning man vill ta bort med hjälp av index. Programmet ska vara kodat för att hantera undantag, så om användaren skriver in något oväntat ska programmet hantera detta. Bestäm själv om du använder for eller foreach. Motivera ditt val som en kommentar i koden! A THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 25

Övning 12.5 Tvådimensionell vektor Skapa ett litet gissa spel med en tvådimensionell vektor som är 4x4 stor. Slumpa ut en ruta i vilket ett mål ligger. Användaren ska få mata in x och y koordinater för att skjuta mot målet. Om användaren missar målet ska denne se var den har skjutit. I exemplet nedan har användaren skjutit två gånger (mot koordinaterna 1,1 och 4,3) och missat. Användaren försöker också skjuta mot ett nytt mål: 1 2 3 4 1 * 2 3 4 * NYTT SKOTT Ange X koordinat: 3 Ange Y koordinat: Efter att användaren har träffat målet skrivs antal försök ut och programmet avslutas. Programmet ska vara kodat för att hantera undantag, så om användaren skriver in något oväntat ska programmet hantera detta. THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 26

ÖVNINGAR OCH FRÅGOR TILL KAPITEL 13 (OBJEKTORIENTERING) I kapitel 13 lär vi oss om klasser och objekt i C#. Fråga 13.1 Objekt vs klasser Beskriv skillnaden mellan ett objekt och en klass: Fråga 13.2 Objekt vs variabler Beskriv vad skillnaden mellan objekt och variabler är i C#: THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 27

Uppgift 13.3 Djuret (del 1) Skapa en klass för ditt favoritdjur. Skapa klassmedlemmar (både variabler och metoder) som du finner lämpliga. T.ex. kan djuret hund innehålla de publika variablerna name, race och age samt de publika metoderna Bark() och Fetch(). Skapa sedan ett testobjekt till klassen. Uppgift 13.4 Djuret (del 2) Gör om så att variablerna i din djur klass (uppgift 13.3) är osynliga, private. De skall istället göras om till egenskaper (med get och set). Använd egenskaperna i ett testobjekt. Uppgift 13.5 Djuret (del 3) Skapa en konstruktor till din djur klass som tar emot värden för namn, ålder, ras eller vad du nu har skapat för medlemsvariabler. Använd konstruktorn i ett testobjekt. Uppgift 13.6 Temperatur i olika städer Utveckla övning 7.3.4. Nu ska det inte vara bestämt i programmet vilka städer som finns eller hur många. Användaren ska själv via en meny kunna välja att lägga till en stad. När användaren lägget till en stad, får han eller hon får ange namn och temperatur. Via menyn kan man sedan kontrollera temperatur för alla städer, medeltemperatur samt var det är varmast och var det är kallast. Programmet ska vara kodat för att hantera undantag, så om användaren skriver in något oväntat ska programmet hantera detta. THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 28

ÖVNINGAR TILL KAPITEL 14 (SÖKNING, SORTERING OCH REKURSION) Övning 14.1 Binär sökning Att implementera en sökmetod blir meningsfullt först då man har en lång lista att söka i. Långa listor lagras oftast på fil eller i databaser. Att ladda in från fil och databaser ligger dock utanför ramarna på kursen Programmering 1. Skapa en klass som hanterar personer med namn och personnummer. Skapa sedan en lista med hjälp av klassen List. Användaren ska i programmet kunna lägga till personer till listan, samt söka på personnummer i listan. När användaren söker ska namnet och index (var i listan) för personen skrivas ut. (För att göra det enkelt för dig, kan du i programkoden lägga till flera element i listan, så att de finns där redan från början.) Utökningar Är du klar i god tid? Då kan du arbeta vidare på klassen genom att lägga till stöd för följande: Gör så att man kan söka på namn, inte bara personnummer. Tips: sök på C# string compare för hjälp! Fixa filsparning och filladdining för att läsa in listor från fil! Detta är inget som kommer förrän i kursen Programmering 2, men det kan vara intressant att prova redan nu! Övning 14.2 Bubblesort Implementera algoritmen bubblesort enligt läroboken. Gör följande: Testa med olika listor. Ändra så att algoritmen sorterar så att det hösta talet kommer först. Förklara för din lärare hur bubbulesort fungerar. THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 29

Övning 14.3 Rekursion Implementera Fibonacci() så som den beskrivs i läroboken. Prova med olika värden som indata. Ju högre värden man provar, desto långsammare går det. Lägg till en möjlighet att mäta hur lång tid algoritmen tar på sig. Förklara vad det beror på att det går så långsamt vid höga värden som indata: Övning 14.4 Andra algoritmer Det finns ett flertal andra sök, sorterings och rekursiva algoritmer än de som tas upp i läroboken. Använd webben för att söka reda på några och ange namnet på några du finner: Kan du implementera någon av dem i C#? Försök förstå hur den algoritmen fungerar och förklara för din lärare! THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 30

ÖVNINGAR TILL KAPITEL 15 (GRAFISKA ANVÄNDARGRÄNSSNITT) Övning 15.1 Kalkylatorn Följ guiden i kapitel 15.8 för att skapa en kalkylator. Delar av guiden kan upplevas som krångliga och inte helt självklara. Beskriv vilka delar du upplevde som svårare och förklara varför: THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 31

Övning 15.2 Kalkylatorn (del 2 fixa buggar) Kalkylatorn innehåller vissa buggar. Här är två: Om man direkt efter att ha använt lika med knappen trycker på en siffra, så blir det lite knasigt. Vad händer? Lös problemet! Som det är, så kan man nu skriva saker i textrutan, det ska man inte kunna. Lös! Finns det fler buggar? Övning 15.3 Kalkylatorn (del 3 utökningar) Som det är nu hanterar kalkylatorn bara plus. Lägg till funktionalitet för de övriga tre räknesätten (, * och / ) också. THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 32

KOMPLEXA ÖVNINGAR Här följer sex komplexa övningar. De är tänkta att träna dig i flera moment samtidigt. Inför varje övning anges vilket kapitel i läroboken du förväntas ha läst. Att flera av uppgifterna kan lösas redan efter att ha läst kapitel 7, betyder inte att det är lätt att lösa dem då. Det har helt enkelt med att det som beskrivs i kapitel 7, är det som gör språket C# turingkomplett. Övningarna i detta kapitel är sorterade i svårighetsordning. Hur svårt något är kan dock upplevas olika av olika personer. Om övningarna här upplevs som svåra, gör tidigare övningar i övningsboken. Kom överens med din lärare! Komplex övning 1 Gissa talet Övningen kräver att du har läst fram till minst: kapitel 7 (för konsolläge) och kapitel 15 (för grafiskt läge). Denna uppgift går ut på att skapa ett klassiskt spel. Spelet går till så att datorn slumpvis hittar på ett tal mellan 1 och 100. Användaren ska sedan gissa talet. Gissar man fel svarar programmet Fel. Talet är mindre. respektive Fel. Talet är större. I slutet skriver programmet ut antalet försök. Här är två exempel på hur det kan se ut, dels i konsolläge och dels i grafiskt läge: Gissa talet? 15 Fel! Talet är större! Gissa talet? 50 Fel! Talet är mindre! Gissa talet? 40 Fel! Talet är större! Gissa talet? 45 Fel! Talet är större! Gissa talet? 48 Rätt! Du gjorde 5 försök. THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 33

Börja med att skriva programmet i pseudokod och gör ett aktivitetsdiagram till det. För att koda denna uppgift måste du ta reda på hur man slumpar fram tal i C#. Kom överens med din lärare om du ska koda det i konsolläge eller med grafiskt användargränssnitt. Om du gör programmet för konsol, börja med att skriva programmet i pseudokod och gör ett aktivitetsdiagram till det. Koda det därefter i C#. Komplex övning 2 Höja talet Övningen kräver att du har läst fram till minst: kapitel 7 (för konsolläge) och kapitel 15 (för grafiskt läge). Du ska nu konstruera ett spel för två spelare. I tur och ordning får spelarna höja det aktuella värdet med 1,2 eller 3. Den som skriver in 21 förlorar. Vinnaren får ett fint vinstmeddelande. Här är två exempel på hur det kan se ut, dels i konsolläge och dels i grafiskt läge: Spelare 1, välj 1,2 eller 3: 3 Spelare 2, välj 4,5 eller 6: 4 Spelare 1, välj 5,6 eller 7: 6 Spelare 2, välj 7,8 eller 9: 8 Spelare 1, välj 9,10 eller 11: 11 Spelare 2, välj 12,13 eller 14: 13 Spelare 1, välj 14,15 eller 16: 16 Spelare 2, välj 17,18 eller 19: 17 Spelare 1, välj 18,19 eller 20: 20 Spelare 2, välj 21 OCH FÖRLORA SEN!!!: 21 Spelare 1 vann! Grattis! Börja med att skriva programmet i pseudokod och gör ett aktivitetsdiagram till det. Koda det därefter i C#. Kom överens med din lärare om du ska koda det i konsolläge eller med grafiskt användargränssnitt. Om du gör programmet för konsol, börja med att skriva programmet i pseudokod och gör ett aktivitetsdiagram till det. Koda det därefter i C#. THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 34

Komplex övning 3 Reaktionsspelet Övningen kräver att du har läst fram till minst: kapitel 7 (för konsolläge) och kapitel 15 (för grafiskt läge). Skapa ett spel som testar användarens reaktionsförmåga och anger hur snabbt användaren trycker på tangenter i millisekunder. Spelet kan se ut såhär: Ok, Get ready... NOW! Det tog 343 millisekunder Mellan Ok, Get ready och NOW! ska spelet vänta slumpvis mellan 3 och 10 sekunder. Efter att NOW! har skrivits ut, ska en mätning starta som kontrollerar hur lång tid det tar för användaren att trycka på en tangent. Tiden ska sedan skrivas ut i millisekunder. Om användaren fuskar och trycker innan NOW skrivs ut, så ska ett meddelande om fusk skrivas ut. Börja med att skriva programmet i pseudokod och gör ett aktivitetsdiagram till det. Koda det därefter i C#. Tips att söka på via webben: C# sleep och C# tickcount. Komplex övning 4 FindPrim() Övningen kräver att du har läst fram till minst: kapitel 7. Skapa en metod som tar ett heltal som parameter. Metoden ska finna alla primtal mellan 1 och talet som anges som parameter (t.ex. FindPrim(3400), ger alla primtal mellan 1 och 3400). Ett primtal är ett positivt heltal som endast är jämnt delbart med sig själv och 1. Om man vill avgöra om ett tal är ett primtal, delar man det med alla talet som ligger mellan talet själv och 1. Använd dig av for loopar. Du kommer behöva operatorn %. Se: http://msdn.microsoft.com/enus/library/0w4e0fzs(v=vs.80).aspx THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 35

Komplex Övning 5 Godisautomaten Övningen kräver att du har läst fram till minst: kapitel 13. Skapa ett program för en godisautomat. I godisautomaten finns det ett antal godisar. Som användare får man skriva in ett nummer på luckan ur vilken man vill köpa godis. Första godiset ligger på lucka 1, andra godiset på lucka 2 osv. Varje gång man köper en godis minskar antalet av just den godistypen. Användaren får fortsätta köpa godis så länge han eller hon vill (och även fortsätta och stirra på automaten när den är tom). Det kan aldrig bli färre än 0 godisar i en lucka. Blir det färre får användaren ett meddelande att det godiset är slut. LUCKA NR: 1. Japp ANTAL: 3 LUCKA NR: 2. Dajm ANTAL: 5 LUCKA NR: 3. Kola ANTAL: 5 LUCKA NR: 4. Lakris ANTAL: 5 Vilken godis vi du ha ([q] för att avsluta): 1 Du får en Japp. Mums! Tryck valfri tangent för att fortsätta köpa godis! [ SKÄRMEN TÖMS ] LUCKA NR: 1. Japp ANTAL: 2 LUCKA NR: 2. Dajm ANTAL: 5 LUCKA NR: 3. Kola ANTAL: 5 LUCKA NR: 4. Lakris ANTAL: 5 Vilken godis vi du ha ([q] för att avsluta): THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 36

Komplex övning 6 Klassen HighScore Övningen kräver att du har läst fram till minst: kapitel 14. Detta är den största övningen i denna övningsbok. Du kommer att få användning av flera saker du lärt dig innan. Du ska skapa en klass som kan användas i alla tänkbara spel där man kan använda sig av en highscore. Tanken är att vilken programmerare som helst ska kunna använda sig av din klass, genom att importera din.cs fil i sitt projekt. Klassen ska innehålla vissa metoder som jag är specificerade nedan. Det är upp till dig att konstruera klassen och innehållet. Det är mycket viktigt att du läser igenom allt nedan innan du börjar! Två klasser Egentligen behöver du konstruera två klasser: 1. En (mycket liten) klass som innehåller egenskaperna namn och poäng. Klasen ska också innehålla en konstruktor som tar emot indata för name och points. Klassen ska heta HSItem (som i High Score item). Börja med följande kodstycke: class HSItem { string name; int points; } Du ska konstruera egenskaper för name och points. 2. Själva klassen HighScore. Detta är en mycket stor klass som innehåller många metoder. Beskrivning för klassen finner du nedan. Klassen HighScore Klassen HighScore ska innehålla följande synliga (public) metoder: HighScore() Add() ska överlagras Print() testfunktion Klassen ska också innehålla följande osynliga (private) metod: Sort() THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 37

Detaljerad beskrivning av de olika metoderna Nedan följer en detaljerad beskrivning av de olika metoderna som ska ingå i klassen. HighScore()(ej obligatorisk då konstruktorer ej är en tvungen del i Programmering 1. Kom överens med din lärare!) Beskrivning Indata Konstruktor för klassen. Tar emot ett heltalsvärde för hur många som får finnas i higscore listan åt gången. int maxinlist Utdata Add() Beskrivning Indata Lägger till element i listan. Tänk på att det aldrig ska finnas fler element i listan, än vad maxinlist anger. Dock ska en person med mer poäng, peta ut en person med mindre poäng om listan är full. string name, int points Utdata Print() Beskrivning Detta är en testmetod för att testa om koden funkar. Denna skriver ut hela listan, med nummer (1a, 2a osv), namn och poäng till konsolen. Indata Utdata I vanliga fall när man skapar en klass så ska den inte vara beroende av konsolen. Oftast har vi ju grafiska spel. Tanken med denna metod är dock att vi ska kunna klassen den i konsolen. Sort() Beskrivning Detta är en osynlig (private) metod som sorterar listan. Programmeraren som använder klassen i sitt spel ska själv aldrig behöva kalla på sorteringsmetoden. Det gör du lämpligtvis när du lägger till ett element. Indata I denna metod använder du dig av valfri sorteringsalgoritm. Tala med din lärare! Utdata THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 38

Testkör Din klass ska ju egentligen användas i något eller några spel. Vi kan dock redan nu testa om klassen funka, med följande kodstycke: class Program { static void Main(string[] args) { // Skapa highscoreklassen, max 5 i listan: HighScore hs = new HighScore(5); // Fyll på med element: hs.add("jamestkirk", 132); hs.add("agentmulder", 120); hs.add("captainpicard", 40); hs.add("bobbafett", 180); hs.add("rickdeckard", 110); // Gör testutskrift: hs.print(); // Fyll på med fler element hs.add("hal9000", 403); hs.add("davidbowman", 445); } } // Ny testutskrift hs.print(); Ovanstående kodstycke ska vid exekvering ge följande utskrift: ******** HIGHSCORE ******** 1. BobbaFett 180p 2. JamesTKirk 132p 3. AgentMulder 120p 4. RickDeckard 110p 5. CaptainPicard 40p ******** HIGHSCORE ******** 1. DavidBowman 445p 2. Hal9000 403p 3. BobbaFett 180p 4. JamesTKirk 132p 5. AgentMulder 120p THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 39

Implementering Implementrera klassen så att den används i de olika spel du skapat. Utökningar Är du klar i god tid? Då kan du arbeta vidare på klassen genom att lägga till stöd för följande: I vissa spel ska man ju få så mycket poäng som möjligt, i andra ska man göra något på så kort tid som möjligt. Lägg till stöd så att programmeraren som använder din klass kan ställa in detta via konstruktorn. Bubblesort är den enklaste, men också den långsammaste sorteringsalgoritmen. Implementera fler än en sorteringsalgoritm. Visa din lärare och diskutera för och nackdelar med de olika algoritmerna! Fixa filsparning och filladdining! Detta är inget som kommer förrän i kursen Programmering 2, men det kan vara intressant att prova redan nu! THELIN LÄROMEDEL & KRISTER TRANGIUS 2011 2012 40