Övnings- och examinationsuppgifter C# - programmering I (FYD421)

Storlek: px
Starta visningen från sidan:

Download "Övnings- och examinationsuppgifter C# - programmering I (FYD421)"

Transkript

1 Övnings- och examinationsuppgifter C# - programmering I (FYD421) Version :e januari 2014 Huvudförfattare: Peter Klason Medförfattare: Per Sillrén, Patrik Johansson, Andreas Heinz, Jonas Einarsson

2 I. INTRODUKTION Välkommen till FYD421 C#-programmering I. Kursen ingår i programmet Datorstödd Fysikalisk Mätteknik (DFM), men kan även läsas separat, och har som syfte att lära dig grunderna i programmeringsspråket C#. I påbyggnadskursen FYD431 C#-programmering II är syftet att använda C# för att utveckla avancerade styr-, regler- och mätprogram. Kursen går som halvfartskurs på kvällstid. Detta kompendium kompletterar föreläsningarna och innehåller förutom examinationsuppgifterna. Ditt kursbetyg kommer baseras på (se examination nedan), ett antal övningsuppgifter vilkas syfte är att hjälpa dig att komma igång. II. Översiktligt innehåll C#-programmering I fokuserar på grunderna i C# och.net ramverket. Du lär dig göra både konsol- och Windowsbaserade applikationer. Mer detaljerat innehåll fås på hemsidan och via föreläsningarna. Labb av kursen inkl. examinationen är uppdelad i tre delar: 1) Allmän kunskap och grunder i C# 2) Objekt-orienterad programmering i C# 3) Avancerad C# och Windows-applikationer Varje del motsvaras av ett kapitel. Varje del innehåller både övnings- och examinationsuppgifter. III. Examination Följande gäller: Kursen examineras helt med examinationsuppgifterna (alltså ingen tentamen). All redovisning sker under schemalagd laborationstid (alltså ej via inlämning). Alla uppgifter har ett poängvärde och du får dessa poäng efter godkänd redovisning. Du måste ha minst 3 poäng per kapitel för att få minst betyget Godkänd. Ditt slutbetyg på kursen bestäms utifrån följande kriterier: Betyget Godkänd: är normalbetyget. Koden skall vara välskriven och kommenterad och givetvis lösa uppgiften på ett sätt som utnyttjar C# och.net på ett bra sätt. Dina program ska hantera fel på ett korrekt sätt; somexempel: om användaren ska mata in heltal ska programmet kontrollera att bara heltal matas in, hantera alla eventuella undantag, och om något blir fel ska ett felmeddelande genereras. Du måste minst kommit upp i 12 redovisade poäng senast vid sista laborationstillfället. Betyget Väl Godkänd: här krävs lite mer utöver kraven för godkänd; - att dina laborationsuppgifter uppvisar en allmänt god programmeringsteknisk kvalitet - att du följer anmodad kodstandard - att du kommenterar koden väl - att lösningarna meningsfullt utnyttjar C# och.net ramverkets finesser - att de färdiga programmen är användarvänliga. Du måste minst kommit upp i 20 redovisade poäng senast vid sista laborationstillfället. 2

3 Examinationens utförande: För att det ska bli lättare att redovisa skall du göra följande: Gör en Solution för varje kapitel och kalla den KapitelX där X är kapitelnumret. Lägg varje solution i en egen mapp (enklast genom att låta Create directory for solution vara förkryssat.) För varje uppgift i kapitlet: Gör ett projekt med namnet UppgiftY där Y är uppgiftsnumret. I slutändan kommer du alltså ha tre solutions (en per kapitel) med ett antal projekt i varje. IV. Övrig information Under kursen kommer programmet Microsoft Visual Studio 2010 Professional (VS2010) att användas till att skapa konsol- och Windowsapplikationer. Vi kommer också att använda Measurement Studio (MS). Dessa programvaror finns installerade i ET- och EP-labben (där laborationerna utförs). Utöver detta så har du tillgång till VS2010 inom ramen för MSDNAA om du saknar MSDNAA så kontakta kursansvarig för mer information. Aktuell kurslitteratur hittar du via föreläsningarna och hemsidan. Det finns även mycket bra material om C# att tillgå på internet. Följande länkar kan komma till användning under kursens gång: Om du stöter på frågor under kursens gång så utnyttja gärna de tillfällen som finns, d.v.s. i anslutning till föreläsningar och handledningstillfällen. Viss hjälp går att få via e-post, men det är mycket bättre att du frågar vid de schemalagda tillfällena. Kom ihåg, det finns inga dumma frågor bara dumma svar :-) 3

4 Kapitel 1: Allmän kunskap och grunder i C# Mål: Du ska kunna skriva ett enkla C#-program som läser in data från tangentbordet eller från filer, utför beräkningar och presenterar resultatet. Du ska även behärska fält. Övningsuppgifter Ö1 Skriv ett program som beräknar den återstående restiden om man vet medelhastigheten i km/h och återstående körsträcka i mil. Du kan anta att medelhastigheten hålls hela den återstående körsträckan. Resultatet ska presenteras som i figuren. Ö2 Skriv ett program som skapar ett mönster av 16 rader och 32 kolumner enligt figuren nedan. Du får bara använda följande satser en gång vardera för utskrift: Console.Write( ); Console.Write( * ); Console.WriteLine(); Ö3 Skriv ett program som uppmanar användaren att mata in hur många heltal som ska sparas. Lägg in heltalen i ett fält och skriv sedan ut fältets innehåll baklänges. Skapa en metod som sköter inläsningen av heltalen. Testkör programmet och se att det stämmer överens med figuren. 4

5 Ö4. Skriv ett program som ber användaren mata in ett tresiffrigt tal. Programmet ska sedan beräkna summan av de tre siffrorna. Om t.ex. 483 matas in ska programmet visa att summan blir 15. Examinationsuppgifter Uppgift 1.1 (1p) Skriv ett program som skapar ett fält med slumptal mellan 0 och 9. Programmet ska sedan visa hur många tvåor och nior det finns i fältet. Uppgift 1.2 Växelpengar (1p) När du handlar i en affär och betalar kontant får du kanske växel tillbaka. I regel får affärsbiträdet hjälp av kassaapparaten med att beräkna summan man ska få tillbaka, men inte alltid vilka sedlar och mynt som ska lämnas tillbaka. Skriv ett program som beräknar den växel biträdet ska ge tillbaka i samband med ett köp. Programmet ska, förutom att presentera beloppet kunden får tillbaka avrundat till närmsta 50-öring, även bestämma vilka, och antalet, sedlar och mynt. Kunden ska få så få sedlar och mynt som möjligt tillbaka. Programmet ska kunna ge växel tillbaka med sedlar av valörerna 1000, 500, 100, 50 och 20 samt mynten 10, 5, 1 och 50-öring. Du kan anta att det alltid finns tillräckligt antal av de sedlar och mynt som krävs. Skriv endast ut de valörer som ska lämnas tillbaka. Eventuella fel i samband med inmatningen ska tas om hand. Använd try/catch och fånga lämpligt undantag (exception). Glöm inte att testa programmet. Om t.ex. en kund handlar för 371,38 kr avrundas beloppet till 371,50 kr. Om kunden betalar med en 1000 kr sedel ska kunden få 628,50 kr tillbaka, fördelat enligt figuren. Uppgift 1.3 Effektiv vindavkylning (1p) Du upplever säkert en lägre temperatur, än vad termometern visar, då det blåser. Men vilken temperatur är det du upplever? SMHI använder Oszevskis och Bluesteins formel (fr.o.m. vinter 2003/2004) för att beräkna den effektiva temperaturen, som ser ut på följande sätt: T eff = * T * v * T * v 5

6 där ν är vindhastigheten och T är temperaturen. Mer information finns att tillgå på: Skriv ett program som visar en tabell med den beräknade effektiva temperaturen för olika temperaturer och vindhastigheter enligt figuren. Den effektiva temperaturen ska presenteras som ett heltal. Om den effektiva temperaturen mindre eller lika med -28ºC ska temperaturen skrivas ut med blå text på grå bakgrund. Använd egenskaperna Console.BackgroundColor och Console.ForegroundColor samt metoden Console.ResetColor() för att påverka vilka färger som ska användas. Den blå linjen anger den temperatur vid vilken det är risk för köldskador. Uppgift 1.4 Hitta topparna (2p) Gör ett program som läser in en textfil med mätdata. Filen innehåller intensitet som funktion av våglängd. Programmet ska lokalisera antalet toppar, topparnas position och intensitet. Utöver detta ska man som användare kunna sätta ett villkor för hur stor intensitet en topp måste ha för att få klassificeras som en topp. Till exempel kan användaren välja att en topps maxvärde måste vara över 1 för att få vara en topp. Filen med mätdata fås av labassistenterna. Uppgift 1.5 Bowlingspel (2p) I bowling ska man med ett klot försöka få ner 10 käglor. Man har två slag på sig. Om man lyckas få ner alla 10 i första slaget kallas det för strike och om alla käglor fallit ner efter två slag kallas det för spärr. Poängsättningen beräknas på ett litet speciellt sätt: En serie innehåller 10 rutor I varje ruta får man göra högst två slag Slår man en strike får man 10 poäng plus lika många poäng som antalet käglor man kommer att slå ner i nästkommande två slag Slår man en spärr för man 10 poäng plus lika många poäng som antalet käglor man slår ner i nästa slag Finns det käglor kvar efter sina två slag får man lika många poäng som antalet käglor man slagit ner i de två slagen Om man får strike i sista rutan, dvs. ruta 10, får man två extra slag och lika många poäng i sista rutan som antalet nedslagna käglor i de tre sista slagen. Om man får spärr i sista rutan får man ett extra slag och lika många poäng i sista rutan som antalet nedslagna käglor i de tre sista slagen. Skriv ett C#-program som frågar efter antalet käglor som slås ned i varje slag och beräknar totala antalet poäng i en serie. 6

7 Uppgift 1.6 Bowlingspel fortsättning (1p) Utöka ditt program så att du får ett bowlingspel. Programmet ska kunna ha 1-3 spelare och mha slumptal ska programmet slumpa fram hur många käglor spelarna slår ner i resp. ruta. Via en lämpligt vald tangent kastar man sitt klot. Som utskrift ska visas hur många käglor som välts ner och totala poäng varje spelare har lyckats skrapa ihop. Uppgift 1.7 Frekvenstabell och kommaseparerade värden (1p) Du ska i denna uppgift skriva ett program som öppnar en textfil med kommaseparerade värden. Programmet ska sedan läsa in filen rad för rad och analysera värdena i textfilen. Slutligen ska programmet skapa en frekvenstabell över respektive värde. Du ska med andra ord räkna hur många gånger varje värde finns i textfilen. Ett Dictionary kommer väl till pass för denna uppgift, med det kan du koppla ett värde till antalet gånger det förekommer. Textfilen, som fås av labassistenterna, innehåller resultatet från en av basårets tentor i Fysik del A. Uppgift 1.8 Numerisk integrering (1p) Skriv ett program som numeriskt beräknar en integral. Den enklaste numeriska integrationsmetoden tillämpar den så kallade trapetsregeln. X-axeln delas då upp i N 1 intervall [x i,x i+1 ], som alla är Δx= x i+1 - x i långa för 0 i N. Lösningen till integralen ges då av F = % a b N#1 $ f ( x)dx! "x f x i i=0 ( ) där variablerna x 0 = a, x N = b. Antalet intervall, N, skall anges av användaren (större N ger ett bättre värde på integralen men innebär samtidigt att programmet tar längre tid att köra). Programmet ska fungera för godtycklig integral (som finns i källkoden och som inte ska anges av användaren). Principen för beräkning av integralen visas i figuren nedan. 7

8 Kapitel 2: Objekt- orienterad programmering i C# Mål: Du ska förstå och kunna hantera klasser, egenskaper, metoder, parametrar, returvärden och arv. Du ska dessutom förstå och kunna använda statiska metoder och egenskaper. Det är också viktigt att du förstår skillnaden mellan variabler av värdetyp och referenstyp och vad skillnaderna får för följder. Övningsuppgifter Ö1 Skapa en klass Book för att hålla reda på bok-objekt. Varje bok-objekt ska ha en titel, författare, förlag och ISBN. Du kan för enkelhets skull låta ISBN vara av typen string istället för någon numerisk typ. Detta gör att ISBN kan ha en 0:a som första siffra eller inkludera någon bokstav. Klassen ska också ha en metod, DisplayBook(), som skriver ut informationen till konsolfönstret. Testkör programmet genom att skapa minst tre stycken bok-objekt. Examinationsuppgifter Uppgift 2.1 PointD (1p) Skapa ett klassbibliotek (New Project -> Class Library) och kalla det för MinaKlasser Döp om Class1.cs till PointD.cs En punkt i ett tvådimensionellt koordinatsystem kan anges på formen (X,Y). Skriv en klass PointD som beskriver punkter på denna form. Observera att X och Y ska vara av typen double och att de ska implementeras som automatiska egenskaper (Auto- Implemented Properties). Gör två konstruktorer: en som inte har några parametrar och sätter X och Y till noll, och en som tar två parametrar av typen double och sätter X och Y till värdet av dessa parametrar Gör två operatorer + och som adderar respektive subtraherar två PointD objekt Skriv en statisk metod Distance som tar två PointD objekt som argument och returnerar avståndet mellan punkterna. Avståndet beräknas med Pytagoras sats. Skriv ett program som använder PointD.cs och dess element. Uppgift 2.2 XYData (1p) Lägg i MinaKlasser till en klass XYData som har en automatisk egenskap data av typen BindingList<PointD> Gör en default-konstruktor som initierar data till en tom lista Gör en metod SetData som tar två fält av typen double och sätter data till att stämma överens med dessa. Om de två fälten är olika långa ska ett undantag av typen ArgumentException kastas. Gör ytterligare en konstruktor som tar två fält av typen double och anropar setdata med dessa Skriv en instansmetod FindPeaks som hittar maxima i datan och returnerar ett fält av typen double som innehåller x-koordinaterna för topparna. Skriv en instansmetod som returnerar en ny instans av XYData som innehåller kvadraten av data Uppgift 2.3 Statisk Variabel (1p) Skriv en klass som innehåller en statisk variabel som håller reda på hur många objekt av klassen som existerar för tillfället. Det ska dessutom finnas en statisk funktion som returnerar detta antal. Varje objekt i klassen ska även ha en instansvariabel som automatiskt tilldelas ett unikt id-nummer 8

9 när objektet skapas. Detta id-nummer ska inte kunna ändras efter att det har initieras. Markera därför instansvariablen som readonly. Uppgift 2.4 Kalender (2p) Skriv ett program som fungerar som en kalender. Det ska innehålla en klass med information om möten (var det är, när det sker, hur länge det varar, vilka som kommer vara där med mera). Programmet ska kunna spara möten och när användaren skriver in ett datum ska den dagens möten listas. Det ska också vara möjligt att få fram detaljerna för ett specifikt möte. I programmet ska det gå att lägga till, ta bort och ändra möten. Använd olika klasser för olika typer av möten och utnyttja arv inom objektorienterad programmering. Uppgift 2.5 Sorteringsklass (2p) (a) Du ska skapa en klass, Student, som hanterar ett godtyckligt antal studenter. Intressant information att lagra är åtminstone namn och ålder. Klassen ska vara sorteringsbar och detta åstadkommer du genom att implementera gränssnittet IComparable<T>, där T står för klassens namn. Du måste lägga till metoden CompareTo i klassen Student. Klassen Student ska ha privata fält för den information som lagras och till fälten ska det finnas publika egenskaper. Vidare ska klassen ha en konstruktor för att initiera ett objekt. För att testa klassen väljer du samlingsklassen List<T>. Du ska göra ett program som skriver ut en lista på personer i den ordning de lags till. Därefter ska programmet skriva ut en lista där personerna är sorterade på namn. Har två personer samma namn ska de sorteras efter ålder. (2p) (b) Utöka klassen Student i uppgift (a) så att det går att sortera på studenternas ålder likväl som på deras namn. Ett tips är att implentera gränssnittet IComparer<T>, läs i on-line -hjälpen för hur gränssnittet IComparer<T> kan användas för att sortera en klass. (1p) Uppgift 2.6 Gissa hemliga talet (2p) I denna uppgift ska du göra ett program där användaren har sju försök på sig att gissa ett heltal mellan 0 och 100. Följande krav måste uppfyllas: Användaren har sju (7) försök på sig att gissa rätt tal. Det ska inte gå att göra fler gissningar. En klass ska skapas för detta ändamål. Klassen ska ha lämpliga fält, egenskaper, metoder och konstruktorer. Antalet gissningar användaren har på sig ska lagras i en publik namngiven konstant. Det hemliga numret, som slumpats fram, ska inte kunna kommas åt. Klassen ska ha ett fält som håller reda på hur många gissningar som gjorts. Klassen ansvarar för att skriva ut om användaren gissat rätt tal, gissat för lågt, gissat för högt och om användaren förbrukat alla gissningar. Utskriften ska se ut som på skärmdumpen. En gissning görs genom att en metod i klassen anropas. Metoden ska skriva ut ett lämpligt meddelande beroende på resultatet av gissningen och metoden returnera true annars false. När användaren gissat rätt eller antalet gissningar är slut ska användaren få välja om han vill avsluta eller fortsätta en gång till. Om användaren matar in N ska programmet avslutas. 9

10 Uppgift 2.7 Statistik (2p) Du ska göra ett program som analyserar två serier om minst tio heltal vardera, gärna flera. Programmet ska presentera det största och det minsta värdet för respektive serie. Seriernas medelvärden ska också beräknas och presenteras. Slutligen ska programmet även avgöra vilken serie som har störst medelvärde. Skapa en klass Statistik som håller reda på de två serierna. Klassen ska inte lagra alla inmatade heltal utan den ska bara lagra den information som krävs för att presentera största och minsta värdet samt medelvärdet. Skapa klassen enligt klassdiagrammet. Som du ser har klassen en egen variant av metoden ToString() (som ni alla vet deklareras av basklassen Object). Metoden ToString() skriver ut seriens summa, medelvärde och största resp. minsta värdet. Metoden LasHeltal i klassen Program används för att läsa in och kontrollera de heltal som ska ingå i respektive serie. Använd int.tryparse i metoden LasHeltal för att kontrollera att det är heltal som matas in. Varje inläst heltal läggs till det Statistik-objekt som statistik refererar till med hjälp av metoden Add. Metoden LasHeltal anropas m.a.o. ifrån metoden Main. 10

11 11

12 Kapitel 3: Avancerad C# och grafiska komponenter Mål: Du introduceras till en del av alla de grafiska hjälpmedel och finesser som finns att tillgå i C# och VS Du lär dig att göra Windowsapplikationer. Övningsuppgift Ö1. Gör en Windowsapplikation som beräknar momsen för en viss vara. När användaren trycker på knappen beräkna ska momsen beräknas och visas m.h.a en label längs ner i fönstret. Varans pris exkl. moms ska matas in i en TextBox och momssatsen ska matas in via en NumericUpDown. Svaret ska innehålla pris exkl. moms, momsen och pris inkl. moms. Examinationssuppgifter Uppgift 3.1 Enkel Miniräknare (1p) Gör en Windowsapplikation som fungerar med funktionerna i figuren. Uppgift 3.2 Avancerad miniräknare (1-2 p) Utöka miniräknaren med fler funktioner. Kreativitet uppmuntras! Ju fler funktioner desto fler poäng får du på uppgiften. Minst 4 nya olika typer av funktionerkrävs för att få 1 poäng. Uppgift 3.3 Lissajoufigurer (1p) I denna uppgift ska ni skapa de klassiska Lissajoufigurerna. Dessa figurer uppstår när man har två sinusvågor med olika frekvens. De två sinusvågorna plottas i en XY-plot, där ena sinusvågen anger X-värdena och den andra Y-värdena. Låt amplituden på sinusvågorna vara 1 V. Med hjälp av 12

13 kontroller ska man kunna reglera de två sinusvågornas resp. frekvens. Resultatet ska visas i en ScatterGraph. Programmet ska även ha en CheckBox, om den är markerad ska en Legend visas. Uppgift 3.4 User controls, Model-View-Controller och Bindings (2p) I den här uppgiften ska du göra ett program enligt arkitekturmönstret model-view-controller (MVC). Idén med MVC är att separera databehandling (model) från dess grafiska representation (view). Kommunikationen mellan modellen och vyn sköts av controllern. Vilka ickefunktionella krav påverkas av MVC arkitekturen? Konstruera ett program som ser ut som figuren nedan. Programmet ska bestå av två klasser, en controller-klass och en view-klass. - Låt controllern representeras av Form-klassen som skapas när du skapar ett nytt projekt. Controller-klassen ska ha en instansvariabel av typen XYData och ska i konstruktorn koppla denna till view-objektet. Controllern ska även implementera händelsehanterare för knapparna Plot sinewave, Find peaks och FFT (Fourier-transform) på lämpligt sätt. - View-klassen ska vara en User control (använd menyalternativet Project:Add User Control ) med en ScatterGraph och en DataGridView. Använd GUI-editorn för att binda DataGridView-objektet till ett objekt av typen XYData (se Property-fönstrets DataSource-fält). För att kopplingen ska fungera måste View-klassen ska ha en instansmetod setdatasource som kopplar ett specifikt XYData-objekt till DataGridViewobjektet. För att grafen ska uppdateras när listan ändras implementerar du händelsen ListChanged för BindingSource-objektet. 13

14 Uppgift 3.5 Trafikljus (2p) Ditt företag har fått i uppdrag att tillverka ett kontrollsystem för trafikljusen i en mycket trafikerad 4-vägskorsning. Varje trafikljus består av grönt, gult och rött ljus. Ljusperioden för de olika färgerna ska vara: Rött ljus: 4s Gult ljus: 2 s Grönt ljus: 4 s Ljusen ska lysa på följande sätt: 14

15 Norr Söder Väster Öster Grönt Grönt Rött Rött Gult Gult Rött Rött Rött Rött Grönt Grönt Rött Rött Gult Gult Uppgift 3.6 Trafikljus del II. (1p) Utöka föregående uppgift med att lägga till ett trafikljus för fordon som ska svänga höger. Om sensorn (i detta fall en knapp under ljusen) som indikerar att det finns fordon som ska svänga höger är påslagen, följer trafikljusen som högersväng samma mönster som ovan. Det vill säga om ett fordon vid trafikljuset i norr ska svänga höger är trafikljuset för högersväng grönt, när trafikljuset i norr är grönt. Uppgift 3.7 Klocka (3p) Som forskare har man flera arbetsuppgifter, t.ex. forskning och undervisning. För att lättare hålla reda på hur mycket tid man lägger ner på de olika arbetsuppgifterna ska du göra ett program som håller reda på hur mycket tid man under en dag lägger ner på forskning, undervisning och lunch. Programmet ska se ut ungefär som i figuren. 15

16 Överst i fönstret visas vad klockan är. Sedan väljer man genom att trycka på resp. knapp vilken sysselsättning man roar sig med för tillfället. Om tex knappen Forskning trycks in ska tiden som visas vid forskning öka för varje sekund som går. Du ska med andra ord ha fyra stycken klockor, en för vanliga klockan och tre som håller reda på hur mycket tid du lägger ner på respektive sysselsättning. Du avgör själv om du vill att sekunderna ska visas för klockarna för resp. sysselsättning. När den sammanlagda tiden för Undervisning och Forskning uppgår till 8h ska en diod börja visas med texten Åk HEM!!!. Dioden ska blinka mellan svart och röd med en sekunds mellanrum. När dioden är röd ska texten Åk HEM!!! visas. När man trycker på knappen Spara ska tiden man lagt ner på de tre sysselsättningarna sparas i en textfil med lämpligt namn. Filen ska även innehålla dagens datum. Programmet ska sedan avslutas. Du ska skapa två stycken klasser för att visa tiden. Klasserna ska vara utformade enligt klassdiagrammen nedan. Klassen NumberDisplay simulerar en nummerdisplay med två stycken siffror. Egenskapen Number som är kopplad till fältet _number säkerställer att det är omöjligt att sätta ett värde mindre än 0 och större än största tillåtna värdet, _maxnumber. Om ett ogiltigt värde matas in ska ett ArgumentException kastas. Klassen har två konstruktorer, i den ena sätts Number = 0. Metoden GetDisplayNumber() returnerar aktuellt värde. Är värdet mindre än 10 läggs en nolla till först i strängen, tex om det aktuella värdet är 3 returneras 03. Med metoden Increment() ökas det aktuella 16

17 värdet med ett. Om det aktuella värdet skulle bli större än det _maxnumber sätts det aktuella värdet till 0. Klassen ClockDisplay använder tre stycken NumberDisplay-objekt för att simulera en digital klockdisplay. Det booleska fältet _visasek sätts till true om man vill att även sekunderna ska visas när man presenterar tiden. Metoden GetTime() ska returnera aktuell tid på formen 12:45:10 i form av en sträng. Metoden SetTime() används för att ställa tiden. Defaultkonstruktorn ska sätta tiden till 00:00:00. Alla konstruktorer ska använda metoden SetTime() för att ställa tiden. Metoden TimeTick() låter klockan gå en sekund. För denna uppgift ska du skapa fyra stycken ClockDisplayobjekt, en som visar vad tiden är och en för varje sysselsättning. Det ClockDisplay-objektet som visar vad tiden är ska när programmet börjar initieras till rätt tid med hjälp av DateTime. Uppgift 3.8 Egen uppgift (1-3p) Gör en egen uppgift - inklusive ett förslag till lösning. Bedöm också svårighetsgraden på uppgiften genom att ge den poäng mellan 1 till 3 p. (Du får inte nödvändigtvis samma poäng vid redovisningen.) LYCKA TILL! 17

Övnings- och examinationsuppgifter C# - programmering I (FYD421)

Övnings- och examinationsuppgifter C# - programmering I (FYD421) Övnings- och examinationsuppgifter C# - programmering I (FYD421) Version 2.0 20:e januari 2012 Huvudförfattare: Peter Klason (peter.klason@physics.gu.se) Medförfattare: Per Sillrén, Patrik Johansson, Andreas

Läs mer

Statistik över heltal

Statistik över heltal Övningsuppgift Statistik över heltal Steg 2 Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande

Läs mer

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

Diagnostiskt Prov. Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas. .0.0 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

Läs mer

TUTORIAL: KLASSER & OBJEKT

TUTORIAL: KLASSER & OBJEKT TUTORIAL: KLASSER & OBJEKT I denna tutorial lär vi oss att använda klasser och objekt samt hur vi bygger en enkel applikation kring dessa. I tutorialen kommer det finnas en mängd kod som du antingen kan

Läs mer

Agenda. Objektorienterad programmering Föreläsning 13

Agenda. Objektorienterad programmering Föreläsning 13 Objektorienterad programmering Föreläsning 13 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webacademy.se Agenda Ett objektorienterat exempel Repetition Mer om arv Abstrakta klasser Abstrakta metoder

Läs mer

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING Institutionen för Data- och informationsteknik TENTAMEN OBJEKTORIENTERAD PROGRAMVARUUTVECKLING OBS! Det kan finnas kurser med samma eller liknande namn på olika utbildningslinjer. Denna tentamen gäller

Läs mer

Laboration 1 Introduktion till Visual Basic 6.0

Laboration 1 Introduktion till Visual Basic 6.0 Laboration 1 Introduktion till Visual Basic 6.0 Förberedelse Förbered dig genom att läsa föreläsningsanteckningar och de kapitel som gåtts igenom på föreläsningarna. Läs även igenom laborationen i förväg.

Läs mer

Övningsuppgift. Bankkonton. Steg 2. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

Övningsuppgift. Bankkonton. Steg 2. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Övningsuppgift Bankkonton Steg 2 Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering

Läs mer

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här: Att skapa en klass kvadrat Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här: public class Kvadrat { private int sida; Det var väl inte

Läs mer

Laboration 3, uppgift En klass för en räknare

Laboration 3, uppgift En klass för en räknare Laboration 3, uppgift 1 3.1 En klass för en räknare Ursprungligen skriven av Erland Holmström. Magnus Myreen har uppdaterat vissa delar. Hösten 2014 Anvisningar: Programmet skall utformas enligt de principer

Läs mer

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng TENTAMEN I PROGRAMMERING Ansvarig: Jan Skansholm, tel 7721012 Betygsgränser: Hjälpmedel: Sammanlagt maximalt 60 poäng. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng Skansholm,

Läs mer

DD1311 Programmeringsteknik för S1 Laborationer läsåret 2007-2008

DD1311 Programmeringsteknik för S1 Laborationer läsåret 2007-2008 DD1311 meringsteknik för S1 Laborationer läsåret 2007-2008 Fyll i ditt namn och personnummer med bläck eller motsvarande. Kursledare är Linda Kann, linda@nada.kth.se. Namn... Personnr... Laborationer Labb

Läs mer

Laboration 1 - Grunderna för OOP i Java

Laboration 1 - Grunderna för OOP i Java Uppdaterad: 2006-08-31 Laboration 1 - Grunderna för OOP i Java Inledning Laborationen går ut på att lära sig grunderna för objektorienterad programmering, samt motsvarande språkkonstruktioner i Java. Labben

Läs mer

L04.1 Marodören. Inledning. Mål. Genomförande. Uppgift 1 Hello World. Moment I

L04.1 Marodören. Inledning. Mål. Genomförande. Uppgift 1 Hello World. Moment I L04.1 Marodören Inledning Genom att öva sig på de grundläggande koncepten i JavaScript öppnas vägen allteftersom till de mer avancerade funktionerna. Man måste lära sig krypa innan man kan gå, även i JavaScript!

Läs mer

Objektorienterad programmering, Java, 5p TDBA63

Objektorienterad programmering, Java, 5p TDBA63 UMEÅ UNIVERSITET Datavetenskap 030219 PRAKTISKT DELPROV Objektorienterad programmering, Java, 5p TDBA63 Datum : 030205 Tid : 9 13 Hjälpmedel : Allt. Kommunikation med andra personer (direkt eller indirekt)

Läs mer

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

Grundläggande programmering med C# 7,5 högskolepoäng Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Omtentamen DE13, IMIT13 och SYST13 samt öppen för alla (Ifylles av student) (Ifylles av student)

Läs mer

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

Programmering A C# VT 2010. Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08 Programmering A C# VT 2010 Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08 Innehåll Hjälp och referenser... 3 Kap 1 Introduktion... 3 Steg för steg... 3 Kapitel 2 Variabler...

Läs mer

Objektorienterad programmering D2

Objektorienterad programmering D2 Objektorienterad programmering D2 Laboration nr 2. Syfte Att få förståelse för de grundläggande objektorienterade begreppen. Redovisning Källkoden för uppgifterna skall skickas in via Fire. För senaste

Läs mer

Övning 3. Datateknik A, Java I, 5 poäng

Övning 3. Datateknik A, Java I, 5 poäng Datateknik A, Syfte: Att prova på att skriva egna klasser och skapa objekt av dessa klasser. Att skriva klasser med överlagrade metoder och konstruktor, samt att i en klass använda statiska medlemmar.

Läs mer

För alla uppgifter på tentan gäller: Man får använda både standard-c++ (som till exempel har pekare som anges med * och objekt som skapas med new) och

För alla uppgifter på tentan gäller: Man får använda både standard-c++ (som till exempel har pekare som anges med * och objekt som skapas med new) och Örebro universitet Institutionen för teknik Thomas Padron-McCarthy (Thomas.Padron-McCarthy@tech.oru.se) Tentamen i Objektorienterad programmering för D2 m fl onsdag 1 november 2006 kl 14:00-19:00 i L003

Läs mer

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Kort om klasser och objekt En introduktion till GUI-programmering i Java Kort om klasser och objekt En introduktion till GUI-programmering i Java Klasser En klass är en mall för hur man ska beskriva på något. Antag att vi har en klass, Bil. Den klassen innehåller en lista på

Läs mer

Objektorienterad programmering i Java I

Objektorienterad programmering i Java I Laboration 4 Objektorienterad programmering i Java I Uppgifter: 1 Beräknad tid: 6 9 timmar Att läsa: Kapitel 7, 8 (stränghantering, arrayer och Vector) Utdelat material (paket) Syfte: Att kunna använda

Läs mer

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio Ditt första C#-program med Visual Studio Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så

Läs mer

Programmering B med Visual C++ 2008

Programmering B med Visual C++ 2008 Programmering B med Visual C++ 2008 Innehållsförteckning 1 Repetition och lite nytt...5 I detta kapitel... 5 Programexekvering... 5 Loop... 5 Källkod... 6 Verktyg... 6 Säkerhetskopiera... 6 Öppna, kompilera,

Läs mer

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.

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 Programmeringsteknik I 2011-03-17 Skrivtid: 1400-1700 Hjälpmedel: Java-bok Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift

Läs mer

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten? Programmeringsteknik och Matlab Övning 4 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312

Läs mer

Kursplanering Objektorienterad programmering

Kursplanering Objektorienterad programmering Kursplanering Objektorienterad programmering Fakta Ämne Programmering Poäng 40 Yh-poäng Kurskod YSYS-OOP Klass Systemutvecklare.NET 2 Syfte och koppling till yrkesrollen Syftet är att få en stabil grund

Läs mer

TENTAMEN I. OBJEKTORIENTERAD PROGRAMMERING för Z1. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

TENTAMEN I. OBJEKTORIENTERAD PROGRAMMERING för Z1. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng Institutionen för Datavetenskap JSk TENTAMEN TDA540 TENTAMEN I OBJEKTORIENTERAD PROGRAMMERING för Z1 TID 14.15-18.15 Ansvarig: Betygsgränser: Hjälpmedel: Jan Skansholm Sammanlagt maximalt 60 poäng. På

Läs mer

Design av en klass BankAccount som representerar ett bankkonto

Design av en klass BankAccount som representerar ett bankkonto Klasser Kommer ta upp följande begrepp: Design av en klass Implementera en klass Testa en klass med en mainmetod Instansvariabler, lokala variabler, formella parametrar, aktuella parametrar och variablers

Läs mer

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 2

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 2 Institutionen för Data- och informationsteknik JSk TENTAMEN OBJEKTORIENTERAD PROGRAMVARUUTVECKLING Övningstentamen 2 TID: 4 timmar Ansvarig: Betygsgränser: Hjälpmedel: Jan Skansholm Sammanlagt maximalt

Läs mer

Programmering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/

Programmering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Programmering för språkteknologer II, HT2014 Avancerad programmering för språkteknologer, HT2014 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Idag - Hashtabeller

Läs mer

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

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Laboration 2 Objektorienterad programmering i Java I Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Syfte: Att kunna använda sig av olika villkors- och kontrollflödeskonstruktioner

Läs mer

Obs! Inget ur Javas standardbibliotek får användas i ett svar (om det inte står att man får det).

Obs! Inget ur Javas standardbibliotek får användas i ett svar (om det inte står att man får det). LULEÅ TEKNISKA UNIVERSITET Tentamen i Objektorienterad programmering och design Totala antalet uppgifter: 5 Lärare: Håkan Jonsson, Tomas Johansson, 491000 Resultatet anslås senast 08-05-16 i A-huset. Tillåtna

Läs mer

Laboration: Grunderna i MATLAB

Laboration: Grunderna i MATLAB Laboration: Grunderna i MATLAB 25 augusti 2005 Grunderna i MATLAB Vad är MATLAB? MATLAB är ett interaktivt program för vetenskapliga beräkningar. Som användare ger du enkla kommandon och MATLAB levererar

Läs mer

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

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) 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)

Läs mer

Objektorienterad programmering i Java I

Objektorienterad programmering i Java I Laboration 3 Objektorienterad programmering i Java I Uppgifter: 1 Beräknad tid: ca 3-6 timmar Att läsa: sidan 150,151, 170-174, 200, 201 (arv) sidan 178-179, 360 (abstrakta klasser, metoder) + utdelat

Läs mer

Malmö högskola 2007/2008 Teknik och samhälle

Malmö högskola 2007/2008 Teknik och samhälle Laboration 9 Avsikten med denna laboration är att du ska jobba vidare med klasser. Uppgifterna går ut på att skriva metoder och att skriva konstruktorer. Laborationen bygger vidare på laboration 8. Skapa

Läs mer

Receptsamling med fil

Receptsamling med fil Laborationsanvisning Receptsamling med fil Steg 3, laborationsuppgift 1 Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Upphovsrätt för detta verk Detta verk är framtaget i anslutning

Läs mer

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

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det

Läs mer

Frekvenstabell över tärningskast med C#

Frekvenstabell över tärningskast med C# Guide Frekvenstabell över tärningskast med C# Introduktionsuppgift Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Upphovsrätt för detta verk Detta verk är framtaget i anslutning

Läs mer

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

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... } En klassdefinition class A extends B {... Arv definierar en klass A som ärver av B. Klassen A ärver alla fält och metoder som är definierade för B. A är en subklass till B. B är en superklass till A. class

Läs mer

Inledande programmering med C# (1DV402) 85/2=42. OBS! Heltal 1 (13)

Inledande programmering med C# (1DV402) 85/2=42. OBS! Heltal 1 (13) 85/2=42 OBS! Heltal 1 (13) Inmatning och formaterad utmatning Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda

Läs mer

a. Vilka av följande påståenden är riktiga? Observera att felaktigt valda påståenden ger poängavdrag. (4p)

a. Vilka av följande påståenden är riktiga? Observera att felaktigt valda påståenden ger poängavdrag. (4p) TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för Sy 2 2002-03-15, kl 09.00 13.00 Hjälpmedel: Endast bifogat kompendium Max: 66 poäng, för godkänt krävs 50%. Skriv tydliga och kortfattade svar 1. Grunderna

Läs mer

Objektsamlingar i Java

Objektsamlingar i Java 1 (6) Objektsamlingar i Java Objektorienterad programmering 3 Syfte Att ge träning i att använda objektsamlingar i Java. Mål Efter övningen skall du kunna använda objektsamlingsklasserna ArrayList och

Läs mer

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

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Föreläsning 5 (6) Metoder Metoder Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Metoder Deklarera public void setnamn(string n) Åtkomstmodifierare Returtyp

Läs mer

Laborationsanvisning. Geometriska figurer. Steg 2, laborationsuppgift 3. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

Laborationsanvisning. Geometriska figurer. Steg 2, laborationsuppgift 3. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Laborationsanvisning Geometriska figurer Steg 2, laborationsuppgift 3 Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Upphovsrätt för detta verk Detta verk är framtaget i anslutning

Läs mer

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

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14 Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 14 I torsdags & fredags: arrayer Deklaration, initiering, åtkomst Arrayer är referenser Arrayer som parametrar och returvärden Exempel

Läs mer

Java, klasser, objekt (Skansholm: Kapitel 2)

Java, klasser, objekt (Skansholm: Kapitel 2) Java, klasser, objekt (Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Objectorienterad programmering Sida 1 Vad är en klass? En klass är ett sätt att beskriva en mängd objekt och deras gemensamma

Läs mer

Malmö högskola 2008/2009 CTS

Malmö högskola 2008/2009 CTS Laboration 8 Avsikten med laborationen är att du lära dig skapa objekt med hjälp av klasser. Detta är en introduktion till ett objektorienterat tankesätt. Med hjälp av detta tankesätt kan du så småningom

Läs mer

Chapter 4: Writing Classes/ Att skriva egna klasser.

Chapter 4: Writing Classes/ Att skriva egna klasser. Chapter 4: Writing Classes/ Att skriva egna klasser. I dessa uppgifter kommer du att lära dig om hur man definierar egna objekt genom att skriva klasser. Detta är grunden för att förstå objekt orienterad

Läs mer

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

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga

Läs mer

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering. EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade

Läs mer

Objektorienterad programmering Föreläsning 2

Objektorienterad programmering Föreläsning 2 Objektorienterad programmering Föreläsning 2 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Inläsning av data via dialogrutor Repetitioner (While-satsen och For-satsen) Nästlade

Läs mer

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim Agenda (halvdag)

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim  Agenda (halvdag) Objektorienterad programmering Föreläsning 8 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda (halvdag) Objektorienterad programutveckling Algoritmer Algoritmkonstruktionerna Relationer

Läs mer

Laboration 1. Utgåva 1 Gäller från

Laboration 1. Utgåva 1 Gäller från Programering SPO2 Repetition från grundläggande programmering I denna laboration ska vi titta närmare på aritmetiska operatorer, typkonvertering, in- och utmatning av text samt if- och switch-satser. Tänk

Läs mer

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer. Informationsinfrastruktur 7.5 hp Mattias Nordlindh Inledning Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer. Dokumentet består av

Läs mer

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Inledning Starta Microsoft Visual Studio 2005. Välj create Project Välj VB + Vindows Application och välj ett nytt

Läs mer

Kopiering av objekt i Java

Kopiering av objekt i Java 1 (6) Kopiering av objekt i Java Först När du läser detta papper bör du samtidigt studera dokumentationen för klasserna Object, Cloneable (java.lang) och ArrayList (java.util). Mycket blir klarare genom

Läs mer

Objektorienterad programmering Föreläsning 4

Objektorienterad programmering Föreläsning 4 Objektorienterad programmering Föreläsning 4 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Agenda Introduktion till objektorientering Klasser och Objekt Instansvariabler Metoder Introduktion

Läs mer

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN HI1024 Programmering, grundkurs TEN2 2014-10-27 KTH STH Haninge 13.15-18.00 Tillåtna hjälpmedel: En A4 handskriven på ena sidan med egna anteckningar Kursboken C PROGRAMMING A Modern Approach K. N. King

Läs mer

PROGRAMMERING A VB 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL BASIC

PROGRAMMERING A VB 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL BASIC lektion 1 PROGRAMMERING A VB 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL BASIC VB är ett applikationsutvecklingsverktyg med programmeringsspråket är basic, gränssnittet är grafiskt och man arbetar hela tiden

Läs mer

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes Idag statiska metoder och variabler private/public/protected final, abstrakta klasser, gränssnitt, delegering wrapper classes ett lite större exempel Objectorienterad programmering Sida 1 Vad vi vet om

Läs mer

Administrativt. Programmeringsteknik för I1. Dagens program. Objektorienterad programmering

Administrativt. Programmeringsteknik för I1. Dagens program. Objektorienterad programmering Programmeringsteknik för I1 Övning 2 Administrativt Övningsgrupp 2 (Sal E32/D32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kontrollera att ni har fått Lab2 inrapporterad

Läs mer

JAVA Mer om klasser och objektorientering

JAVA Mer om klasser och objektorientering JAVA Mer om klasser och objektorientering Begreppet package - paket Package används när man t ex vill skapa ett eget bibliotek med klasser. Sen är det då meningen att man ska importera detta paket i det

Läs mer

Objektorienterad programmering Föreläsning 5

Objektorienterad programmering Föreläsning 5 Objektorienterad programmering Föreläsning 5 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Agenda UML Övning Mer om metoder Standardklassen String Konstruktorer Överlagrade metoder Standardklassen

Läs mer

Design av interaktiv multimedia. Läs i förväg om det som övningarna kommer att beröra. Träna hemma både före och efter övningarna.

Design av interaktiv multimedia. Läs i förväg om det som övningarna kommer att beröra. Träna hemma både före och efter övningarna. Använd olika lager. Döp lagren! Organisera era bibliotek! Design av interaktiv multimedia Ge era symboler instansnamn för att hitta dem med AS. Nytt för denna kurs: Ingen ActionScript-kod i.fla-filen!

Läs mer

Tentamen , Grundläggande programmering i Java

Tentamen , Grundläggande programmering i Java Institutionen för informationsteknologi och medier Sid:1(3) Grundläggande programmering i Java Martin Kjellqvist Lösningsförslag, lösningsansatser Tentamen 2006-01-20, Grundläggande programmering i Java

Läs mer

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010) Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010) Tid: Onsdagen 15 december 2004, 8:30 till 13:30 Plats: M Ansvarig lärare: Katarina Blom, tel 772 10 60. Läraren besöker tentamen kl

Läs mer

7,5 högskolepoäng. Objektorienterad systemutveckling I Provmoment: Ladokkod: 21OS1B Tentamen ges för: Lycka till! /Peter & Petter

7,5 högskolepoäng. Objektorienterad systemutveckling I Provmoment: Ladokkod: 21OS1B Tentamen ges för: Lycka till! /Peter & Petter Objektorienterad systemutveckling I Provmoment: Ladokkod: 21OS1B Tentamen ges för: ADAEK12h ASYST12h NGIMI12h 7,5 högskolepoäng Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum:

Läs mer

Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt.

Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt. (7) Objektinteraktion Objektorienterad programmering 2 Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt. Mål Efter övningen skall du kunna konstruera ett program med

Läs mer

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

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan. Bankkonto - övning Övningar att göra efter lärardemostration. Filen bankkonto.zip innehåller ett projekt med klassen Bankkonto. Zippa upp denna fil och öppna projektet i BlueJ och skriv vidare på klassen

Läs mer

Tentamen OOP 2015-03-14

Tentamen OOP 2015-03-14 Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning

Läs mer

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering och metoder Introduktion till objektorienterad programmering Markus Saers markus.saers@lingfil.uu.se orientering Deklarativ programmering Beskriver förutsättningarna för något Prolog Imperativ programmering

Läs mer

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Tentamen ID1004 Objektorienterad programmering October 29, 2013 Tentamen för ID1004 Objektorienterad programmering (vilande kurs), 29 oktober 2013, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.

Läs mer

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

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C. Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett

Läs mer

Lösningsförslag övning 2.

Lösningsförslag övning 2. Objektorienterad programmering, Z1 Lösningsförslag övning 2. Uppgift 1. public class SIUnits { public static double yardspermeter = 1.093613; public static double poundperkilo = 2.204623; public static

Läs mer

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

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34 Tentamen Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Lördagen den 30 november 2002 kl 9.00 14.00, salar E33, E34 Inga hjälpmedel 30 poäng ger säkert godkänt, 40 poäng ger betyg 4 50 poäng ger

Läs mer

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.

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. 1 Uppgift 1 Klassen Company Banken FinanceTrust som tidigare bara haft privatpersoner som kunder vill nu bygga ut sitt datasystem så att även företag kan registreras som kunder. Skriv klassen Company som

Läs mer

Systemutvecklare SU13, Malmö

Systemutvecklare SU13, Malmö Systemutvecklare SU13, Malmö Tentamen, delkurs Programmeringsteknik C#, del 1 (30 YH-poäng) Plats: Plushögskolan Malmö Tid: 3 oktober 2014, kl. 9.00-13.00 Tillåtna hjälpmedel: Papper, penna, suddgummi,

Läs mer

Lektion 7. Datateknik A, Java I, 5 poäng

Lektion 7. Datateknik A, Java I, 5 poäng Datateknik A, Syfte: Att kunna skapa och använda fält av både primitiva typer och egendefinierade klasser. Kunna skriva en egen enkel algoritm för sortering samt använda befintliga klasser i Javas API

Läs mer

Objektorienterad Programkonstruktion. Föreläsning 6 23 nov 2015

Objektorienterad Programkonstruktion. Föreläsning 6 23 nov 2015 Objektorienterad Programkonstruktion Föreläsning 6 23 nov 2015 Designmönster Färdiga "recept" för att lösa (del-)problem i struktureringen av ens program Mönster kan beskriva små komponenter eller stora

Läs mer

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Dataingenjörsprogrammet, elektroingenjörsprogrammet och medicinsk teknik KTH Skolan för Teknik och Hälsa Redovisning: Se Kurs-PM om hur redovisningen

Läs mer

Datatyper. Programmering. Att definiera datatyper i Java. Laddade partiklar. (x,y) (Rx,Ry) hh.se/db2004

Datatyper. Programmering. Att definiera datatyper i Java. Laddade partiklar. (x,y) (Rx,Ry) hh.se/db2004 Programmering hh.se/db2004 Föreläsning 11: Objektorienterad programmering - att definiera datatyper Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Datatyper Hittills Vi har lärt

Läs mer

Det finns en referensbok (Java) hos tentavakten 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 Programmeringsteknik I 2012-09-01 Skrivtid: 0900-1200 Hjälpmedel: Java-bok 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

Läs mer

Objektorienterad programmering Föreläsning 6. Mer om klasser och typer Namnrymder Inkapsling Synlighet Statiska variabler Statiska metoder

Objektorienterad programmering Föreläsning 6. Mer om klasser och typer Namnrymder Inkapsling Synlighet Statiska variabler Statiska metoder Objektorienterad programmering Föreläsning 6 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Agenda Mer om klasser och typer Namnrymder Inkapsling Synlighet Statiska variabler Statiska

Läs mer

PROGRAMMERING-JAVA TENTAMINA

PROGRAMMERING-JAVA TENTAMINA PROGRAMMERING-JAVA TENTAMINA Nicolina Månsson 2010-08-16 (Kontaktperson Nicolina Månsson, tel. 0768-530640) Tentamensinstruktioner Poängsättning Hela tentamen omfattar 42 poäng. Poäng för varje uppgift

Läs mer

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Dataingenjörsprogrammet, elektroingenjörsprogrammet och medicinsk teknik KTH Skolan för Teknik och Hälsa Redovisning: Se Kurs-PM om hur redovisningen

Läs mer

Komponenter med COM (och COM+/VC++ 7.0)

Komponenter med COM (och COM+/VC++ 7.0) MÄLARDALENS HÖGSKOLA Komponenter med COM (och COM+/VC++ 7.0) Med Visual C++ 7.0 COM-komponent EI0230 Komponentbaserad applikationsutveckling oktober 2003 Om denna sammanfattning Denna sammanfattning innehåller

Läs mer

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Dataingenjörsprogrammet, elektroingenjörsprogrammet och medicinsk teknik KTH Skolan för Teknik och Hälsa Redovisning: Se Kurs-PM om hur redovisningen

Läs mer

Malmö högskola 2007/2008 Teknik och samhälle

Malmö högskola 2007/2008 Teknik och samhälle Laboration 8 Avsikten med denna laboration är att du lära dig skapa objekt med hjälp av klasser. Detta är en introduktion till ett objektorienterat tankesätt. Med hjälp av detta tankesätt kan du så småningom

Läs mer

Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet

Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet Programmering hh.se/db2004 Föreläsning 4: Fält samt Input/Output Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Lite om reella tal Vad kan man göra med reella tal? Utöver de

Läs mer

DAT043 - Föreläsning 7

DAT043 - Föreläsning 7 DAT043 - Föreläsning 7 Model-View-Controller, mer om klasser och interface (arv, ) 2017-02-06 Designmönstret Observer avläser Observer Observable meddelar Observer avläser En eller flera objekt registrerar

Läs mer

Inledande programmering med C# (1DV402) Introduktion till C#

Inledande programmering med C# (1DV402) Introduktion till C# Introduktion till C# Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll i

Läs mer

trafiksimulering Intro OU5 trafiksimulering

trafiksimulering Intro OU5 trafiksimulering Presentation av obligatoriska uppgiften trafiksimulering Ett lite större program med flera klasser Hur man designar ett system Hur man gör simuleringar 1 Valsätr ravägen Korsningen Dag hammarsköldsväg

Läs mer

Klasshierarkier - repetition

Klasshierarkier - repetition Klasshierarkier - repetition Klasser kan byggas på redan denierade klasser, egna och/eller färdigskrivna, genom: I att klassobjekt används som attribut (instansvariabler): har-relation. Exempel: traksystemet

Läs mer

"Är en"-relation. "Har en"-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde

Är en-relation. Har en-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde Föreläsning 7 "Har en"-relation Arv "Har en" "Är en" Superklassen Object Överskuggning Fordonsexempel Seminarium 2 Relevanta uppgifter Uppgift 31 I exemplet Boll från förra föreläsningen gällde följande

Läs mer

1. Definiera klassvariabel. 2. Instansvariabel för klass. Selektera klass i Browsern och tryck på statics. Definiera protokollnamn, Protocol->Add...

1. Definiera klassvariabel. 2. Instansvariabel för klass. Selektera klass i Browsern och tryck på statics. Definiera protokollnamn, Protocol->Add... Kort beskrivning av klassvariabler, något om instansvariabler för klasser samt en introduktion till gränssnittsbyggande med hjälp av gränssnittsbyggare i VisualWorks 5i 1. Definiera klassvariabel Selektera

Läs mer

TENTAMEN I DATAVETENSKAP

TENTAMEN I DATAVETENSKAP Umeå Universitet Datavetenskap Marie Nordström Thomas Johansson Jürgen Börstler 030124 TENTAMEN I DATAVETENSKAP PROGRAMMERINGSMETODIK OCH PROGRAMMERING I JAVA, 5P. (TDBA63) Datum : 030124 Tid : 9-15 Hjälpmedel

Läs mer

Teoretisk del. Facit Tentamen TDDC (6)

Teoretisk del. Facit Tentamen TDDC (6) Facit Tentamen TDDC30 2013-06-05 1 (6) Teoretisk del 1. (3p) "Snabba frågor" Alla svar motiveras väl. a) Vad skiljer en statisk metod från en icke-statisk? (0.5p) Svar:En statisk metod är associerad till

Läs mer

Introduktion till arv

Introduktion till arv Introduktion till arv 6 INTRODUKTION TILL ARV Arv Generell-Speciell Arv för att utnyttja det vi redan gjort Återanvändning Basklass Härledd klass Varför arv? Inför en subklass för att uttrycka specialisering

Läs mer