729G04 Programmering och diskret matematik Tenta kl 14:00-18:00

Relevanta dokument
729G04 Programmering och diskret matematik

729G04 Programmering och diskret matematik

729G04 Programmering och diskret matematik

729G04 Programmering och diskret matematik

Uppgifter till tenta i 729G04 Programmering och diskret matematik. 7 augusti 2015, kl 08:00-12:00

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

729G74 - IT och programmering, grundkurs. Dugga.

Uppgifter till tenta i 729G04 Programmering och diskret matematik. 17 december 2015, kl 14:00-18:00

729G04 Programmering och diskret matematik TEN kl 8-12

TDP Regler

TDIU Regler

TDP Regler

TDP Regler

TDIU Regler

TDP Regler

TDIU01 / 725G

TDP Regler

TDIU Regler

729G04 Programmering och diskret matematik TEN kl 8-12

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

TDDI22 (exempel) TDDI22 Tentaregler

TDP Regler

TDIU Regler

TDDI TDDI22 Tentaregler

kl Tentaupplägg

Tentamen i. Programmering i språket C

TDIU20 (exempel) TDIU20 Tentaregler

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN

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

KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: 8-13, den 18 februari 2012

TDDI TDDI22 Tentaregler

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

Regler. Betygssättning

TDDI TDDI22 Tentaregler

Tentamen i Programmering grundkurs och Programmering C

Tentamen TEN1 HI

TDP Regler

HI1024 Programmering, grundkurs TEN

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

kl Tentaupplägg

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Johan Karlsson Datavetenskap för teknisk kemi, 10p, moment 1 Datavetenskap Umeå Universitet. Tentamen

Tentamen i Programmering grundkurs och Programmering C

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN

För alla uppgifter på tentan gäller: Man får använda både standard-c++ (som till exempel har pekare som anges med * och objekt som skapas med new) och

kl Tentaupplägg

DD1311 Programmeringsteknik för S1 Laborationer läsåret

kl Tentaupplägg

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: Fredagen den 21 oktober 2011,

Tentamen, EDAA10 Programmering i Java

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

INFORMATIK - MED SYSTEMVETENSKAPLIG INRIKTNING, GRK/A (1-30 HP)

Tentamen i Introduktion till programmering

kl Tentaupplägg

TDIU TDIU20 Tentaregler

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

Uppgift 1 (Sorterade heltal som är OK)

Tentaupplägg denna gång

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

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

kl Tentaupplägg

Tentamen TEN1 HI

729G04 - Diskret matematik. Hemuppgift.

DUGGA Tentaupplägg

TDDI TDDI22 Tentaregler

TDDE44 Programmering, grundkurs

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

TDIU TDIU20 Tentaregler

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

Regler. Betygssättning

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

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

Lösningar till uppgifterna sätts ut på kurssidan och på WebCT (Gamla Tentor) i dag kl 19. Tentamen i Programmering C, 5p, Distans, övriga,

kl Tentaupplägg

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

Tentamen i Programmering grundkurs och Programmering C

Uppgift 1 ( Betyg 3 uppgift )

Tentamen ges för: Tentamensdatum: Tid:

Introduktion till användning av linux-servern sledge och några övningsuppgifter

729G04 PYTHON 6 JODY FOO. Department of Computer and Information Science (IDA) Linköping University, Sweden

Tentaupplägg denna gång

kl Tentaupplägg

Objektorienterad programmering, Java, 5p TDBA63

Användarhandledning Version 1.2

kl Tentaupplägg

PROGRAMMERING-JAVA TENTAMINA

Uppgift 1 (grundläggande konstruktioner)

Övningsuppgifter kapitel 8

Systemutvecklare SU13, Malmö

Datalogi, grundkurs 1

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

Tentamen TEN1 HI

kl Tentaupplägg

DUGGA Tentaupplägg

Laboration 1 Introduktion till Visual Basic 6.0

kl Tentaupplägg

TENTAMEN OOP

Transkript:

1 ( 5) 729G04 Programmering och diskret matematik Tenta kl 14:00-18:00 Tillåtna hjälpmedel: Dator, penna, papper, linjal, suddgummi, godkänd(a) bok/böcker (ej anteckningar, föreläsningsbilder, gamla labbar eller labbinstruktioner) Uppgifter: Tentan består av 7 uppgifter (! 5 sidor inklusive denna sida). Poäng: 200 Betyg: U/G/VG. För att få VG behövs minst 150 poäng. För att få G behövs minst 100 poäng. Frågor på tentamen: Examinator är närvarande i lokalen i början av tentan och besöker sedan tentalokalen klockan 15:00, 16:00 och 17:00. Om du fastnar på en fråga, gå vidare till nästa fråga. Om du har funderingar som du inte kan få svar på, skriv ner dessa och hur du tolkat eventuella oklarheter som kommentarer i koden. Om det är systemet som krånglar, kan en av tentavakterna kontakta examinatorn. Inloggning 1. Ändra sessionstyp till "Exam System" innan du loggar in. 2. Logga in med ditt vanliga IDA-konto 3. Följ instruktionerna på skärmen och skriv in ditt personnummer. 4. Tentavakten kommer att gå runt och kontrollera personnummer och legitimation. Efter kontroll får du ett engångslösenord som du använder för att logga in med i själva tentasystemet. Utloggning (viktigt) Du måste avsluta tentan innan du lämnar salen genom att trycka på knappen "Avsluta tenta". För att komma till knappen "Avsluta tenta" måste du först logga ut som vanligt (se till att filer är sparade), och sedan välja avsluta tenta.

2 ( 5) Inlämning Svar till uppgifterna skrivs i en textfil som du sparar under namnet dittstudentid.py (om ditt student-id är abcde123 sparar du till filen abcde123.py). Spara filen direkt i din hemkatalog. Hemkatalogen i tentasystemet heter både /home/student_tilde/ eller /home/progixyz där XYZ är siffror som är olika för varje inloggning. Du får använda valfri texteditor som finns tillgänglig, dvs. jedit, gedit eller den inbyggda i IDLE (fram tills nu i kursen har vi bara använt IDLE). Skriv namn, liu-id och personnummer i början av filen. Skriv en kommentar med uppgiftsnummer innan lösningen på uppgiften. Kom ihåg att spara då och då! Exempel på hur början av filen kan se ut # coding: utf-8 # Jody Foo, jodfo01 # 990818-0274 # Uppgift 1

3 ( 5) Uppgift 1 (20p) För att omvandla temperatur angiven i Fahrenheit till Celsius används följande formel. T C = (T F - 32) * 5/9 Motsvarande omvandlar man en temperatur angiven i Celsius till Fahrenheit med T F = T C * 9/5 + 32 a) Implementera funktionen fahrenheit_to_celsius(temp_f) som tar in en temperatur (flyttal) i Fahrenheit och returnerar temperaturen i Celsius (också flyttal). b) Implementera funktionen celsius_to_fahrenheit(temp_c) som tar in en temperatur (flyttal) i Celsius och returnerar temperaturen i Fahrenheit (också flyttal). Uppgift 2 (30p) För nedanstående uppgifter ska endast heltalen adderas. Summan av heltalen i listan [1, 1.0, 1] är alltså 2. Summan av heltalen i listan [1.0, 2.0] är 0. a) Skriv funktionen add_ints_for(numbers) som får in en lista av positiva heltal och flyttal och returnerar summan av alla heltal. Använd en for-loop. b) Skriv funktionen add_ints_while(numbers) som får in en lista av positiva heltal och flyttal och returnerar summan av alla heltal. Använd en while-loop. c) Skriv funktionen add_ints_rec(numbers) som får in en lista av positiva heltal och flyttal och returnerar summan av alla heltal. Lös uppgiften rekursivt. Uppgift 3 (30p) a) Skriv funktionen reverse_for(a_string) som får in en sträng och returnerar strängen baklänges. Får den in strängen "hej" ska den alltså returnera "jeh". Använd en for-loop. b) Skriv funktionen reverse_while(a_string) som får in en sträng och returnerar strängen baklänges. Får den in strängen "hej" ska den alltså returnera "jeh". Använd en while-loop. c) Skriv funktionen reverse_rec(a_string) som får in en sträng och returnerar strängen baklänges. Får den in strängen "hej" ska den alltså returnera "jeh". Lös uppgiften rekursivt. Uppgift 4 (20p) Skriv funktionen days_in_month(name_of_month) som tar in ett namn på en månad och returnerar hur många dagar som den månaden har (anta att det inte är skottår). Funktionen ska klara av namn på svenska i olika former, dvs variationer med stora och små bokstäver, samt både utskrivna namn på månader (januari, februari, mars osv), samt tre-bokstavsförkortningar (jan, feb, mar osv). Om felaktig input ges, dvs en sträng som inte känns igen, eller ett värde som inte är en sträng, ska -1 returneras.

4 ( 5) Uppgift 5 (20p) Vi har följande dictionary som får representera en person. person1 = {"name": "Pellegrin", "age": 56} Skriv funktionen add_child(person, name_of_child) som tar in ett dictionary med samma struktur som person1 och lägger till namnet på barnet i en lista i dictionaryt. Nyckeln till listan med barn ska vara strängen "children". Man ska kunna använda samma funktion för att lägga till flera barn. Se körexempel nedan >>> person1 = {"name": "Pellegrin", "age": 56} >>> add_child(person1, "Rabarber") >>> print(person1) {'name': 'Pellegrin', 'age': 56, 'children':['rabarber']} >>> add_child(person1, "Krusbär") >>>print(person1) {'name': 'Pellegrin', 'age': 56, 'children':['rabarber', 'Krusbär']} >>> Uppgift 6 (50p) Geraldine har kommit på att man kan identifiera en persons lyckofärg genom att analysera i vilka proportioner som vokaler och konsonanter förekommer i personens namn. Man börjar med att räkna hur antalet hårda vokaler (a, o, u, å), mjuka vokaler (e, i, y, ä, ö) och konsonanter en person har i sitt namn. Man får då tre tal. För att få fram en färg, tolkar man dessa tal som RGB-färgkod (dvs hur mycket rött, grönt och blått ljus man blandat). Hårda vokaler motsvarar röd färg. Mjuka vokaler motsvarar grön färg och konsonanter motsvarar blå färg. Storleken på rött, grönt, blått ska vara ett flyttal mellan 0 och 1, därför normaliserar man värdena så att det högsta värdet motsvarar 1. a) Skriv funktionen calc_vowels_and_consonants(name) som returnerar en lista med tre heltal givet en sträng som motsvarar ett namn. Det första elementet i listan är antalet hårda vokaler, det andra elementet är antalet mjuka vokaler och det tredje elementet är antalet konsonanter. Om 1 namnet man vill analysera är "Rumpelstiltskin" så får man följande anrop och returvärde: >>> calc_vowels_and_consonants("rumpelstiltskin") [1, 3, 11] >>> b) Skriv funktionen normalize_char_freqs(char_freqs) som tar in en lista med tre heltal, char_freqs, och returnerar en lista med tre flyttal mellan 0 och 1. Man får flyttalen genom att dividera heltalen med det största värdet i listan som kommer in. För listan [1, 3, 11] är det högsta talet 11, så man dividerar alla tal med 11 (vi struntar alltså i storleken på lägsta värdet och hur det förhåller sig till 0). Nedan följer anrop och returvärde: >>> normalize_char_freqs([1, 3, 11]) [0.090909091, 0.272727273, 1.0] >>> (antalet värdesiffror kan skilja sig beroende på flyttalshantering i datorer) 1 Denna sagofigur från bröderna Grimm kallas också för Bulleribasius, Rackarnaster, Bullerskaft, Pärkonskaft, Tom Tit Tot och säkert en del andra saker också.

5 ( 5) Uppgift 7 (30p) Skriv en funktion manhattan(houses, min_height, max_height som givet tre tal ritar upp en slumpmässig figur som med lite fantasi kan tolkas som en bild av skyskrapor. De tre talen anger bredden (d.v.s. antalet höghus) samt minsta respektive högsta höjden på husen. Höghusen ska skrivas ut med tecknet '#'. Inga fönster (dvs luckor) får finnas i husen Exempel: >>> manhattan(15, 2, 8) # # ## ## ##### # # ## ##### # # ######## ### ######## ## ############### ############### Ovanstående exempel producerar en slumpmässig höghuskontur med 15 höghus som är från 2 upp till 8 våningar höga. Den figur som skrivs ut ska vara orienterad enligt exemplet, d.v.s. marknivå längst ned. Använd randint() från modulen random för att slumpa.