Tentamen: Tillämpad Programmering (ID1218) :00-12:00
|
|
- Charlotta Månsson
- för 8 år sedan
- Visningar:
Transkript
1 ID1218 Johan Montelius Tentamen: Tillämpad Programmering (ID1218) :00-12:00 Förnamn: Efternamn: Regler Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Instruktioner Tentamen har totalt 200 poäng och skall skrivas på 3 timmar. Antalet poäng på en uppgift skall ge dig en vägledning till hur mycket tid uppgiften kan ta att lösa, planera din tid väl. Läs igenom hela tentamen innan du börjar. Svaren skall lämnas på dessa sidor, använd det utrymme som finns under varje uppgift för att skriva ner ditt svar. Om du inte får plats med sitt svar så kan du använda ytterligare sidor. Dessa sidor skall då vara märkta med namn och personnumer. Det skall även tydligt framgå i svaret under uppgiften att ytterligare sidor har använts. 1
2 Du skall lämna in hela denna tentamen. Svar skall skrivas på svenska. Betyg Erhållna poäng Skriv inte här, detta är för rättningen. n < 100 F 100 n < 120 E 120 n < 140 D 140 n < 160 C 160 n < 180 B 180 n A Uppgift Σ Max Poäng Totalt antal poäng: Betyg: 2
3 1 Funktionell Programmering[totalt 30 poäng] Antag att vi representera en nod i ett binärt träd med tupeln {node, Key, Value, Left, Right} och ett löv med atomen nil (ett tomt träd representeras av ett löv). Paret Key, Value kommer nedan att kallas för ett element. Trädet är ordnat så att alla element i en nods vänstra gren är mindre och alla element i dess högra gren är större. Ordningen bestäms av ett elements nyckel (Key) och vi antar att vi kan jämföra två nycklar med de vanliga operatorerna dvs:<,>,=<,=>,==,=/=. 1.1 Lägg till ett element[5 poäng] Skriv en funktion insert(key, Value, Tree), som tar en nyckel, ett värde och ett träd och returnerar ett nytt träd där elementet Key - Value har lagts till. Trädet skall fortfarande vara ordnat. Det element som läggs till kommer att ha en unik nyckel. insert(key, Value, nil) -> {node, Key, Value, nil, nil insert(key, Value, {node, K, V, L, R}) -> if end. Key < K -> {node, K, V, insert(key, Value, L), R true -> {node, K, V, L, insert(key, Value, R)} 1.2 Traversera trädet[5 poäng] Skriv en funktion traverse(tree), som traverserar ett träd och returnerar en lista av element {Key, Value} som är alla element i trädet ordnade efter storleken på nyckeln. Du får använda dig av append/2 eller operatorn++ utan att definiera dessa. traverse(nil) -> []; traverse({node, _, V, L, R}) -> traverse(l) ++ [V] ++ traverse(r); 1.3 Plocka bort ett element[20 poäng] Skriv en funktion remove(key, Tree) som returnerar ett träd där elementet med nyckel Key har plockats bort. Trädet skall fortfarande vara ordnat. Om trädet inte har något sådant element så returneras ett identiskt träd. 3
4 %% one alternative remove(_, nil) -> nil; remove(key, {node, Key, _, nil, R}) -> R; remove(key, {node, Key, _, L, R}) -> %% select the higest value in left branch {K, V, Rest} = rightmost(l), {node, K, V, Rest, R remove(key, {node, K, V, L, R}) -> if Key < K -> {node, K, V, remove(key, L), R true -> {node, K, V, L, remove(key, R)} end. %% The tree is not empty rightmost({node, Key, Value, L, nil}) -> {Key, Value, L rightmost({node, K, V, L, R}) -> {Key, Value, Rest} = rightmost(r), {Key, Value, {node, K, V, L, Rest}}. 2 Komplexitet[totalt 30 poäng] Nedan finns funktionen filter/1, en funktion som tar bort dubbletter från en lista. Listan antas bestå av literaler och att jämföra två literaler kan göras i konstant tid. filter([]) -> []; filter([h T]) -> [H filter(remove(h, T))]. remove(_, []) -> []; remove(x, [X T]) -> remove(x, T); remove(x, [H T]) -> [H remove(x, T]. 2.1 remove[10 poäng] Vilken är storleksfunktionen (size function), upprepningsfunktionen (recurrence function) T remove (n) och den asymptotiska tidskomplexiteten för funk- 4
5 tionen remove/2? T remove (n)= c+t remove (n 1), storleksfunktionen är längden på listan och komplexiteten är O(n) 2.2 filter[20 poäng] Anta att upprepningsfunktionen för remove/2 är T remove (x), vilka är storleksfunktionen (size function), upprepningsfunktionen (recurrence function) och tidskomplexiteten för filter/1. T f ilter (n)=c+t remove (n 1)+ T f ilter (n 1), storleksfunktionen är längden på listan och komplexiteten är O(n 2 ). Om vi inte hade haft anropet till remove/2 så hade komplexiteten varit O(n) 3 Operationell semantik[totalt 30 poäng] Den operationella semantiken för Erlang kan beskrivas med hjälp av en abstrakt maskin, MiniErlang, vars omskrivningsregler ges i ett appendix. Visa med hjälp av MiniErlang 3.1 att skapa en lista[10 poäng] Visa hur, utan att ta några genvägar, hur uttrycket [1,2] exekveras med hjälp av MiniErlang. [1,2] ; 1 [2] CONS ; [2] CONS ; 1 2 [] CONS CONS ; 1 [] CONS CONS ; 2 1 CONS CONS ; [] 2 1 CONS ; [2] 1 ; [1,2] 3.2 ett program[10 poäng] Antag att vi utökar vår maskin med en regel som kan flytta ett helt uttryck E direkt till värdestacken om detta uttryck är fritt från funktionsanrop och representerar ett värde V. Vi kan alltså gör saker så som: E Es ; Vs Es ; V Vs [1,2] Es ; Vs Es ; [1,2] Vs 5
6 Givet nedanstånde MiniErlang-program, visa exekveringen av uttrycket r([1,2],[]). r([], A) -> A; r([h T], A) -> r(t,[h A]). r([1,2],[]) ; [1,2] [] CALL(r/2) ; [] CALL(r/2) ; [1,2] CALL(r/2) ; [] [1,2] r([2],[1]) ; [2] [1] CALL(r/2) ; [1] CALL(r/2) ; [2] CALL(r/2) ; [1] [2] r([],[2,1]) ; [] [2,1] CALL(r/2) ; [2,1] CALL(r/2) ; [] CALL(r/2) ; [2,1] [] [2,1] ; ; [2,1] 3.3 Utöka maskinen[10 poäng] I den beskrivning av MiniErlang som har givits kan man inte ha mer än ett uttryck i kroppen av en definition. Man kan till exempel inte skriva. foo(x) -> Y = bar(x), zot(x,y). Antag att vi utökar våra definitioner till att inte bara ha en kropp som är ett enkelt uttryck utan även sekvenser som i definitionen ovan. Vi skulle kunna skriva om definitionen av uttryck till följande: E := int [] [E 1 E 2 ] X F(E 1,..., E n ) E := E P=E, E Där P i sista regeln är ett mönster (pattern). Semantiken skall vara att uttrycket E evalueras och matchas med P och, att den substitution som skapas appliceras på E innan E evalueras. Antag att vi har följande regel för att skriva om en LET-operation (detta är alltså en ny regel som vi inte sett förut): 6
7 LET P in E Es ; V Vs S(E) Es ; Vs Där S är den substitution som fås genom att matcha mönstret P med värdet V. Hur skall den regel skrivas som tar hand om ett uttryck på formen P=E, E när den ligger överst på exekveringstacken? P = E, E Es ; Vs E LET P in E Es ; Vs 4 Högre-ordningens funktioner[30 poäng] 4.1 summan av kvadrater[10 poäng] Skriv en funktion som tar en lista med heltal och producerar: summan av, kvadraten av de tal som är jämnt delbara med tre. Du skall använda dig av följande högre ordningens funktioner: filter/2, map/3 och foldl/3 eller foldr/3. Operatorn rem ger resten vid heltalsdivision. Du behöver inte kunna exakt hur dessa funktioner tar sina argument. Om du är osäker så skriv ner dina antagande. sumkdt(list) -> Delbara = filter(fun(x) -> X rem 3 == 0 end, List), Kvadrater = map(fun(x) -> X*X end, Delbara), foldl(fun(x,a) -> X+A end, 0, Kvadrater). 4.2 räkna heltal[10 poäng] Skriv en funktion, total/2, som givet en lista, L, och ett heltal, N, returnerar antingen: {total, Total}, där Total är antalet element innan första förekomsten av 0 plus N eller {more, F}, där F är en funktion som kan tillämpas på ytterligare en lista, Next, om den första listan inte innehåller en 0:a. Funktionen F skall då returnera total(next, N+T) där T är antalet element i listan L. Exempel på hur man kan använda funktionen: > {more, F0} = total([], 0). {more, #Fun<...>} >{more, F1} = F0([1,2,3]). {more, #Fun<..>} 7
8 >F1([4,0,5]). {total, 4} total([],t) -> {more, fun(next) -> total(next,t) end total([0 _], T) -> {total, T total([_ R], T) -> total(r, T+1). 4.3 höger eller vänster[10 poäng] I Erlang, liksom i de flesta funktionella språk, finns de två inbyggda funktionerna foldl och foldr som gör fold på elementen i en lista antingen från vänster (foldl från början) eller från höger (foldr från slutet). Det finns för- och nackdelar med dessa två strategier och det är inte alltid klart vilken som blir mest effektiv. I nedanstående exempel vill vi lägga ihop alla elementen i en lista av listor. Funktionen flatten([[1,2],[3,4,5],[6,7]]) skall returnera[1,2,3,4,5,6,7]. Är det mest effektivt att använda foldl eller foldr i definitionen nedan (vi får vända på argumenten till append/2 för att ordningen skall bli densamma). Argumentera varför den ena skulle vara bättre än den andra. flatten(lists) -> foldl(fun(x,acc) -> append(acc,x) end, [], Lists). eller flatten(lists) -> foldr(fun(x,acc) -> append(x,acc) end, [], Lists) Funktionen foldr har fördelen att den hela tiden gör append av ett element och den ackumulerade listan. Vi har då en funktion som arbetar i O(n). Om man använder foldl så kommer vi att göra append på en ständigt ökande ackumulerad lista och ett element. Eftersom den ackumulerade listans längd är proportionell till n så har vi en komplexitet på O(n 2 ). Att foldl inte använder stackutrymme är en bisak i sammanhanget. 5 Concurrency[totalt 30 poäng] 5.1 en liten cell[10 poäng] Definiera en process i Erlang som innehåller två värden: ett saldo och antalet gånger som man övertrassera sitt konto. Processen skall ha följande beteende för de meddelanden den tar emot: 8
9 {deposit, Amount}: addera Amount till saldot. {withdraw, Amount, From}: dekrementera saldot och skicka ok till processen From {check, From}: skicka{saldo, Saldo} till processen From. account(saldo, Over) -> receive {deposit, N} -> account(saldo+n, Over); {withdraw, N, From} -> From! ok, account(saldo-n, Over); {check, From} -> From! {saldo, Saldo}, account(saldo, Over) end. 5.2 undvik att övertrassera[10 poäng] Antag att vi vill undvika att övertrassera kontot och därför implementerar följande funktion: safe_withdrawal(acount, Amount) -> Account! {check, self()}, receive end. {saldo, Saldo} -> if end Saldo >= Amount -> Account! {withdraw, Amount, self()}, receive end; true -> no ok -> ok Antag att all processer som använder konto måste använda sig av denna funktionen när de gör uttag. Hur säkra är vi på att vi inte övertrasserar kontot, vad kan hända? Om det finns flera som har access till kontot kan två processer kontrollera om det finns pengar på kontot och sedan göra uttag varav det andra uttaget kan vara en övertrassering. 9
10 5.3 ett låst konto[10 poäng] Antag att vi vill ha ensamrätt till ett konto för att göra flera transaktioner mellan flera konto. Vi vill ha ett sätt att låsa ett konto så att enbart den som har låset får göra göra några transaktioner eller kontrollera saldot på kontot. Implementera följande metoder: {lock, From} : skicka{locked, Ref}, där Ref en unik referens (använd make_ref()), till processen From, accepterar sedan enbart förfrågningar med denna referens tills låset släpps. {unlock, Ref} : om kontot är låst och detta är den referens som skapades vid låsningen så återgå till upplåst tillstånd. deposit, withdraw, check: versioner av dessa som hanteras i det låsta tillståndet om de har rätt referens Processen skall alltså ha två tillstånd, ett upplåst där den fungerar som vanligt och ett låst där de enbart hanterar meddelanden med rätt referens. account(saldo, Over) -> receive end. : som ovan : {lock, From} -> Ref = make_ref(), From! {locked, Ref}, locked(saldo, Over, Ref) locked(saldo, Over, Ref) -> receive {deposit, Ref, N} -> locked(saldo+n, Over, Ref); {withdraw, Ref, N, From} -> From! ok, locked(saldo-n, Over, Ref); {check, Ref, From} -> From! {saldo, Saldo}, locked(saldo, Over, Ref); {unlock, Ref} -> account(saldo, Over) end. 10
11 6 Värden, pekare och arrayer[totalt 20 poäng] 6.1 Legala uttryck[10 poäng] Vilka uttryck är legala uttryck i C ++ (som följer standarden C )? Svara enbart ja eller nej. 1. int a[3*7-1]; ja: eftersom 3*7-1 är en konstant i.e int n=4; int a[n]; nej: n är inte en konstant 3. int x=7; int* p = &x; ja: inget problem att ta adressen av x och det är en int* 4. int x=32; int** y = &(&x)-5; nej: vi kan inte ta adressen av en adress (inte ett l-värde) 5. int x=2; int y = *(&(*(&x+1))); ja: men farligt om du inte vet vad du gör 6.2 värdet y:[5 poäng] Givet nedanstående uttryck, vad är värdet på variabeln y? int a[5] = {3,2,-1,5,4 int y = *(&a[3] - 2); Variabeln y får värdet 2 eftersom (&a[3] - 2) är &a[1] och *(&a[1]) är a[1] dvs värdet y:[5 poäng] Givet nedanstående uttryck, vad är värdet på arrayen b? int b[5] = {3,2,-1,5,4 int* p = &b[1]; *(p + 2) = *p -4; Arrayen b[] har värdet 3,2, 1, 2,4 eftersom vi ändrar på b[3] och sätter den till b[1] 4 dvs 2. 11
12 7 Klasser och objekt[totalt 30 poäng] I följande frågor antar vi att vi includerar biblioteket iostream och använder dess namespace std. Givet är också nedanstående definition av klassen M yint. class MyInt { private: int n; public: MyInt(int x = 0): n(x) { cout << "konstruera " << x << endl; } MyInt(const MyInt& c) : n(c.n) { cout << "kopiera " << n << endl; } ~MyInt() { cout << "avallokera " << n << endl; } int get() const { return n;} void set(int x) { n = x; } 7.1 Hej, hej![5 poäng] Vad kommer att skrivas ut på skärmen om vi kör nedanstående program? MyInt take(myint x, MyInt y) { MyInt z; if (x.get() < y.get()) { z.set(x.get()); } else { z.set(y.get()); return z; int main() { MyInt x = 2; MyInt y = 3; MyInt z = take(x,y); cout << z.get() << endl; return 0; } konstruera 2 konstruera 3 kopiera 3 kopiera 2 12
13 konstruera 0 kopiera 12 * avallokera 2 avallokera 3 avallokera 12 * 12 avallokera 12 avallokera 3 avallokera 2 Alla kompilatorer gör dock några optimeringar och inser att man inte skapar en lokal kopia som sedan kopieras när den returneras; detta gör att de två *-märkta raderna kan undvikas. 7.2 kanske vad vi vill[5 poäng] Om vi definierar om funktionen take enligt nedan, vad kommer då att skrivas ut på cout. MyInt take(myint& x, MyInt& y) { MyInt z; if (x.get() < y.get()) { z.set(x.get()); } else { z.set(y.get()); return z; konstruera 2 konstruera 3 konstruera 0 kopiera 12 * avallokera 12 * 12 avallokera 12 avallokera 3 avallokera 2 Som i fallet ovan kommer en kompilator att plocka bort kopierandet och avallokeringen av det lokala objektet z vilket resulterar i att de två *-märkta raderna kan undvikas. 13
14 7.3 på hal is[5 poäng] I nedanstående program gör vi någonting farligt, programmet kommer att kompilera (kanske med en varning) men resultatet är inte helt bestämt, varför? MyInt &take(myint &x, MyInt &y) { MyInt z; if (x.get() < y.get()) { z.set(x.get()); } else { z.set(y.get()); return z; int main() { MyInt x = 2; MyInt y = 3; MyInt &z = take(x,y); cout << z.get() << endl; return 0; } Vi returnerar en referens till ett lokalt objekt som inte lever efter anropet till funktionen take. Anropet z.get() kommer returnera ett odefinierat värde (som i detta fall troligtvis fungerar). 7.4 inte här men där[5 poäng] Givet programmet nedan, vad kommer att skrivas på cout och varför? class IntCell { private: public: int *storedvalue; explicit IntCell(int initialvalue = 0 ) { storedvalue = new int(initialvalue); } int getvalue() const { return *storedvalue; } void setvalue(int val) { *storedvalue = val;} int main() 14
15 { IntCell a(2); IntCell b = a; IntCell c; c = b; a.setvalue(4); } cout << a.getvalue() << endl; cout << b.getvalue() << endl; cout << c.getvalue() << endl; Tre fyror kommer att skrivas ut eftersom all tre objekt delar samma int som är allokerad utanför objekten. Vid kopiering kopieras pekaren till cellen, inte cellen själv. 7.5 inte så bra[10 poäng] I nedanstående definition av IntCell har vi lagt till en metod för operatorn= (dvs tilldelning). För att undvika en minnesläcka så avallokerar vi den allokerade strukturen innan vi kopierar värdet. Vi har kanske inte tänkt på allt och lösningen är kanske inte önskvärd i alla lägen, vad kan gå fel? class IntCell { private: int *storedvalue; public: IntCell(int initialvalue = 0 ) { storedvalue = new int(initialvalue); } IntCell& operator=(const IntCell& c) { delete storedvalue; storedvalue = c.storedvalue; return *this; } int getvalue() const { return *storedvalue; } void setvalue(int val) { *storedvalue = val;} Om vi har ett uttryck x=x, så kommer vi att avallokera den enda strukturen som vi har och sedan kopierar en void-pekare. Objektet x kommer efter 15
16 tilldelningen att ha en pekare storedvalue som pekar på en redan avallokerad struktur. Att avallokera ett objekt är alltid farligt; även om vi gör om destruktorn så att den tar hänsyn till x=xså kan vi tappa bort objekt när vi gör: x= y (y:s objekt avallokers), x=z(x:s objekt, som delas med y blir avallokerat). Appendix Här följer de transformeringsregler som definierar MiniErlang. En literal (integer) på uttrycksstacken flyttas över till värdestacken. i Es ; Vs Es ; i Vs Ett cons-uttryck delas upp, läggs på uttrycksstacken och åtföljs av en CONSinstruktion. [E 1 E 2 ] Es ; Vs E 1 E2 CONS Es ; Vs Ett funktionsanrop delas upp, läggs på uttrycksstacken och åtföljs av en CALLinstruktion. F(E 1,...,E n ) Es ; Vs E En CALL(F/n) Es ; Vs En CONS-instruktion tar de två översta värdena på värdestacken och bildar en cons-cell. Observera att värdena ligger i omvänd ordning på stacken. CONS Es ; V 2 V1 Vs Es ; [V 1 V 2 ] Vs En CALL-instruktion tar sina argument från värdestacken och lägger en kopia av matchande definitions kropp, E på uttrycksstacken där substitutionen från matchningen, S, har applicerats. Observera att värdena ligger på omvänd ordning på värdestacken, det översta värdet är alltså funktionens sista argument. CALL(F/n) Es ; V n... V1 Vs S(E) Es ; Vs 16
Omtentamen: Tillämpad Programmering (ID1218) :00-13:00
ID1218 Johan Montelius Omtentamen: Tillämpad Programmering (ID1218) 2012-06-12 09:00-13:00 Förnamn: Efternamn: Regler Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas
Programmering II (ID1019) :00-12:00
ID1019 Johan Montelius Programmering II (ID1019) 2014-01-16 09:00-12:00 Förnamn: Efternamn: Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.
Tillämpad Programmering (ID1218) :00-12:00
ID1218 Johan Montelius Tillämpad Programmering (ID1218) 2012-12-10 09:00-12:00 Förnamn: Efternamn: Regler Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.
Programmering II (ID1019) :00-12:00
ID1019 Johan Montelius Programmering II (ID1019) 2014-01-16 09:00-12:00 Förnamn: Efternamn: Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.
Tillämpad Programmering (ID1218) :00-13:00
ID1218 Johan Montelius Tillämpad Programmering (ID1218) 2014-03-13 09:00-13:00 Förnamn: Efternamn: Regler Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.
Tillämpad Programmering (ID1218) :00-13:00
ID1218 Johan Montelius Tillämpad Programmering (ID1218) 2013-06-04 09:00-13:00 Förnamn: Efternamn: Regler Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.
Programmering II (ID1019) :00-17:00
ID1019 Johan Montelius Programmering II (ID1019) 2014-03-10 14:00-17:00 Förnamn: Efternamn: Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.
Programmering II (ID1019) :00-11:00
ID1019 Johan Montelius Programmering II (ID1019) 2015-06-11 08:00-11:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren
Programmering II (ID1019) :00-11:00
ID1019 Johan Montelius Programmering II (ID1019) 2015-06-11 08:00-11:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren
Programmering II (ID1019) :00-12:00
ID1019 Johan Montelius Programmering II (ID1019) 2015-03-13 09:00-12:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren
Programmering II (ID1019) :00-12:00
ID1019 Johan Montelius Programmering II (ID1019) 2018-03-13 08:00-12:00 Instruktioner Betyg Svaren skall lämnas på dessa sidor, använd det utrymme som nns under varje uppgift för att skriva ner ditt svar.
Programmering II (ID1019)
ID1019 Johan Montelius Instruktioner Betyg Programmering II (ID1019) 2019-03-08 Svaren skall lämnas på dessa sidor, använd det utrymme som nns under varje uppgift för att skriva ner ditt svar (inte på
Tillämpad programmering
Tillämpad programmering C++ objekt Johan Montelius 1 struct struct Person { string name; int age; ; Person p; p.name = Joe ; p.age = 42; cout
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
TDIU01 Programmering i C++
TDIU01 Programmering i C++ Föreläsning 6 - Klasser Eric Elfving, eric.elfving@liu.se Institutionen för datavetenskap (IDA) Avdelningen för Programvara och system (SaS) Klasser När vi skapade vår lista
Programmering II (ID1019) :00-12:00
ID1019 Johan Montelius Programmering II (ID1019) 2015-03-13 09:00-12:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren
Två fall: q Tom sekvens: () q Sekvens av element: (a b c) ; (sum-rec '(2 4 6)) = 12. q Första elementet uppfyller vissa villkor: (2 a b c)
Programmönster: # Listan som sekvens, Rekursiv process Enkel genomgång av sekvens (element på toppnivån i en lista)) TDDC60 Programmering: abstraktion och modellering Föreläsning 5 Rekursiva och iterativa
TDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 9 juni 2016, kl 14 18
TDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 9 juni 2016, kl 14 18 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt.
Tentamen Datastrukturer, DAT037 (DAT036)
Tentamen Datastrukturer, DAT037 (DAT036) Datum, tid och plats för tentamen: 2017-08-17, 8:30 12:30, M. Ansvarig: Fredrik Lindblad. Nås på tel nr. 031-772 2038. Besöker tentamenssalarna ca 9:30 och ca 11:00.
TDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner
Minnestilldelning (allokering) och frigörande (avallokering) av minne
Pekare i C++ Pekare används mycket i C++. De är bra både för att de tillåter dynamisk minnesallokering och för att de är referenser. En pekarvariabel innehåller en adress till ett element, den pekar på
TDDC74 Programmering: Abstraktion och modellering Dugga 3, kl 14 16, 25 mars 2015
TDDC74 Programmering: Abstraktion och modellering Dugga 3, kl 14 16, 25 mars 2015 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt. Använd
Tentamen Datastrukturer (DAT036/DAT037/DIT960)
Tentamen Datastrukturer (DAT036/DAT037/DIT960) Datum och tid för tentamen: 2016-04-07, 14:00 18:00. Författare: Nils Anders Danielsson. (Tack till Per Hallgren och Nick Smallbone för feedback.) Ansvarig:
TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18
TDDC74 Programmering: Abstraktion och modellering Datortenta - 017-10-7, kl 14-18 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis
TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12
TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt.
Tentamen Programmeringsteknik II Inledning. Anmälningskod:
Tentamen Programmeringsteknik II 2016-01-11 Inledning I bilagan finns ett antal mer eller mindre ofullständiga klasser. Några ingår i en hierarki: List, SortedList, SplayList och ListSet enligt vidstående
Föreläsning 4 Datastrukturer (DAT037)
Föreläsning 4 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-10 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt Se http://wwwcsechalmersse/edu/year/2015/course/dat037 Förra
Programmering II (ID1019) :00-13: hp
ID1019 Johan Montelius Programmering II (ID1019) 2016-03-19 09:00-13:00 7.5 hp Instruktioner Betyg Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.
TDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Pekare och Listor Eric Elfving Institutionen för datavetenskap 31 oktober 2014 Översikt 2/41 Internminne Pekare Dynamiska datastrukturer (Enkellänkade) listor Arbeta
Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 2
Anders Haraldsson 1 Anders Haraldsson 2 Dagens föreläsning Programmering i Lisp Fö 5 - Funktioner - lambda-uttryck (avs 7.1) - funcall och function (avs 7.2) - Högre ordningens funktioner (avs 7.) - Iteratorer
Tentamen Datastrukturer (DAT036)
Tentamen Datastrukturer (DAT036) Datum och tid för tentamen: 2012-08-24, 8:30 12:30. Ansvarig: Nils Anders Danielsson. Nås på 0700 620 602 eller anknytning 1680. Besöker tentamenssalarna ca 9:30 och ca
Dagens föreläsning Programmering i Lisp Fö 5
Anders Haraldsson 1 Dagens föreläsning Programmering i Lisp Fö 5 - Funktioner - lambda-uttryck (avs 7.1) - funcall och function (avs 7.2) - Högre ordningens funktioner (avs 7.3) - Iteratorer - Egenskaper
Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.
Programmering för Språkteknologer II Markus Saers markus.saers@lingfil.uu.se Rum -040 stp.lingfil.uu.se/~markuss/ht0/pst Innehåll Associativa datastrukturer Hashtabeller Sökträd Implementationsdetaljer
Föreläsning 4 Datastrukturer (DAT037)
Föreläsning 4 Datastrukturer (DAT07) Fredrik Lindblad 1 november 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt Se http://wwwcsechalmersse/edu/year/2015/course/dat07 1 Innehåll
Tentamen i Objektorienterad Programmering 5p, Au, D, Fri, Pr, 051019
1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningarna till tentamensuppgifterna sätts ut på kurssidan på nätet i dag kl 13. Denna tenta kommer att vara färdigrättad Må 24/10 och kan då hämtas på
Föreläsning Datastrukturer (DAT036)
Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2013-11-25 Idag Starkt sammanhängande komponenter Duggaresultat Sökträd Starkt sammanhängande komponenter Uppspännande skog Graf, och en möjlig
Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel
Data- och Programstrukturer Provmoment: Ladokkod: Tentamen ges för: Omtentamen NDP011 Systemarkitektprogrammet 7,5 högskolepoäng Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum:
public boolean containskey(string key) { return search(key, head)!= null; }
Tentamen Programmeringsteknik II 2009-05-26 med lösningar Skrivtid: 0900-1200 Uppgifter 1. Programbilagan ListMap.java innehåller en klass som implementerar en avbildning mellan mängden strängar och mängden
TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18
TDDC74 Programmering: Abstraktion och modellering Datortenta - 2018-06-07, kl 14-18 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis
TDDC74 Programmering, abstraktion och modellering DUGGA 2
AID-nummer: Datum: 2011-02-18 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering DUGGA 2 Fredag 18 feb 2011
TDDC74 Programmering: Abstraktion och modellering Tenta, kl 14 18, 11 juni 2014
TDDC74 Programmering: Abstraktion och modellering Tenta, kl 14 18, 11 juni 2014 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt. Använd
TDDC77 Objektorienterad Programmering
TDDC77 Objektorienterad Programmering Föreläsning 5 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Arrayer Metoder Räckvidd och Livslängd Arrayer Vända om inlästa värdena Vända om
Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.
Tentamen Programmeringsteknik II 2015-05-26 Skrivtid: 0800 1300 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 på nytt papper. Lägg
TDDC76 - Programmering och Datastrukturer
TDDC76 - Programmering och Datastrukturer Pekare och Listor Eric Elfving Institutionen för datavetenskap 1 / 20 Översikt Internminne Pekare Dynamiska datastrukturer (Enkellänkade) listor 2 / 20 Internminne
Symboliska konstanter const
(5 oktober 2010 T11.1 ) Symboliska konstanter const Tre sätt som en preprocessormacro med const-deklaration med enum-deklaration (endast heltalskonstanter) Exempel: #define SIZE 100 const int ANSWER =
Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar
Föreläsning 9 Datastrukturer (DAT037)
Föreläsning Datastrukturer (DAT07) Fredrik Lindblad 27 november 207 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt Se http://wwwcsechalmersse/edu/year/20/course/dat07 Innehåll 2
Dagens föreläsning. Diverse Common Lisp. Konstanter, parametrar, globala variabler
21-1-2 1 Dagens föreläsning Hur fungerar ett Lisp system intern struktur av symbolen, tal, listan pekare - delade strukturer - eq minneshantering fri lista - sophämtning/garbage collection stack Diverse
Tentamen Datastrukturer (DAT036)
Tentamen Datastrukturer (DAT036) Datum och tid för tentamen: 2013-12-16, 14:00 18:00. Ansvarig: Nils Anders Danielsson. Nås på 0700 620 602 eller anknytning 1680. Besöker tentamenssalarna ca 15:00 och
TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 29 augusti 2015, kl 8 12
TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 29 augusti 215, kl 8 12 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt.
Programmering i C++ EDA623 Mer om klasser. EDA623 (Föreläsning 6) HT 2013 1 / 26
Programmering i C++ EDA623 Mer om klasser EDA623 (Föreläsning 6) HT 2013 1 / 26 Mer om klasser Innehåll Konstanta objekt Statiska medlemmar Pekaren this Vänner (friends) Överlagring av operatorer EDA623
Tentamen Datastrukturer (DAT036)
Tentamen Datastrukturer (DAT036) Det här är inte originaltesen. Uppgift 6 var felaktigt formulerad, och har rättats till. Datum och tid för tentamen: 2011-12-16, 8:30 12:30. Ansvarig: Nils Anders Danielsson.
Tabeller. Programkonstruktion. Moment 8 Om abstrakta datatyper och binära sökträd. Implementering av tabellen. Operationer på tabellen
Programkonstruktion Moment 8 Om abstrakta datatyper och binära sökträd Tabeller En viktig tillämpning är tabellen att ifrån en nyckel kunna ta fram ett tabellvärde. Ett typiskt exempel är en telefonkatalog:
Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad
1 Datatyper Tobias Wrigstad Det finns flera olika typer av (slags) data Olika datatyper har olika egenskaper. T.ex. är ett personnummer inte ett tal. (Den sista siffran skall stämma enligt den s.k. Luhnalgoritmen
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
Introduktion till arv
Introduktion till arv 6 INTRODUKTION TILL ARV Arv Generell-Speciell Arv för att utnyttja det vi redan gjort Återanvändning Basklass Härledd klass Varför arv? Inför en subklass för att uttrycka specialisering
TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 08-12
TDDC74 Programmering: Abstraktion och modellering Datortenta - 2019-05-27, kl 08-12 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis
Föreläsning 9 Innehåll
Föreläsning 9 Innehåll Binära sökträd algoritmer för sökning, insättning och borttagning, implementering effektivitet balanserade binära sökträd, AVL-träd Abstrakta datatyperna mängd (eng. Set) och lexikon
Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT 2013 1 / 33
Programmering i C++ EDA623 Objektorienterad programutveckling EDA623 (Föreläsning 5) HT 2013 1 / 33 Objektorienterad programutveckling Innehåll Grundläggande begrepp Relationer mellan objekt Grafisk representation
Programmering i C++ EDAF30 Dynamiska datastrukturer. EDAF30 (Föreläsning 11) HT / 34
Programmering i C++ EDAF30 Dynamiska datastrukturer EDAF30 (Föreläsning 11) HT 2014 1 / 34 Dynamiska datastrukturer Innehåll Länkade listor Stackar Köer Träd Säkrare minneshantering (shared_ptr och unique_ptr)
Rekursiva algoritmer sortering sökning mönstermatchning
Anders Haraldsson 1 Anders Haraldsson 2 Dagens föreläsning Programmering i Lisp Fö 6-7 Rekursiva strukturer rekursiva definitioner rekursiva funktioner rekursiva bevis: induktion - rekursion strukturell
Programmeringsmetodik DV1 Programkonstruktion 1. Moment 8 Om abstrakta datatyper och binära sökträd
Programmeringsmetodik DV1 Programkonstruktion 1 Moment 8 Om abstrakta datatyper och binära sökträd PK1&PM1 HT-06 moment 8 Sida 1 Uppdaterad 2005-09-22 Tabeller En viktig tillämpning är tabellen att ifrån
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Prioritetskö Heap Representation som
Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.
Tentamen Programmeringsteknik II 2014-0-27 Skrivtid: 0800 100 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 på nytt papper. Lägg
DD2387 Programsystemkonstruktion med C++ Tentamen 1 Torsdag 7 januari 2016, 14:00-18:00
DD2387 Programsystemkonstruktion med C++ Tentamen 1 Torsdag 7 januari 2016, 14:00-18:00 Introduktion Skriv dina svar på separata papper, dessa scannas in efter inlämning. Du kan skriva på både fram- och
Djup/ytlig kopiering av containrar med referensobjekt. Allmänt. Vad ska container innehålla? 2004-05-10
Djup/ytlig kopiering av containrar med erensobjekt Allmänt Om man inte vet hur många objekt man kommer behöva under exekvering så måste dynamiska lagringsstrukturer användas. stack, kö, lista, träd osv
maxlist-1. Indexerad lista Länkad lista
Datorer och programmering TDB2: Lista - en dynamisk datastruktur Eva Pärt-Enander Vad är en lista? En lista är en sekventiell struktur oftast av likadana saker. Listor denieras i C++ ofta med hjälp av
Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.
Bankkonto - övning Övningar att göra efter lärardemostration. Filen bankkonto.zip innehåller ett projekt med klassen Bankkonto. Zippa upp denna fil och öppna projektet i BlueJ och skriv vidare på klassen
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:
Tentamen Datastrukturer (DAT036)
Tentamen Datastrukturer (DAT036) Datum och tid för tentamen: 2014-04-25, 14:00 18:00. Författare: Nils Anders Danielsson. Ansvarig: Nils Anders Danielsson. Nås på 0700 620 602 eller anknytning 1680. Besöker
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).
Innehåll. Användardefinierade typer. Användardefinierade typer Kategorier. Konstruktorer. Konstruktorer Två sätt att skriva initiering av medlemmar
Innehåll EDAF30 Programmering i C++ 3. Mer om klasser. Funktionsanrop Sven Gestegård Robertz Datavetenskap, LTH 2017 1 Klasser pekaren this const för objekt och medlemmar Kopiering friend inline 2 Funktionsanrop
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:
Tentamen ID1004 Objektorienterad programmering October 29, 2013
Tentamen för ID1004 Objektorienterad programmering (vilande kurs), 29 oktober 2013, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.
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
Föreläsning Datastrukturer (DAT036)
Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2012-11-05 Repetition Förra gången: Listor, stackar, köer. Länkade listor, pekarjonglering. Idag: Cirkulära arrayer. Dynamiska arrayer. Amorterad
Övningsuppgifter kapitel 8
Inst. för Systemteknik Introduktion till programmering (SMD 180), 5 p Övningsuppgifter kapitel 8 1. Listor är en viktig datatyp i Python. Hur definierar kursboken lista? Vad kallas de värden som tillsammans
Signalflödesmodellen. Två (gamla) exempel: Kvadratera alla jämna löv.
Strömmar (streams) De sista dagarna objekt med tillstånd modellerades som beräkningsobjekt med tillstånd. Isådana modeller är tiden modelerad (implicit) som en sekvens av tillstånd. För att kunna modellera
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
Det finns många flaggor till g++,
C++, Övning 1 Jonas Sjöbergh, jsh@nada.kth.se Inge Frick, inge@nada.kth.se Alexander Baltsatsis hur man kompilerar och kör make preprocessor minnesallokering, pekare grundläggande C++, funktioner m.m.
Programmering i C++ EDA623 Dynamiska datastrukturer. EDA623 (Föreläsning 11) HT / 31
Programmering i C++ EDA623 Dynamiska datastrukturer EDA623 (Föreläsning 11) HT 2013 1 / 31 Dynamiska datastrukturer Innehåll Länkade listor Stackar Köer Träd EDA623 (Föreläsning 11) HT 2013 2 / 31 Länkade
Lösningsförslag till exempeltenta 1
Lösningsförslag till exempeltenta 1 1 1. Beskriv hur binärsökning fungerar. Beskriv dess pseudokod och förklara så klart som möjligt hur den fungerar. 2 Uppgift 1 - Lösning Huvudidé: - Titta på datan i
13 Prioritetsköer, heapar
Prioritetsköer, heapar 31 13 Prioritetsköer, heapar U 101. En prioritetskö är en samling element där varje element har en prioritet (som används för att jämföra elementen med). Elementen plockas ut i prioritetsordning
TDDC76 - Programmering och Datastrukturer
TDDC76 - Programmering och Datastrukturer Pekare och Listor Eric Elfving Institutionen för datavetenskap 1 / 21 Översikt Internminne Pekare Dynamiska datastrukturer (Enkellänkade) listor 2 / 21 Internminne
Grundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson
Grundläggande C-programmering del 2 Pekare och Arrayer Ulf Assarsson Läromoment: Pekare Absolutadressering (portar): typedef, volatile, #define Arrayer av pekare, arrayer av arrayer Hemuppgifter: v2. Föregående
Tentamen Datastrukturer (DAT037)
Tentamen Datastrukturer (DAT07) Datum och tid för tentamen: 2016-01-09, 14:00 18:00. Ansvarig: Nils Anders Danielsson. Nås på 0700 620 602 eller anknytning 1680. Besöker tentamenssalarna ca 15:00 och ca
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
Tentamen EDAF30 Programmering i C++
LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenska Tentamen EDAF30 Programmering i C++ 2015 05 06, 8.00 13.00 Hjälmedel: En valfri C++-bok. OH-bilderna från föreläsningarna är inte tillåtna. Du
TDIU20 - Objektorienterad programmering i c++ - föreläsning 4
TDIU20 - Objektorienterad programmering i c++ - föreläsning 4 Pontus Haglund Department of Computer and information science 1 Vad gjorde vi förra gången? Felhantering Operatorer Typkonvertering 2 Grundläggande
TDDC74 Programmering: Abstraktion och modellering Datortenta
TDDC74 Programmering: Abstraktion och modellering Datortenta - 2017-08-26 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis i svårighetsordning.
Föreläsning 2 Datastrukturer (DAT037)
Föreläsning 2 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-02 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037 Tidskomplexitet
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
TDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Underprogram - Funktioner Eric Elfving Institutionen för datavetenskap 18 september 2014 Översikt 2/22 Återblick till satsblocken Funktioner - Namngivna satsblock
Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2015-06-11 Skrivtid: 08:00 13:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Avbildningar och hashtabeller. Koffman & Wolfgang kapitel 7, mestadels avsnitt 2 4
Avbildningar och hashtabeller Koffman & Wolfgang kapitel 7, mestadels avsnitt 2 4 1 2 Mängder i Java 3 Mängd-gränssnittet Set vs. List Mängder får endast innehålla unika element: Metoden.add(E) returnerar
Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p
Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället
TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 17-19
TDDC74 Programmering: Abstraktion och modellering Dugga 2, 2017-04-06, kl 17-19 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis i
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.
Föreläsning 9 Innehåll
Föreläsning 9 Innehåll Träd, speciellt binära träd egenskaper användningsområden implementering Datavetenskap (LTH) Föreläsning 9 HT 2017 1 / 31 Inlämningsuppgiften De föreläsningar som inlämningsuppgiften
Tentamen Grundläggande programmering
Akademin för Innovation Design och Teknik Tentamen Grundläggande programmering Kurskod: DVA103 Datum 2012-06-11 Tid 14.10 16.30 Examinator: Lars Asplund Maxpoäng: 48 Betygsgränser: Betyg 3: 20 Betyg 4: