C# Prov (övning)

Övningstenta i Objektorienterad programmering
Namn: ________________________________________________________________
Klass: _____________ _____________________________________ ______________
Datum: ________________________________________________________________
Dina poäng på Godkänd-nivå:
_________ av __ 20 ______ poäng
Dina poäng på Väl godkänd-nivå: _______ av __ 20 ______ poäng
Betyg på provet: __________________
Betyg på kursen: __________________
Var vänlig och texta tydligt!
Viktigt att tänka på:
 Skriv tydligt
 Du får gärna rita bilder och figurer i dina svar om det passar
 Använd baksidan på pappret om du behöver mer plats. Tänk på att markera
tydligt på framsidan att du fortsätter på baksidan av pappret
 Antalet poäng på varje fråga bestäms av en totalbedömning av svaret
 Försök att alltid svara på frågorna även om du inte kommer på ”rätt” ord
Hjälpmedel:
 Inga hjälpmedel
Betygssättning



För att få betyget Godkänd krävs 60 % rätta svar på G-frågorna
För betyget Väl godkänd krävs dessutom 60 % rätta svar på VG-frågorna
Allt du presterar under kurstiden kommer att vägas in vid betygssättningen. Detta
innebär att betyget på provet inte nödvändigtvis motsvarar betyget på kursen
Lycka till!
Mahmud Al Hakim
[email protected]
Sida 1 av 8
Uppgift 1
Vad är skillnaden mellan värdetyper och referenstyper?
Förklara och skriv några exempel.
(Godkänd-nivå, 5-poäng)
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
Sida 2 av 8
Uppgift 2
Vad skrivs ut då följande program exekveras? Motivera ditt svar!
(Godkänd-nivå, 5-poäng)
int tal = 2;
string utdata = "";
for (int x = 1; x <= 10 ; x = x + 1)
{
utdata += x+" * "+tal+" = "+ tal*x +"\n";
}
MessageBox.Show(utdata, "Tabell");
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
Sida 3 av 8
Uppgift 3
Konstruera en klass som beskriver en person.
1) Följande instansvariabler ska finnas i klassen:
vikt och längd. Välj lämpliga datatyper.
2) Skriv grunden till följande metoder:
SättVikt och SättLängd (inga kontroller behövs).
3) Hur skapar man ett objekt av klassen Person?
4) Beskriv med några exempel hur man ändrar objektets instansvariabler.
5) Skapa en metod som beräknar personens BMI
(Godkänd-nivå, 5-poäng)
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
Sida 4 av 8
Uppgift 4
Skriv ett program som beräknar hur mycket
pengar man får på ett bankkonto om man
sätter in 1000kr och låter pengarna stå inne
utan att röra dem under 5 år.
Räntesatsen är 2,5%
(Godkänd-nivå, 5-poäng)
static void Main(string[] args)
{
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
}
Sida 5 av 8
Uppgift 5
Komplettera nedanstående
händelsehanterare som körs
när man klickar på knappen
"Beräkna” (skriv C# kod).
Det finns två textfält i programmet
som heter antalDagarTextBox och
dagsPrisTextBox.
Skapa nödvändiga variabler och välj
lämpliga datatyper.
Glöm inte att konvertera från text
till tal (int eller double).
Resultatet ska visas i en label som heter totaltPrisLabel.
Enbart två decimaler ska visas (formtera med hjälp av string.Format)
(Väl Godkänd-nivå, 5-poäng)
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
Sida 6 av 8
Uppgift 6
I C# används den generiska klassen HashSet för att skapa mängder.
Man kan initiera en mängd så att den från början innehåller element som
kopieras från en annan samling t.ex. från en lista av typen List<int>
1. Det är två ting som skiljer en mängd från en lista. Vilka är dessa?
2. Skriv C#-kod där du skapar en lista som innehåller ett antal heltal.
3. Skapa sedan en mängd som innehåller listan.
Kommer alla tal att kopieras från listan till mängden? Motivera ditt svar.
(Väl Godkänd-nivå, 5-poäng)
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
Sida 7 av 8
Uppgift 7
Rekursion handlar om saker som gör något mot sig själva.
En rekursiv metod anropar sig själv. Vid exekvering finns det lika många
upplagor av metoden som antalet gjorda, oavslutade anrop.
Varje upplaga av metoden har egna unika värden på parametrar och lokala
variabler.
Ett bra exempel på rekursion är en metod som beräknar den s.k.
fakulteten n! av ett heltal n.
Fakulteten av ett tal n definieras på följande sätt:
Skriv en rekursiv metod som beräknar fakulteten n!
Förklara i detalj hur metoden fungerar om n=3
Motivera ditt svar!
(Väl Godkänd-nivå, 10-poäng)
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
Sida 8 av 8