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

Relevanta dokument
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

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

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 OOP

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

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

Tentamen, EDAA20/EDA501 Programmering

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.

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.

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

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl

Tentamen på kursen DA7351, Programmering , kl Malmö högskola Teknik och samhälle. DA7351, Programmering

Tentamen i Objektorienterad programmering

Objektorienterad programmering D2

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll,

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Systemvetarutbildningen och dataekonomutbildningen

Tentamen. Lösningsförslag

SMD 134 Objektorienterad programmering

TENTAMEN OOP

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Lösningsförslag, tentamen FYTA11 Javaprogrammering

"if"-satsen. Inledande programmering med C# (1DV402)

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Objektorienterad programmering i Java

Tentamen, EDA501 Programmering M L TM W K V

Algoritmanalys. Genomsnittligen behövs n/2 jämförelser vilket är proportionellt mot n, vi säger att vi har en O(n) algoritm.

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

Övningar Dag 2 En första klass

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

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

Föreläsning 1 & 2 INTRODUKTION

OOP Objekt-orienterad programmering

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h

Exempel på listor (klassen ArrayList). Ett exempel med fält. Avbildning är en speciell typ av lista HashMap.

Instuderingsfrågor, del D

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl Hjälpmedel: En Javabok. För betyget godkänt krävs at

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

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

Föreläsning 3-4 Innehåll

LÖSNINGSFÖRSLAG TENTAMEN

Lösningar till uppgifterna sätts ut på kurssidan på nätet idag kl Omtentamen i Programmering C, 5p, A1, D1, E1, Fri, Pr1, Te/Ek1,

Tentamen Programmeringsteknik II och NV2 (alla varianter) Skriv bara på framsidan av varje papper.

Föreläsning 7. Träd och binära sökträd

TENTAMEN OOP

Tentamen, EDA501 Programmering M L TM W K V

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

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

2 b) Följande finns definierat: public class Käk String titel = "Chili con carne"; Krydda[] kryddor = new Krydda[10]; kryddor[0] = new Krydda("Svartpe

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

Tentamen. Grundläggande programmering i Java A 5p, DTAA

Dagens program. Programmeringsteknik och Matlab. Vad är arv? Vi ärver från GregorianCalendar. Kan vi bygga vidare på existerande klasser?

Tentamen i Algoritmer & Datastrukturer i Java

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

Tentamen i Programmering

Inledande programmering med C# (1DV402) 27+15=42 1 (22)

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

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

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 27 maj 2008

Lösningsförslag: Instuderingsfrågor, del D

Examination i. PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: Tid: (OBS 3 tim) Rum: V

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

DELPROV 1 I DATAVETENSKAP

Del A (obligatorisk för alla)

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

2. Betrakta följande program, där fyra heltal läses från tangentbordet och några (ointressanta) beräkningar görs:

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]

Tentamen, EDAA10 Programmering i Java

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

Tentamen i Programmeringsteknik I

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

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

TENTAMEN OOP

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

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

DAT043 Objektorienterad Programmering

Omtentamen (del 1, 6 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201)

Enkla variabler kontra referensvariabel

OOP Objekt-orienterad programmering

Föreläsning ALGORITMER: SÖKNING, REGISTRERING, SORTERING

Presentation av trafiksimuleringsprojektet

Björn Abelli Programmeringens grunder med exempel i C#

trafiksimulering Intro OU5 trafiksimulering

Lösningsförslag till tentamen i EDA011, lördagen den 16 december 2006

Laboration 1 - Grunderna för OOP i Java

public och private Obs: private inte skyddar mot access från andra objekt i samma klass.

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

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Tentamen, Algoritmer och datastrukturer

PROGRAMMERING-Java Omtentamina

Föreläsning 3: Booleans, if, switch

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

Transkript:

Grundläggande programmering med C# Provmoment: Ladokkod: Tentamen ges för: 7,5 högskolepoäng TEN1 NGC011 Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) (Ifylles av student) (Ifylles av student) Tentamensdatum: 2013-03-25 Tid: 09:00 13:00 Hjälpmedel: Inga hjälpmedel. Totalt antal poäng på tentamen: 52 poäng För att få respektive betyg krävs: Preliminärt: G >= 26 poäng, VG >= 39 poäng Allmänna anvisningar: OBS!! Den som skriver en tentamen måste visa att han/hon behärskar problemområdet. Många gånger är det möjligt att exemplifiera och illustrera. I dessa fall är det oftast det bästa sättet - ibland även det enda sättet - och kan i högsta grad påverka poängsättningen vid bedömningen av svaret. Om du tycker att uppgifterna i tentamenstexten är ofullständiga skall du göra egna antaganden för de uppgifter som du saknar. OBS! Redovisa dina egna antaganden. Skriv in dina lösningar direkt i tentamenshäftet. Om du behöver mer utrymme än vad som finns i häftet måste du tydligt ange på tilläggsbladen vilken uppgift de tillhör. Skriv namn och personnummer på varje inlämnat blad. Skriv tydligt på endast en sida av pappersarket. Påbörja nytt blad för varje ny uppgift. Lämna uppgifterna i nummerordning. Markera (på omslagsbladet) vilka uppgifter du lämnat lösning på Svårlästa lösningar kan inte bedömas! Glöm inte att läsa frågorna mycket noga! Rättningstiden är normalt tjugo arbetsdagar, det vill säga resultatet kommer att anslås senast fredag den 19 april 2013 Viktigt! Glöm inte att skriva namn och personnummer på alla blad du lämnar in. Lycka till! Ansvarig lärare: Anders Gidenstam och Anna Palmquist Telefonnummer: 033-435 4214

Högskolan i Borås 2013-03-25 sida 2 (av 12) Uppgift 1 (11 p) Ge korta men tydliga svar på följande frågor: a) Antag att följande deklarationer har gjorts: int mynumber = 17; int yournumber = 12; Vad blir utskriften av följande sats? (1p) Console.WriteLine("Antalet är " + (mynumber + yournumber) + " styck."); b) Vad är en algoritm (2 p) c) I vilken av nedanstående problem är det lämpligast att använda en for-sats? Motivera! (2p) i) skapa en iteration som löper från 15 till -15 med steget 1. ii) skapa en iteration som löper så länge som variabeln position är mindre än 100 och den boolska broken är false. d) En metod behöver anropas för att den skall utföra sitt jobb. Skriv satsen (metodanropet) för att anropa metoden med nedanstående metodsignatur. (1p) public static void DoSomething(int x)

Högskolan i Borås 2013-03-25 sida 3 (av 12) e) Följande deklaration har gjorts. char[][] letters = new char[]'a','b','d', new char[]'x','y','z' ; Vilket värde har letters[1][2]? (1p) f) Antag att nedanstående kodrader är den enda konstruktorn för en klass. (2p) public ClassAct(int number) item = number; i. Vilket är namnet på klassen som denna konstruktor hör till? ii. Skriv en programsats som skapar ett objekt av klassen och skickar värdet 25 som ett argument till konstruktorn. g) I ett program finns nedanstående klass. (2p) public class Person private string firstname; private string lastname; i. Skriv en programsats som skriver ut värdet på fältet/attributet firstname för ett Person-objekt p på skärmen. ii. Var kan ovanstående programsats ligga i programmet?

Högskolan i Borås 2013-03-25 sida 4 (av 12) Uppgift 2 (9 p) I källkoden på nästa sida har ett antal fel smugit sig in. Din uppgift är att ringa in de felaktiga koddelarna och numrera ställena. Skriv sedan i den heldragna rutan på sidan 6 din motivering till respektive fel. 1 poäng per korrekt motiverat fel, utom för någon motivering som kan ge 2 poäng. Markerade fel utan korrekt motivering ger inga poäng. Programmet läser in ett meddelande givet i morsekod och avkodar/översätter koden till ett textmeddelande som skrivs ut på skärmen. I det inlästa meddelandet finns ett blanktecken mellan varje bokstav och två blanka tecken mellan varje ord i meddelandet. Morsealfabetet visas i nedanstående tabell, där punkter och streck används för att beteckna korta respektive långa signaler. A.- B - C -.- D -.. E. F..- G --. H. I.. J.--- K -.- L.-.. M -- N-. O --- P.-- Q ---.- R.-. S T - U..- V - W.-- X -..- Y -.-- Z --.. Å.--.- Ä.-.- Ö ---.

Högskolan i Borås 2013-03-25 sida 5 (av 12) class MorseAlfabet static string tab = ".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "...", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--..", ".--.-",".-.-", "---." ; static char ToLetter(s) int j = Array.IndexOf(tab, s); if (j < 0) return '?'; else if (j < tab.length - 3) return (char)((int)'a' + j); else if (j == tab.length - 3) return 'å'; else if (j == tab.length - 2) return 'ä'; else if return 'ö'; // Returnerar indexet där s finns // i vektorn tab. // markerar felaktig morsekod // a - z static void Main(string[] args) While (true) string s = Console.readLine(); if (s == null); break; s = s.trim(); while (s.length > 0) int j = s.indexof(' '); if (j >= 0); Console.Write(ToLetter(s.Substring(0, j))); if (s[j + 1] == ' ') Console.Write(' '); s = s.substring(j + 2); else s = s.substring(j + 1); /* skriv ut bokstaven */ nytt ord else // sista bokstaven på raden Console.Write(ToLetter(s)); s = ""; Console.WriteLine(); // skriv ut bokstaven

Högskolan i Borås 2013-03-25 sida 6 (av 12) Motiveringar/förklaringar till felen i koden på föregående sida:

Högskolan i Borås 2013-03-25 sida 7 (av 12) Uppgift 3 (10 p) Inläsning från fil Din uppgift här är att skriva koden till metoden Ladda, som skall läsa in innehållet från filen resultat.txt (se nedan) till vektorn tävlingsresultat. Vid inläsningen skapar du således en Resultat-post per rad, varefter den, när posten initierats korrekt, skall läggas till vektorn tävlingsresultat via metoden LäggTillResultat. Posttypen Resultat används för att lagra resultatet från en tävling. Fältet bana talar om var tävlingen genomfördes. Fältet antalvarv anger antalet varv som kördes på den givna banan. Fältet förare anger vem som körde den givna bilen. Fältet stall anger vilket deltagande lag som föraren körde för. Fältet varvtider är en vektor som innehåller information om varvtider för given förare på given bana. public class Resultat public string bana; public int antalvarv; public string förare; public string stall; public double[] varvtider; Tanken är att den som registrera tävlingsresultaten matar in varvtider för given förare på given bana. När inmatning av tävlingsresultat väljs i huvudmenyn på applikationen anger användaren först bana, antal varv, förare och stall. Utifrån bana och förare skapas en vektor med lika många element som antal varv som den givna banan har, varefter användaren matar in varvtider i decimaltal.

Högskolan i Borås 2013-03-25 sida 8 (av 12) public static void Ladda()

Högskolan i Borås 2013-03-25 sida 9 (av 12) Uppgift 4 (6 p) I ett program finns följande metod och vektor: public static int Metoden(int[] vektor, int element) int high = vektor.length; int low = -1; int probe; while (high - low > 1) probe = (high + low) / 2; if ( vektor[probe] > target) high = probe; else low = probe; // end while if (low == -1 vektor[low]!= target) return -1; else return low; static int[] tal = 1, 2, 5, 6, 7, 75; Visa hur returvärdet från metodanropet Metoden(tal, 7); beräknas och vad det blir genom att ange värdena på variablerna high, low och probe efter varje iteration i while-loopen. Iteration probe high low Före första 0 Efter första Efter andra Efter tredje Efter fjärde Efter femte Efter sjätte Returvärde:

Högskolan i Borås 2013-03-25 sida 10 (av 12) Uppgift 5 (6 p) I en applikation för biluthyrning sparas information om varje faktura i en posttyp med följande utseende (Car respektive Customer är andra posttyper i applikationen): public class Invoice private Car car; // Bilen som hyrdes private Customer customer; // Kunden som hyrde private DateTime from; // Uthyrningens start private DateTime to; // Uthyrningens slut och fakturadatum private decimal price; Din uppgift här är att utöka klassen Invoice genom att skriva två metoder. i. Den ena är den publika klassmetoden CreateInvoice som skapar och returnerar en ny faktura initierad med de värden som skickats till metoden. Fakturans slutdatum skall var den tidpunkt den skapas. Nuvarande tid kan läsas från egenskapen DateTime.Now. ii. Den andra är den publika instansmetoden SenareÄn som tar en parameter av typen Invoice och returnerar ett booleskt värde. Metoden jämför fakturadatumet för den instans den anropas på med fakturadatumet för parametern och returnerar sant om den aktuella instansen har senare fakturadatum än parametern. Annars returnerar metoden falskt. public class Invoice private Car car; // Bilen som hyrdes private Customer customer; // Kunden som hyrde private DateTime from; // Uthyrningens start private DateTime to; // Uthyrningens slut och fakturadatum private decimal price; public static Invoice CreateInvoice(Car thecar, Customer thecustomer, DateTime startofrental)

Högskolan i Borås 2013-03-25 sida 11 (av 12) Uppgift 6 (8 p) Sortering av poster Din uppgift här är att skriva metoden SorteraPåFakturadatum för poster av typen Invoice utifrån algoritmen i det givna flödesdiagrammet. Som en del i sorteringen skall du också implementera metoden Swap som byter plats på två element i vektorn. Vektorn skall sorteras i fallande ordning på fakturadatum. Sorteringsmetoden ligger inte i klassen Invoice så instanserna kan bara jämföras med hjälp av sina publika metoder, se föregående uppgift. För full poäng gäller att en fullständig och korrekt sorteringsalgoritm implementeras i metoden SorteraPåFakturadatum i enlighet med följande flödesdiagram över algoritmen.

Högskolan i Borås 2013-03-25 sida 12 (av 12) public static void Swap(Invoice[] vektor, int a, int b) public static void SorteraPåFakturadatum(Invoice[] vektor) Här är tentamensuppgifterna slut.