Tentamen Lösningar EDA698 Realtidssystem
|
|
- Astrid Andersson
- för 10 år sedan
- Visningar:
Transkript
1 LUNDS TEKNISKA HÖGSKOLA 1(7) Institutionen för datavetenskap Tentamen Lösningar EDA698 Realtidssystem , 14:00 19:00 1. Prioriteter, korrekthet a) Realtidsproblemet kvarstår. Det finns ingen garanti att problemet inte uppstår igen. Programmet måste uppfyller både korrekthetskraven (concurrency OCH realtime) oberoende av varandra. b) Till exempel: en högprioriterad styrtråd till en robot kombinerad med en lågprioriterad dataloggningstråd. c) En kritisk sekvens är ett kodavsnitt som är skyddat mot datakorruption, kapplöpning, etc., vanligen genom användning av en synkroniseringsprimitiv som ej tillåter samtidig trådaccess till kodavsnittet (i.e. mutex-semafor). d) Använd synkroniseringsprimitiver! Semafor, monitor, mailbox. (Gärna med lite mera förklaring, såklart). 2. Dödlägesanalys Resursallokeringsgraf: A B M1 M2 M3 C C Grafen visar att dödläge kan uppstå på två ställen (sträckad, prickad). Byt anropen från tråd C genom att låta metoden m1.c1() anropa m2.c4() istf tvärtom. Sedan kan tråd C anropa m1.c1() och därmed få samma hold-wait-ordning mellan M1 och M2 som tråd A, och båda cirklar försvinner. Visas med fördel i en ny graf. Båda cirklar måste utpekas och lösningen måste ta hänsyn till båda fallen för full poäng. 3. Avbrottshantering, kontextbyte
2 2(7) 1. Aktiviteterna (koden) man skriver kan vid exekvering bli avbruten i princip var och när som helst, t o m mitt under exekveringen av en enkel rad kod. Det innebär också att exekveringen av en kritisk sekvens kan avbrytas och pausas under en viss tid, tråden kan dock inte bli tvungen att lämna resursen till någon annan tråd (pre-emptive scheduling innebär inte med automatik resource pre-emption). 2. Följande lista var förväntat: Turn off interrupts Push PC, then CPU registers on stack Save Save stack pointer in process record Get new process record and restore stack pointer from it Switch Pop CPU registers, then PC from stack Turn on interrupts Restore 4. Schemaläggningsanalys, Liu & Layland a) C i : värstafallsexekveringstid för tråd i. T i : periodtid för tråd i. n: antal trådar i systemet. b) Enbart periodiska trådar, ingen blockering, deadline=period, fixprioritetsschemaläggning (RMS). c) 1. Systemet är schemaläggningsbart. 2. Systemet är kanske schemaläggningsbart och kräver exakt analys. 5. Schemaläggningsanalys, RMS Blockeringstider: B D = 0 (lägst prioritet) B C = d = 5 (indirekt blockering) B B = d + c = 9 (indirekt + direkt) B A = d + max(b, c) = 9 (direkt+direkt) Responstider: R A = = 12 R B = 9 = 13 R B = = 16 R B = = 19 R B = = 19 R C = = 10 R C = = 17 R C = = R C = = R D = 6 R D = = 18 R D = R D = R D = = 21 5 = 5 = Alla responstider är lägre än korresponderande periodtid. Systemet är schemaläggningsbart.
3 3(7) 6. Programmering public class BurgerShelf { private HW myhw; private int id; // id-number for shelf private int shelfsize; // number of burgers the shelf can take private int maxtime; // maximum time for a burger in the shelf (in seconds) // Task part a) // stuff for the ring buffer private int currentnumofburgers; private int[] burgertimes; private int nexttoput, nexttoget; // number of old (bad) burgers private int badburgers; // for convenience private int margintime; private int oldestburgertimestamp; /** Constructor for a burger shelf */ public BurgerShelf(HW hw, int shelfsize, int maxsecondsonshelf) { this.myhw = hw; this.id = myhw.getshelfid(); this.shelfsize = shelfsize; this.maxtime = maxsecondsonshelf; // Task part a) // INIT YOUR ATTRIBUTES HERE burgertimes = new int[ shelfsize]; currentnumofburgers = 0; nexttoput = 0; nexttoget = 0; badburgers = 0; margintime = (int)(maxtime*0.); oldestburgertimestamp = 0; Viktigt här: det måste till något attribut för lagring av burgarnas tider (antingen när de kom in, hur länge de får ligga kvar, eller hur länge de har legat i banan; bäst är det förstnämnda, det blir minst omräkning), och man måste på något sätt hålla antalet för gamla burgare uppdaterat. En ringbuffer är ett vanligt array med roterande indices för första och sista, vilket gör det enkelt att lägga till eller plocka bort utan att skifta alla element upp eller ner. Jfr övning 1. // Task part a) // WRITE YOUR METHODS HERE public synchronized void putburger( int timestamp) { while( currentnumofburgers >= shelfsize) wait(); // not necessary if( currentnumofburgers == 0) { oldestburgertimestamp = timestamp; notifyall(); //not necessary, but if there is a block on empty shelf, it is better to have currentnumofburgers++; burgertimes[ nexttoput] = timestamp;
4 4(7) if( ++nexttoput == shelfsize) nexttoput = 0; Viktigt här: synchronized. Spara undan tidstämpeln på det tänkta sättet, dvs hanteringen av den valda datastrukturen måste vara korrekt. public synchronized void removeburger() { while( currentnumofburgers == 0) wait(); // not necessary with reliable hardware if( currentnumofburgers == shelfsize) notifyall(); // not necessary if( badburgers > 0) { badburgers--; myhw.display( "Throw away " + badburgers + "!"); if( badburgers == 0) myhw.stopalarm(); currentnumofburgers--; burgertimes[nexttoget] = -1; if( ++nexttoget == shelfsize) nexttoget = 0; // convenience attribute handling, not necessary if( currentnumofburgers > 0) oldestburgertimestamp = burgertimes[nexttoget]; Viktigt här: synchronized. Hanteringen av gamla burgare; om man tar ut en burgare och det fanns någon gammal, är den som tas bort en gammal burgare. Enbart om antal gamla burgare blir 0 efter borttagningen, ska larmet stängas av. Om det fanns minst en gammal burgare, ska displayen uppdateras, och får evtl visa att 0 burgare ska tas bort. Iom att metoden måste vara synchronized, vilket också checkburgers måste vara, är uppdateringen av displayen möjligt från båda hållen. Ta bort tidstämpeln av den borttagna (äldsta) burgaren på det tänkta sättet, dvs hanteringen av den valda datastrukturen måste vara korrekt. Det är ok att anta att uppdateringen av displayen ifall det inte fanns gamla burgare sköts med nästa anrop av checkburgers, det går såklart också bra att göra den uppdateringen direkt här, när en ny äldsta burgare kommer fram i banan. public synchronized void startalarm() { while( badburgers == 0) wait(); Viktigt här: synchronized (man läser ut värdet av ett attribut). While - wait med rätt villkor. INGET anrop till doalarm, eftersom den då blockerar tråden i en synchronized metod i monitorn och systemet låser sig! public synchronized void checkburgers() { int time = myhw.time(); if( currentnumofburgers > badburgers && (badburgers > 0 time - oldestburgertimestamp >= maxtime)) { if( badburgers == 0) notifyall(); // this one IS necessary! int checkind = nexttoget + badburgers; if( checkind == shelfsize) checkind = 0; while( checkind!= nexttoput && time - burgertimes[checkind] + margintime >= maxtime) { badburgers++; checkind++; if( checkind == shelfsize) checkind = 0; if( badburgers > 0) myhw.display( "Throw away " + badburgers + "!"); else if( badburgers == 0 && currentnumofburgers > 0)
5 5(7) myhw.display( "Time until first burger goes bad: " + (maxtime - (myhw.time()-oldestburgertimestamp))); else if( currentnumofburgers == 0) myhw.display( ""); // end of class BurgerShelf Viktigt här: synchronized. Tidskontroll på första burgaren och följande kontroll enligt marginaltiden på andra burgare. Uppdatering av gamla burgare när det redan finns sådana, dvs kontroll från första burgaren som tidigare INTE varit upptäckt som gammal, men nu faller under marginaltiden. Notify ifall antal gamla burgare går från 0 till något större, för att väcka alarm-tråden. Allmän notify är ok, om än inte nödvändig. // Task part b) // WRITE YOUR "RUN" METHODS HERE public class BurgerInHandler extends Thread { public BurgerInHandler( BurgerShelf bs, HW hw) { while(true) { shw.inputdetected(); bs.putburger(shw.time()); // end of class BurgerInHandler public class BurgerOutHandler extends Thread { public BurgerOutHandler( BurgerShelf bs, HW hw) { while(true) { shw.removaldetected(); bs.removeburger(); // end of class BurgerOutHandler public class AlarmStartHandler extends Thread { public AlarmStartHandler( BurgerShelf bs, HW hw) {
6 6(7) while(true) { bs.startalarm() shw.doalarm(); // end of class AlarmStartHandler Viktigt här: Någon form av loop (while(true) går bra, while(!isinterrupted()) också). Korrekt sekvens i anropen, dvs. anropa den blockerande metoden i hårdvaran (eller i monitorn för larmet), sedan, när den returnerar, alltså tråden väcks, anrop till den registrerande metoden i monitorn, eller (för larmet) den utförande (i sin tur blockerande) monitor. Var det fel i monitorn med blockerande anrop till hårdvaru-metoderna, men på rätt ställe i sekvensen, och trådarna hade utifrån detta konsistenta anrop till monitorn, drogs det inte ytterligare någon poäng här. public class BurgerWatchDog extends Thread { public BurgerWatchDog( BurgerShelf bs, HW hw) { int t, tdiff; t = shw.time(); while( true) { bs.checkburgers(); t += 10; // if counting in seconds (using time()) tdiff = t - shw.time(); if( tdiff > 0) sleep( tdiff * 1000); // end of class BurgerWatchDog Viktigt här: Korrekt loop med tidsuppdatering utan drift, korrekt anrop till sleep (i ms!) och korrekt anrop till checkburgers. public class BurgerCabinet { // Task part c) // WRITE YOUR METHOD HERE public static void main(string[] args) { int numshelf = 2; HW[] thehw = new HW[numShelf]; BurgerShelf[] shelf = new BurgerShelf[numShelf]; BurgerInHandler[] inh = new BurgerInHandler[numShelf]; BurgerOutHandler[] outh = new BurgerOutHandler[numShelf]; AlarmStartHandler[] ash = new AlarmStartHandler[numShelf]; BurgerWatchDog[] wd = new BurgerWatchDog[numShelf]; thehw[0] = new HW(); // one possible assumption thehw[1] = new HW();
7 7(7) shelf[0] = new BurgerShelf( thehw[0], 7, 5*60); shelf[1] = new BurgerShelf( thehw[1], 7, 3*60); for( int i = 0; i<numshelf; i++) { inh[i] = new BurgerInHandler( shelf[i], thehw[i]); outh[i] = new BurgerOutHandler( shelf[i], thehw[i]); ash[i] = new AlarmStartHandler( shelf[i], thehw[i]); wd[i] = new BurgerWatchDog( shelf[i], thehw[i]); inh[i].start(); outh[i].start(); ash[i].start(); wd[i].start(); // end of class BurgerCabinet Viktigt här: Det behövs två instanser av HW. Det var ok att anta vilken konstruktor som helst, bara det blev en instans till varje hylla. Korrekta anrop till alla konstruktorer samt anrop till start() för alla trådinstanser. 7. Design Väldigt kortfattad skiss: Displayen som ska visas för kökspersonalen kan hanteras utifrån informationen i BurgerShelfmonitorn, som måste då också innehålla bör-värdet för antalet burgare i banan. Varje BurgerShelf får ansvar för en egen burgaretyp, vilket i princip redan antyds med uppgift 6 c), då man skulle skapa två hyllbanor med olika tidsperioder. Typbeteckningen kan man tänka sig som ett extra attribut, så att man enkelt kan visa vilken typ av burgare som ska lagas och inte bara "hylla 3 behöver 4 burgare till". Man kan tänka sig att sammanfatta flera BurgerShelfmonitorer i en BurgerCabinet som har koll på vilken bana som är den relevanta vid en viss tidspunkt. Det måste till någon övervakningstråd och en sensor (eller en kölappsliknande lösning) för kunder som kommer in (likt BurgerInHandler). Här måste dock till någon monitor för beställningar och kundhantering (en väntekö-monitor helt enkelt) som hanterar också beräkningar samt matchar uppskattningar mot beställningar. Kassorna borde då få hanteringstrådar på sig, som matar in sina beställningsinformationer till den nya beräkningsmonitorn. Vid ändringar i antalet förväntade burgare i en bana måste då ytterligare en matchande hanteringstråd mata den informationen i den bestående, matchande BurgerShelf-monitorn för hanteringen av det nya bör-värdet (i jämförelse till vad som finns redan i hyllan). Man kan aldrig veta om en person som ställer sig i kön ska lämna en beställning till enbart sig själv eller om det blir till en familj eller t o m större grupp som väntar ute. Det är en faktor som inte går att ta hänsyn till, och kunden måste veta om det. Uppskattningarna kan aldrig bli bättre (mindre osäker) än värden man stoppar in!
Exam Concurrent and Real-Time Programming
LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Exam Concurrent and Real-Time Programming 2018 08 23, 14.00 19.00 1. Vad är prioritetsinversion? Illustrera med ett enkelt exempel. Redogör
Realtidssystem. - Dödläge - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 5
Realtidssystem - Dödläge - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 5 Kursens innehåll motsvarar tidigare omgångar under beteckning EDA698 Stora delar baserad på: Föreläsningsmaterial
Tentamen EDA698 Realtidssystem (Helsingborg)
LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen EDA698 Realtidssystem (Helsingborg) 2014 10 28, 14.00 19.00 Det är tillåtet att använda Java snabbreferens och miniräknare, samt ordbok.
Realtidssystem. - Semaforer, trådsynkronisering - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp 2015-09-02
Realtidssystem - Semaforer, trådsynkronisering - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp 2015-09-02 Stora delar baserad på: Föreläsningsmaterial EDA040 (Klas Nilsson, Mathias Haage) samt EDA698
Concurrency Saker händer samtidigt. Process En instans av ett program
Concurrency Saker händer samtidigt Hur gör vi flera saker samtidigt på en dator? - Dela på en CPU - Flera CPU Flera processer på en dator. Operativsystemet (OS) tilldelar dem körtid (time slices, prioritet)
Tentamen EDA698 Realtidssystem (Helsingborg)
LUNDS TEKNISKA HÖGSKOLA 1(7) Institutionen för datavetenskap Tentamen EDA698 Realtidssystem (Helsingborg) LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Det är tillåtet att använda Java snabbreferens
Realtidssystem. - Introduktion, jämlöpande exekvering - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 1
Realtidssystem - Introduktion, jämlöpande exekvering - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 1 Kursens innehåll motsvarar tidigare omgångar under beteckning EDA698 Stora delar
Realtidssystem. - Semaforer, trådsynkronisering - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 2
Realtidssystem - Semaforer, trådsynkronisering - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 2 Kursens innehåll motsvarar tidigare omgångar under beteckning EDA698 Stora delar baserad
Realtidssystem. - Schemaläggning - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 6
Realtidssystem - Schemaläggning - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 6 Stora delar baserad på: Föreläsningsmaterial EDA040 (Klas Nilsson, Mathias Haage) samt EDA698 (Mats Lilja)
Tentamen Nätverksprogrammering Lösningsförslag
LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen Nätverksprogrammering Lösningsförslag 2012 05 28, 8.00 13.00 Del 1 1. Time To Live (TTL) anger hur många routrar ett multicastpaket
Tentamen EDA698 Realtidssystem (Helsingborg)
LUNDS TEKNISKA HÖGSKOLA 1(10) Institutionen för datavetenskap Tentamen EDA698 Realtidssystem (Helsingborg) 2013 08 23, 08.00 13.00 Det är tillåtet att använda Java snabbreferens och miniräknare, samt ordbok.
Realtidssystem. - Schemaläggning - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 6
Realtidssystem - Schemaläggning - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 6 Kursens innehåll motsvarar tidigare omgångar under beteckning EDA698 Stora delar baserad på: Föreläsningsmaterial
Realtidssystem. - Introduktion, jämlöpande exekvering - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 1
Realtidssystem - Introduktion, jämlöpande exekvering - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 1 Stora delar baserad på: Föreläsningsmaterial EDA040 (Klas Nilsson, Mathias Haage)
Objektorienterad Programkonstruktion. Föreläsning 2 2 nov 2016
Objektorienterad Programkonstruktion Föreläsning 2 2 nov 2016 Objekt - klass Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4 Objekt - klass Objekt - klass Objekt - klass + Objekt - klass public class
TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET
UMEÅ UNIVERSITET Datavetenskap 010824 TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET Datum : 010824 Tid : 9-15 Hjälpmedel : Inga Antal uppgifter : 7 Totalpoäng : 40 (halva poängtalet krävs normalt
Dugga i Grundläggande programmering STS, åk
Grundläggande programmering, STS 1 14 maj 2007 Sida 1/11 Dugga i Grundläggande programmering STS, åk 1 2007-05-14 Skrivtid: 13:00 16:00 Hjälpmedel: Inga Lärare: Sven Sandberg besöker duggan ca 13:45. Tel.
Föreläsning 3. Stack
Föreläsning 3 Stack Föreläsning 3 ADT Stack Stack JCF Tillämpning Utvärdera ett postfix uttryck Stack implementerad med en array Stack implementerad med en länkad lista ADT Stack Grundprinciper: En stack
Trådar. Aktiva objekt
Föreläsning 11 Trådar 1 Aktiva objekt Det är välkänt från vardagslivet att saker händer samtidigt. Aktiva objekt gör saker på eget initiativ, medan passiva objekt endast gör saker när de blir ombedda.
Tentamen Nätverksprogrammering Lösningsförslag
LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Tentamen Nätverksprogrammering Lösningsförslag 2018 03 14, 8.00 13.00 Del 1 1. Applikationslagret levererar data mellan applikationer och till
Realtidssystem. - Meddelanden och händelsehantering - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 4
Realtidssystem - Meddelanden och händelsehantering - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 4 Kursens innehåll motsvarar tidigare omgångar under beteckning EDA698 Stora delar baserad
Tentamen Nätverksprogrammering Lösningsförslag
LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Tentamen Nätverksprogrammering Lösningsförslag 2016 05 31, 8.00 13.00 Del 1 1. a) Vid multicast skickas ett datagram från en sändande dator
Tentamen Nätverksprogrammering Lösningsförslag
LUNDS TEKNISKA HÖGSKOLA 1(7) Institutionen för datavetenskap Tentamen Nätverksprogrammering Lösningsförslag 2014 06 02, 8.00 13.00 Del 1 1. a) TCP (Transmission Control Protocol) och UDP (User Datagram
Fö 5+6 TSEA81. Real-time kernel + Real-time OS
Fö 5+6 TSEA81 Real-time kernel + Real-time OS Stackens användningsområde * JSR / RTS : returadress * Temporärdata (push / pop) void myfunc(void) { int i; // hamnar nog i register int test[10]; // hamnar
Tentamen, EDA501 Programmering M L TM W K V
LUNDS TEKNISKA HÖGSKOLA 1(3) Institutionen för datavetenskap Tentamen, EDA501 Programmering M L TM W K V 2010 04 13, 8.00 13.00 Anvisningar: Denna tentamen består av 4 uppgifter. Preliminärt ger uppgifterna
tentaplugg.nu av studenter för studenter
tentaplugg.nu av studenter för studenter Kurskod Kursnamn UU-76062 Inledande programmering i Java Datum 2014-07-13 Material Tentamen Kursexaminator Betygsgränser Tentamenspoäng G 30; VG 36 40 (VG) Övrig
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-06-04 Skrivtid: 1400-1700 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
Tråd C (ms) T (ms) A 4 16 B 3 10 C 4 25 D 2 12
LUNDS TEKNISKA HÖGSKOLA Datavetenskap Realtidsprogrammering : EDA040 DAT040 Tentamensskrivning - Realtidsprogrammering 2006-06-01, kl 8.00-13.00 Anvisningar: Tillåtna hjälpmedel: inga utöver Java snabbreferens.
Föreläsning 8: Exempel och problemlösning
TDA 545: Objektorienterad programmering Föreläsning 8: Exempel och problemlösning Magnus Myréen Chalmers, läsperiod 1, 2015-2016 De tre senaste föreläsningarna Läsanvisning: kap 2 & 13 meddelanden och
Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:
Omtentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-16, TDA540 Dag: 2017-08-24, Tid: 14.00-18.00 Ansvarig: Examinator: Alex Gerdes Carlo A. Furia Förfrågningar:
Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h
Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h Antalet uppgifter : 2 (20p + 20p = 40 p) ) Lärare, jourhavande lärare :
Tentamensskrivning Nätverksprogrammering (EDA095 - FED) 2004-05-25, kl 8-13
LUNDS TEKNISKA HÖGSKOLA Datavetenskap Nätverksprogrammering 2004 LÖSNINGAR Tentamensskrivning Nätverksprogrammering (EDA095 - FED) 2004-05-25, kl 8-13 DEL 1 - Frågor av teoretisk, principiell eller utredande
Tentamen Nätverksprogrammering Lösningsförslag
LUNDS TEKNISKA HÖGSKOLA 1(7) Institutionen för datavetenskap Tentamen Nätverksprogrammering Lösningsförslag 2008 05 26, 8.00 13.00 1. a) Raden sent = input.read(buffer); läser in så många bytes (dock max
Föreläsning 3. Stack
Föreläsning 3 Stack Föreläsning 3 ADT Stack Stack JCF Tillämpning Utvärdera ett postfix uttryck Stack implementerad med en array Stack implementerad med en länkad lista Evaluate postfix expressions Läsanvisningar
Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.
Tentamen 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.00, sal E33 Tentan har en teoridel och en problemdel. På teoridelen är inga hjälpmedel
Tentamen i Grundläggande programmering STS, åk 1 lördag 2002-05-25
Tentamen i Grundläggande programmering STS, åk 1 lördag 2002-0-2 Skrivtid: 09.00 14.00 Hjälpmedel: Inga Lärare: Anders Berglund. Elena Fersman besöker tentan vid två tillfällen: cirka kl. 10.30 samt cirka
LULEÅ TEKNISKA UNIVERSITET
LULEÅ TEKNISKA UNIVERSITET Tentamen i Objektorienterad programmering och design Totala antalet uppgifter: 5 Lärare: Håkan Jonsson, Andrey Kruglyak, 491000 Resultatet offentliggörs senast: 2010-04-09. Tillåtna
Tentamensskrivning Nätverksprogrammering (EDA095) , kl 8-13
LUNDS TEKNISKA HÖGSKOLA Datavetenskap Nätverksprogrammering 2006 LÖSNINGAR Tentamensskrivning Nätverksprogrammering (EDA095) 2004-05-27, kl 8-13 DEL 1 - Frågor av teoretisk, principiell eller utredande
Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel
Idag Ett exempel Undantag Substitutierbarhet, subtyper, subklasser När val av metod beror av typerna hos två objekt Lite om överlagring Exempel, version 2 Notera: för samtliga figurer gäller: arean av
Föreläsning 7. Träd och binära sökträd
Föreläsning 7 Träd och binära sökträd Föreläsning 7 Träd Binära träd Binärt sökträd som ADT Implementering av binärt sökträd Travestera binärt sökträd Sökning Insättning/borttagning Läsanvisningar och
Detta dokument är ett exempel, cirka hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling
Göteborg, Magnus Myréen, 2014-10- 15 Detta dokument är ett exempel, cirka hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling Fulltentamen vitsord: 3=28p, 4=38p, 5= 48p, max 60p. Max
TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av
Tentamen i Objektorienterad modellering och design Helsingborg
Lunds Tekniska Högskola Datavetenskap Emelie Engström Tentamen EDAF25 2016 10-26, 08:00 13:00 Tentamen i Objektorienterad modellering och design Helsingborg Tentamen består av en teoridel om totalt 5 poäng
Föreläsning 3-4 Innehåll
Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå
Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering
Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-16, TDA540 Dag: 2017-01-09, Tid: 14.00-18.00 Uppgift 1 a) class används för en klassdeklaration
Föreläsning 4 Innehåll. Abstrakta datatypen lista. Implementering av listor. Abstrakt datatypen lista. Abstrakt datatyp
Föreläsning 4 Innehåll Abstrakta datatypen lista Definition Abstrakta datatypen lista egen implementering Datastrukturen enkellänkad lista Nästlade klasser statiska nästlade klasser inre klasser Listklasser
TENTAMEN OOP
TENTAMEN OOP 2014-03-15 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
Föreläsning 4. ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista
Föreläsning 4 Kö Föreläsning 4 ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista ADT Kö Grundprinciper: En kö fungerar som en kö. Man fyller på den längst bak och
Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering
Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-6, TDA540 Dag: 207-0-24, Tid: 4.00-.00 Uppgift a) En abstrakt klass kan inte instansieras,
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
Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst
Outline Objektorienterad Programmering (TDDC77) Föreläsning IV: while, for, do while, switch, arrayer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Ordning Villkorliga hopp I Normalt sett så
Tentamen, EDA501/EDAA20 Programmering M MD W BK L
LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen, EDA501/EDAA20 Programmering M MD W BK L 2017 05 31, 8.00 13.00 Anvisningar: Preliminärt ger uppgifterna 9 + 12 + 10 + 9 = 40 poäng.
Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2015-01-10 Skrivtid: 8.00 13.00 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
Objektorienterad Programkonstruktion. Föreläsning dec 2015
Objektorienterad Programkonstruktion Föreläsning 12 14 dec 2015 Parallella Problem I program med flera parallella exekveringstrådar kan det uppstå problem, fel och andra fenomen som inte förekommer i enkeltrådade
UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.
Översikt Klasshierarkier UML klassdiagram Relation mellan klasser mellan klasser och objekt Association ning ing andling Programmering tillämpningar och datastrukturer 2 UML UML Unified Modeling Language
Tentamen, EDA690 Algoritmer och Datastrukturer, Helsingborg
LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Tentamen, EDA690 Algoritmer och Datastrukturer, Helsingborg 2013 12 19, 8.00 13.00 Anvisningar: Denna tentamen består av 4 uppgifter. Preliminärt
Grundläggande programmering med C# 7,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för: TEN1 NGC011 ADAEK17, ASYST17 samt öppen för alla
Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för: TEN1 NGC011 ADAEK17, ASYST17 samt öppen för alla TentamensKod: Tentamensdatum: 180322 Tid: 09.00 13.00 Hjälpmedel:
Realtidssystem. - Monitorer, synkroniserade metoder - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp 2015-09-14
Realtidssystem - Monitorer, synkroniserade metoder - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp 2015-09-14 Stora delar baserad på: Föreläsningsmaterial EDA040 (Klas Nilsson, Mathias Haage) samt
Tentamen i Objektorienterad modellering och design
Lunds Tekniska Högskola Datavetenskap Tentamen EDA061 2016 10-26, 08:00 13:00 Tentamen i Objektorienterad modellering och design Vid bedömningen kommer hänsyn att tas till lösningens kvalitet. UML-diagram
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-03-14 Skrivtid: 0800-1100 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
public och private Obs: private inte skyddar mot access från andra objekt i samma klass.
public och private En metod som är public får anropas från alla metoder i alla klasser. Ett attribut som är public får avläsas och ändras från alla metoder i alla andra klasser. En metod som är private
Tentamen i Algoritmer & Datastrukturer i Java
Tentamen i Algoritmer & Datastrukturer i Java Hjälpmedel: Skrivhjälpmedel, miniräknare. Ort / Datum: Halmstad / 2010-03-16 Skrivtid: 4 timmar Kontaktperson: Nicolina Månsson Poäng / Betyg: Max 44 poäng
Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering
Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-7, TDA540 Dag: 208-0-3, Tid: 4.00-8.00 Uppgift a) class används för en klassdeklaration som
DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin
DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA för SY2 1999-03-17, kl 14.00-18.00 Hjälpmedel: En lärobok i Java programmering Återlämningstillfälle:
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
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
Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER
Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER Från laboration 3 till 4 I laboration 3 har du implementerat klasser implementerat metoder i klasserna I laboration 4 kommer du att implementera
Lösningsförslag till exempeltenta 2
Lösningsförslag till exempeltenta 2 1 1. Beskriv hur man kan söka igenom en tvådimensionell array. Beskriv pseudokoden och förklara så klart som möjligt hur den fungerar. Lösning: Se laboration 3. - Beskriv
F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander
F5 Selektion och iteration ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Boolska uttryck Boolska uttryck använder sig av jämförelseoperatorer < > = ==!= Resultatets datatyp är boolean
Tentamen, Algoritmer och datastrukturer
UNDS TEKNISKA ÖGSKOA (6) Institutionen för datavetenskap Tentamen, Algoritmer och datastrukturer 23 8 29, 8. 3. Anvisningar: Denna tentamen består av fem uppgifter. Totalt är skrivningen på 36 poäng och
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
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
Tentamen i Algoritmer & Datastrukturer i Java
Tentamen i Algoritmer & Datastrukturer i Java Hjälpmedel: Skrivhjälpmedel, miniräknare. Ort / Datum: Halmstad / 2008-05-27 Skrivtid: 4 timmar Kontakt person: Nicolina Månsson, tel. 035-167487 Poäng / Betyg:
Classes och Interfaces, Objects och References, Initialization
Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class
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ösningsförslag till tentamen Datastrukturer, DAT037 (DAT036), Tiden det tar att utföra en iteration av loopen är oberoende av värdet på
Lösningsförslag till tentamen Datastrukturer, DAT037 (DAT036), 2017-01-11 1. Loopen upprepas n gånger. getat på en dynamisk array tar tiden O(1). member på ett AVL-träd av storlek n tar tiden O(log n).
Kurskod D0010E Datum 2012-05-15 Skrivtid 5tim
LULEÅ TEKNISKA UNIVERSITET Tentamen i Objektorienterad programmering och design Totala antalet uppgifter: 5 Lärare: Håkan Jonsson, 491000, 073-820 1700 Resultatet o entliggörs senast: 2012-05-29. Tillåtna
TENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13:15
TENTAMEN I PROGRAMSPRÅK -- DVG C01 140605 kl. 08:15-13:15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Bilaga A: BNF-definition Betygsgräns: Kurs: Max 60p, Med beröm godkänd 50p, Icke utan beröm godkänd
LÖSNINGSFÖRSLAG TENTAMEN
LÖSNINGSFÖRSLAG TENTAMEN OBJEKTORIENTERAD PROGRAMMERING I JAVA 5P FRISTÅENDE KURS, DAG (ITM - ÖSTERSUND) MÅNDAG 2 JUNI, 2003, KL. 8-13 TID: 5 TIMMAR ANTAL UPPGIFTER: 8 MAX POÄNG: 43 BETYGSKALA: UNDERKÄND
Tentamen Nätverksprogrammering Lösningsförslag
LUNDS TEKNISKA HÖGSKOLA 1(7) Institutionen för datavetenskap Tentamen Nätverksprogrammering Lösningsförslag 2018 04 11, 8.00 13.00 Del 1 1. a) IP-numret identifierar en enskild dator på internet. b) Port-numret
Lösningsförslag till tentamen i EDA690 Algoritmer och Datastrukturer, Helsingborg
LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Lösningsförslag till tentamen i EDA690 Algoritmer och Datastrukturer, Helsingborg 2013 12 19 1. a) En samling element där insättning och borttagning
Del A (obligatorisk för alla)
Del A (obligatorisk för alla) A1. Koden följer garanterat namnkonventionerna. Ringa in rätta svar och lämna in tillsammans med dina övriga svar! a) Hur många objekt skapas av följande kod? World w = new
FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl
Högskolan Dalarna sid 1 av 6 DI-institutionen Hans-Edy Mårtensson Sten Sundin FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 1. Grunderna i
Programmering för språkteknologer II, HT2011. Rum
Programmering för språkteknologer II, HT2011 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv11/pst2/ Kursplan Mål Efter avslutad kurs skall studenten för att förtjäna betyget
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
Laboration 13, Arrayer och objekt
Laboration 13, Arrayer och objekt Avsikten med denna laboration är att du ska träna på att använda arrayer. Skapa paketet laboration13 i ditt laborationsprojekt innan du fortsätter med laborationen. Uppgift
Tung bakgrundsaktivitet t.ex. Aktiva objekt t.ex. Animering, simulering. DD2385 Programutvecklingsteknik Några bilder till föreläsning 9 6/5 2013
DD2385 Programutvecklingsteknik Några bilder till föreläsning 9 6/5 2013 Innehåll Trådar i Java swing- klassen Timer Klient-Server-program Trådar Tråd = enkel process Ett program kan ha flera trådar, flera
Fakulteten för ekonomi, kommunikation och IT. Corba. Datum: Mathias Andersson
Fakulteten för ekonomi, kommunikation och IT Corba Datum: 2007-10-17 Namn: Kurs: Henrik Bäck Mathias Andersson DVGC02 Innehållsförteckning Implementation 3 IDL-fil 3 Server 3 Klient 3 Körning 3 Bilagor
Objektorienterad Programkonstruktion. Föreläsning 11 6 dec 2016
Objektorienterad Programkonstruktion Föreläsning 11 6 dec 2016 Föreläsningen 13/12 Halvtidsrepetition Maila frågor som ni vill att jag tar upp! ccs@kth.se Processer Vad vi i dagligt tal menar när vi pratar
Tommy Färnqvist, IDA, Linköpings universitet
Föreläsning 9 Pekare, länkade noder, länkade listor TDDD86: DALP Utskriftsversion av föreläsning i Datastrukturer, algoritmer och programmeringsparadigm 25 september 2015 Tommy Färnqvist, IDA, Linköpings
F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander
F8 - Arv ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Arv och subklasser Klasser innehåller attribut och beteenden En subklass ärver dessa från föräldern Detta ger: Återanvänd kod
Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista
Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista Abstrakt stack Abstrakt kö Länkade listor Abstrakta datatyper Det är ofta praktiskt att beskriva vilka operationer man vill kunna göra på sina
Recitation 4. 2-D arrays. Exceptions
Recitation 4. 2-D arrays. Exceptions Animal[] v= new Animal[3]; 2 declaration of array v Create array of 3 elements v null a6 Assign value of new-exp to v Assign and refer to elements as usual: v[0]= new
Tentamen LÖSNINGSFÖRSLAG. c) Tilldelningen C x = new D() ger kompileringsfel eftersom klassen D är abstrakt.
Tentamen 101213 - LÖSNINGSFÖRSLAG Uppgift 1. a) Ger utskriften c( ) in D b) Ger utskriften true c) Tilldelningen C x = new D() ger kompileringsfel eftersom klassen D är abstrakt. d) Ger utskriften b( )
F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander
F12 - Collections ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Collections (samlingar) En collection är ett objekt som fungerar som en samling av andra objekt En collection erbjuder
Lösningsförslag till tentamen Datastrukturer, DAT037,
Lösningsförslag till tentamen Datastrukturer, DAT037, 2018-04-05 1. q.dequeue() tar O(1) (eventuellt amorterat) s.contains(x) tar O(1) pq.add(x) tar O(log i) I värsta fall exekveras innehållet i if-satsen.
Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)
Outline för D2, ICT2, E3 och Mek3 Nicholas Wickström Högskolan i Halmstad Sverige p.1/18 Förra föreläsningen Specifikation -Kravspecifikation -Funktionsspecifikation -Blockdiagram Operativsystem -Grunder,
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Abstrakta datatyper Listor Stackar
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Abstrakta datatyper Listor Stackar
DAT043 Objektorienterad Programmering
DAT043 Objektorienterad Programmering Detta är en exempeltenta som innehåller gamla tentauppgifter av ungefär liknande slag som ni kan förvänta er se på ordinarie tenta i Del 1 respektive Del 2. Dock är
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