Datalogi, grundkurs 1

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

Datalogi, grundkurs 1

Datalogi, grundkurs 1

Idag: Par och listor. Symboler. Symboler används för att uttrycka icke-numeriska data såsom namn, adress, bilregisternummer, boktitel, osv.

Föreläsning 9 Exempel

Idag: Par och listor. Scheme. DA2001 (Föreläsning 6) Datalogi 1 Hösten / 29

Datalogi, grundkurs 1 Övningsuppgifter i Scheme. Serafim Dahl, Carina Edlund, m.fl.

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

Föreläsning 9 Exempel. Intervallhalveringsmetoden. Intervallhalveringsmetoden... Intervallhalveringsmetoden...

Några saker till och lite om snabbare sortering

TDDC74 Programmering, abstraktion och modellering. Tentamen

TDDC74 Programmering: Abstraktion och modellering Dugga 2, kl 8 10, 5 mars 2015

Idag: Dataabstraktion

Signalflödesmodellen. Två (gamla) exempel: Kvadratera alla jämna löv.

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

Sökning i ordnad lista. Sökning och sortering. Sökning med vaktpost i oordnad lista

TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18

TDDC74 Programmering: Abstraktion och modellering Dugga 2, Tid: kl 08-10, Datum:

TDDC74 Programmering, abstraktion och modellering DUGGA 2

TDDC74 Programmering, abstraktion och modellering. Tentamen

TDDC74 Programmering: Abstraktion och modellering Dugga 1, kl 14-16

Procedurer och villkor. Rekursiva procedurer. Exempel: n-fakultet

Procedurer och villkor

TDDC74 - Lektionsmaterial C

Tentamen i Introduktion till programmering

TDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 9 juni 2016, kl 14 18

TDDC74 Programmering, abstraktion och modellering. Tentamen

TDDC74 Programmering, abstraktion och modellering. Tentamen

TDDC74 Programmering: Abstraktion och modellering Datortenta

Sökning och sortering. Sökning och sortering - definitioner. Sökning i oordnad lista. Sökning med vaktpost i oordnad lista

TDDC74 Lab 04 Muterbara strukturer, omgivningar

TDDC74 Programmering: Abstraktion och modellering. Provkod TEN1, Tid: kl 14-18, , Kåra

Sökning och sortering

Två fall: q Tom sekvens: () q Sekvens av element: (a b c) ; (sum-rec '(2 4 6)) = 12. q Första elementet uppfyller vissa villkor: (2 a b c)

Deklarationer/definitioner/specifikationer

TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 14-16

Idag: Dataabstraktion

Börja med att kopiera källkoden till din scheme-katalog (som du skapade i Laboration 1).

FÖRELÄSNING 2, TDDC74, VT2018 BEGREPP PROBLEMLÖSNING MED HJÄLP AV FALLANALYS PROBLEMLÖSNING MED HJÄLP AV REKURSION

TDDC74 Programmering: Abstraktion och modellering Datordugga 2 - exempel

TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 29 augusti 2015, kl 8 12

Fiktiv tentamen för DD1370 Databasteknik och informationssystem

n Detta för att kunna koncentrera oss på n Tal: number? n Symboler: symbol? n Strängar: string? n Tecken: char? n Boolskt: boolean?

TDDC74 Lab 02 Listor, sammansatta strukturer

TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 17-19

Programkonstruktion. Tentamen,

Lösningsförslag. TDDC74 Programmering: Abstraktion och modellering. Dugga 3 (provkod TEN1), Tid: kl 14-16, Datum:

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

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

Programdesign. minnesutrymme storlek på indata. DA2001 (Föreläsning 15) Datalogi 1 Hösten / 20

Funktionell programmering DD1361

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

Datalogi för E Övning 3

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

Ändringsbar (mutable compound) data. TDDC74 Programmering: abstraktion och modellering. Sätta - samman listor kopiering. Hitta sista cons-cellen

Tenta i Grundläggande programmering DD klockan

Fiktiv tentamen för DD1370 Databasteknik och informationssystem

Institutionen för datavetenskap, DAT060, Laboration 2 2 För denna enkla simulerings skull kommer handen att representeras som ett par tal μ värdet på

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

Programdesign. Dokumentera. Dokumentera

TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 08-12

Förra gången: Primitiva data

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

DD1361 Programmeringsparadigm. Carina Edlund

TDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 19 oktober 2016, kl 14 18

Lära dig analysera större och mer komplicerade problem och formulera lösningar innan du implementerar.

Tentamen för DD1370 Databasteknik och informationssystem

Repetition i Pascal. Exemplen fac. Exemplen fac i Pascal. Exemplen fac motivering. Orginalet

SP:PROG3 HT12 Tenta

DD1320 Tillämpad datalogi. Lösnings-skiss till tentamen

TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12

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

Språket Scheme. DAT 060: Introduktion till (funktions)programmering. DrScheme. uttryck. Jacek Malec m. fl. evaluering av uttryck.

Programmering II (ID1019)

Abstraktion. Abstraktion... Abstraktion... Abstraktion...

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

Programmering II (ID1019) :00-11:00

Abstraktion. procedurabstraktion. DA2001 (Föreläsning 26) Datalogi 1 Hösten / 27

Tentamen i. Programmering i språket C

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

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

Dagens föreläsning Programmering i Lisp Fö 5

Lösningar till uppgifterna sätts ut på kurssidan på nätet idag kl Omtentamen i Programmering C, 5p, A1, D1, E1, Fri, Pr1, Te/Ek1,

Tentamen Grundläggande programmering

729G04 Programmering och diskret matematik

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

BEGREPP HITTILLS FÖRELÄSNING 2 SAMMANSATTA UTTRYCK - SCHEME DATORSPRÅK

Typsystem. Typsystem... Typsystem... Typsystem... 2 *

HI1024 Programmering, grundkurs TEN

Tentamen (del 2) (4 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201)

Typsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19

TDDC74 Programmering, abstraktion och modellering DUGGA 3

Tentamen i Datorteknik och - kommunikation, 2D1522/4K1522. Läs detta innan du börjar:

TDDC74 Programmering: Abstraktion och modellering Dugga 2, kl 8 10, 3 mars 2016

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

Omtentamen (del 1, 6 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201)

Tentamen för DD1370 Databasteknik och informationssystem

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

Grundläggande datalogi - Övning 1

Transkript:

Datalogi, grundkurs 1 Tentamen 10 december 2008 konverterad till Python Hjälpmedel: Kommer att finnas i skrivsalarna, bl.a. Revised 6 Report on the Algorithmic Language Scheme och två olika s.k. Cheat Sheets för Python Tänk på: Tentan är anonymiserad, d.v.s. att man använder dubbla omslag. Följ noga vaktens instruktioner. Skriv högst en uppgift på varje blad. Använd endast framsidan på varje blad. Uppgifterna kommer inte i svårighetsordning. Skriv tydligt, motivera svaren endast begriplig och läsbar lösning ger poäng. Maximal poäng finns angiven inom parentes vid varje uppgift. Totalt kan tentamen ge 60 poäng, varav 30 säkert ger godkänt. Lycka till, Serafim

1. a. (2p) Vad är ett black-box-test och vem bör utföra ett sådant? b. (2p) Vad är ett glass-box-test och vem bör utföra ett sådant? 2. Proceduren prime? (define prime? (lambda (n) (define interval-list (lambda (m n lst) (if (> m n) lst (interval-list (+ 1 m) n (append lst (list m)))))) (define remove-multiples (lambda (n lst) (cond ((null? lst) ()) ((= (modulo (car lst) n) 0) (remove-multiples n (cdr lst))) (else (cons (car lst) (remove-multiples n (cdr lst))))))) (define sieve (lambda (lst) (if (null? lst) () (cons (car lst) (sieve (remove-multiples (car lst) (cdr lst))))))) (= n (car (reverse (sieve (interval-list 2 n ()))))))) kontrollerar om dess argument n är ett primtal genom att interval-list bygger en lista med alla tal från och med 2 och upp till och med det argument man anropar prime? med. Därefter plockar sieve bort alla tal som inte är primtal ur listan så att endast primtalen finns kvar och använder då proceduren remove-multiples som hjälp-procedur. Metoden är gammal (grekisk) och kallas för Eratostenes såll ( sieve = såll ). Om argumentet n i anropet till prime? fortfarande är kvar i listan kommer det stå sist och är ett primtal, där (car (reverse (sieve (interval-list 2 n ())))) plockar ut det sista talet i listan. 1 av 3

3. (10p) a. (6p) Avgör, för var och en av de lokala procedurerna i prime? om proceduren är svansrekursiv eller inte. Motivera noga. b. (7p) Eftersom minst en av de lokala procedurerna inte är svansrekursiv blir din uppgift att modifiera prime? så att alla lokala procedurer blir svansrekursiva. Det är OK att göra en annorlunda lösning. c. (2p) I ett black-box -test skall man testa med felaktiga värden. prime? klarar inte det med sin nuvarande utformning. Föreslå en modifiering som gör att prime? fungerar vettigt även om man anropar med t.ex. (prime? 1), (prime? kalle) eller (prime? 3.14). Skriv ett Pythonprogram som läser igenom en textfil och skriver ut hur många heltal som finns i filen. Det är OK att räkna 3.1415926 som talen 3 och 1415926. 4. Proceduren sort nedan avses sortera de element i vektorn v som ligger på platserna fr.o.m. v[m] t.o.m. v[n] def sort(v, m,n): for i in range(n, m, -1): if v[i] < v[i-1]: v[i], v[i-1] = v[i-1], v[i] if m < n: sort(v, m+1, n) a. (4p) Skriv vettiga pre- och post-villkor för sort. b. (5p) Funktionen kan effektiviseras (marginellt) utan att rekursionen elimineras genom att man slutar sorteringen om inget ändrats under en genomgång av vektorn. Inför den förbättringen. c. (9p) Skriv om funktionen så att den inte utnyttjar rekursion. 5. Man vill skapa ett enkelt register för att hålla reda på priser och kvaniteter för varor i ett varuhus och har valt Scheme som språk. Den struktur man valt ser ut så En post är en lista med (varunr varutyp pris sort kvantitet). Registret är en lista med poster (ett utsnitt av registret): ((312 "cykel" 2530 styck 828) (315 "vetemjöl" 9.45 kg 213) (316 "socker" 22.10 kg 200)... ) 2 av 3

där man kan läsa ut att vara nummer 312 är en cykel som kostar 2530 kr styck och det finns 828 st. i lager, att vara nummer 315 är vetemjöl till 9.45 kr per kg med 213 kg i lager, o.s.v. a. (5p) Skriv konstruktorer och selektorer med beskrivande namn (namn som på ett begripligt sätt accocierar till vad proceduren gör) för både poster (konstruktion av en post och läsa av delarna), och hantering av registret (sätta in, hämta poster). b. (8p) Skriv med hjälp av de i föregående deluppgift definierade procedurerna en procedur som beräknar det totala värdet som varulagret motsvarar, d.v.s summan av de värden varje post representerar. För högsta poäng ska din lösning vara svansrekursiv. 3 av 3