Tentamen i Introduktion till programmering

Relevanta dokument
tentaplugg.nu av studenter för studenter

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

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Datalogi för E Övning 3

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

729G04 Programmering och diskret matematik

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

Övningsuppgifter kapitel 8

Grundläggande datalogi - Övning 1

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Multipel tilldelning. Introduktion till programmering D0009E. Föreläsning 6: Iteration. while-satsen. Kom ihåg. Snurror kontra rekursion

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Laboration: Whitebox- och blackboxtesting

Tentamen TEN1 HI

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Datalogi, grundkurs 1

729G04 Programmering och diskret matematik

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

Tenta i Grundläggande programmering DD klockan

Uppgifter teknik HT17 (uppdaterad v. 40)

Imperativ och Funktionell Programmering i Python #TDDD73. Fredrik Heintz,

Användarhandledning Version 1.2

TENTAMEN OOP

Planering av ett större program, del 2 - for och listor. Linda Mannila

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

Ordlistor, filhantering och ut på webben. Linda Mannila

Tentamen Grundläggande programmering

Introduktion till programmering SMD180. Föreläsning 9: Tupler

Introduktion till programmering SMD180. Föreläsning 8: Listor

Dagens föreläsning Programmering i Lisp. - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning

Erfarenheter från labben

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

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

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

Introduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner

TENTAMEN OOP

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

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 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Metoder. Inledande programmering med C# (1DV402)

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Introduktion till programmering SMD180. Föreläsning 5: Fruktbara funktioner

Tentamen ID1004 Objektorienterad programmering May 29, 2012

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

Datalogi, grundkurs 1

Objektorienterad Programkonstruktion. Föreläsning jan 2016

Tentamen i Grundläggande Programvaruutveckling, TDA548

729G04 Programmering och diskret matematik. Python 3: Loopar

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

Datalogi, grundkurs 1

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

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

Föreläsning 2 Programmeringsteknik och C DD1316

public boolean containskey(string key) { return search(key, head)!= null; }

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

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

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner

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

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Språket Python - Del 1 Grundkurs i programmering med 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

Hur man programmerar. TDDC66 Datorsystem och programmering Föreläsning 3. Peter Dalenius Institutionen för datavetenskap

Textsträngar från/till skärm eller fil

Inom datalogin brukar man använda träd för att beskriva vissa typer av problem. Om man begränsar sig till träd där varje nod förgrenar sig högst två

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Gissa det hemliga talet

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

729G04 Programmering och diskret matematik TEN kl 8-12

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Rekursion och induktion för algoritmkonstruktion

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

Kurslitteraturen. C-nivå Villkorssatser [kap 8] if & elif & else and & or Loopar [kap 9] for

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

729G74 - IT och programmering, grundkurs. Dugga.

Kodexempel från Programmering 2 Tobias Wrigstad, Ph.D.

Att skriva till och läsa från terminalfönstret

Namn Stil Dokumentation Objekt-orienterad programmering OBS OBS OBS OBS OBS OBS OBS OBS

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.

Föreläsning 3-4 Innehåll

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag

Tentamen ges för: Tentamensdatum: Tid:

MicroPython Ett textbaserad programmeringsspråk för Micro:bit

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

Obs! Inget ur Javas standardbibliotek får användas i ett svar (om det inte står att man får det).

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,

Pythons standardbibliotek

Skriv i mån av plats dina lösningar direkt i tentamen. Skriv ditt kodnummer längst upp på varje blad.

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

Typkonvertering. Java versus C

Använda Python Laboration 1 GruDat, DD1344

HI1024 Programmering, grundkurs TEN

729G04 Programmering och diskret matematik TEN kl 8-12

Föreläsning 6: Introduktion av listor

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

Introduktion till programmering SMD180. Föreläsning 7: Strängar

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

Sätt att skriva ut binärträd

Transkript:

Tentamen i Introduktion till programmering Kurskod: Skrivtid: D0009E 09:00-13:00 (4 timmar) Totalt antal uppgifter: 7 Totalt antal poäng: 38 Tentamensdatum: 2014-05-17 Jourhavande lärare: Tillåtna hjälpmedel: Fredrik Bengtsson tel. 0920-492431, 0738166670 Ordbok (språkordbok för svenska och ett annat språk ej programmering) Tentamen avser exempel implementerade i programmeringsspråket som använts i kursen, Python, och lösningarna förväntas i samma programmeringsspråk. Lycka till!

Uppgift 1: (8p) a: Kommer följande program att terminera (terminera=avsluta)? i = range(0,7) for k in i: k=k-1 b: Vilken utskrift ger följande program: s=3 k=7 v=s==k if s>3 or not v: print "fall 1" else: if v: print "fall 2" else: print "fall 3" c: Vilken utskrift ger följande program: s="tamkcolp" r=range(len(s)) i = len(s)-1 for k in r: print s[-1], s=s[:-1] d: Vad händer när följande kod exekveras (om det blir fel, varför blir det fel?): s=3 s=float(str(s)+"2")+5.0 Uppgift 2: (5 p) Någon har skrivit en funktion, isunique(li), som är tänkt att returnera True om alla element i listan li är unika (samma element inte finns två gånger) och False i andra fall. Programmeraren kom fram till följande: def isunique(li): i = 0 while i<len(li): if li[i] in li[i+1:]: break return True Programmeraren är fundersam om han/hon gjort rätt. Uppgiften är att identifiera och rätta ev. fel genom att skriva en rättad version av programmet som fungerar i samtliga fall alternativt bevisa att versionen ovan är rätt.

Uppgift 3: (5p) Vad blir utskriften av följande program? def insert(lst, em): i = 0 while em>lst[i]: i = i+1 if i==len(lst): break lst[:] = lst[:i]+[em]+lst[i:] def choose(lst1, lst2): if lst1[0]<lst2[0]: return lst1 else: return lst2 l1=[3,8] l2=[2,5] insert(l2,7) insert(l1,1) l3=choose(l1,l2) insert(l3,6) print l1,l2,l3 Uppgift 4: (5p) Skriv en funktion histogram(s) som tar en sträng som parametrar och returnerar en lista med ett histogram över antal tecken. En lista med ett histogram över antal tecken är en lista av heltal där talet på position k i listan är antalet förekomster i strängen s av tecken k från ascii-tabellen. (första talet i listan är antalet förekomster av ascii-värde 0, andra talet av ascii-värde 1 osv.) Det finns totalt 256 st. ascii-värden. Dessutom ska en funktion histprint implementeras, som tar en lista som funktionen hist returnerat och skriver ut en tabell på skärmen, innehållande alla tecken som förekom i strängen. Tabellen ska se ut s om i exemplet nedan. Körexempel: >>> h=histogram('mississippi') >>> histprint(h) M: 1 i: 4 p: 2 s: 4 Inbygda funktioner eller metoder för strängoperationer får inte användas. Det är tillåtet att använda funktionerna len och range. Iteration kan ske på valfritt sätt med for eller while.

Uppgift 5: (5p) Betrakta följande kodsnutt: f=open("log.txt",'r') header = f.readline() logtype = int(f.readline()) f.close() Kapsla in koden som en egen funktion vid namn initlogtype. Modifiera funktionen och lägg till kod så att det, om filen inte existerar, skapas en ny fil med samma namn som den som försökte öppnas. I denna nya fil ska dessutom texten log skrivas på första raden. På andra raden ska loggens typ skrivas och detta är ett heltal som ska tas som parameter till funktionen initlogtype. Glöm inte att avsluta raderna. Om filen inte kan läsas (men väl existerar) så ska ett undantag av typen LogError kastas/genereras. Undantagshanteringssystemet användas för all funktionalitet. Felhantering utöver det som nämns i uppgiften behöver inte implementeras. Uppgift 6: (5 p) Vi vill göra en klass Counter som är tänkt att användas för att representera ett värde som kan uppdateras, men där synligheten för uppdateringar kan fördröjas. Klassen ska deklarera en metod value som ska returnera det nuvarande värdet. Det ska också finnas en metod increase, som tar ett värde som argument och där detta värde adderas till det nuvarande värdet. Dessutom ska två metoder, pause och unpause, finnas. Om pause anropas så fryses värdet som value returnerar tills unpause anropas (value returnerar aktuellt värde för tidpunkten av anropet till pause). Det går under denna tid bra att uppdatera värdet som vanligt med increase, men dessa uppdateringar syns inte när man anropar value. När unpause anropas så syns återigen det aktuella värdet, inkl. de uppdateringar som gjorts under paustiden. Även en metod revert ska implementeras som återställer värdet till det som var vid anropet av pause, om objektet är i pausläge. Om objektet inte är i pausläge händer inget vid anrop av revert. Klassen ska också deklarera en initierare där startvärde ska som argument till denna. En metod för strängrepresentationen av objektet ska implementeras och den ska ge räknarens värde, på samma sätt som value. Uppgift 7: (5p) Skriv en rekursiv funktion, isincreasing, som tar en lista av heltal, lst, som argument och returnerar True eller False. Funktionen ska returnera True om talen i listan förekommer i strikt stigande ordning i listan annars False. För en lista med längden 1 eller en tom lista får det värde som är lämpligt returneras. Exempel: >>> isincreasing([1,2,3,4,5,6,7]) True >>> isincreasing([1,2,3,4,5,8,7]) False