DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

Relevanta dokument
Diagnostiskt Prov. Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas.

Grundläggande programmering med C# 7,5 högskolepoäng

Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Tentamen DE14, IMIT14 och SYST14 samt öppen för alla

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Grundläggande programmering med C# 7,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för: TEN1 NGC011 ADAEK17, ASYST17 samt öppen för alla

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag

Övning Dictionary. Övning 1. Steg 1: På din virtuella maskin, starta Visual Studio.

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

PROGRAMMERING-JAVA TENTAMINA

Detta dokument är ett exempel, cirka hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling

Objektorienterad Programmering (OOP) Murach s: kap 12-16

DAT043 Objektorienterad Programmering

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Polymorfi. Objektorienterad och komponentbaserad programmering

JAVA Mer om klasser och objektorientering

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Enkla variabler kontra referensvariabel

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Programmering för språkteknologer II, HT2011. Rum

Tentamen, EDAA10 Programmering i Java

Modern Programmering (2546) Tentamen lördag

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

TUTORIAL: KLASSER & OBJEKT

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen.

Tentamen ID1004 Objektorienterad programmering May 29, 2012

TENTAMEN OOP

KARLSTADS UNIVERSITET 12/8/09 informatik & datavetenskap Johan Öfverberg, Kerstin Andersson Laboration 4, ISG A04 och DVG A08 HT-09

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

TENTAMEN OOP

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Objektorienterad Programkonstruktion. Föreläsning 4 8 nov 2016

Tentamen OOP

Arv. Objektorienterad och komponentbaserad programmering

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Tentamen i Programmering

Föreläsning 3-4 Innehåll

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass

Objektorienterad Programkonstruktion. Föreläsning jan 2016

Tentamen i Grundläggande programmering STS, åk 1 fredag

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT / 33

Att skriva till och läsa från terminalfönstret

Tentamen ID1004 Objektorienterad programmering April 7, 2015

PROGRAMMERINGSTEKNIK TIN212

Outline. Objektorienterad Programmering (TDDC77) Signatur. Klassen calculator. Överlagring (overloading) Arv (inheritance) Ahmed Rezine

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

Mer om klasser och objekt

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Laborationsanvisning. Digital väckarklocka. Steg 2, laborationsuppgift 2. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

Objektorienterad Programmering (TDDC77)

Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 31/ Exempel: Implementation av Schackpjäser.

Del A (obligatorisk för alla)

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

Chapter 4: Writing Classes/ Att skriva egna klasser.

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt

Objektorienterad programmering i Java

Tentamen för TTIT71 Programmering kl Institutionen för datavetenskap Linköpings universitet. Uppgift 1. (2 p)

LÖSNINGSFÖRSLAG TENTAMEN

Grundläggande programmering med C# 7,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för:

Instuderingsfrågor, del D

Tentamen , Grundläggande programmering i Java

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

OOP Objekt-orienterad programmering

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Omtentamen DE13, IMIT13 och SYST13 samt öppen för alla

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl

2 b) Följande finns definierat: public class Spel String titel = "Spel"; Dice[] tärningar = new Dice[10]; tärningar[0] = new Dice("Röd"); tärningar[1]

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

OOP Tenta

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14

Tentamen Programmeringsteknik II Skrivtid: Hjälpmedel: Java-bok (vilken som helst) Skriv läsligt! Använd inte rödpenna!

Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

Transkript:

203-03-9 203-03-9 DIAGNOSTISKT PROV Tid Klockan 09.00-2.00 Hjälpmedel Inga Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas. Rättning Tentamen omfattar 6 poäng Denna tentamen är inte betygsgrundande Övrigt Om du fastnar på en uppgift, gå vidare. Det är bättre att svara med ett halvt svar än inget alls. Källkoden du skriver skall följa god stil. Läs igenom varje uppgift och se till att svara på alla delmoment i frågan. - Svar_Lösning.docx Page of 7

203-03-9 203-03-9 Uppgift Vad innebär pascal case och camel case (p)? PascalCase - camelcase På vilken eller vilka av följande medlemstyper i en klass används pascal case (p): a) Metoder PascalCase b) Properites PascalCase c) Fält camelcase Uppgift 2 Uppgift 3 När är automatiska properties motiverade att använda, och när bör vanliga properties användas? Idet fall då man vill ha möjlighetetn att bådet läsa och skriva till en property är det motiverat att använda automatiska propterties, och i de fall då man vill begränsa tillgängliheten eller verifiera in-/utmatiningen så är vanliga properties bra att använda Vad skrivs ut när nedanstående kod körs, och varför? Using System; Class Program static void Main() int x = 5, y = 2; Pow(x, y); Console.WriteLine( 0 gånger blir 2, x, y, x); static void Multiply(int x, int y) x = x * y; Utskriften blir : 5 gånger 2 blir 5 Därför att vi sparar inte resultatet från metoden Pow någon stans och vi använder oss inte av metoden Multiply - Svar_Lösning.docx Page 2 of 7

203-03-9 203-03-9 Uppgift 4 Uppgift 5 Uppgift 6 ( poäng) Varför går det att typomvandla en instans av String till Object, dvs. varför kan en Objectreferens användas för att referera till en String-instans? Det går att göra denna konvertering på grunda av att Object är en grundklass som string ärver från. Därför går det att konvertera till objekt, och av samman andledning kan man använda det för att referera till en String-instans. (4 poäng) Implementera enligt uml-schema nedan. Ingen extra logik skall skrivas, det räcker att ni följer schemat och att koden kan tänkas kompileras utan fel. Inga namespace-angivelser behövs, endas kod för klasser och interface. class Note «interface» IPlayable public string Name get;set; public float Hz get;set; +Play() Note WindInstrument +LowRange : Note +Name : string +Hz : float Skriv kod för hur du skapar en vektor som innehåller talen 6, 2, -5 och 42. Du får själv fundera ut en lämplig datatyp. int myarray = int[] 6, 2, -5, 42; Interface IPlayable Void Play(); class WindInstrument : IPlayable public Note LowRange get; set; public void Play() - Svar_Lösning.docx Page 3 of 7

203-03-9 203-03-9 Uppgift 7 (7 poäng) Skriv ett komplett program som läser in två heltal och skriver ut det största av dem. Utskriften skall göras med en format string. För att avgöra vilket tal som är störst ska villkorsoperatorn användas. Allt ska utföras i Main-metoden. All kod skall ingå, dvs. det skall räcka att skriva in din kod för att kunna kompilera ett komplett program. Tänk på att följa god kodstandard. using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DiagnostisktProv_uppgift7 class Program static void Main(string[] args) Console.WriteLine("Detta program kommer att jämföra två tal."); Console.WriteLine("Mata in det första talet:"); int tal = Convert.ToInt32(Console.ReadLine(); Console.WriteLine("Mata in det andra talet:"); int tal2 = Convert.ToInt32(Console.ReadLine(); if( ta > tal2) Console.WriteLine("Det första talet (0) är störst", tal); else Console.WriteLine("Det andra talet (0) ör det största", tal2); Console.ReadLine(); - Svar_Lösning.docx Page 4 of 7

203-03-9 203-03-9 Uppgift 8 (5 poäng) Typen double har metoden Parse(String) som används för att göra om en sträng till double. Exempel på användning: double pi = double.parse( 3.4 ); Om inparametern inte kan göras om till en double så kastar metoden ett undantag. Din uppgift: Skapa en statisk metod som läser in en sträng som användaren matar in på tangentbordet, och returnerar strängen omvandlad som en double. För omvandlingen skall metoden double.parse användas. Din metod ska hantera undantaget som eventuellt kastas genom att skriva ett meddelande och fråga användaren igen, ända tills korrekt inläsning gjorts. Metoden behöver inte omges av en klass. Din metod kan användas så här: Static void Main() Conslole.Write( Mata in ett decimaltal: ); Double d = LaesInDouble(); Console.WriteLine( Du matade in + d); Exempel på körning (inmatning i fetstil): Mata in ett decimaltal: kalle Felaktig inmatning, försök igen: olle Felaktig inmatning, försök igen:.23 Du matade in,23 public static Double LaesInDouble() bool bfortsättattlaesain = true; string sinlaesttal = Console.ReadLine(); Double dsvar = 0; while (bfortsättattlaesain) try dsvar = Convert.ToDouble(sInlaestTal); bfortsättattlaesain = false; catch Console.Write("Felaktig inmatining, försök igen: "); sinlaesttal = Console.ReadLine(); return dsvar; - Svar_Lösning.docx Page 5 of 7

203-03-9 203-03-9 Uppgift 9 (3 poäng) Skapa och initiera en variabel av typen System.Collections.Generic.Dictionary där nycklar är en String och värdet en DateTime. Anta att namespace:t är importerat redan, skriv endast kod som skapar och initierar variablen. Dictionary<string, DateTime> mydic; Uppgift 0 (4 poäng) Skriv en klass enligt UML-diagrammet nedan. Du får själv räkna ut vilka privata medlemmar som behövs. Metoden Uttag skall kasta ett undantag av typen ArgumentException med förklarande felmeddelande om amount är större än tillgängligt saldo. Inga namespace-angivelser behövs, men all övrig kod ska ingå. Tänk på att följa god objektorienterad stil, dvs. kapsla datamedlemmar osv. Konto +Kontonr : int +Saldo : double +Konto(in kontonr : int) +Insättning(in amount : double) +Uttag(in amount : double) Detta är den enda konstruktorn i klassen class Konto private double mysaldo; private int myaccountnumber; public int Kontonr get return myaccountnumber; public double Saldo get return mysaldo; public Konto(int kontonr) myaccountnumber = kontonr; mysaldo = 0; public void Insättning(double amount) mysaldo = mysaldo + amount; public void Uttag(double amount) if (amount > mysaldo) throw new ArgumentException("Du kan inte ta ut mer än vad som finns tillgänglig på kontot"); mysaldo = mysaldo - amount; - Svar_Lösning.docx Page 6 of 7

203-03-9 203-03-9 Uppgift Uppgift 2 (7 poäng) Förklara skillnaden mellan att gömma en metod i basklassen och att överlagra den. I vilket av fallen talar man om polymorfism? Vilka nyckelord används var och när? När man gömmer en metod så gör man den till privat i basklassen. Den kommer då inte att synas i subklasserna. Överlagring: då skapar man flera metoder med samma namn men med olika signatur. Förklara i ordalag hur en kortlek sorteras med hjälp av insertion sort. För enkelhetens skull kan vi utgå från att endast färgen klöver finns i leken. Insättning Sortera itererar, konsumerar en ingång inslag varje repetition, och växande en sortera resultatet lista. På en upprepning, avlägsnar insättning Sortera en del av indata, finner plats den hör i den sorterade listan och infogar det där. Det upprepas tills inga inmatningselement kvar. - Svar_Lösning.docx Page 7 of 7