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
prog1_12 [2020-05-18 19:22]
Daniel Viström
prog1_12 [2022-07-18 13:20] (current)
Line 12: Line 12:
  
 1. 1.
-I denna uppgift ska du skapa en klass **Calculator** som räknar med **positiva tal** samt ett huvudprogram som testar klassen.+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:+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 vä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.
  
-* Ett **attribut** som håller reda på värdet. Det ska inte ska gå att komma åt värdet utifrån. +Om du gjort rätt borde svaret bli så här: 
-* En **konstruktor** som tar ett startvärde som parameter och sätter värdet som startvärdet.  +{{:calculator-facit.jpg?linkonly|}} \\ \\ 
-   Om parametern är negativ ska startvärdet bli noll+\\ 
-* En metod **add($tal)** som adderar ett tal till värdet+2
-En metod **subtract($tal)** som drar bort ett tal från värdet. Resultatet ska bli noll om  +I denna uppgift ska du skapa en klass **Bensintank** som kan innehålla ett antal liter bensin samt ett huvudprogram som testar klassen\\ \\
-   man försöker dra bort mer än vad som finns i attributet. +
-* En metod **getNumber()** som returnerar värdet på attributet.+
  
-**Huvudprogrammet:** +Klassen **Bensintank** ska ha: 
-1Skapa en Calculator med startvärdet -12+  Ett **attribut** som håller reda på antal liter bensin i tanken. Det ska inte gå att komma åt värdet utifrån. 
-2Skriv ut värdet.+  * Ett **attribut** som håller reda på det maximala antalet liter som ryms i tankenDet 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.
 \\ \\
-3. Skapa en ny Calculator med startvärdet 9+**Huvudprogrammet:** 
-4. Skriv ut värdet på ny rad+  - Skapa en Bensintank som maximalt rymmer 55 liter
-5. Lägg till 4 till värdet på kalkylatorn+  - Skriv ut antal liter bensin i tanken. 
-6. Skriv ut värdet på ny rad+  - Tanka 20 liter bensin. 
-7Subtrahera 20 från värdet på kalkylatorn+  - Skriv ut antal liter bensin i tanken. 
-8. Skriv ut värdet på ny rad+  - Tanka -2 (minus två) liter bensin. 
- +  - Skriv ut antal liter bensin i tanken
- +  - Förbruka liter bensin. 
-2.+  - 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|}} \\ \\
 +\\ 
  
 +<php>
 +/*
 +* 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.
 +\\
 +*/
 +</php>
 + \\
 ===== Inlämningsuppgift ===== ===== Inlämningsuppgift =====
  
Line 66: Line 118:
   * **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.
- 
- 
-===== Arv ===== 
- 
-  - 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. 
-    * 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.\\ \\