KOMPLETTERANDE HEMTENTAMEN TDDB53

Relevanta dokument
KOMPLETTERANDE HEMTENTAMEN 2 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

Exempel på ett litet Ada-program

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

Föreläsning 6: Introduktion av listor

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

Tentamen ID1004 Objektorienterad programmering May 29, 2012

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.

TDDE10 TDDE11, 725G90. Gemensam kurswebsida på:

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

Tentamen ID1004 Objektorienterad programmering April 7, 2015

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

Imperativ programmering. Föreläsning 2

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

Månadsnamn september Några deklarationer

Tentamen ID1004 Objektorienterad programmering October 29, 2013

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

Föreläsning 5: Introduktion av pekare

Tentamen i Introduktion till programmering

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

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

Typkonvertering. Java versus C

Övningsuppgifter kapitel 8

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

Föreläsning 3-4 Innehåll

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

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

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

Lösningsförslag: Instuderingsfrågor, del D

Övning2. Variabler. Data typer

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

2D1339 Programkonstruktion för F1, ht 2003

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

Deklarationer/definitioner/specifikationer

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

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

Användarhandledning Version 1.2

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

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

HI1024 Programmering, grundkurs TEN

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

Grundläggande programmering med C# 7,5 högskolepoäng

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]

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

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

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

HI1024 Programmering, grundkurs TEN

5 Grundläggande in- och utmatning

Klassdeklaration. Metoddeklaration. Parameteröverföring

Tentamen i Programmering grundkurs och Programmering C

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.

Klasser & klassvariabler Metodanrop och lokala variabler Objekt och instansvariabler

Föreläsning 4: Poster

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

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

Översikt över Visual Basic

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

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

F4. programmeringsteknik och Matlab

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Tentamen i. Programmering i språket C

TENTAMEN OOP

TDDC74 Lab 04 Muterbara strukturer, omgivningar

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

SMD 134 Objektorienterad programmering

Systemutvecklare SU13, Malmö

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel

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

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

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

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

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

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

2D1339 Programkonstruktion för F1, ht 2003

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

2D1342 Programkonstruktion för F1, ht 2006

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

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

DAT043 Objektorienterad Programmering

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

Backcode. Jonathan Crusoe TDP019 Projekt: Datorspråk Linköpings universitet

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

Visual Basic, en snabbgenomgång

C++ - En introduktion

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

Föreläsning 7: Filer

PROGRAMMERING-Java TENTAMINA

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.

DD1361 Programmeringsparadigm. Carina Edlund

Tentamen i Programmering

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

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

DSV A Procedurell programmering 5 poäng Tentamen

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

Planering Programmering grundkurs HI1024 HT 2014

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

Tentamen ges för: Tentamensdatum: Tid:

Transkript:

Linköpings universitet Institutionen för datavetenskap, IDA Olle Willén februari 2009 Tentamen TDDB53 KOMPLETTERANDE HEMTENTAMEN TDDB53 Programmering i Ada för MI (MI-ADA) i februari 2009 Tentan lämnas ut 27/2 vid ca kl 13.00 och skall lämnas in senast 4/3 kl 13.00 till Olle Willén. 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 ordinarie hemtenta 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 while. Beskriv dels skrivsättet så allmängiltigt och uttömmande som möjligt, dels utförandet. 2. Ge så illustrativa svenska synonymer som möjligt till de två Ada-begreppen sats resp värde. Använd enstaka ord eller fåordiga formuleringar. 3. Förklara begreppet lokal variabel. 4. Deklarationen av en subrutin har följande inledning: function Fie(x : Float) return Boolean... Beskriv så fullständigt och allmängiltigt som möjligt vilka konstruktioner som då måste finnas på de platser som i nedanstående sats markeras med α resp β. α := Fie(β) 5. Vad menas med begreppet range? Ge också ett konkret exempel på var (i vilken konstruktion) en sådan kan användas i ett Ada-program. 6. Beskriv generellt, utan detaljer och på vanlig svenska, vilket värdet av nedanstående uttryck är, utifrån varje tänkbart värde på Integer-variabeln k. k / Integer Max(1, abs(k)) 7. S är deklarerad som Integer. Vilka värden, i tur och ordning, kommer S att ha vid markeringen när nedanstående utförs? for i in 2.. 5 loop S := i; for j in reverse 0.. 6 loop exit when S > 100; S := S * i;

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 matematiskt sätt under vilka omständigheter den Booleska variabeln P blir true. if Y > 1 then if X < 1 then P := False; else P := not(y < X); elsif Y < X then P := false; elsif Y = X then P := Y = 1; else P := False; 9. Deklarationerna nedan är givna. Ett huvudprogram har variabeln Data av typen List och gör anropet Rev(Data) som ska se till att vända innehållet i Data bakfram. Vad är det emellertid för fel på Rev? type List is array(1.. 100) of Integer; procedure Rev(lst : in out List) is t : Integer; begin for i in 1.. 100 loop t := lst(i); lst(i) := lst(101 - i); lst(101 - i) := t; end Rev; 10. Här existerar samma datatyp List som ovan. När C nedan anropas tar den emot en List med tal i icke fallande storleksordning. Förklara vad det då är för karaktäristik av denna List som beskrivs av utskriften från proceduren. procedure C(the_list : List) is f : Integer := 1; ind : Integer := 1; begin while ind <= the_list Last loop while ind <= the_list Last loop exit when the_list(ind) /= the_list(f); ind := ind + 1; Put(the_list(f), 3); Put(" x "); Put(ind - f, 3); New_Line; f := ind; end C;

Kompl. hemtentamen i TDDB53 Programmering i Ada för MI (MI-ADA) 4(6) 11. En viss matematisk egenskap hos hela tal kan avgöras av funktionen nedan. Funktionen levererar nämligen true bara om dess parameter har egenskapen i fråga. Förklara med funktionen som utgångspunkt och på något matematiskt uttryckssätt vad denna egenskap innebär. function Is_P(N : Integer) return Boolean is X : Integer := 1; begin if N > 0 then loop if X < N then X := X + X + 1; else return X = N; return False; end Is_P; 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. Friidrottsdisciplinen tiokamp går ut på att deltagarna tävlar i 10 olika friidrottsgrenar, uppnår ett resultat i varje gren, och också tilldelas ett poängvärde (enligt en viss formel) för vardera resultatet. 2.20 i höjd ger t ex 992 poäng, för män. Summan av de tio poängvärdena ska utgöra tiokampens slutresultat. Variabeln Sammanställning nedan innehåller resultaten från en tävling mellan AntalTävlande deltagare. Uppgift: Skriv den bit lösryckta kod som ser till att räkna ut varje deltagares summapoäng (TotalPoäng) efter genomförda deltävlingar. (Koden på nästa sida)

Kompl. hemtentamen i TDDB53 Programmering i Ada för MI (MI-ADA) 5(6) (Uppgift 13, forsättning) type Gren is (Löpning100, Länghopp, Kula, Höjdhopp, Löpning400, Löpning110Häck, Diskus, Stavhopp, Spjut, Löpning1500); type GrenResultat is record DelResultat : Float; -- Resultatet i viss gren DelPoäng : Integer; -- Poängen för det resultatet end record; type ResultatLista is array(gren) of GrenResultat; subtype NamnTyp is String(1.. 25); -- Typ för personnamn. type Deltagare is record Namn : NamnTyp; -- En tävlandes namn, Resultat : ResultatLista; -- resultat i alla grenar, TotalPoäng : Integer; -- och summapoäng. end record; MaxAntalTävlande : constant Integer := 20; type ResultatTabell is array(1.. MaxAntalTävlande) of Deltagare; -- Verkligt antal tävlande och alla tävlandes resultat: AntalTävlande : Integer; Sammanställning : ResultatTabell; 14. Det existerar en procedur proc (som du alltså inte ska skriva!) som tar emot en Integer- och en Floatparameter. proc ska nu anropas ett antal gånger och i de successiva anropen få parameterparen (1, 1.0), (-1, 2.0), (1, 6.0), (-1, 24.0), (1, 120.0), (-1, 720.0) etc enligt samma mönster, så länge den andra parametern är < 10 12. Skriv de (lösryckta) rader kod som åstadkommer detta, och de nödvändiga deklarationerna. Du ska givetvis använda en repetition där värden varierar på något sätt, inte en radda anrop av proc. 15. En subrutin vilken anropas som Toggle(t), där t är någon Boolesk variabel, ska se till att t efter anropet bytt värde, antingen från true till false eller tvärtom. Skriv denna subrutin.

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