Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
prog1_12 [2017-04-10 11:45]
Daniel Viström
prog1_12 [2020-05-18 20:09]
Daniel Viström
Line 9: Line 9:
 </php> </php>
  
-  - Du skall med hjälp av din kunskap av klasser göra en klass //Fordon//. Tänk noga igenom namngivning av klasser, metoder och attribut. +===== Uppgifter=====
-    * Klassen //Fordon// skall ha en metod getInfo() som returnerar information om objektet. +
-    * Klassen skall ha minst 3 attribut (vikt, topphastighet och registreringsId) som är protected.  +
-    * Klassen //Fordon// skall ha en konstruktor som sätter minst registreringsId, gärna mer. +
-    * Man skall kunna hämta och ändra klassens attribut via publika metoder. OBS! två metoder per attribut. \\ \\ +
-  - Du skall från klassen //Fordon// ärva minst 3 olika typer av fordon +
-    * Varje klass som ärvs skall ha minst ett eget attribut som man kan hämta och ändra via publika metoder. +
-    * Varje klass som ärvs av //Fordon// skall "override":a metoden getInfo() och via den funktionen skall det tydligt framgå vilket typ av fordon det är.\\ \\+
  
 +1.
 +I denna uppgift ska du skapa en klass **Calculator** som räknar med **positiva tal** samt ett huvudprogram som testar klassen.\\ \\
 +
 +Klassen **Calculator** ska ha:
 +  * Ett **attribut** som håller reda på värdet. Det ska inte ska gå att komma åt värdet utifrån.
 +  * En **konstruktor** som tar ett startvärde som parameter och sätter värdet som startvärdet. \\ Om parametern är negativ ska startvärdet bli noll.
 +  * En metod **add($tal)** som adderar ett positivt tal till värdet. \\ Om talet är negativt ska värdet inte förändras.
 +  * En metod **subtract($tal)** som drar bort ett positivt tal från värdet. \\ Resultatet ska bli noll om man försöker dra bort mer än vad som finns i attributet. \\ Om talet är negativt ska värdet inte förändras.
 +  * En metod **getNumber()** som returnerar värdet på attributet.
 +\\
 +**Huvudprogrammet:** 
 +  - Skapa en Calculator med startvärdet -12.
 +  - Skriv ut värdet.\\ \\
 +  - Skapa en ny Calculator med startvärdet 9.
 +  - Skriv ut värdet på ny rad.
 +  - Lägg till 4 till värdet på kalkylatorn.
 +  - Skriv ut värdet på ny rad.
 +  - Lägg till -3 till värdet på kalkylatorn.
 +  - Skriv ut värdet på ny rad.
 +  - Subtrahera 10 från värdet på kalkylatorn.
 +  - Skriv ut värdet på ny rad.
 +  - Subtrahera -3 från värdet på kalkylatorn.
 +  - Skriv ut värdet på ny rad.
 +  - Subtrahera 20 från värdet på kalkylatorn.
 +  - Skriv ut värdet på ny rad.
 +
 +Om du gjort rätt borde svaret bli så här:
 +{{:calculator-facit.jpg?linkonly|}} \\ \\
 +\\
 +2.
 +I denna uppgift ska du skapa en klass **Bensintank** som kan innehålla ett antal liter bensin samt ett huvudprogram som testar klassen. \\ \\
 +
 +Klassen **Bensintank** ska ha:
 +  * Ett **attribut** som håller reda på antal liter bensin i tanken. Det ska inte gå att komma åt värdet utifrån.
 +  * Ett **attribut** som håller reda på det maximala antalet liter som ryms i tanken. Det ska inte gå att komma åt värdet utifrån.
 +  * En **konstruktor** som tar en parameter. Denna anger antal liter som maximalt ryms i tanken. \\ Om parametern är negativ ska maximalt antal liter bli noll. \\ Antal liter bensin i tanken ska från början vara noll.
 +  * En metod **tanka($liter)**som lägger till ett antal liter bensin i tanken. \\ Om det blir mer i tanken än det maximala så ska tanken innehålla maximala antalet liter. \\ Om $liter är negativ ska innehållet i tanken inte förändras.
 +  * En metod **forbruka($liter)** som drar bort ett antal liter bensin från tanken. \\ Resultatet ska bli noll om man försöker dra bort mer än vad som finns i tanken. \\ Om $liter är negativ ska innehållet i tanken inte förändras.
 +  * En metod **getLiter()** som returnerar antal liter i tanken.
 +\\
 +**Huvudprogrammet:**
 +  - Skapa en Bensintank som maximalt rymmer 55 liter.
 +  - Skriv ut antal liter bensin i tanken.
 +  - Tanka 20 liter bensin.
 +  - Skriv ut antal liter bensin i tanken.
 +  - Tanka -2 (minus två) liter bensin.
 +  - Skriv ut antal liter bensin i tanken.
 +  - Förbruka 5 liter bensin.
 +  - Skriv ut antal liter bensin i tanken. 
 +  - Tanka 50 liter bensin.
 +  - Skriv ut antal liter bensin i tanken.
 +  - Förbruka -4 (minus fyra) liter bensin.
 +  - Skriv ut antal liter bensin i tanken.
 +  - Förbruka 70 liter bensin.
 +  - Skriv ut antal liter bensin i tanken. \\ \\
 +  - Skapa en ny Bensintank med parametern -10 (minus tio).
 +  - Tanka 12 liter bensin.
 +  - Skriv ut antal liter bensin i tanken.
 +
 +Om du gjort rätt borde svaret bli så här:
 +{{:bensintank-facit.jpg?linkonly|}} \\ \\
 +\\ 
 +
 +3.
 +I denna uppgift ska du testa arv.
 +  * Du skall med hjälp av din kunskap om klasser göra en klass **Fordon**. Tänk noga igenom namngivning av klasser, metoder och attribut.
 +    * Klassen skall ha minst **3 attribut** (vikt, topphastighet och registreringsId) som är protected. 
 +    * Klassen **Fordon** skall ha en **konstruktor** som tar startvärden för attributen som parametrar.
 +    * Man skall kunna hämta och ändra klassens attribut via publika metoder. OBS! två metoder per attribut.
 +    * Klassen **Fordon** skall ha en metod **getInfo()** som returnerar information om objektet. \\ \\
 +  * Du skall från klassen **Fordon** ärva minst 3 olika typer av fordon. Välj själv vilka.
 +    * Varje klass som ärvs skall ha minst ett eget attribut som man kan hämta och ändra via publika metoder.
 +    * Varje klass som ärvs av **Fordon** skall "override":a metoden getInfo() och via den funktionen skall det tydligt framgå vilket typ av fordon det är.\\ \\
 +  * Gör ett **huvudprogram** som testar klasserna du gjort.
 +\\ \\
 ===== Inlämningsuppgift ===== ===== Inlämningsuppgift =====
  
Line 45: Line 113:
   * **remove_die**, tar bort en tärning från koppen. Ska returnera false om koppen är tom, annars returneras true.   * **remove_die**, tar bort en tärning från koppen. Ska returnera false om koppen är tom, annars returneras true.
   * **print_cup**, skriver ut alla tärningar i koppen. Ska returnera false om koppen är tom, annars returneras true.   * **print_cup**, skriver ut alla tärningar i koppen. Ska returnera false om koppen är tom, annars returneras true.
- 
- 
-