Nada KTH 2003 okt 23 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13

Storlek: px
Starta visningen från sidan:

Download "Nada KTH 2003 okt 23 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13"

Transkript

1 Nada KTH 2003 okt 23 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13 Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 9 10p +(14p + 12p +10p+ 14p) + (8p +12p + 12p +8p) = 10p + 50p + 40 p = 100p Lärare, jourhavande lärare : Leif Kusoffsky Tillåtna hjälpmedel: Fokker : Functional programming Brna : Prolog Programming Del : Paradigm allmänt. 1. a) Kan man programmera icke-objekt-orienterat i Java, dvs som i ett klassikt imperativt språk? 1) Nej, går ej att skriva program som är i stort ekvivalenta med t ex Pascal-program. X) Ja, om klasserna enbart har variabler och funktioner deklarerade utan static. 2) Ja, i stort sett om funktioner är deklarerade som static. b) Om man programmerar objekt-orienterat i Java 1) har aldrig subklasser egna olika implementaioner av metoder definierade i en superklass. X) har ibland subklasser egna olika implementaioner av metoder definierade i en superklass. 2) har alltid subklasser egna olika implementaioner av metoder definierade i en superklass. c) Vid ett anrop x.f(..) i Java kan 1) x vara en variabel som innehåller en primitiv typ. X) olika metoder f anropas vid körningen, beroende på vilket sots objekt x refererar. 2) f(..) ej vare en metod med returtypen void. d) Vid anrop av klassmetoder X.f(..) i Java 1) måste X vara namnet på en objektreferens. X) kan X vara namnet på en klass. 2) klassmetoder kan ej anropas med denna syntax. e) Vid ett anrop av X.f(..) i ett icke-objektinriktat språk 1) måste X vara namnet på en objektreferens. X) kan X vara namnet på något i språket som används för modularisering (t ex funktionpaket). 2) Sådana uttryck finns inte i något icke-objektinriktat språk. f) I OO-design bör man enligt mångas åsikt i början av programutvecklingen fråga sig 1) MED VAD, dvs vilka sorts föremål i användarens värld skall jag modellera? X) VAD, dvs vilka funktioner vill användaren att programmet ska ha? 2) HUR, dvs hur skriver jag funktionerna som användaren vill att programmet skall ha? g) Vilka av följande begrepp brukar förknippas med moderna (icke-oo) imperativ språk? "loopar" (dvs snurror, slingor), arv, pekare, rekursion, dynamisk bindnig, unifiering. h) Gruppera i paradigmen imperativa, objektorienterade, funktionella och logiska: Haskell, C, Prolog, C++, Eiffel, Java, Pascal, Basic, Fortran, assemler, Smalltalk, Simula. (10p).

2 Del : Funktionell programmering. I alla deluppgifterna, använd Haskell och skriv typen för de identifierare du definierar. 2. Skriv i i Haskell en funktion swaplist som skiftar komponeterna i alla par i en lista. De par där båda komponeterna är lika skall ej finnas med i resultatlistan. Exempel : Main> swaplist [(5,4),(15,14),(2,2),(14,14),(35,34)] [(4,5),(14,15),(34,35)] a) Skriv en lösning som vare sig använder högre ordningens funktioner, ackumulering i parameter, eller listomfattning. b) Skriv en lösning som använder ackumulering i parameter. c) Skriv i i Haskell en funktion swap som skiftar komponeterna i ett par. d) Skriv i i Haskell en funktion pneq som kontrollerar att komponeterna i ett par är olika. e) Skriv en lösning för swaplist som använder map, filter, swap och pneq. f) Skriv en lösning för swaplist som använder listomfattning. g) Skriv en lösning för swaplist som använder map, filter och lamda-uttryck (anonyma funktioner) i stället för swap och pneq. (14p) 3. Implementera i Haskell en DT (datatyp) Square för schackrutor i en modul Square. Datatypen skall ha de funktioner som framgår av signaturdiagrammet nedan. Bool diag1, diag2 Square show String == /= betweensquare diag1 fromsquare tosquare returnerar om tosquare är snett ett steg uppåt eller nedåt, vänster eller höger, från fromsquare. Funktionen diag2 returnerar analogt för två steg. Funktionen betweensquare returnerar mellanliggande ruta om diag2 fromsquare tosquare är True, annars error med lämpligt felmedellande. fromsquare betweensquare tosquare diag2 fromsquare tosquare är true Funktionerna kan användas för dragen i ett damliknade spel, diag1 när man går till tomma rutor, diag2 när man "hoppar" över en enda motståndarpjäs. (12p)

3 4. Implementera i Haskel en DT (datatyp i en modul) Piece för att representera pjäserna i ett damliknade spel. Det finns bara en sorts pjäs, fast en uppsättning vita och en uppsättning svarta. Modulen implementerar två datatyper: Colour som indikerar om en pjäs är vit (WhiteC) eller svart (BlackC). Piece som är en pjäs/tom ruta. T ex är Pi WhiteC en vit pjäs, NoPiece är en tom ruta. Datatypen skall också ha funktionen othercolour som framgår av signaturdiagrammet: othercolour WhiteC blir BlackC, othercolour BlackC blir WhiteC. (10p) othercolour Colour WhiteC BlackC Pi Piece NoPiece 5. Implementera i Haskel en DT (datatyp i en modul) Board för att representera damspel. Modulen implementerar en datatyp Board. Definiera typen som data Board = Board [(Square, Piece)] deriving Show Skulle man kunna använda newtype istället för data? Konsekvenser? Skulle man kunna använda type istället för data? Konsekvenser? Ett värde med typen Board innehåller en lista med 64 element. Varje element är ett par. Paren består av en ruta (Square) och schackpjäsen (Piece) på den rutan. Tomma rutor har "pjäsen" NoPiece. Datatypen skall också ha ytterligare två funktioner, som framgår av signaturdiagrammet: Piece (,) [] Board Board show String Square Bool 1 pieceat legalmove Piece 1 Funktionen pieceat returnerar pjäsen på en viss ruta i ett damspel. Funktionen legalmove returnerar om en ("riktig") pjäsen på en viss ruta i ett damspel får flytta till en annan ruta. Det är tillåtet att flytta diagonalt ett steg till en tom ruta, och att flytta diagonalt tvårutor till en tom ruta om mellanliggande ruta innehåller en motståndarpjäs. (14p)

4 Del : Logikprogrammering. 6. Skriv ett program i Prolog för select(x,harxs,ettmindrexs) med betydelsen att listan EttMindreXs är resultat av att en förekomst av X har tagits bort från HarXs. (8p) 7. Skriv i Prolog ett generate-and-test-program som löser följande problem: I en kappsegling deltar 9 båtar. Volo placerade sig mellan Maybee och Bonnie. Maybee var just före Sylvia. Spray var första båt efter Bigfoot. Dristigheten placerade sig mellan Patricia och Necesse. Spray kom precis innan Necesse. Bigfoot kom precis mitt i resultatlistan Hur ser resultatlistan ut? (12p) Tips: Man kan ordna båtarna i resultatordning. Med "A mellan B och C" menas att båtarna har följden BAC eller CAB. 8. Skriv i Prolog ett program som löser följande problem: Vilka färdvägar (rutter) finns det mellan två orter. De orter som är aktuella finns i nedanstående avståndstabell. För full poäng ska man även få reda på den totala avståndet för rutten och vilka mellanliggande orter som passeras. Vidare skall för full poäng en förbindelse mellan två orter bara användas en gång. (12p) dist([d(stockholm, orebro, 197), % Färdigt faktum i Prolog, får användas d(stockholm, jonkoping, 335), % i lösningen norrtalje d(orebro, goteborg, 283), orebro d(jonkoping, goteborg, 149), d(orebro,jonkoping, 200), 200 stockholm d(stockholm, norrtalje, 75)]). goteborg jonkoping Exempel på körningar:?- route(goteborg, stockholm, D, Vs). D = 480, Vs = [orebro]? ; D = 484, Vs = [jonkoping]? ; no Tips och kommentarer: För full poäng skall man kunna använda avståndstabellen "åt båda hållen". Vidare är det bra om man kan undvika att få lösningar som?- route(goteborg, stockholm, D, Vs). D = 818, Vs = [orebro,jonkoping]? dvs om det i tabellen finns en direkt förbindelse mellan två orter nöjer sig programmet med detta och söker ej omvägar. Ett sätt att bara använda en förbindelse mellan två orter en gång är att "nästa gång använda en avståndstabell med förbindelsen bortagen".

5 9. a) Om Prolog misslyckas med att unifiera argumenten i ett delmål f(..) med huvudet (konklusionen) i den första av flera klausuler som definierar predikatet f så 1) svarar Prolog yes. X) svarar Prolog no. 2) försöker Prolog unifiera argumenten med huvudet i den andra klausulen för predikatet f. b) Om ett Haskell-system, t ex hugs, misslyckas med att passa ("matcha") argumenten i ett anrop f.. med vänsterledet i den första av flera ekvationer som definierar funktionen f så 1) svarar hugs med Program error. X) returneras False. 2) försöker hugs "matcha" argumenten med vänsterledet i den andra ekvationen för funktionen f. c) Om Prolog misslyckas med att satisfiera ett delmål g i en konjunktion av delmål.., h(..), g(..), f(x) så 1) försöker Prolog på nytt att få delmål h att lyckas. X) svarar Prolog no. 2) svarar Prolog yes. d) Om ett Haskell-system, t ex hugs, vid en körning får resultatet False vid beräkningen av funktionanropet g(x)i detta uttryck med funktionanrop h(x) && g(x) && f(x) så 1) anropas h(x) på nytt. X) blir hela uttrycket True om uttrycket f(x), som beräknas, blir True. 2) blir hela uttrycket False 8p)

6 Uppmaning: Svara gärna på kursenkäten, som du kan komma åt från kursidan! Förfrågan: Kan du tänka dig att vara labbassistent nästa år under läsperiod 1 i kursen programmeringsparadigm i D2? Kryssa gärna i ett eller båda alternativen. (Naturligtvis ej bindande) O I Haskelldelen av kursen O I Prologdelen av kursen Hur kan jag kontakta dig (tex e-pos, tel ): Om du kryssat, bifoga denna sida med svaren på din tentamen!

7 Förslag till svar tenta programmeringsparadigm 2003 okt 23. < 50 U Gjort steg 9 i shacket <65 3 <80 4 <100 5 Ej steg 9 <75 3 <90 4 <100 5 Del paradigmer allmänt. 2 X X X X 1 loopar, pekare, rekursion OO : C++ Eiffel Java Smalltalk Simula Funktionellt : Haskell Logik : Prolog Imperativa: Övriga Del funktionell programmering. swaplist :: Eq a => [(a, a)] -> [(a, a)] -- 2 swaplist [] = [] -- a swaplist ((a, b) : abps) a == b = swaplist abps otherwise = (b, a):swaplist abps swaplist list = sl list [] -- b where sl :: Eq a => [(a, a)] -> [(a, a)] -> [(a, a)] sl [] acc = acc sl ((a, b) : abps) acc a == b = sl abps acc otherwise = sl abps (acc ++ [(b, a)]) swap :: (a, b) -> (b, a) -- c swap (a, b) = (b, a) pneq :: Eq a => (a, a) -> Bool -- d pneq (a,b) = a /= b swaplist :: Eq a => [(a, a)] -> [(a, a)] -- e swaplist list = map swap (filter pneq) list) swaplist list = [ (b, a) (a,b) <-list, pneq (a,b)] -- f swaplist list = map (\(a, b) -> (b, a)) (filter (\(a, b) -> a /= b) list) module Square where -- 3 data Square = Sq Int Int deriving (Show, Eq) --fixar show (==) (/=) Saknas - 2p -- g diag1, diag2 :: Square -> Square ->Bool -- predicates for geometrical relations diag1 (Sq i1 j1) (Sq i2 j2) = (abs (i1-i2) == 1 ) && (abs (j1-j2) == 1) diag2 (Sq i1 j1) (Sq i2 j2) = (abs (i1-i2) == 1 ) && (abs (j1-j2) == 1) betweensquare (Sq i1 j1) (Sq i2 j2) diag2 (Sq i1 j1) (Sq i2 j2) = Sq ((i1 + i2) div 2) ((j1 + j2) div 2) otherwise = error "wrong squares in betweensquare" module Piece where -- 4 data Colour = WhiteC BlackC deriving (Show, Eq) data Piece = Pi Colour NoPiece deriving (Show, Eq) othercolour :: Colour -> Colour othercolour WhiteC = BlackC othercolour BlackC = WhiteC

8 module Board (Board(..) where -- 5 import Piece import Square newtype Board = Board [(Square, Piece)] -- newtype ok pga en konstr. snabbare deriving Show -- type Board = [(Square, Piece)] skulle gå, ändringar krävs, -- ingen ny typ. Dock fortfarande ADT med rätt export -- legalmove ; checks if move in draughts (checkers) is ok. om Piece samnas - 1p legalmove :: Piece -> Square {-from -} -> Square {-to -} -> Board -> Bool legalmove (Pi colour) fromsquare tosquare board = ((diag1 fromsquare tosquare ) && (pieceat tosquare board == NoPiece )) ((diag2 fromsquare tosquare ) && (pieceat tosquare board == NoPiece) && (pieceat (betweensquare fromsquare tosquare) board == Pi (othercolour colour) )) legalmove NoPiece _ = False -- saknas - 1p pieceat :: Square -> Board ->Piece -- Glömma Board nedan / i andra lösn, - 2p pieceat sq (Board ch) = onlyone [icm (isq, icm) <- ch, isq == sq] onlyone :: [Piece] -> Piece onlyone (cm:[]) = cm onlyone _ = error "error in onlyone, pieceat" Del logik programmering. select(x, [X Xs], Xs). % 6 select(x, [Y Ys], [Y Zs]) :- select(x, Ys, Zs). % Ls is a result list of 9 boats in a race % 7 race(ls) :- Ls = [_, _,_,_, bigfoot, spray, _, _, _], follows(maybee, sylvia, Ls), follows(spray, necesse, Ls), between(necesse, dristigheten, patricia, Ls), between(maybee, volo, bonnie, Ls). follows(x,y,[x,y _]). follows(x,y,[_ Zs]):- follows(x,y,zs). between(x,y,z,[x, Y, Z _]). between(x,y,z,[z, Y, X _]). between(x,y,z, [_ Us]) :- between(x,y,z, Us). /* Körning:?- race(rs). Rs = [bonnie,volo,maybee,sylvia,bigfoot,spray,necesse,dristigheten,patricia]? ; no */ sel(d(a,b,d), Ds, Ds1) :- select(d(a,b,d), Ds, Ds1). %8 sel(d(a,b,d), Ds, Ds1) :- select(d(b,a,d), Ds, Ds1). % Rättad sist % De som redan distance(a, B, D, Ds, []) :- sel(d(a,b,d), Ds, _ ),!. % har en säker 5 distance(a, B, D, Ds, [V Vs]) :- % har jag sel(d(a,v,d1), Ds, Ds1 ), % poängsatt distance(v, B, D2, Ds1, Vs), D is D1+D2. % ungefärligt route(a, B, D, Vs) :- dist(ds), distance(a, B, D, Ds, Vs) %9

Nada KTH 2004 jan 12 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13

Nada KTH 2004 jan 12 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13 Nada KTH 2004 jan 12 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13 Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 9 10p +( 5p + 14p +15p+ 16p) + (12p +10p + 10p +8p) = 10p + 50p

Läs mer

Del : Paradigmer allmänt.

Del : Paradigmer allmänt. Nada Tentamensdag 2003 jan 13 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 3 (Haskell) + 4 (Prolog) = 5p +(15p + 15p +20p) + (10p +12p + 15p +8p) = 5p + 50p + 45 p = 100p

Läs mer

Del : Funktionell programmering. I alla deluppgifterna, använd Haskell och skriv typen för de identifierare du definierar.

Del : Funktionell programmering. I alla deluppgifterna, använd Haskell och skriv typen för de identifierare du definierar. Nada Tentamensdag 2005 jan11 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 10p +(6p + 10p +14p+ 20p) + (9p +11p + 8p +12p) = 10p + 50p + 40 p

Läs mer

Nada Tentamensdag 2004 okt 18 Tentamen Programmeringsparadigm Skrivtid 5 h

Nada Tentamensdag 2004 okt 18 Tentamen Programmeringsparadigm Skrivtid 5 h Nada Tentamensdag 2004 okt 18 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 10p +(6p + 18p +6p+ 20p) + (10p +12p + 8p +10p) = 10p + 50p + 40 p

Läs mer

Del : Paradigmer allmänt.

Del : Paradigmer allmänt. Nada Tentamensdag 2003 aug 25 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 5p +(12p + 15p +5p+ 20p) + (10p +14p + 8p +11p) = 5p + 52p + 43 p

Läs mer

Del : Funktionell programmering. I alla deluppgifterna, använd Haskell och skriv typen för de identifierare du definierar.

Del : Funktionell programmering. I alla deluppgifterna, använd Haskell och skriv typen för de identifierare du definierar. Nada Tentamensdag 2004 aug 23 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 10p +(5p + 20p +5p+ 20p) + (10p +12p + 8p +10p) = 10p + 50p + 40 p

Läs mer

Föreläsning 9 i programmeringsparadigm. Unifiering (Brna Chapter 4.1).

Föreläsning 9 i programmeringsparadigm. Unifiering (Brna Chapter 4.1). Föreläsning 9 i programmeringsparadigm. Unifiering (Brna Chapter 4.1). Repetition: I Haskell är mönster-passning (pattern-matchning) jättepraktiskt: När vi gör ett anrop av en funktion med ett visst argument

Läs mer

Föreläsning 8. newtype Chess = Chess [(Square, Chessman)] -- data ist f newtype OK -- data istället för newtype krävs om >1 konstruerare.

Föreläsning 8. newtype Chess = Chess [(Square, Chessman)] -- data ist f newtype OK -- data istället för newtype krävs om >1 konstruerare. Föreläsning 8. Typer och programmeringsstil i Haskell. När vi definerade ett schack gjorde vi så här: newtype Chess = Chess [(Square, Chessman)] -- data ist f newtype OK deriving Show -- newtype effektivare

Läs mer

Kungliga Tekniska Högskolan Ämneskod 2D1370 Tentamensdag 2001-maj-31 Tentamen i Funktionell Programmering Skrivtid 4 h

Kungliga Tekniska Högskolan Ämneskod 2D1370 Tentamensdag 2001-maj-31 Tentamen i Funktionell Programmering Skrivtid 4 h Kungliga Tekniska Högskolan Ämneskod 2D1370 Nada Tentamensdag 2001-maj-31 Tentamen i Funktionell Programmering Skrivtid 4 h Antalet uppgifter : 4 ( 8p +10p + 10p +12p = 40 p) Lärare, jourhavande lärare

Läs mer

DD1361 Programmeringsparadigm. Carina Edlund

DD1361 Programmeringsparadigm. Carina Edlund DD1361 Programmeringsparadigm Carina Edlund carina@nada.kth.se Funktionell programmering Grundidéen med funktionell programmering är att härma matematiken och dess funktionsbegrepp. Matematiskt funktionsbegrepp

Läs mer

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

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

Läs mer

Föreläsning 4 (och 5?) i programmeringsparadigm.

Föreläsning 4 (och 5?) i programmeringsparadigm. Föreläsning 4 (och 5?) i programmeringsparadigm. Högre ordningens funktioner på listor; funktioner som argument: map, filter. (Fokker 3.1.3, C&K p 37, 38) map -- förändra alla element i en lista på samma

Läs mer

Föreläsning 5 i programmeringsparadigm.

Föreläsning 5 i programmeringsparadigm. Föreläsning 5 i programmeringsparadigm. λ-notation (lamda-notation, anonyma funktioner). Hutton 4.5. (Fokker 2.3.4.) Vi kan om vi vill definiera hjälpkonstanter, t ex i denna funktiondefinition : kommunalskatt

Läs mer

Föreläsning 8. Paradigmöversikt, paradigmhistoria, paradigmgeografi. Se även föreläsning 1.

Föreläsning 8. Paradigmöversikt, paradigmhistoria, paradigmgeografi. Se även föreläsning 1. Föreläsning 8. Paradigmöversikt, paradigmhistoria, paradigmgeografi. Se även föreläsning 1. Användning av Prolog. Haskell kan i princip användas till mycket, men grafiska paket, kopplingar till färdiga

Läs mer

Föreläsning 4 i programmeringsparadigm.

Föreläsning 4 i programmeringsparadigm. Föreläsning 4 i programmeringsparadigm. OBS! Schemat ändrades den 30 augusti.,om du tryckte ut schemat tidare, märk att det är ingen föreläsning 2005 sept 14 onsdag, däremot 2005 sept 20 13.00 i sal F1.

Läs mer

Tentamensdag 2002-aug-20 Tentamen i Funktionell Programmering Skrivtid 5 h

Tentamensdag 2002-aug-20 Tentamen i Funktionell Programmering Skrivtid 5 h Nada Tentamensdag 2002-aug-20 Tentamen i Funktionell Programmering Skrivtid 5 h Antalet uppgifter : 5 ( 26p +22p + 14p +26p + 12 p= 100 p ) Lärare, jourhavande lärare : Leif Kusoffsky ------------------------------------------------------------------------------------------------------------------

Läs mer

Föreläsning 6 i programmeringsparadigm. Tips kring programmering i Haskell och kring labbarna.

Föreläsning 6 i programmeringsparadigm. Tips kring programmering i Haskell och kring labbarna. Föreläsning 6 i programmeringsparadigm. Tips kring programmering i Haskell och kring labbarna. Att arbeta med två fönster. Hugs är ju en tolk (interpreter) vilket har stora fördelar vid programutveckling.

Läs mer

Föreläsning 9 i programmeringsparadigm. Paradigmöversikt, paradigmhistoria, paradigmgeografi. Se även föreläsning 1.

Föreläsning 9 i programmeringsparadigm. Paradigmöversikt, paradigmhistoria, paradigmgeografi. Se även föreläsning 1. Föreläsning 9 i programmeringsparadigm. Paradigmöversikt, paradigmhistoria, paradigmgeografi. Se även föreläsning 1. Användning av Prolog. Prolog har framför allt används inom AI ( Articifial Intellegence),

Läs mer

Funktionell programmering DD1361

Funktionell programmering DD1361 Funktionell programmering DD1361 Tupler Två eller fler (men ändligt) antal element. Elementen kan vara av olika typer. Ex: (1,2) :: (Integer, Integer) (( 2, hejsan ), True) ::? Tupel med två element ->

Läs mer

Imperativ programmering

Imperativ programmering Imperativ programmering 1DL126 3p Imperativ programmering Jesper Wilhelmsson ICQ: 20328079 Yahoo: amigajoppe MSN / epost: jesperw@it.uu.se Rum: 1335 Tel: 471 1046 Imperativ programmering Vilka programmeringsspråk

Läs mer

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo Objektorienterade språk Historik Simula 67 Smalltalk 80 Procedurorienterad programmering Subprogram Programbibliotek Dataorienterad programmering Abstrakta datatyper Objektbaserade språk, föregångare till

Läs mer

Kursanalys för Programmeringsparadigm 2D1361, läsperiod 1 och 2 läsåret 2005/2006

Kursanalys för Programmeringsparadigm 2D1361, läsperiod 1 och 2 läsåret 2005/2006 Leif Kusoffsky 2005 - dec - 07 Nada KTH Kursanalys för Programmeringsparadigm 2D1361, läsperiod 1 och 2 läsåret 2005/2006 Kursdata Momentindelning Kursen genomförd Kursledare Kurslitteratur Antal studenter

Läs mer

Tentamen i Grundläggande programmering STS, åk 1 lördag 2002-05-25

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

Läs mer

Nada, KTH Tentamensdag maj -24 Tentamen i Funktionell Programmering Skrivtid 5 h

Nada, KTH Tentamensdag maj -24 Tentamen i Funktionell Programmering Skrivtid 5 h Nada, KTH Tentamensdag 2003 - maj -24 Tentamen i Funktionell Programmering Skrivtid 5 h Antalet uppgifter : 4 ( 26p +29p +20p + 25 p= 100 p ) Lärare, jourhavande lärare : Leif Kusoffsky ------------------------------------------------------------------------------------------------------------------

Läs mer

Enjoy Vattenfallsmodellen i funktionella språk

Enjoy Vattenfallsmodellen i funktionella språk Föreläsning 2 i Programmeringsparadigm Funktionell programmering := variabler pekare sidoeffekter ;...; Fy, fy => bugfree förståeliga korta inga "satser", bara uttryck! Enjoy Vattenfallsmodellen i funktionella

Läs mer

Tentamen ID1004 Objektorienterad programmering May 29, 2012

Tentamen ID1004 Objektorienterad programmering May 29, 2012 Omtentamen för ID1004 Objektorienterad programmering HT11, 29 maj 2012, 09-13 Denna tentamen examinerar 3 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av 12 frågor. Varje fråga

Läs mer

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Introduktion till Java -- för Pythonprogrammerare Historia: C, C++ 3 Historia: Oak 1 4 1990: Sun Microsystems påbörjade projekt StarSeven Avancerad

Läs mer

LÖSNINGSFÖRSLAG TENTAMEN PROGRAMMERING I ETT FUNKTIONELLT SPRÅK ML, 5P

LÖSNINGSFÖRSLAG TENTAMEN PROGRAMMERING I ETT FUNKTIONELLT SPRÅK ML, 5P UMEÅ UNIVERSITET Datavetenskap 020321 Betygsgränser 0 19,5 U 20 25,5 3 26 31,5 4 32-40 5 LÖSNINGSFÖRSLAG TENTAMEN 020321 PROGRAMMERING I ETT FUNKTIONELLT SPRÅK ML, 5P Uppgift 1(3+2=5 poäng) I denna uppgift

Läs mer

Typsystem. Typsystem... Typsystem... Typsystem... 2 *

Typsystem. Typsystem... Typsystem... Typsystem... 2 * Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och

Läs mer

Imperativ programmering. Föreläsning 4

Imperativ programmering. Föreläsning 4 Imperativ programmering 1DL126 3p Föreläsning 4 Imperativa paradigmer Ostrukturerad programmering Strukturerad programmering Procedurell programmering Objektorienterad programmering Klassbaserad programmering

Läs mer

Typsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19

Typsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19 Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och

Läs mer

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

Läs mer

Föreläsning 4 (och 5?) i programmeringsparadigm.

Föreläsning 4 (och 5?) i programmeringsparadigm. Föreläsning 4 (och 5?) i programmeringsparadigm. Korrekta bilnummer. Programmet, som visar att man ibland använder smarta mönster för att skriva eleganta program, finns på /info/progp02/haskelllectures/f4.

Läs mer

Lambdas. (och fler design patterns) Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2017

Lambdas. (och fler design patterns) Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2017 Lambdas (och fler design patterns) Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2017 Funktioner En funktion (i programmeringstermer) är en operation som tar ett eller flera argument,

Läs mer

Datalogi I, grundkurs med Java 10p, 2D4112, Tentamen 29 november 2003, svar och lösningar

Datalogi I, grundkurs med Java 10p, 2D4112, Tentamen 29 november 2003, svar och lösningar Datalogi I, grundkurs med Java 10p, 2D4112, 2003-2004 Tentamen 29 november 2003, svar och lösningar 1a) Snabbaste lösningen är att addera i det binära systemet och konvertera svaret till decimalt tal:

Läs mer

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

Föreläsning 3: Booleans, if, switch TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt

Läs mer

Enjoy Vattenfallsmodellen i funktionella språk

Enjoy Vattenfallsmodellen i funktionella språk Föreläsning 2 i Programmeringsparadigm Funktionell programmering := variabler pekare sidoeffekter ;...; Fy, fy => bugfree förståeliga korta inga "satser", bara uttryck! Enjoy Vattenfallsmodellen i funktionella

Läs mer

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2018 Introduktion till Java -- för Pythonprogrammerare Historia: C, C++ 3 Historia: Oak 1 4 1990: Sun Microsystems påbörjade projekt StarSeven Avancerad

Läs mer

Objekt, klasser. Tillstånd Signatur Kommunikation Typ. Fält, parametrar och lokala variabler. Konstruktorer Metoder DAVA15

Objekt, klasser. Tillstånd Signatur Kommunikation Typ. Fält, parametrar och lokala variabler. Konstruktorer Metoder DAVA15 DAVA15 Objekt, klasser Vad är det? Vad är sambandet mellan dem? Vad är skillnaden mellan dem? Tillstånd Signatur Kommunikation Typ Fält, parametrar och lokala variabler Likheter och skillnader Räckvidd

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

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

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

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

Läs mer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man

Läs mer

Programmering C: Tentamen of 5 Prioritet och associativitet hos operatorerna i C De viktigaste operatorerna: Prioritet Kategori Operator

Programmering C: Tentamen of 5 Prioritet och associativitet hos operatorerna i C De viktigaste operatorerna: Prioritet Kategori Operator Programmering C: Tentamen 2008-05-31 1 of 5 Örebro universitet Institutionen för teknik Thomas Padron-McCarthy (Thomas.Padron-McCarthy@tech.oru.se) Tentamen i Programmering grundkurs och Programmering

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

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

Introduktion till formella metoder Programmeringsmetodik 1. Inledning Introduktion till formella metoder Programmeringsmetodik 1. Inledning Fokus på imperativa program (ex. C, Java) program betyder härefter ett imperativt program Program bestäms i en abstrakt mening av hur

Läs mer

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

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,

Läs mer

Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder

Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder Introduktion TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder OO är den mest använda programmeringsparadigmen idag, viktigt steg att lära sig och använda OO. Klasser är byggstenen i

Läs mer

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000

Läs mer

Programmering A. Johan Eliasson johane@cs.umu.se

Programmering A. Johan Eliasson johane@cs.umu.se Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer

Läs mer

Programmering = modellering

Programmering = modellering Programmering = modellering Ett datorprogram är en modell av en verklig eller tänkt värld. Ofta är det komplexa system som skall modelleras I objektorienterad programmering består denna värld av ett antal

Läs mer

Objektorienterad programmering. Grundläggande begrepp

Objektorienterad programmering. Grundläggande begrepp Objektorienterad programmering Grundläggande begrepp Hur beskriver vi objekt? Vill ha en representationsoberoende beskrivning Abstrakta datatyper! Data Operationer Objekt Representerar en verklig eller

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

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

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: 13-06-05 Tid: kl 16.00-20. Umeå Universitet Datavetenskap Anders Broberg 130605 TENTAMEN Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg VT-13 Datum: 13-06-05 Tid: kl 16.00-20.00 Namn: Personnummer:

Läs mer

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011 1 of 7 Örebro universitet Akademin för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen

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

Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 31/ Exempel: Implementation av Schackpjäser.

Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 31/ Exempel: Implementation av Schackpjäser. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 31/3 2017 Innehåll Abstrakta klasser Klasshierarki och typhierarki Polymorfism och dynamisk bindning Polymorfi-exempel: Schack Klassen Object

Läs mer

Static vs Dynamic binding Override vs Overload. Objekt-orienterad programmering och design Alex Gerdes och Sólrún Halla Einarsdóttir, 2018

Static vs Dynamic binding Override vs Overload. Objekt-orienterad programmering och design Alex Gerdes och Sólrún Halla Einarsdóttir, 2018 Static vs Dynamic binding Override vs Overload Objekt-orienterad programmering och design Alex Gerdes och Sólrún Halla Einarsdóttir, 2018 Quiz: Gissa typen? Object o = new Square(100,100); Polygon p =

Läs mer

Objektorienterad programmering

Objektorienterad programmering Objektorienterad programmering Emil Ahlqvist (c10eat@cs.umu.se) Didrik Püschel (dv11dpl@cs.umu.se) Johan Hammarström (c08jhm@cs.umu.se) Hannes Frimmel Moström (c10hml@cs.umu.se) 1 1. Introduktion 1.1 Objektorienterad

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java

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

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java

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

DD1361 Programmeringsparadigm HT15

DD1361 Programmeringsparadigm HT15 DD1361 Programmeringsparadigm HT15 Logikprogrammering 1 Dilian Gurov, TCS Innehåll Logikprogrammering Kontrollflöde Unifiering Backtracking Negation Snitt Induktiva datatyper och rekursion Inbyggda datatyper:

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

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018 Static vs Dynamic binding Polymorfism Objekt-orienterad programmering och design (DIT95) Niklas Broberg, 2018 Diagnostiskt prov Shape + overlaps(shape): int return 1; Shape shape = new Shape(); Polygon

Läs mer

Programkonstruktion. Tentamen,

Programkonstruktion. Tentamen, Programkonstruktion (Programmeringsmetodik DV1) Tentamen, 2008-03-10 Lars-Henrik Eriksson Institutionen för informationsteknologi Uppsala Universitet Tid: 0900-14:00. Börja med att läsa igenom alla frågorna

Läs mer

LÖSNINGSFÖRSLAG TENTAMEN

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

Läs mer

Generics och polymorfism. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Generics och polymorfism. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Generics och polymorfism Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Live code Pair public class Pair { private A a; private B b; public A getfirst() { return a; public

Läs mer

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag Datum: 2008-08-14 Tid: 08-12 Plats: PC6-PC7 i E-huset. Jour: Per-Magnus Olsson, tel 285607 Jourhavande kommer att besöka skrivsalarna varje

Läs mer

Syfte : Lära sig objektorienterad programmering Syfte : Lära sig programmering i ett OO-språk vilket?

Syfte : Lära sig objektorienterad programmering Syfte : Lära sig programmering i ett OO-språk vilket? Jonas Kvarnström jonkv@ida.liu.se 2013 Syfte : Lära sig objektorienterad programmering Syfte : Lära sig programmering i ett OO-språk vilket? Rena OO-språk (allt är objekt) Scala, Smalltalk, Eiffel, Ruby,

Läs mer

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016 Static vs Dynamic binding Polymorfism Objekt-orienterad programmering och design Alex Gerdes, 2016 Diagnostiskt prov Shape + overlaps(shape): int return 1; Shape shape = new Shape(); Polygon tripoly =

Läs mer

Tentamen i Introduktion till programmering

Tentamen i Introduktion till programmering Tentamen i Introduktion till programmering Kurskod: Skrivtid: D0009E 09:00-13:00 (4 timmar) Totalt antal uppgifter: 7 Totalt antal poäng: 38 Tentamensdatum: 2014-05-17 Jourhavande lärare: Tillåtna hjälpmedel:

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Java Språket Utmatning av Sträng litteraler Variabler

Läs mer

Tentamen i Objektorienterad programmering

Tentamen i Objektorienterad programmering CHALMERS TEKNISKA HÖGSKOLA Datavetenskap TDA547 Tentamen i Objektorienterad programmering Lördagen 12 mars 2011, 8.30 12.30. Jourhavande lärare: Björn von Sydow, tel 0762/981014. Inga hjälpmedel. Lösningar

Läs mer

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid: Tentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-17, TDA540 Dag: 2018-01-13, Tid: 14.00-18.00 Ansvarig: Examinator: Alex Gerdes Carlo A. Furia Förfrågningar: Alex

Läs mer

Sista delen av kursen

Sista delen av kursen Sista delen av kursen handlar om hur program, delprogram och datatyper deklareras och vad det man åstadkommit egentligen betyder. Innehåll Syntaktisk (hur ser det ut) och semantisk (vad betyder det) beskrivning

Läs mer

Programspråkslingvistik. Sista delen av kursen. Ett programspråk

Programspråkslingvistik. Sista delen av kursen. Ett programspråk Sista delen av kursen Programspråkslingvistik handlar om hur program, delprogram och datatyper deklareras och vad det man åstadkommit egentligen betyder. Innehåll Syntaktisk (hur ser det ut) och semantisk

Läs mer

Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 7/ Exempel: Implementation av Schackpjäser.

Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 7/ Exempel: Implementation av Schackpjäser. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 7/4 2014 Innehåll Abstrakta klasser Klasshierarki och typhierarki Polymorfism och dynamisk bindning Polymorfi-exempel: Schack UML-översikt

Läs mer

Generics och polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg / Johannes Åman Pohjola, 2018

Generics och polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg / Johannes Åman Pohjola, 2018 Generics och polymorfism Objekt-orienterad programmering och design (DIT953) Niklas Broberg / Johannes Åman Pohjola, 2018 Live code Pair public class Pair { private A a; private B b; public A getfirst()

Läs mer

Programkonstruktion. Tentamen,

Programkonstruktion. Tentamen, Programkonstruktion (Programmeringsmetodik DV1) Tentamen, 2009-08-24 Lars-Henrik Eriksson Institutionen för informationsteknologi Uppsala Universitet Tid: 14:00-19:00. Börja med att läsa igenom alla frågorna

Läs mer

Arv. Objektorienterad och komponentbaserad programmering

Arv. Objektorienterad och komponentbaserad programmering Arv Objektorienterad och komponentbaserad programmering Arv Regel nr 1: Ett objektorienterat språk ska tillåta inkapsling av data Regel nr 2: Ett objektorienterat språk ska tillåta arv Regel nr 3: Ett

Läs mer

Tentamen TEN1 HI

Tentamen TEN1 HI Tentamen TEN1 HI1029 2015-03-17 Skrivtid: 8.15-13.00 Hjälpmedel: Referensblad (utdelas), papper (tomma), penna Logga in med tentamenskontot ni får av skrivvakten. Det kommer att ta tid att logga in ha

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning Varför? 732G11 Linköpings universitet 2011-02-08 Varför? 1 2 3 Varför? 4 5 Medelvärde av 5000 tal Varför? while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while (

Läs mer

Lösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel

Lösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel Lösningar till Fiktiv Tentamen på kursen 2D4135 Objektorienterad programmering, design och analys med Java vt2004 Teoridel T1) (4p) Förklara kort följande grundläggande begrepp inom objektorienterad programmering:

Läs mer

Tentamen. DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl Hjälpmedel: penna, suddgummi, linjal

Tentamen. DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl Hjälpmedel: penna, suddgummi, linjal Tentamen DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl 14.00 17.00 Hjälpmedel: penna, suddgummi, linjal Tentan har två delar om vardera 30 poäng Maximala betygsgränser (gränserna

Läs mer

Tentamen. DD2385 Programutvecklingsteknik vt 2014 Måndagen den 2 juni 2014 kl Hjälpmedel: penna, suddgummi, linjal

Tentamen. DD2385 Programutvecklingsteknik vt 2014 Måndagen den 2 juni 2014 kl Hjälpmedel: penna, suddgummi, linjal Tentamen DD2385 Programutvecklingsteknik vt 2014 Måndagen den 2 juni 2014 kl 10.00 13.00 Hjälpmedel: penna, suddgummi, linjal Tentan har två delar om vardera 30 poäng Maximala betygsgränser (gränserna

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

TENTAMEN OOP

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

Läs mer

Uppgifter till tenta i 729G04 Programmering och diskret matematik. 17 december 2015, kl 14:00-18:00

Uppgifter till tenta i 729G04 Programmering och diskret matematik. 17 december 2015, kl 14:00-18:00 1 ( 7) Uppgifter till tenta i 729G04 Programmering och diskret matematik. 17 december 2015, kl 14:00-18:00 Tillåtna hjälpmedel: Dator, penna, papper, linjal, suddgummi, godkänd(a) bok/böcker/kompendier

Läs mer

Subtyping, co- och contra-variance. Objekt-orienterad programmering och design Alex Gerdes, 2016

Subtyping, co- och contra-variance. Objekt-orienterad programmering och design Alex Gerdes, 2016 Subtyping, co- och contra-variance Objekt-orienterad programmering och design Alex Gerdes, 2016 Typer Java har två sorters typer primitiva typer och referens-typer. Primitiva typer är typer för värden:

Läs mer

Introduktion till Haskell

Introduktion till Haskell Introduktion till Haskell Elias Riedel Gårding NMA11, Teknisk Fysik (KTH) 2014 18 februari 2018 Elias Riedel Gårding (NMA11, F14) Introduktion till Haskell 18 februari 2018 1 / 29 Om Haskell Historik 1927:

Läs mer

Tentamen TEN1 HI

Tentamen TEN1 HI Tentamen TEN1 HI1029 2014-03-14 Skrivtid: 8.15-13.00 Hjälpmedel: Referensblad (utdelas), papper (tomma), penna Logga in med tentamenskontot ni får av skrivvakten. Det kommer att ta tid att logga in ha

Läs mer

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

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

Läs mer

Introduktion till programmering. Programspråk och paradigmer

Introduktion till programmering. Programspråk och paradigmer Introduktion till programmering Programspråk och paradigmer Vad är ett programspråk? Aprogramming languageis a formal constructedlanguagedesigned to communicate instructions to a machine, particularly

Läs mer

Instruktioner - Datortentamen TDDE24 och TDDD73 Funktionell och imperativ programmering (i Python)

Instruktioner - Datortentamen TDDE24 och TDDD73 Funktionell och imperativ programmering (i Python) Instruktioner - Datortentamen TDDE24 och TDDD73 Funktionell och imperativ programmering (i Python) Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok, t.ex. den rekommenderade kursboken. Boken

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

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

Föreläsning REPETITION & EXTENTA

Föreläsning REPETITION & EXTENTA Föreläsning 18 19 REPETITION & EXTENTA Programmeringsteknik på 45 minuter Klasser och objekt Variabler: attribut, lokala variabler, parametrar Datastrukturer Algoritmer Dessa bilder är inte repetitionsbilder

Läs mer

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

Läs mer