Objektorienterad programmering - Inlämningsuppgift 1 Konstruera

Objektorienterad programmering - Inlämningsuppgift 1
Del 1
Konstruera en klass enligt följande UML klassdiagram (skriv källkod).
Hiss
riktning: int
våning : int
KörTill(v : int)
Stanna()
VilkenVåning(): int
Riktning är antingen -1 (hissen går neråt), 0 (hissen står stilla) eller 1 (hissen går uppåt).
Begränsa antal våningar från -2 till max 10 våningar.
Deklarera dessutom en metod ToString som returnerar en lämplig text om man skriver ut
objektet. T.ex. ”Hissen befinner sig på plan 4 och står stilla”.
Skapa även ett program (Main).
I programmet ska du skapa två olika objekt av klassen Hiss.
Testa alla metoder, t.ex. KörTill(5) visar meddelandet ”Hissen går upp till plan 5” om hissen
befinner sig på plan -2 till 4, och ”Hissen går ner till plan 5” om hissen befinner sig på ett övre
plan.
Hissen visar detta meddelande tills man anropar metoden Stanna()
Sida 1 av 4
Del 2
En av de mest kända matematiska satserna är den så kallade Pythagoras sats, som ger oss
ett samband mellan en rätvinklig triangels tre sidor. En rätvinklig triangel består av två
kortare sidor, som vi kallar kateter, och en längre sida, som vi kallar hypotenusa. De två
kateterna möts i en rät vinkel (alltså 90°) och hypotenusan är motstående till den räta
vinkeln.
I varje rätvinklig triangel råder, enligt Pythagoras sats, följande samband mellan längden på
triangelns sidor:
c2 = a2+b2
Där a och b är längderna på kateterna, och c är längden på hypotenusan.
Det vill säga, summan av kateternas kvadrater är lika med hypotenusan i kvadrat.
Skapa ett program som med hjälp av dialogrutor läser in a och b och beräknar
hypotenusan.
Använd Skanskholms klass inputBox.cs
Visa resultatet i en dialogruta.
Nödvändiga kontroller måste göras. Man får t.ex. inte mata in bokstäver.
Sida 2 av 4
Del 3
Konstruera följande klasser i C#.
Skapa även ett program (Main) där du skapar minst ett objekt av varje klass.
Testa alla metoder. Det räcker att skriva ut info till konsolfönstret.
Sida 3 av 4
Del 4
Insättningssortering (Insertion sort) är en av de enklare sorteringsalgoritmer som finns
tillgängliga inom datalogi. I praktiken använder man ofta snabbare sorteringsalgoritmer,
men om listan redan är delvis sorterad kan den vara bra.
Algoritmen kan beskrivas så här:






Man utgår från ett tomt fält och sedan placerar in en komponent i taget i fältet
Den första komponenten placeras på plats nummer 0
Nästa komponent placeras före eller efter den första komponenten, beroende
på vilken som är störst
Den tredje komponenten placeras sedan i rätt ordning i förhållande till de två
tidigare
Osv.
Man ser till att det fält man bygger upp är sorterat efter varje insättning
Skapa en metod som tar en lista som parameter och sorterar komponenterna enligt
ovanstående algoritm.
Skriv även ett program som testar att sortera ett antal listor med hjälp av metoden.
Tips!
http://goo.gl/HFn2ST
https://youtu.be/ROalU379l3U
http://sv.wikipedia.org/wiki/Insättningssortering
http://www.sorting-algorithms.com/insertion-sort
Sida 4 av 4