Ö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 2012 Huvudförfattare: Peter Klason (peter.klason@physics.gu.se) 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 1 och 2, och 1 poäng i kapitel 3 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 9 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 16 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 (2p) 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 (2p) 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. 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. 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 Fouriertransformen 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 Fordon (2p) Skapa en klass Fordon som beskriver generella egenskaper hos fordon, t.ex. färg och vikt Gör också ett gränssnitt IStyrbar med två metoder SvängVänster och SvängHöger. Skapa två härledda klasser, Båt och Bil, med minst 1 specifik egenskap var. Klasserna ska förstås implementera gränssnittet IStyrbar. Låt klassen Bil ha en delegate av typen delegate void BytOlja(Fordon sender). Skapa en klass Person som har en Bil och som lyssnar på händelser av typen BytOlja. Deklarera en virtuell funktion Passagerare som beskriver hur många passagerare varje fordon kan upplåta. Gör ett testprogram som anropar Passagerare för minst två olika typer av objekt. Förklara begreppen dynamisk typ och dynamisk bindning. Uppgift 2.5 Sorteringsklass (3p) (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-4 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 Webapplikation och Analysis Library (2p) Du ska i denna uppgift skapa en webapplikation, genom att välja File>>New>>Web Site och sedan välja NI ASP.NET Web Site, se figur. När man trycker på knappen Plotta ska en sinus-, fyrkants-, triangel- eller sågtandsvåg plottas i en WaveformGraph. Allt beroende på vad man väljer i ComboBoxen. Grafens titel ska presentera vilken funktion det är som visas. Vidare ska funktionens medelvärde och standardavvikelse beräknas och visas. Medelvärdet ska även visas med en Gaugevisare. Slutligen ska det finnas två valmöjligheter, en för att ändra grafens bakgrundsfärg till blå och en för att lägga till lite vitt brus till den signal som plottas. Switcharna ska ha röd färg om alternativet inte är valt och grön om det är valt. Två tips är att undersöka Measurement Studios Analysis Library och att kolla i Measurement Studios manual, kapitel 5 Getting started with Measurement Studio. Uppgift 3.8 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 15

16 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. Ö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 16

17 ä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 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.9 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.3 24:e januari 2014 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

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

Laborationsanvisning. Digital väckarklocka. Steg 2, laborationsuppgift 2. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Laborationsanvisning Digital väckarklocka Steg 2, laborationsuppgift 2 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

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

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

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

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

PROGRAMMERINGSTEKNIK TIN212

PROGRAMMERINGSTEKNIK TIN212 Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Robin Adams Göteborg 8 June 2018 PROGRAMMERINGSTEKNIK TIN212 Dag: Fredag Datum:

Läs mer

Gissa det hemliga talet

Gissa det hemliga talet Laborationsanvisning Gissa det hemliga talet Steg 2, laborationsuppgift 1 Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Upphovsrätt för detta verk Detta verk är framtaget i

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

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

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

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

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

Ö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

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

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta

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

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

Övningsuppgift. Repeterbara citat. Steg 2. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Övningsuppgift Repeterbara citat 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

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

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

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

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

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 Tentamen Programmeringsteknik I 2016-03-17 Skrivtid: 1400 1900 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Frekvenstabell över tärningskast med C#

Frekvenstabell över tärningskast med C# Instruktion Frekvenstabell över tärningskast med C# Introduktionsuppgift Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Innehåll Du ska följa steg för steg -instruktionen i

Läs mer

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

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga 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

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

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

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

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

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

Lab5 för prgmedcl04 Grafik

Lab5 för prgmedcl04 Grafik Lab5 för prgmedcl04 Grafik Viktigt läs detta först:den här labblydelsen är ganska lång, detta betyder inte att labben tar lång tid.en hel del av lydelsen är anvisning om hur man går tillväga för att kunna

Läs mer

Tentamen, EDAA10 Programmering i Java

Tentamen, EDAA10 Programmering i Java LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen, EDAA10 Programmering i Java 2019 08 21, 08.00 13.00 Anvisningar: Preliminärt ger uppgifterna 25 + 15 + 5 = 45 poäng. För godkänt betyg

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

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

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1 Institutionen för Data- och informationsteknik JSk TENTAMEN OBJEKTORIENTERAD PROGRAMVARUUTVECKLING Övningstentamen 1 OBS! Det kan finnas kurser med samma eller liknande namn på olika utbildningslinjer.

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

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

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

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

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

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

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

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, 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

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

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

Tentamen i Programmeringsteknik I

Tentamen i Programmeringsteknik I UPPSALA UNIVERSITET Institutionen för Informationsteknologi Tentamen i Programmeringsteknik I 091211 Skrivtid: 8-11 Hjälpmedel: Lewis & Loftus, Java Software Solutions eller Skansholm, Java Direkt med

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

Ö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

Inledande programmering med C# (1DV402) Tärningarna ska kastas

Inledande programmering med C# (1DV402) Tärningarna ska kastas Tärningarna ska kastas 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

Läs mer

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

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 Hjälpmedel: Inga hjälpmedel är tillåtna

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

ID1004 Laboration 4, November 2012

ID1004 Laboration 4, November 2012 06-Nov-2012/FK ID1004 Laboration 4, 14-16 November 2012 Beräknad tid ca 1-2 timmar. Instruktionen antar att labben utförs i datasal, med hjälp av den integrerade utvecklingsmiljön Eclipse. Alternativt

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

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

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

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

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

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

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

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 Tentamen Programmeringsteknik I 2017-10-23 Skrivtid: 0800 1300 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

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

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

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

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

TENTAMEN OOP

TENTAMEN OOP TENTAMEN OOP 2013-08-08 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli

Läs mer

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN HI1024 Programmering, grundkurs TEN2 2016-12-22 KTH STH Flemingsberg 8.15-13.00 Tillåtna hjälpmedel: Kursboken C PROGRAMMING A Modern Approach K. N. King helt utan anteckningar Alternativt C från början

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

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

Arv och polymorfism i Java

Arv och polymorfism i Java 1 (5) Arv och polymorfism i Java Objektorienterad programmering 5 Syfte Att ge en introduktion till arvsmekanismen i Java. Mål Efter övningen skall du kunna definiera klasser med arv i Java. förstå hur

Läs mer

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

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 Tentamen Programmeringsteknik I 2018-03-16 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

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

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 Tentamen Programmeringsteknik II 2018-10-19 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

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

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

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser Föreläsning 5-6 Innehåll Exempel på program med objekt Skapa och använda objekt Skriva egna klasser public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600,

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

Föreläsning 5-6 Innehåll

Föreläsning 5-6 Innehåll Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]

Läs mer

OOP Tenta

OOP Tenta Stockholms universitet sid 1 OOP OOP Tenta 2012-01-14 10.00 15.00 Avser kurserna DSK1:OOP och GES:OOP Anvisningar Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt

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

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

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

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

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12 Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 12 I torsdags: Klassen TelefonKostnad Exemplifierar objektorienterad design, metoder, konstruktorer static Standardklassen Math Matematiska

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

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

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

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

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2 Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2 Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok,

Läs mer

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

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 Tentamen Programmeringsteknik I 2017-03-16 Skrivtid: 0800 1300 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

WebViewer Manual för administratör. 2013 Nova Software AB

WebViewer Manual för administratör. 2013 Nova Software AB WebViewer Manual för administratör 2 Manual WebViewer Innehållsförteckning Innehållsförteckning... 2 1 Introduktion... 3 2 Inställningar... 4 2.1 Uppdatera licensinformation... 4 2.2 Inmatning av användaruppgifter...

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

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

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

Windows Forms Winstrand Development

Windows Forms Winstrand Development 2013-01-23 1 Winstrand Development Användargränssnitt Hittills har vi skapat program för kommandoraden. Den bakomliggande koden fungerar som den ska, men vi upptäcker snabbt att programmen är begränsade

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

Polymorfi. Objektorienterad och komponentbaserad programmering

Polymorfi. Objektorienterad och komponentbaserad programmering Polymorfi Objektorienterad och komponentbaserad programmering Polymorfi, mångtydighet Polymorfi innebär att en viss konstruktion kan exekveras på olika sätt Överlagring av metoder ger ett polymorft beteende

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

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

Laboration 1: Figurer i hierarki

Laboration 1: Figurer i hierarki Laboration 1: Figurer i hierarki Bakgrund Två grundläggande tekniker i objektorienterad konstruktion är arv och komposition. Mål Laborationen har flera avsikter: 1. Ge kunskaper i hur program kan organiseras

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

Inledande programmering med C# (1DV402) Introduktion till. eller så här är det tänkt att fungera.

Inledande programmering med C# (1DV402) Introduktion till. eller så här är det tänkt att fungera. Introduktion till kursen eller så här är det tänkt att fungera. Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får

Läs mer

Objektorientering: Lagring, räckvidd och livstid

Objektorientering: Lagring, räckvidd och livstid TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Objektorientering: Lagring, räckvidd och livstid Tre sorters variabler, två sorters metoder Räckvidd och livstid 2 Variabler (lokala och medlemsvariabler)

Läs mer