Uppgift 1 ( Betyg 3 uppgift )

Relevanta dokument
Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift )

kl Tentaupplägg

kl Tentaupplägg

Uttryck, satser och strömhantering

kl Tentaupplägg

Uppgift 1 ( Betyg 3 uppgift )

kl Tentaupplägg

DATORÖVNING 3: EXPERIMENT MED

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 (vadå sortering?)

Uppgift 1 (grundläggande konstruktioner)

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1a (Aktiekurser utan poster)

kl Examination - Ada

kl Tentaupplägg

Uppgift 1 ( Betyg 3 uppgift )

kl Tentaupplägg

Uppgift 1 (Sorterade heltal som är OK)

TDIU20 (exempel) TDIU20 Tentaregler

Uppgift 1 ( Betyg 3 uppgift )

DUGGA Tentaupplägg

TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH

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

TDP Regler

kl Tentaupplägg

DUGGA Tentaupplägg

kl Tentaupplägg

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

kl Tentaupplägg

Agenda. Objektorienterad programmering Föreläsning 13

kl Tentaupplägg

kl Tentaupplägg

TDP Regler

TDIU Regler

kl Tentaupplägg

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

TDIU Regler

Uppgift 1 ( Betyg 3 uppgift )

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

Kortspel. Ett spel - tusen upplevelser

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 20

kl Tentaupplägg

kl Tentaupplägg

Kurs: HF1012, Matematisk statistik Lärare: Armin Halilovic Datum: Tisdag 12 april 2016 Skrivtid: 8:15-10:00

kl Tentaupplägg

Variabler och konstanter

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Uppgift 1 (Oläsliga krypterade meddelanden)

TDDI TDDI22 Tentaregler

UPPGIFT 1 KANINER. Håkan Strömberg 1 Pär Söderhjelm

TDP Regler

Abstrakta datatyper Laboration 2 GruDat, DD1344

Språket Python - Del 1 Grundkurs i programmering med Python

Tentaupplägg denna gång

kl Tentaupplägg

Föreläsning 4: Poster

kl Tentaupplägg

översiktskurs (5DV031)

Tentaupplägg denna gång

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

HI1024 Programmering, grundkurs TEN

TDP Uppgift 1

kl Tentaupplägg

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

Föreläsning 6: Introduktion av listor

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 för kursen Objektorienterad programvaruutveckling GU (DIT010)

Tentaupplägg denna gång

kl Tentaupplägg

TDDC74 Programmering: Abstraktion och modellering Datordugga 2 - exempel

Tentaupplägg denna gång

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

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

Ungefär lika stora tal

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

5 Grundläggande in- och utmatning

Övning 3. Datateknik A, Java I, 5 poäng

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2

Tentaupplägg denna gång

C++ Slumptalsfunktioner + switch-satsen

Protokoll MiniBridge

Steg-för-steg. Hur vinner du i Bridge? Budgivningen. Grundförutsättningar. 1. Räkna poäng. 2. Budgivning - del 1. Vilket par har flest poäng?

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

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

Kursmaterial för laborationer i

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

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

Tillägg, Studiehandledning LMN100 Delkurs 4: Statistik, sannolikhet och funktioner

LÖSNINGSFÖRSLAG TILL Tentamen i objektorienterad programmering i C++ I

Studiehandledning, LMN100, Del 3 Matematikdelen

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

LINKÖPINGS UNIVERSITET EXAM TAMS 79 / TEN 1

Kombinatorik. Bilder: Akvareller gjorda av Ramon Cavallers, övriga diagram och foton av Nils-Göran. Nils-Göran Mattsson och Bokförlaget Borken, 2011

Gränssnitt för FakeGranska. Lars Mattsson

TDIU Regler

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

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI

Objektorienterad programmering D2

Transkript:

Uppgift 1 ( Betyg 3 uppgift ) Skriv ett program, Draw_Hexagones, som ritar ut en bikupa enligt körexemplen nedan. Exempel 1: Mata in storlek på bikupan: 1 Exempel 3: Mata in storlek på bikupan: 3 \ / \ / \ /

Uppgift 2 Det finns givet ett huvudprogram, Random_Handling_Test, som skriver ut 20 stycken slumptal. Slumptalen genereras i funktionen Random som ligger i ett paket som heter Random_Handling. Tyvärr finns inte själva funktionen Random färdig. Det är din uppgift att skapa denna i paketet. Skriv denna i paketet där det är markerat att du skall skriva funktionen. Ett krav är att funktionen Random endast skall returnera heltal vars rot också är ett heltal. Exempel på sådana tal är 0, 1, 4, 9, 16,... (rötterna till dessa är 0, 1, 2, 3, 4,...). Paketet är påbörjat så det enda som saknas är själva funktionen du skall skriva. Lite speciellt är att det i paketet är så att Reset redan är anropad innan man anropar din funktion. Detta sker längst ner i adb -filen i paketet. Du skall alltså inte göra Reset i din funktion! Det är tillåtet att skapa extra underprogram till din funktion om du så vill, men det är inte nödvändigt. Du skall inte ändra något i den befintliga programkoden vare sig i huvudprogrammet eller i paketet. Du skall se till att funktionen returnerar tal vars rötter maximalt är 10. Detta för att man snabbt skall se att utdatat verkar rimligt. OBS! Du får dock inte skriva funktionen så att den begränsas till detta mer än via den konstant (i datatypen Integer_Type) som finns i paketet.

Uppgift 3 Det finns ett paket som heter Poker_Handling. I detta finns ett antal delar redan färdiga. Det fattas dock en funktion som skall ta reda på vilket värde en pokerhand har. Först ett par definitioner: Det finns fyra färger (hjärter, spader, ruter och klöver) och dessa benämns på engelska förkortat som (h, s, d, c). Det finns 13 valörer (Ess, 2, 3, 4, 5, 6, 7, 8, 9, 10, Knekt, Dam, Kung). OBS! Ess kan räknas antingen som en etta eller som 14 (d.v.s. direkt efter kungen). På engelska betecknas valörerna förkortat som (A, 2, 3, 4, 5, 6, 7, 8, 9, T, J, Q, K). Man brukar skriva ut valören före färgen när man skriver ut kort. Korten spader dam och ruter 4 skrivs alltså: Qs respektive 4d. Nedan följer en tabell över hur värdet är kopplat till handen. Värde Namn Beskrivning 8 Straight flush Samma färg på alla kort och samtidigt stege 7 Four of a kind Samma valör på fyra kort (t.ex. 4 stycken 3:or). Det femte kortet används ej. 6 Full house Tre kort med samma valör (t.ex. 333) samt 2 kort med samma valör (t.ex. 66) oberoende av färg. Detta innebär alltså att alla fem korten används. 5 Flush Samma färg på alla korten 4 Straight Stege där inte alla kort är av samma färg. 3 Trips (set) Tre kort med samma valör. De två andra är olika. 2 Two pairs Två olika par (se One pair). Det femte kortets valör olikt de övriga. 1 One pair Två kort med samma valör. De övriga tre olika. 0 Nothing Ingen av ovanstående beskrivningar. Funktionen du skall skriva skall returnera det värde som står i första kolumnen i tabellen då du hittat vilken hand det rör sig om. Tips 1: Börja med att kontrollera om det är Flush samt Straight. Dessa två tillsammans kan avgöra om du har en Straight flush. Försök finna de mest värda händerna tidigt då detta ger att man direkt kan returnera värdet. Tips 2: Gör en frekvenstabell (ta reda på hur många av respektive valör som finns och lagra detta i ett fält). Kontrollera i frekvenstabellen om det är 4, 3 eller 2 av samma valör för att finna Trips, Full house m.m. Kan vara intressant att ha denna tabell redan för att finna om det är en Straight.

Uppgift 4 På en fil som heter TEXT.TXT finns en text som eventuellt innehåller en massa parenteser av olika sorter. Det kan vara vanliga parenteser () eller hakparenteser [] eller så kallade krullparenteser {}. Dessa kan ligga i varandra hur som helst, men för att det skall vara korrekt måste den egna parentestypen avslutas innan en annan parentestyp avlutas. En text kan alltså innehålla följande konstruktion: (... [... (... {... }... (... )... )...]... {}) En text får dock inte innehålla följande konstruktion: (... [... )... ] Texten får heller inte avslutas innan alla parenteser är avslutade. Ett exempel där det blir fel är alltså: (... (... (... )... (... )... ) Man kan också tänka sig att en svslutningsparentes dyker upp utan att det finns en startparentes. Detta är alltså också fel även om antale parenteser är korrekt: (... )... ) ( Din uppgift är att skriva ett program som kontrollerar att man har matchande parentespar genom hela texten. Det kan vara så att parenteser ligger på olika rader. Det är alltså hela texten som ses som en sekvens. Exempel på programkörning där filens innehåll var ok: Filen innehöll korrekt parantesmatchning. Exempel på programkörning där filens innehåll inte var ok: Filen innehöll inte korrekt parantesmatchning. Tips: Det är ok att skapa flera olika datafiler så att du kan testa ditt program. VIKTIGT är dock att du ser till att programmet läser från filen TEXT.TXT innan du skickar in din lösning. P.S. Om ni vet vad krullparenteserna heter på riktigt får ni gärna meddela detta dem som rättar uppgifterna. D.S.

Uppgift 5 (Specialuppgift endast för betyg 3) OBS! Denna uppgift går ej att kombinera med de övriga för högre betyg. På en fil som heter TEXT_SPECIAL.TXT finns en datamängd där raderna har följande format: Sträng Tal Oväsentliga data Strängen är alltid 6 tecken lång. Därefter kommer ett blanktecken. Talet kan vara antingen ett heltal (0, 12, 45,...) eller ett flyttal (3.14, 12.0, 27.34,...). OBS! talet 12.0 är alltså ett flyttal. Efter talet kommer alltid ett blanktecken. Resten av raden är oväsentlig i denna uppgift. Filen kan bestå av godtyckligt många rader! Din uppgift är att leta reda på alla tal som är heltal och beräkna medelvärdet av dessa. Alla flyttal skall ignoreras. Som utdata på skärmen skall antalet heltal skrivas ut samt medelvärdet av dessa. Om inga heltal finns skall detta skrivas ut. Körexempel där det inte finns några heltal på filen: Det fanns inga heltal i filen. Körexempel där det finns 5 heltal på filen: Det fanns 5 heltal i filen. Medelvärdet blev: 14.600 Tips: Det är ok att skapa flera olika datafiler så att du kan testa ditt program. VIKTIGT är dock att du ser till att programmet läser från filen TEXT_SPECIAL.TXT innan du skickar in din lösning.

2007-06-11.kl.08-13 Uppgift 1 ( Betyg 3 uppgift ) På en fil som heter TEXT.TXT finns en text som eventuellt innehåller en massa parenteser av olika sorter. Det kan vara vanliga parenteser () eller hakparenteser [] eller så kallade krullparenteser {}. Dessa kan ligga i varandra hur som helst, men för att det skall vara korrekt måste den egna parentestypen avslutas innan en annan parentestyp avlutas. Vi antar att det alltid är så att parenteserna är matchade om man finner en slutparentes. Dett behöver du inte kontrollera. Det som däremot inte är givet är att det finns slutparenteser i tillräcklig mängd för att matcha alla startparanteser. Din uppgift är att skriva ett program som kontrollerar om det är helt matchat med parenteser i filen. Om det inte är det skall du skriva ut hur många parenteser av de olika varianterna som saknas. Exempel på programkörning där filens innehåll var ok: Filen innehöll korrekt parantesmatchning. Exempel på programkörning där filens innehåll inte var ok: Filen innehöll inte korrekt parantesmatchning. Det saknas 3 stycken ). Det saknas 2 stycken ]. Det saknas 5 stycken }. Tips: Det är ok att skapa flera olika datafiler så att du kan testa ditt program. VIKTIGT är dock att du ser till att programmet läser från filen TEXT.TXT innan du skickar in din lösning. Om det är så att någon av parentesvarianterna är matchade men inte de övriga skall endast de varianter som inte matchas skrivas ut att de felar. D.v.s. Det blir endast färre utskriftsrader i andra programkörningsexemplet. P.S. Om ni vet vad krullparenteserna heter på riktigt får ni gärna meddela detta dem som rättar uppgifterna. D.S.

2007-06-11.kl.08-13 Uppgift 2 Det finns givet början till ett huvudprogram, Generic_Random_Handling_Test, som skriver ut 20 stycken slumptal. Slumptalen genereras i funktionen Random som ligger i ett paket som heter Generic_Random_Handling. Tyvärr är inte paketet riktigt färdigt heller. Det är för specifikt och skall göras om till ett generiskt paket. Din uppgift är alltså att fixa till paketet så att det blir generiskt med avseende på vilken storleksordning rötterna till de slumpade talen skall ha. Funktionen Random är gjord så att den returnerar heltal vars rot också är ett heltal. Exempel på sådana tal är 0, 1, 4, 9, 16,... (rötterna till dessa är 0, 1, 2, 3, 4,...). För tillfället är rötterna maximerade till 10 (i datatypen Integer_Type), men detta skall alltså ändras (din uppgift) så att huvudprogrammet kan bestämma detta senare. Se till att paketet blir generiskt med avseende på storleken på rötterna samt huvudprogrammet så att det använder sig av det modifierade paketet (d.v.s. instansierar det).

2007-06-11.kl.08-13 Uppgift 3 När man spelar kort är det ofta så att man inte är ensam. Om man antar att man är två personer som skall spela något kortspel där man har fem kort på handen (t.ex. poker) är det väsentligt att man inte har SAMMA kort båda två. Detta löser sig automatiskt om man spelar med en given kortlek, men det blir alltid annorlunda när man låter en dator generera slumpmässiga kort till respektive spelare. Det finns ett givet paket som heter Deck_Handling som hanterar det som motsvarar en kortlek. I detta paket finns det en given Generate-procedur som skapar en hand med 5 olika kort. Dock finns ett problem. Om man skapar två händer med 5 olika kort kan det slumpa sig så att man råkar få något eller några kort som är samma mellan de två händerna. Din uppgift är att se till att det finns en funktion, Legal_Hands, i paketet som tar emot två händer och kollar om de innehåller helt separerade kort. Om händerna inte innehåller SAMMA kort någonstans skall funktionen returnera True. I annat fall False. Det finns ett givet huvudprogram som heter Deck_Handling_Test. Du skall inte ändra i detta och heller inte i något annat i det givna paketet. Det är dock tillåtet att skapa separata extra underprogram till din nya funktion om du så tycker behövs. Körexempel: 7h Ac Kc 4d 5s and 7h 5d 9h Ts 2c is not ok. 4s 5d 7s 3d Qd and 2c 7s 4s Qd 4c is not ok. 7s 4h Tc 4s 6s and 7d 8c Ac 4c Jc is ok. Kh Ts 5d 5h Tc and 9h Ad Kh 3d 8s is not ok. 2c Qd 6h 7s Ks and 4s Td Jd 9s 5d is ok. Ad Tc 4c Jc 9d and 2d Kd 3s 7c Jh is ok. 8c Jc Kc 5h Qh and 8s Ks 7s 5c 5d is ok. 5d 5h 8d 3s 4h and 6s 3h 3s Js Jc is not ok. 5c Td 5s As 5h and 4c Tc 8c 2d Jc is ok. 8s 6c Jh 2d Qd and Kc Qd As 6s 8h is not ok. Ad 9c Qs 9d Ts and 8d 9s Kd 7h 9h is ok. Jh Qd Kd Kh Ks and 5s 8c Jh 2c Th is not ok. Kd 3s 4c 9d 6c and 8s 6h Ac Tc Ad is ok. 8h Jh Ah 3h As and 6s 7h 5h Jc 4c is ok. Kc 9d Qs 9h 8h and 3d Ac 5s Td 3h is ok. 9s 8s Ks 8h Jd and Qh 7d 2h Jh Th is ok. 4d 9h 3c 7d 5h and 5s 7h 2h 9s Th is ok. 8c 2s Ad Jh Qc and Jc 9d Kd Tc 5c is ok. 9h Ac 8h 3s 9s and Jc Qc Kh 9h 9c is not ok. 3c Ad 4c As 4s and 2d 5c 3c 3d Qc is not ok. OBS! De markerade delarna i körexemplet är endast till för att du skal lse varför det gått fel. Det är inget som kommer att synas i utskrifterna från programmet.

2007-06-11.kl.08-13 Uppgift 4 Skriv ett program, Draw_Special_Hexagones, som ritar ut hexagoner enligt körexemplen. Exempel 1: Mata in storlek på hexagonen: 1 Exempel 2: Mata in storlek på hexagonen: 2 / \ \ / Exempel 3: Mata in storlek på hexagonen: 3 / \ / \ / \ / \ \ / \ / \ / \ /