Uppgift 1 ( Betyg 3 uppgift )

Relevanta dokument
Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift )

kl Tentaupplägg

kl Tentaupplägg

TDIU01 / 725G

kl Tentaupplägg

Tentaupplägg denna gång

Uppgift 1 (vadå sortering?)

TENTA: TDDD11 & TDDC68. Tillåtna hjälpmedel. Starta Emacs, terminal och tentakommunikationsfönster. Skicka in frågor och uppgifter

Abstrakta datatyper Laboration 2 GruDat, DD1344

kl Tentaupplägg

kl Tentaupplägg

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

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket

5 Grundläggande in- och utmatning

kl Tentaupplägg

DUGGA Tentaupplägg

Föreläsning 4: Poster

kl Tentaupplägg

TDIU Regler

Föreläsning 6: Introduktion av listor

kl Tentaupplägg. TIPS 4: Du kan kompilera din kod med följande kommandon g++11, w++11 (för mer varningar)

kl Tentaupplägg

kl Tentaupplägg

kl Tentaupplägg

kl Tentaupplägg

kl Tentaupplägg

kl Tentaupplägg

kl Examination - Ada

Tentamen Grundläggande programmering

TDDC30 Programmering i Java, datastrukturer och algoritmer

kl Tentaupplägg

TDDC30/725G63. Objektorienterad programmering i Java, datastrukturer och algoritmer

TDP Regler

TDDI22 (exempel) TDDI22 Tentaregler

Guide till att använda Audacity för uttalsövningar

TDP Regler

kl Tentaupplägg

kl Tentaupplägg

Föreläsning 5: Introduktion av pekare

TDP Regler

Uppgift 1a (Aktiekurser utan poster)

Uppgift 1 ( Betyg 3 uppgift )

Tentamen TEN1 HI

Uppgift 1 (grundläggande konstruktioner)

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

Tentaupplägg. Betygsgränser: 1 uppg 19:00 Betyg 3 2 uppg 18:00 Betyg 4 2 uppg 16:30 Betyg 5 3 uppg 18:00 Betyg 5

kl Tentaupplägg

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Laboration 2 Datastrukturer En liten uppgift Frågor

kl Tentaupplägg

Grundkurs 1 IKT Filhantering

Tentaupplägg denna gång

Chapter 3: Using Classes and Objects

Objektorienterad programmering D2

Föreläsning 4. Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö

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

TDIU Regler

kl Tentaupplägg

Regler. Betygssättning

Datastrukturer och algoritmer. Föreläsning 4 Test, Stack och Kö

kl Tentaupplägg

Föreläsning 7: Filer

Objektorienterad programmering i Java I

F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander

729G04 Programmering och diskret matematik

HI1024 Programmering, grundkurs TEN

kl Tentaupplägg

TDIU Regler

Uppgift 1 ( Betyg 3 uppgift )

kl Tentaupplägg

Linköpings Tekniska Högskola Instutitionen för Datavetenskap (IDA) Torbjörn Jonsson, Erik Nilsson Lab 2: Underprogram

Tentamen i Algoritmer & Datastrukturer i Java

Kursmaterial för laborationer i

TDP Regler

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

[] Arrayer = Indexerad variabel

Tentaupplägg denna gång

Uppgifter till praktiska tentan, del A. (7 / 27)

HI1024 Programmering, grundkurs TEN

Tentamen Datastrukturer (DAT036)

TDP Regler

Tentamen TEN1 HI

Tentaupplägg denna gång

Datastrukturer. föreläsning 3. Stacks 1

Exempel på ett litet Ada-program

TDDC74 Programmering: Abstraktion och modellering Tenta, kl 14 18, 11 juni 2014

TDP Regler

TDDC30/725G63. Objektorienterad programmering i Java, datastrukturer och algoritmer

kl Tentaupplägg

Uppgift 1 (Sorterade heltal som är OK)

HI1024 Programmering, grundkurs TEN

Introduktion till MySQL

Uppgift 1 ( Betyg 3 uppgift )

TDDI TDDI22 Tentaregler

Installation av datafil för lokal lagring av e-post i Microsoft Outlook 2016

SELMA manual Kursplan - Kurslitteratur

Föreläsning 14 Innehåll

Transkript:

Uppgift 1 ( Betyg 3 uppgift ) I filerna queue_handling.ads och queue_handling.adb finns en datastruktur som motsvarar en kö. Det finns fyra operationer som kan utföras på en kö. 1) Enqueue som stoppar in ett data sist i kön. 2) Dequeue som tar bort det första datat i kön. 3) Empty som kontrollerar om kön är tom. 4) Length som talar om hur många data som finns i kön. Du skall skapa ett program som använder ovanstående paket till att hantera ett antal framslumpade heltal. Programmet skall slumpa fram ett antal heltal (mellan 1 och 10) och utföra följande operationer (du måste skapa en kö innan följande kan utföras): 1) Slumpa fram ett heltal (vi kallar detta N). 2) Slumpa fram N stycken heltal och stoppa in dem i kön. 3) Skriv ut köns innehåll. 4) Slumpa fram ett heltal (vi kallar detta N). 5) Tag bort N stycken heltal ur kön. Om kön är kortare än N data skall alla data tas bort ur kön. 6) Skriv ut köns innehåll. Upprepa punkterna 1 till 6 fem gånger. En viktig sak förutom ovanstående är att varje tal dessutom skall skrivas ut direkt då det slumpas fram. Observera att ditt program (inte paketet) skall innehålla utskriften av innehållet i kön. En programkörning kan se ut på följande sätt: N = 3 -> Stoppa in: 3 2 1 Kön: 3 2 1 N = 5 -> Tag bort. Kön: N = 5 -> Stoppa in: 6 6 9 9 8 Kön: 6 6 9 9 8 N = 4 -> Tag bort. Kön: 8 N = 1 -> Stoppa in: 10 Kön: 8 10 N = 2 -> Tag bort. Kön: N = 10 -> Stoppa in: 4 6 9 5 4 9 5 8 6 6 Kön: 4 6 9 5 4 9 5 8 6 6 N = 8 -> Tag bort. Kön: 6 6 N = 1 -> Stoppa in: 9 Kön: 6 6 9 N = 2 -> Tag bort. Kön: 9 Ett exempel på hur man kan hantera slumptal finns i filen slump.adb. TIPS: Ditt program behöver inte hantera undantag (eng. exception ). Det går att lösa uppgiften utan detta. Om du ändå vill använda undantag får du givetvis detta, men det behövs alltså inte. Det är dessutom tillåtet att kopiera variabler som är av privata datatyper.

Uppgift 2 I ett paket som heter Queue_Handling finns en implementation av en datatyp som representerar en kö. Denna är uppbyggd med hjälp av en post som innehåller ett fält och ett heltal. Förutom denna datatyp finns ett antal operationer man kan använda för att lagra data i kön, hämta data ur kön eller ta reda på status för kön. Mer information om vad dessa heter och vad de gör finns i uppgift 1 eller i filerna som är givna. Din uppgift är att kopiera ovanstående paket och döpa om kopian till New_Queue_Handling. Dessutom skall du i detta nya paket byta ut datastrukturen som representerar kön till en lista som skall vara uppbyggd på följande sätt: N 3 Data 7 Data 2 Data 10 Head Tail Det är alltså en länkad lista där listdatatypen är en post som innehåller tre saker. Dels ett heltal som anger hur många data som ligger i kön och dels två pekare som håller reda på början respektive slutet av kön. Om det inte finns några data i listan skall alltså posten innehålla talet noll (0) och två null -pekare. När du nu bytt ut datastrukturen måste även operationerna (procedurerna och funktionerna) skrivas om så att de fungerar med den nya datastrukturen. Gör detta. Skriv ett program som visar att man kan utföra all operationerna på den nya kön. T.ex. kan programmet utföra 5 stycken instoppningar av data och sen borttagning av 3 data. Efter varje sådan operation kan man skriva ut innehållet i kön och längden av kön. Se till att du även använder de andra operationerna som finns i paketet i ditt program. Detta program kan alltså ses som ett testprogram som skall försöka påvisa att ditt paket fungerar. TIPS: Ditt testprogram bör fungera för både originalpaketet och det nya paketet bara man byter ut with och use i programmet. Det kanske är bra att skriva testprogrammet först... KRAV: Du får inte ändra på några publika delar i paketet och köns innehåll skall visas när du kör ditt testprogram (detta innebär att du måste skriva en egen Put, i huvudprogrammet, för att skriva ut innehållet i kön).

Uppgift 3 Paketet Queue_Handling är hårt bundet till att hantera köer där varje data är ett heltal. I det verkliga (programmerings)livet kan det vara så att den som skriver huvudprogrammet vill kunna ha köer som innehåller andra typer av data. Din uppgift är alltså att göra en kopia av originalpaketet och döpa om kopian så att paketet heter Generic_Queue_Handling. I kopian skall paketet göras generiskt med avseende på datatypen på de data som skall lagras i kön. Skriv dessutom ett testprogram som gör det troligt att ditt generiska paket fungerar. Alla operationer på kön skall utföras så att man åtminstone kan se att det går att hantera kön.

Uppgift 4 När man står sist i ett led brukar man säga att man står i kön av ledet. Denna uppgift ligger sist och är därför i kön av uppgifter. Den handlar dock inte om köer utan om filer, bilder och fält. På en fil finns en figur som är uppritad med hjälp av vanliga skrivbara tecken. Figuren består av maximalt 100 rader och det finns maximalt 100 tecken per rad. Filnamnet är maximalt 20 tecken långt och består endast av bokstäver (det kan vara antingen versaler eller gemener) och eventuellt punkter. Din uppgift är att skriva ett program som frågar användaren efter ett filnamn (där bilden finns), därefter läser in bilden och skapar fyra (4) nya filer där alla 90-gradersvridningar finns lagrade. Filnamnen på de nya filerna skall vara uppbyggt med hjälp av ursprungsfilnamnet, men med tilläggen.a,.b,.c,.d. Ett exempel på en originalbild skulle kunna se ut på följande sätt: 123 456 78 Resultatfilerna skulle då innehålla följande bilder (en av dem är originalet självt): 123 36 87 741 456 258 654 852 78 147 321 63 Observera att raderna i originalfilen kan vara olika långa och att eventuella saknade positioner ersätts med blanktecken om det behövs. Det är tillåtet att ha blanktecken i slutet av raderna i resultatfilerna. TIPS 1: Det är normalt sett inte siffror i bilderna utan alla möjliga skrivbara tecken. Bygg alltså inte ditt program med tanke på heltal utan med utgångspunkten tecken. TIPS 2: Ibland kan det vara så att man inte kan skilja på datatypen Character och datatypen Wide_Character i Ada när det gäller teckenkonstanter. För att markera att det skall vara Character kan man då skriva Character ( A ) istället för endast A.

Uppgift 4 (SPECIALARE) Lite speciellt denna gång är att jag ger en möjlighet att få en variant av uppgift 4. Det är samma specifikation och allt som står i den ordinarie uppgiften skall fungera som det står. Det som skiljer sig är att jag ger er en hel del av programmet och att ni endast får själva filhanteringen som uppgift. Det som är haken med detta är att ni skriftligt måste lämna in den nedre delen av detta papper ifyllt med personnummer och namn (tydligt), det Student-ID som står i fönstret ni kommunicerar med oss via (ni måste alltså ha loggat in innan ni kan begära detta). Förutom dessa data vill vi ha er underskrift för att få del av denna specialuppgift. I och med detta kommer denna uppgift att vara helt separerad från övriga uppgifter och kan inte användas för högre betyg än betyg 3. Ni kan givetvis lösa de andra uppgifterna för högre betyg, men får då inte räkna uppgift 4 i detta. Om ni vill kan ni alltså få denna specialare och sen lösa de andra uppgifterna istället. Det är tillåtet att lämna in denna begäran när som helst under tentan. Ni får ett meddelande via tentasystemet om hur ni får tag i den fil som innehåller en del av programmet då vi fått er begäran. ---------- Riv här ---------------------------------------------------------- Jag vill ha del av SPECIALAREN på uppgift 4 och accepterar villkoren ovan. Gäller endast tentan 2005-01-11 kl. 14-19. Namn: Personnummer: Student-ID: Underskrift: