Uppgift 1 ( Betyg 3 uppgift )

Relevanta dokument
Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1a (Aktiekurser utan poster)

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 (vadå sortering?)

kl Tentaupplägg

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 (grundläggande konstruktioner)

Tentaupplägg denna gång

kl Tentaupplägg

kl Tentaupplägg

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

Uppgift 1 (Sorterade heltal som är OK)

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

Föreläsning 6: Introduktion av listor

kl Examination - Ada

Uppgift 1 ( Betyg 3 uppgift )

kl Tentaupplägg

Kursmaterial för laborationer i

HI1024 Programmering, grundkurs TEN

Föreläsning 4: Poster

kl Tentaupplägg

UPPGIFT 1 EURO. Utdata: Två rader, som för indata ovan, ser ut som följer: Före resan: bank 1 Efter resan: bank 3

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

Tentamen Grundläggande programmering

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

kl Tentaupplägg

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

Föreläsning 13 Testning och strängar

5 Grundläggande in- och utmatning

Tentaupplägg denna gång

Föreläsning 3.1: Datastrukturer, en översikt

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.

Lab 0: Mycket grundläggande in- och utmatning

DUGGA Tentaupplägg

Planering Programmering grundkurs HI1024 HT TIDAA

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

TDDC74 Programmering, abstraktion och modellering. Tentamen

kl Tentaupplägg

TDDC76 - Programmering och Datastrukturer

Funktioner, Procedurer och Parametrar. Funktioner, Procedurer och Parametrar... Funktioner, Procedurer och Parametrar procedurspecifikation

Planering Programmering grundkurs HI1024 HT 2014

Tentaupplägg denna gång

Python. Vi har ofta behov av att behandla datastrukturer på ett enhetligt sätt så att vi kan göra samma sak i flera olika program.

Tentaupplägg denna gång

Repetition i Python 3. Exemplen fac. Exemplen fac motivering. Exemplen fac i Python

Exempel på listor (klassen ArrayList). Ett exempel med fält. Avbildning är en speciell typ av lista HashMap.

kl Tentaupplägg

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

kl Tentaupplägg

Planering Programmering grundkurs HI1024 HT data

TDP Regler

Tentaupplägg denna gång

Uppgift 1 ( Betyg 3 uppgift )

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011,

kl Tentaupplägg

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

HI1024 Programmering, grundkurs TEN

TDDC76 - Programmering och Datastrukturer

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

kl Tentaupplägg

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

729G04 Programmering och diskret matematik. Föreläsning 7

Teoretisk del. Facit Tentamen TDDC kl (6) 1. (6p) "Snabba frågor" Alla svar motiveras väl.

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

Uppgift 1 ( Betyg 3 uppgift )

Abstrakta datatyper Laboration 2 GruDat, DD1344

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

729G04 Programmering och diskret matematik

TDIU01 - Programmering i C++, grundkurs

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

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

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Kursmaterial för laborationer i

Tentaupplägg denna gång

Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson Plot och rekursion

Prov i DAT 312: Algoritmer och datastrukturer för systemvetare

TDIU01 / 725G

Föreläsning 7: Filer

TDDI22 (exempel) TDDI22 Tentaregler

TDP004. Minne och pekare. Eric Elfving Institutionen för datavetenskap

Inlämningsuppgift 1, Digsim

TDDC74 Lab 02 Listor, sammansatta strukturer

Föreläsning 5: Introduktion av pekare

kl Tentaupplägg

Projektdokumentation för Othello

Objektorienterad programmering Föreläsning 10. Copyright Mahmud Al Hakim Sorteringsalgoritmer

Objektorienterad programmering D2

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

Objektorienterad programmering i Java I

kl Uppgift 1. Mata in ett matematiskt uttryck: 0.5 * 2 * 0.5 * 2 * 0.5 * 2 * 0.5 * 2 * 0.5 * 2 * 0.5 * 2 Resultatet blir: 1.

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Excel-guide. Introduktion

Uppgift 1 ( Betyg 3 uppgift )

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

STRÄNGAR DATATYPEN. Om du vill baka in variabler eller escape-tecken måste du använda dubbla citattecken. strängar

729G04 Programmering och diskret matematik

Transkript:

2004-03-10.kl.08-13 Uppgift 1 ( Betyg 3 uppgift ) Du skall skriva ett program som ritar ut en åtthörning på skärmen. Åtthörningen skall dock se ut enligt exemplen nedan och det är så att användaren skall bestämma storleken på polygonen. Ingen felhantering krävs. Detta är en typisk kemiuppgift (O är väl beteckningen för syre). Körexempel 1: Mata in storleken: 1 +-+ +-+ Körexempel 2: Mata in storleken: 2 +--+ +--+ Körexempel 3: Mata in storleken: 3 +---+ +---+ Krav: Programmet skall vara skrivet på ett programtekniskt vettigt sätt.

2004-03-10.kl.08-13 Uppgift 2 På en fil som heter OMFORMATERAD.TXT finns en text. Tyvärr har denna text blivit lite omformaterad då den flyttades till an ny dator. I texten har det på ställen där det tidigare endast var ett blanktecken smugit in sig ett flertal blanktecken. På andra ställen har det istället för ett vagnreturtecken (RETURN) smugit in sig både blanktecken och extra vagnreturer. Din uppgift blir att skriva ett program som läser igenom den omformaterade filen och skapar en korrekt fil (som skall heta FORMATERAD.TXT). D.v.s. du skall leta reda på alla sekvenser av blanktecken och ersätta dessa med endast ett blanktecken och alla sekvenser där det finns flera vagnreturer i rad skall ersättas med ett vagnreturtecken.

2004-03-10.kl.08-13 Uppgift 3 Du har ett givet huvudprogram som heter listcopier.adb. Detta vill använda sig av ett paket som skall heta Listhandling. I detta paket (som du skall skriva) skall det finnas de saker som fattas i huvudprogrammet. Den datastruktur som skall skapas skall vara uppbyggd av pekare (en enkellänkad lista) och den skall se ut på följande sätt. A B C D Krav: Du får INTE ändra på huvudprogrammet. I paketet skall följande saker skapas: En datatyp som heter List_Type som representerar ovanstående. A-D är heltal som motsvarar antalet protoner i olika atomer. Olika antal protoner anger som ni vet vilket grundämne man har att göra med. En procedur, Insert, som skall stoppa in ett protonantal på rätt plats (sorterat i storleksordning med det minsta sist) i listan. En procedur, Copy, som kopierar en lista så att man får en identisk kopia. När man tar bort en av listorna skall inte den andra påverkas. En procedur, Delete, som tar bort en hel lista (utan att minnesläckor uppstår). En procedur, Put, som skriver ut listan (för ovanstående exempel: A B C D).

2004-03-10.kl.08-13 Uppgift 4 Som ni vet har just Vasaloppet avgjorts. I år vann en norrman (för första gången sen 1971). Under Vasaloppet bjuds det på en enorm mängd blåbärssoppa och andra kemiska substanser. För att få fram lite statistik har Vasaloppsarrangörerna bestämt sig för att du skall skriva ett program där varje deltagare som får något frivilligt skall kunna mata in sitt namn, vilket kön de tillhör samt vad och hur många av denna sort de ätit (de vill endast ha följande alternativ: bulle, blåbärssoppa eller kaffe). Om det är så att de ätit flera saker får de mata in detta i flera omgångar. Du skall skapa en procedur Get som läser in ovanstående data och lagrar detta i en post. Namnet skall lagras i en sträng som är 20 tecken lång. Vad de ätit skall lagras i en sträng som är 12 tecken lång. Get skall ENDAST ha en parameter och det är posten där datat är lagrat. Du skall även skriva en procedur Put som skriver ut postens innehåll. Det skall se snyggt ut det du skriver ut. Även din Put får ENDAST ha en parameter, d.v.s. posten. Krav 1: Inga globala variabler får användas lokalt i underprogrammen utan att skickas med som parametrar. Skriv dessutom ett huvudprogram som läser in en persons data och skriver ut det på skärmen igen. Krav 2: Tänk nu på att det även finns norrmän med i Vasaloppet. Detta kräver FULL FELHANTERING vad det gäller inmatningen av antal enheter man fått. För er som eventuellt kommer från Norge vill jag också påpeka att det finns svenskar med i Vasaloppet. :-) Körexempel: Välkommen! Mata in ditt namn: Ambjörn Aukland Vilken kön tillhör du? Man Vad har du ätit/druckit? Blåbärssoppa Hur många enheter av Blåbärssoppa har du fått? Fyra FEL! Måste skriva in med siffror. Hur många enheter av Blåbärssoppa har du fått? 4 Följande data har du matat in: Namn: Ambjörn Aukland Kön: Man Mat/dryck: Blåbärssoppa Antal: 4

2004-03-10.kl.08-13

2004-03-10.kl.14-19 Uppgift 1 ( Betyg 3 uppgift ) Du skall skriva ett program som skall kunna läsa in ett antal maträtter från en fil som heter MAT.TXT och lagra alla dessa i ett fält (eng. array). Man vet att det maximalt finns 100 maträtter på filen och att varje maträtt bara består av ett ord, namnet på rätten, samt ett heltal, som anger matlagningstiden. Varje maträtt står på en egen rad i textfilen där matlagningstiden står först, sen ett blanktecken och resten av raden är själva maträtten. Ingen maträtt består av mer än 40 tecken. Din uppgift är att läsa in alla de maträtter som finns i filen och sortera dessa. Sorteringen skall göras så att man i första hand sorterar efter matlagningstiden och i andra hand efter maträttens namn. När detta är klart skall de sorterade maträtterna skrivas ut på skärmen. Antag att filen innehåller: 20 Fluffkyckling 13 Yttermakaroner 10 Silltårta 23 Istergryta 42 Kalkongröt Körexempel: 10 Silltårta 13 Yttermakaroner 20 Fluffkyckling 23 Istergryta 42 Kalkongröt

2004-03-10.kl.14-19 Uppgift 2 Du har ett givet huvudprogram som heter mergeprinter.adb. Detta vill använda sig av ett paket som skall heta Listhandling. I detta paket (som du skall skriva) skall det finnas de saker som fattas i huvudprogrammet. Den datastruktur som skall skapas skall vara uppbyggd av pekare (en enkellänkad lista) och den skall se ut på följande sätt. A B C D Krav: Du får INTE ändra på huvudprogrammet. I paketet skall följande saker skapas: En datatyp som heter List_Type som representerar ovanstående. A-D är heltal som motsvarar årtal. De olika årtalen representerar i sin tur olika kända fysiker. En procedur, Insert, som skall stoppa in ett årtal på rätt plats (sorterat i storleksordning med det största sist) i listan. En procedur, Delete, som tar bort en hel lista (utan att minnesläckor uppstår). En procedur, Put, som skriver ut två sorterade listor som om de vore en sorterad lista, d.v.s. proceduren skall få in två listor och sen skriva ut dem så att alla årtal i båda listorna skrivs ut i sorterad ordning. Listorna får inte ändras. Antag att vi har listorna som innehåller (A, D, E) och (B, C, F) där A-F motsvarar tal i motsvarande sorteringordning. I detta fall skall Put skriva ut talen som motsvarar: A B C D E F.

2004-03-10.kl.14-19 Uppgift 3 Som ni vet har just Vasaloppet avgjorts och där måste man ju ha god fysik. I år vann en norrman (för första gången sen 1971). Under Vasaloppet bjuds det på en enorm mängd blåbärssoppa och annat. För att få fram lite statistik har Vasaloppsarrangörerna bestämt sig för att du skall skriva ett program där varje deltagare som får något frivilligt skall kunna mata in sitt namn, vilket kön de tillhör samt vad och hur många av denna sort de ätit (de vill endast ha följande alternativ: bulle, blåbärssoppa eller kaffe). Om det är så att de ätit flera saker får de mata in detta i flera omgångar. Du skall skapa en procedur Get som läser in ovanstående data och lagrar detta i en post. Namnet skall lagras i en sträng som är 20 tecken lång. Vad de ätit skall lagras i en sträng som är 12 tecken lång. Get skall ENDAST ha en parameter och det är posten där datat är lagrat. Du skall även skriva en procedur Put som skriver ut postens innehåll. Det skall se snyggt ut det du skriver ut. Även din Put får ENDAST ha en parameter, d.v.s. posten. Krav 1: Inga globala variabler får användas lokalt i underprogrammen utan att skickas med som parametrar. Skriv dessutom ett huvudprogram som läser in en persons data och skriver ut det på skärmen igen. Krav 2: Tänk nu på att det även finns norrmän med i Vasaloppet. Detta kräver FULL FELHANTERING på indatat som gäller vilket kön man tillhör. För er som eventuellt kommer från Norge vill jag också påpeka att det finns svenskar med i Vasaloppet. :-) Körexempel: Välkommen! Mata in ditt namn: Ambjörn Aukland Vilken kön tillhör du? Norrman FEL! Du måste skriva Man eller Kvinna. Vilken kön tillhör du? Man Vad har du ätit/druckit? Blåbärssoppa Hur många enheter av Blåbärssoppa har du fått? 4 Följande data har du matat in: Namn: Ambjörn Aukland Kön: Man Mat/dryck: Blåbärssoppa Antal: 4

2004-03-10.kl.14-19 Uppgift 4 Du skall skriva ett program som ritar ut ett liggande plustecken på skärmen. Plustecknet skall dock se ut enligt exemplen nedan och det är så att användaren skall bestämma storleken på plusset. Ingen felhantering krävs. Detta är en typisk fysikuppgift (plustecknet har på grund av gravitationen trillat omkull). Körexempel 1: Mata in storleken: 1 / \ + + Körexempel 2: Mata in storleken: 3 / \ / \ / \ + + Krav: Programmet skall vara skrivet på ett programtekniskt vettigt sätt.

2004-03-11.kl.08-13 Uppgift 1 ( Betyg 3 uppgift ) Du skall leta reda på det största primtalet i filen TAL.TXT och skriva ut det på skärmen. Ett primtal är per definition ett heltal som endast är jämnt delbart med sig självt och talet 1. Per definition är det minsta primtalet 2. I filen står varje tal på en egen rad och det är inget annat på filen. Alla tal ryms i en vanlig heltalsvariabel. Det finns inga extra tomma rader i filen. Om filen innehåller talen 2, 5, 13 och 7 (på separata rader förstås) skall resultatet vara: Det största primtalet i filen är 13. Tips 1: Man skall alltid tänka på att filer inte behöver innehålla några data (de kan vara tomma). Givetvis skall programmet då skriva ut att det inte fanns något primtal. Tips 2: Dra slutsatser av det resultat du får.

2004-03-11.kl.08-13 Uppgift 2 Som ni vet har just Vasaloppet avgjorts. I år vann en norrman (för första gången sen 1971). Under Vasaloppet bjuds det på en enorm mängd blåbärssoppa och annat. För att få fram lite statistik har Vasaloppsarrangörerna bestämt sig för att du skall skriva ett program där varje arrangör som gör något frivilligt skall kunna mata in sitt namn, vilket kön de tillhör samt vad och hur mycket av detta de gjort (de vill endast ha följande alternativ: matutdelning, tidtagning eller kranskulla). Om de gjort flera saker får de mata in detta i flera omgångar. Ett specialfall är att man endast kan vara kranskulla två gånger (en för männen och en för kvinnorna). Alla övriga delar kan utföras flera gånger under samma tävling. Du skall skapa en procedur Get som läser in ovanstående data och lagrar detta i en post. Namnet skall lagras i en sträng som är 20 tecken lång. Vad de ätit skall lagras i en sträng som är 12 tecken lång. Get skall ENDAST ha en parameter och det är posten där datat är lagrat. Du skall även skriva en procedur Put som skriver ut postens innehåll. Det skall se snyggt ut det du skriver ut. Även din Put får ENDAST ha en parameter, d.v.s. posten. Skriv dessutom ett huvudprogram som läser in en persons data och skriver ut det på skärmen igen. Krav 1: Inga globala variabler får användas lokalt i underprogrammen utan att skickas med som parametrar. Krav 2: Tänk nu på att vissa arrangörer är från Dalarna. Detta kräver FULL FELHANTERING på indatat som gäller vilket kön man tillhör. (Vissa tror att examinator också är från Dalarna, men är han det? :-) Körexempel: Välkommen! Mata in ditt namn: Matte Larsdotter Vilken kön tillhör du? Fru FEL! Du måste skriva Man eller Kvinna. Vilken kön tillhör du? Kvinna Vad har du haft för uppgift? Kranskulla Hur många enheter av Kranskulla har du utfört? Tolv FEL! Man måste mata in talet med siffror. Hur många enheter av Kranskulla har du utfört? 12 FEL! Man kan inte vara Kranskulla mer än 1 gång per år. Hur många enheter av Kranskulla har du utfört? 1 Följande data har du matat in: Namn: Matte Larsdotter Kön: Kvinna Uppgift: Kranskulla Antal: 1

2004-03-11.kl.08-13 Uppgift 3 Du skall skriva ett program som ritar ut ett plustecken på skärmen. Plustecknet skall dock se ut enligt exemplen nedan och det är så att användaren skall bestämma storleken på plusset. Ingen felhantering krävs. Detta är en typisk matteuppgift (plus). Körexempel 1: Mata in storleken: 1 +-+ +--+ +--+ +-+ Körexempel 2: Mata in storleken: 2 +--+ +----+ +----+ +--+ Körexempel 3: Mata in storleken: 3 +---+ +------+ +------+ +---+ Krav: Programmet skall vara skrivet på ett programtekniskt vettigt sätt.

2004-03-11.kl.08-13 Uppgift 4 Du har ett givet huvudprogram som heter printerchoice.adb. Detta vill använda sig av ett paket som skall heta Listhandling. I detta paket (som du skall skriva) skall det finnas de saker som fattas i huvudprogrammet. Den datastruktur som skall skapas skall vara uppbyggd av pekare (en enkel bakåtlänkad lista) och den skall se ut på följande sätt. A B C D Krav: Du får INTE ändra på huvudprogrammet. I paketet skall följande saker skapas: En datatyp som heter List_Type som representerar ovanstående. A-D är tal i Fibonacciserien. En procedur, Insert, som skall stoppa in ett talen sist i listan (därför är det praktiskt att ha en bakåtlänkad lista där man ju pekar direkt på det sista elementet i listan). Listan blir på detta sätt inte sorterad, men det är vi inte ute efter. I exemplet ovan är talet A först instoppat i listan, följt av B, sen C och sist D. En procedur, Delete, som tar bort en hel lista (utan att minnesläckor uppstår). En procedur, Put, som skriver ut listan framifrån (för ovanstående exempel: A B C D) eller bakifrån (D C B A). Vilken ordning som skall användas skickas med till Put som ett sanningsvärde (Boolean). Om inget sanningsvärde skicka med skall listan skrivas ut framifrån.