KOMPLETTERANDE HEMTENTAMEN 2 TDDB53

Relevanta dokument
KOMPLETTERANDE HEMTENTAMEN TDDB53

KOMPLETTERANDE HEMTENTAMEN TDDB53

TENTAMEN TDDB53. Programmering i Ada för MI (provkod TEN2) den 7 april 2010 kl Institutionen för datavetenskap, IDA Olle Willén mars 2010

Tentamen Grundläggande programmering

Datatyp - mera. Begreppet värde, igen. Ett slags mått på en egenskap, eller något fenomen. Ska ges en bred tolkning!

Exempel på ett litet Ada-program

Imperativ programmering. Föreläsning 2

GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse

Föreläsning 6: Introduktion av listor

Tentamen ID1004 Objektorienterad programmering October 29, 2013

TDDE10 TDDE11, 725G90. Gemensam kurswebsida på:

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

2 b) Följande finns definierat: public class Käk String titel = "Chili con carne"; Krydda[] kryddor = new Krydda[10]; kryddor[0] = new Krydda("Svartpe

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

Paket (2) nautisk_mil : constant Float := * foot; ångström : constant Float := 10.0E-10; mile : constant Float := 5280.

Omgivningar. Omgivningar är viktiga eftersom de avgör vilka namn som är synliga och därmed dessas innebörd och de värden som är förknippade med dem.

Månadsnamn september Några deklarationer

Tentamen ID1004 Objektorienterad programmering May 29, 2012

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU

2 b) Bodega bodegan = new Bodega(); double moms = 0.235; String namn = "Vargtass"; System.out.println(namn + " " + moms + bodegan.ändra(moms, namn); S

Tentamen i. Programmering i språket C

Föreläsning 5: Introduktion av pekare

Introduktion till MATLAB, med utgångspunkt från Ada

Tentamen ID1004 Objektorienterad programmering April 7, 2015

Användarhandledning Version 1.2

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

TENTAMEN OOP

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

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

Tentamen i Programmering grundkurs och Programmering C

2 b) Följande finns definierat: public class Spel String titel = "Spel"; Dice[] tärningar = new Dice[10]; tärningar[0] = new Dice("Röd"); tärningar[1]

Tentamen i Introduktion till programmering

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

Klasser & klassvariabler Metodanrop och lokala variabler Objekt och instansvariabler

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

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl Hjälpmedel: En Javabok. För betyget godkänt krävs at

2D1339 Programkonstruktion för F1, ht 2003

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

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

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.

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

Systemutvecklare SU13, Malmö

Översikt över Visual Basic

Tentamen'('Datastrukturer,'algoritmer'och'programkonstruktion.'

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

SMD 134 Objektorienterad programmering

2D1342 Programkonstruktion för F1, ht 2006

Deklarationer/definitioner/specifikationer

Inledande programmering med C# (1DV402) Summera med while"-satsen

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Klassdeklaration. Metoddeklaration. Parameteröverföring

TDIU01 - Programmering i C++, grundkurs

TENTAMEN OOP

Typkonvertering. Java versus C

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

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

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

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

Extramaterial till Matematik Y

DD1361 Programmeringsparadigm. Carina Edlund

F4. programmeringsteknik och Matlab

Övning2. Variabler. Data typer

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

2D1339 Programkonstruktion för F1, ht 2003

Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00

Datalogi, grundkurs 1. Lösningsförslag till tentamen

Översikt MERA JAVA OCH ECLIPSE. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

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

Tentamen i Grundläggande Programvaruutveckling, TDA548

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Skriftlig tentamen för kursen DV017A. Inledande programmering i Java A

Övningsuppgifter kapitel 8

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

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

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

Tentamen i Programmering

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Tentamen i IE1204/5 Digital Design måndagen den 15/

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

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

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Objektorienterad Programmering (TDDC77)

2D1310 Programmeringsteknik Tentamen (1p) lördag 29 april 2000 kl 14-17

Datalogi, grundkurs 1. Lösningsförslag till tentamen

Visual Basic, en snabbgenomgång

DD1342 Programkonstruktion för F1,

729G04 Programmering och diskret matematik

Tentamen i Programmering grundkurs och Programmering C

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

Tentamen i Grundläggande programmering STS, åk 1 lördag

729G04 Programmering och diskret matematik

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Tentamen OOP

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

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 i Programmeringsteknik I

Transkript:

Linköpings universitet Institutionen för datavetenskap, IDA Olle Willén mars 2009 Tentamen TDDB53 KOMPLETTERANDE HEMTENTAMEN 2 TDDB53 Programmering i Ada för MI i mars 2009 Tentan publiceras 19/3 vid ca kl 13.00 Svaren skall lämnas in senast 23/3 kl 13.00 till Johan Thapper. Hjälpmedel: Godkännande: Försäkran: Andra personers assistans och datorer är otilllåtna hjälpmedel! Allt annat är tillåtet. Tentamen ger godkänt eller inte godkänt. För godkänt krävs 10 godkända uppgifter, inklusive eventuell bonus. Godkända uppgifter från senaste två hemtentor räknas tillgodo. En sådan skall fyllas i och lämnas tillsammans med tentasvaren. Den finns sist i detta häfte.

Kompl. hemtentamen i TDDB53 Programmering i Ada för MI (MI-ADA) 2(6) Varje uppgift ger godkänt (G) eller underkänt (U). 1. Redogör för den sats i Ada som startar med ordet exit. Beskriv först själva konstruktionen (skrivsättet) på ett generellt och fullständigt sätt, och sedan hur utförandet går till. 2. Jämför de två företeelserna funktion och procedur vad det gäller användningen (anropet) av dem. Det finns både likheter och skillnader. 3. Förklara fenomenet heltalsdivision. 4. En form av deklaration kan formellt skrivas så här: type A is array(α) of β; Vad är det för slags konstruktioner som, allmänt sett, ska finnas på de platser där de formella symbolerna α resp β nu står? 5. Vad är syftet med en deklaration, i allmänhet? Det gäller då varje form av deklaration - av variabler, typer, subrutiner och allt annat. 6. Float-variabeln X har vilket värde som helst. Beskriv, utan beräkningsdetaljer och på vanlig svenska, vilken kunskap om det värdet som nedanstående uttryck ger: Integer(Float Truncation(abs(X) * 10.0)) mod 10 Ett konkret exempel som hjälp: Värdet av Float Truncation(56.78) är 56.0 7. Nedan är S och T Integer-variabler. Vilka värden, i tur och ordning, kommer T att ha vid markeringen... när den här koden utförs: for i in reverse 0.. 2 loop S := 2 + i * 3; for j in -1.. 1 loop T := S - j;...

Kompl. hemtentamen i TDDB53 Programmering i Ada för MI (MI-ADA) 3(6) 8. I satsen här intill är X och Y heltalsvariabler. Tolka satsen och ange på ett förenklat vardagligt - eller hellre matematiskt - sätt under vilken omständighet den Booleska variabeln P blir true. if X <= Y then if X = Y then P := true; else P := X + 3 > Y; elsif 1 = X - Y then P := true; else P := X - 2 <= y; 9. Vi har deklarationerna nedan. Avsikten med Is_Asc är att den ska avgöra om komponenterna i den List som skickas dit förekommer i strikt stigande ordning eller ej. Vilket är felet med Is_Asc? type List is array(1.. 50) of Integer; function Is_Asc(v : List) return Boolean is begin for i in v range loop if v(i) >= v(i+1) then return false; return true; end Is_Asc; 10. Här har vi samma typ List som ovan. Från ett användande programs synvinkel, vilken effekt har uppnåtts efter att ett anrop av Q fullbordats? procedure Q(lst : in out List; cmp : Integer) is p : Integer := 0; begin for i in lst Range loop if lst(i) = cmp then p := p + 1; lst(i) := lst(p); lst(p) := cmp; end Q;

Kompl. hemtentamen i TDDB53 Programmering i Ada för MI (MI-ADA) 4(6) 11. Matematiskt betraktat har värdet Foo(x) nedan en bestämd relation till x, för vissa x. Beskriv denna relation! function Foo(N : Integer) return Integer is P : Integer := 1; i : integer := 1; begin if N > 0 then loop if P = N then return i; elsif P > N then exit; i := i + 1; P := i * P; return -1; end Foo; 12. Man har installerat automatiska mätutrustningar på var och en av 10 apparater, vilka klarar av att registrera antalet fel per apparat under varje timme (0.. 23) i en hel vecka. Varje apparat är också försedd med en unik identitet. Variabeln FelRapport nedan innehåller denna datasamling i Ada. Rita och förklara hur variabeln strukturellt är uppbyggd, så att någon som inte är initierad ändå förstår. subtype ApparatId is String(1.. 4); subtype ApparatNummer is Integer range 1.. 10; type Dag is (Mån, Tis, Ons, Tor, Fre, Lör, Sön); type FelFrekvens is array(dag, 0.. 23) of Integer; type ApparatData is record -- Apparatid och felfrekvens för veckans alla timmar: Identitet : ApparatId; FelAntal : FelFrekvens; end record; type VeckoRapport is array(apparatnummer) of ApparatData; FelRapport : VeckoRapport; 13. Alla tentanders resultat på de enskilda uppgifterna på en tenta har samlats i variabeln Rapport nedan. Varje uppgift har givit Godkänt eller ej, och om totala antalet godkända uppgifter är 10 eller mer ska tentanden få godkänt på tentan som helhet. Skriv den bit lösryckta kod som för var och en av de tenterande beräknar antalet G och sätter godkänt eller ej. (Koden på nästa sida)

Kompl. hemtentamen i TDDB53 Programmering i Ada för MI (MI-ADA) 5(6) (Uppgift 13, forsättning) type UppgiftsResultat is array(1.. 15) of Boolean; type Tentand is record IdKod : Integer; -- Identitetskod Utfall : UppgiftsResultat; -- Alla uppgifters utfall SummaG : Integer; -- Summa G Godkänd : Boolean; -- Godkänd eller ej end record; type ResultatTabell is array(1.. 100) of Tentand; AntalTentor : Integer; -- Verkligt antal tentander Rapport : ResultatTabell; -- Alla tentanders resultat 14. Anropet DrawX(I, L) skriver ut XXXXXXXXXXXXXXXX I stycken mellanslag följda av L XXXXXXX XXXXXXX stycken X-tecken, på samma XXXXXX XXXXXX rad. DrawX gör ingen radframmatning vare sig före eller efter XXXXX XXXXX dessa tecken. Använd DrawX för XXXX XXXX att skriva den kod som producerar XXX XXX figuren här ( gardinuppsätt- XX XX ningen ), längst till vänster i terminalfönstret. Gör detta med hjälp av en lämpligt styrd loop som i varje varv gör två anrop av X X DrawX. Men skriv inte DrawX själv, den antas redan finnas! 15. I ett program förekommer heltalsvariabler vars värde ska kunna växla från 1 till -1, eller tvärtom, men som inte antar andra värden. En växling ska ske med hjälp av ett subrutinanrop som skrivs Toggle(t), där t är en sådan variabel. Definiera subrutinen.

Kompl. hemtentamen i TDDB53 Programmering i Ada för MI (MI-ADA) (Använd denna sida som försättsblad till det du lämnar in - häfta ihop.) [väl textat namn] [tydligt personnummer] FÖRSÄKRAN Härmed försäkrar jag på min heder att jag inte utnyttjat andra hjälpmedel än de tillåtna under denna tentamen, och att de svar jag redovisat är mina egna formuleringar. Linköping den [underskrift] För examinator 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: Bonus: Godkänd Underkänd Saknas Antal G Tentan är godkänd Tentan är underkänd