C# Prov (övning)
Transcription
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