Kmom02
Detta seminarium tar upp följande områden: objektorienterad programmering och UML.
Förberedelser
Section titled “Förberedelser”Läs Om seminarier.
-
Vad är skillnaden mellan en klass och ett objekt?
-
Vad är en konstruktor och vad används den till?
-
Vad innebär information hiding?
-
Bryt ner beståndsdelarna i
List<int> numbers = [ 1, 2, 3]. -
Vilka objekt ser du i beskrivningarna och vilken klasstyp är respektive objekt av?
A: Studenterna Kalle och Pelle undervisas av programmeringsläraren Marie.
B: Bettys motorbåt har en motor på 100 hk.
C: Biblioteket “Bokmalen” har både skönlitterära böcker och deckare.
Hur kod funkar
Section titled “Hur kod funkar”Hoppar vi över ht25 eftersom seminariet är 2 timmar bara istället för 3.
Praktisk uppgift
Section titled “ Praktisk uppgift”Börja med att planera er lösning, vilken kod behövs och vilka datatyper er data kommer ha i de olika stegen. Efter ni har en plan, skriv koden. Använd frågorna nedanför för att planera koden ni behöver för att lösa uppgiften.
- Går det att identifiera delproblem som kan lösas för att testa tidigt?
- Vilka delproblem i så fall?
- Hur kan du testa dessa?
- Ge förslag på lämpliga variabler och vilken datatyp de ska innehålla
- Vilken/Vilka språkkonstruktion/er behövs?
- Vad börjar du med?
- Formulera en lösning i pseudo-kod
- diskutera alternativa lösningar
Uppgifter
Section titled “Uppgifter”Skapa ett terminalprogram som heter Shapes. Avrunda utskrifterna av beräkningarna till 2 decimaler i utskriften.
-
Gör en klass Rectangle med de privata variablerna bredd och höjd samt en konstruktor med inparametrarna för bredd och höjd. Gör get- och setmetoder till de privata variablerna. Det ska inte vara möjligt att sätta ett negativt värde, då ska värdet inte ändras. I konstruktorn ska ett negativt värde sättas till 0. Dessutom har klassen Rectangle metoderna:
- arean:
GetArea()som är publik och returnerar en double - omkretsen:
GetPerimeter()som är publik och returnerar en double
- arean:
-
Gör en klass Circle med den privata variabeln radie. Den har samma metoder som klassen Rectangle samt inga negativa värden.
-
Testa klasserna Rectangle och Circle i ditt huvudprogram.
-
Skapa en array med plats för 4 objekt av typen Circle i ditt huvudprogram. Skapa 4 olika objekt av klassen Circle och skriv ut arean och omkretsen för alla i en foreach-loop.
-
Gör om förra uppgiften med en lista istället.
Extra uppgift “Unika Tal”
Section titled “Extra uppgift “Unika Tal””Du ska skapa en klass som heter Number. Varje instans av klassen representerar ett heltal och har en metod som avgör om talet är primtal, jämnt, eller palindromiskt (samma framifrån och bakifrån).
Skapa sedan en lista med Number-objekt för talen 10 till 99. Skriv ut alla tal som uppfyller exakt två av dessa tre egenskaper.
Krav:
-
Skapa en klass Number med:
- Ett
int-fält för talet. - En metod
IsPrime() - En metod
IsEven() - En metod
IsPalindrome()
- Ett
-
I
Program.cs:- Skapa en
List<Number>med alla tal från 10 till 99. - Gå igenom listan och skriv ut de tal som uppfyller exakt två av de tre egenskaperna.
- Skapa en
Tips:
- Palindromkontroll kan göras med heltal: till exempel 42 → 2 * 10 + 4 = 24 ≠ 42 → inte palindrom.
- Du kan använda modulus och division för att plocka ut siffror.
- Använd
List<Number>och enforeach-loop.