OMTENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13: 15

Relevanta dokument
TENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13:15

TENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13: 15

DVG C01 TENTAMEN I PROGRAMSPRÅK PROGRAMMING LANGUAGES EXAMINATION :15-13: 15

FACIT TILL OMTENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13: 15

FACIT TILL OMTENTAMEN I PROGRAMSPRÅK DVG C kl. 08:15-13:15

FACIT TILL OMTENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13: 15

FACIT TILL OMTENTAMEN I PROGRAMSPRÅK DVG C01

FACIT TILL/TO DVG C01 OMTENTAMEN I PROGRAMSPRÅK PROGRAMMING LANGUAGES RESIT EXAMINATION :15-13: 15

FACIT TILL TENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13: 15

Examination i. PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: Tid: (OBS 3 tim) Rum: V

TENTAMEN OOP

Tentamen Programmering fortsättningskurs DIT950

OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 14:15 19:15

DAT043 Objektorienterad Programmering

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

Funktioner. Programmering. Egendefinierade funktioner i Java. En Java-funktions anatomi. hh.se/db2004. Statiska metoder. Funktioner. resultatvärde.

Föreläsning 3-4 Innehåll

OOP Omtenta

OOP Tenta

OOP Omtenta

Dagens föreläsning Programmering i Lisp. - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning

OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista

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

Tentamen i. TDDA 69 Data och programstrukturer

OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 09:00 14:00

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

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

Dugga i Grundläggande programmering STS, åk

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

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

OOP Tenta

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

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl

TDDC77 Objektorienterad Programmering

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 3

ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

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

LÖSNINGSFÖRSLAG TENTAMEN

OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15-13:15

TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 14:00-19:00

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

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2

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

Programmering för språkteknologer II, HT2011. Rum

Tentamen, EDA501/EDAA20 Programmering M MD W BK L

Att skriva till och läsa från terminalfönstret

Tentamen Programmeringsteknik II och NV2 (alla varianter) Skriv bara på framsidan av varje papper.

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

TENTAMEN OOP

OOP Omtenta

Tentamen i Algoritmer & Datastrukturer i Java

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Den som bara har en hammare tror att alla problem är spikar

if (n==null) { return null; } else { return new Node(n.data, copy(n.next));

Tentamen. Grundläggande programmering i Java A 5p, DTAA

Tentamen OOP

Tentamen. Lösningsförslag

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

Tentamen i Objektorienterad programmering

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 1

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om?

DAT043 - föreläsning 8

Klassdeklaration. Metoddeklaration. Parameteröverföring

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.

OOP Tentamen

Inlämningsuppgift MiniPlotter

DELPROV 1 I DATAVETENSKAP

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

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

Lösningar för tenta 3 DAT043,

Tentamen, EDAA10 Programmering i Java

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

Tentamen ges för: Tentamensdatum: Tid:

Klasshierarkier - repetition

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper.

Instuderingsfrågor, del D

Tentamen Grundläggande programmering

OOP Tentamen

Tentamen Programmeringsteknik II Skrivtid: Hjälpmedel: Java-bok (vilken som helst) Skriv läsligt! Använd inte rödpenna!

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

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

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15

OOP Omtenta

Tentamen Programmeringsteknik II Inledning. Anmälningskod:

OOP Tentamen

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

Interface. Interface. Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 3 december 2010

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

Tentamen i Grundläggande programmering STS, åk 1 fredag

tentaplugg.nu av studenter för studenter

Transkript:

OMTENTAMEN I PROGRAMSPRÅK -- DVG C01 130823 kl. 08:15-13: 15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Bilaga A: BNF-definition Betygsgräns: Kurs: Max 60p, Med beröm godkänd 50p, Icke utan beröm godkänd 40p, Godkänd 30p (varav minimum 20p från tentan, 10p från labbarna Tenta: Max 40p, Med beröm godkänd 34p, Icke utan beröm godkänd 27p, Godkänd 20p Labbarna: Max 20p, Med beröm godkänd 18p, Icke utan beröm godkänd 14p, Godkänd 10p SKRIV TYDLIGT LÄS UPPGIFTERNA NOGGRANT 1. Ange kortfattade svar på följande uppgifter: (a Ge en definition av (i aktuell parameter samt (ii formell parameter. (b Vad är svansrekursion? I vilket sammanhang förekommer den? (c Vad används den statiska länken i en stackframe till? (d Ange för- och nackdelar till värdeanrop ( call-by-value jämfört med referensanrop ( call-by-reference (e Ange ett exempel av en Lisp programmingcliché. (f Vad är förhållendet mellan en programmeringparadigm och ett programspråk? (g Ange ett exempel av bindningar vid fyra olika tidspunkter i processen språkdesign till programexekvering (totalt 4 olika exempel. (h Vilka är de två absolut nödvändligaste flödeskontrollkonstructionerna ( flow-of-control constructions för att kunna skriva ett program. (i Vad händer under den lexikaliska analysfasen? (j Vilka aspekter av att programspråk skulle man ta hänsyn till när man vill snabbt sätta sig in i ett språk? 2. Grammatik parser Totalt 10p Titta noggrant på grammatiken i bilaga A. Förklara ingående hur man kan skriva en RDPP (Recursive Descent Predictive Parser utifrån grammatiken. 5p 3. Parametrar Förklara ingående de olika sätten att hantera parametrar i programspråk. Ange gärna konkreta exempel. 5p DFR/EJN/ND 130823 PS omtentamen Sidan 1 av 7

4. Exekveringstidsystem ( Run-time System Givet programmet nedan, förklara ingående förhållandena mellan programmets text (källkoden, symboltabellen och hur den exekveringsstack hanteras under programexekvering. Rita symbolltabelerna samt stackens innehåll efter varje anrop. Ange alla antagande. 5p program xyz (input, output; var a, b, c: integer; p, q: boolean; integer function x(fp1: integer, fp2: integer; begin var i: integer; integer function y(fp1: integer, fp2: integer; var i: integer; begin i := fp1 * fp2; return i; end y. begin i := y(fp1, fp2 + y(fp1, fp2; return i; end x. a := 2; b := 3; c := x(a, b; print c; end xyz. DFR/EJN/ND 130823 PS omtentamen Sidan 2 av 7

5. Lisp - Läs noggrant följande Lispkod samt dess outputfil:- (defun make-book (title author class (list (list 'title title (list 'author author (list 'class class (defun book-author-writer (book author (if (eql 'author (first (first book (cons (list 'author author (rest book (cons (first book (book-author-writer (rest book author (defun book-class-add (book class ;; att skriva (setf book (make-book '(Common Lisp '(Guy Steele '(Computer Languages (book-author-writer book '(Guy L Steele (book-class-add book 'Lisp MAKE-BOOK BOOK-AUTHOR-WRITER BOOK-CLASS-ADD ((TITLE (COMMON LISP (AUTHOR (GUY STEELE (CLASS (COMPUTER LANGUAGES ((TITLE (COMMON LISP (AUTHOR (GUY L STEELE (CLASS (COMPUTER LANGUAGES ((TITLE (COMMON LISP (AUTHOR (GUY STEELE (CLASS (COMPUTER LANGUAGES LISP Bye. 1. Skriv Lisp-koden till functionen book-class-add. Ange alla antagande. 2p 2. Förklara stegvis och ingående hur din function book-class-add fungerar. 3p Totalt 5p DFR/EJN/ND 130823 PS omtentamen Sidan 3 av 7

6. Prolog Du har följande predikat: add([], L, L. add([x L1], L2, [X L3 :- add(l1, L2, L3. del(x, [X Tail], Tail. del(x, [Y Tail], [Y Tail1] :- del(x, Tail, Tail1. a Predikatet add brukar ha ett annat, engelskt eller svenskt, namn som beskriver hur predikatet fungerar. Vilket namn? 0.5 p b Vad blir resultatet (svaret när frågan?- del(a, [a, b, a, c, a], X. exekveras? 0.5 p c Hur många olika svar kan man få på föregående fråga om man skriver ett ; efter varje nytt svar? 1 p d Vilka svar får man? Skriv i den ordningsföljd de erhålls. 2 p e Egentligen vill man bara ha ett svar. Hur ska koden förändras (tillägg för att eliminera falska svar? 1 p Totalt 5p DFR/EJN/ND 130823 PS omtentamen Sidan 4 av 7

7. Objektorientering 5 poäng: A. Vilka följder får det att en klass är abstrakt inom objektorientering? Varför deklarerar man vissa klasser abstrakta? B. Givet följande program skrivet i Java. Vad skrivs ut när programmet utförs och varför? Utöver att ange rätt utskrift från programmet ska du alltså även redogöra för de mekanismer som gör att utskriften blir som den blir. class A { public void f( {System.out.println ("A.f";} } (1p (1,5p class B extends A { public void f( {System.out.println ("B.f";} } class Program { static void p(a o {o.f(;} public static void main(string[] args { A a = new A(; B b = new B(; A ab = new B(; p(a; p(b; p(ab; } // main } // class Program (OBS: uppgiften fortsätter på nästa sida! DFR/EJN/ND 130823 PS omtentamen Sidan 5 av 7

C. Antag att följande klass Integer är definierad i Java med metoderna getvalue som läser av det aktuella värdet och setvalue som definierar ett nytt: class Integer { public Integer(int value {setvalue(value;} public int getvalue( {return value;} public void setvalue(int newvalue {value = newvalue;} //... more functions... private int value; }; // Integer (2,5p Vi önskar definiera addition av heltal och utvidgar därför klassdefinionen av Integer med följande metoder och tillhörande implementationer: void add1(integer i {setvalue(getvalue( + i.getvalue(;} void add2(integer i {this.setvalue(this.getvalue( + i.getvalue(;} Integer add3(integer i {return new Integer(value + i.getvalue(;} Integer add4(integer i {return new Integer(getValue( + i.getvalue(;} void add5(integer i, Integer j {j = new Integer(getValue( + i.getvalue(;} Förklara och kommentera skillnaden i synsätt, utförande och resultat mellan följande par av funktioner: i. add1 och add2 ii. add1 och add4 iii. add3 och add4 iv. add4 och add5 För vart och ett av de fem förslagen, kommentera om namnet add på funktionen (bortse från numret är lämpligt och föreslå ev ett bättre namn, allt enligt minsta förvåningens princip *. * Minsta förvåningens princip (The Principle of Least Astonishment, POLA eller PLA sager bl.a.: Speciellt ska en programmerare försöka tänka på vilket beteende som kommer att förvåna någon som använder sig av programmet minst, snarare än det beteende som verkar mest naturligt för någon som känner till programmets inre arbetssätt. DFR/EJN/ND 130823 PS omtentamen Sidan 6 av 7

Bilaga A - Grammatik: Pascallik språk 1. [prog] ::= [prog header] [var part] [stat part] 2. [prog header] ::= program id ( input, output ; 3. [var part] ::= var [var dec list] 4. [stat part] ::= begin [stat list] end. 5. [var dec list] ::= [var dec] [var dec list] [var dec] 6. [var dec] ::= [id list] : [type] ; 7. [stat list] ::= [stat] [stat list] ; [stat] 8. [stat] ::= [assign stat] 9. [assign stat] ::= id := [expr] 10. [expr] ::= [term] [R1] 11. [R1] ::= e + [term] [R1] 12. [term] ::= [factor] [R2] 13. [R2] ::= e * [factor] [R2] 14. [factor] ::= ( [expr] [operand] 15. [type] ::= integer 16. [id list] ::= id [id list], id 17. [operand] ::= id number DFR/EJN/ND 130823 PS omtentamen Sidan 7 av 7