Uppgift 1 ( Betyg 3 uppgift )

Relevanta dokument
Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift )

TDIU Regler

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1a (Aktiekurser utan poster)

Uppgift 1 (vadå sortering?)

Uppgift 1 (Sorterade heltal som är OK)

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret Lektion 4

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

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

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift )

kl Tentaupplägg

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

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

DUGGA Tentaupplägg

kl Tentaupplägg

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

kl Tentaupplägg

EXTRA UPPGIFTER I C++ PROGRAMMERING-A

DUGGA Tentaupplägg

kl Tentaupplägg

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Detta är andra problemlösningsföreläsningen, vi diskuterar problemen ur Problem II.

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

TDDC74 Programmering, abstraktion och modellering. Tentamen

kl Tentaupplägg

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

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

Tentaupplägg denna gång

Uppgift 1 (grundläggande konstruktioner)

kl Tentaupplägg

Tentaupplägg denna gång

Tentaupplägg denna gång

Uppgift 1 ( Betyg 3 uppgift )

kl Tentaupplägg

kl Tentaupplägg

Uppgift 1 ( Betyg 3 uppgift )

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan

Tentamen: Datordel Programmeringsteknik

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

DN1212/numpm Numeriska metoder och grundläggande programmering Laboration 1 Introduktion

TDP Regler

Tentaupplägg denna gång

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

TDIU Regler

UPPGIFT 2 KVADRATVANDRING

TDDC74 Programmering, abstraktion och modellering. Tentamen

TDP Regler

Föreläsning 13. Dynamisk programmering

LABORATION 4 OBJEKTORIENTERAD PROGRAMMERING I C++ I

International Olympiad in Informatics July 2011, Pattaya City, Thailand Tävlingsuppgifter Dag 2 Svenska 1.3. Papegojor

Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl Tentamen i Programmering C, Fri, Kväll,

kl Tentaupplägg

Uppgift 1 ( Betyg 3 uppgift )

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

Uppgift 1 ( Betyg 3 uppgift )

Algoritmanalys. Genomsnittligen behövs n/2 jämförelser vilket är proportionellt mot n, vi säger att vi har en O(n) algoritm.

Datalogi, grundkurs 1

kl Tentaupplägg

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

Konvexa höljet Laboration 6 GruDat, DD1344

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

kl Tentaupplägg

kl Tentaupplägg

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

HI1024 Programmering, grundkurs TEN

Tentaupplägg denna gång

Föreläsning 3-4 Innehåll

Kryptokorsordslösare Programmeringsmetodik DV (period 2) Inlämningsuppgift 1

TDIU Regler

Tentaupplägg denna gång

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

Tentamen i Beräkningsvetenskap I/KF, 5.0 hp,

TDDI22 (exempel) TDDI22 Tentaregler

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering...

TAIU07 Matematiska beräkningar med Matlab

Föreläsning 12. Söndra och härska

kl Tentaupplägg

TDIU01 / 725G

Uppgift 1 (Oläsliga krypterade meddelanden)

Uppgift 1 ( Betyg 3 uppgift )

Kort om programmering i Python

Bygga hus med LECA-stenar

Tentamen i EDA011 Programmeringsteknik för F, E, I, π och N

TDDI TDDI22 Tentaregler

Föreläsningsanteckningar F6

Tentamen, EDAA10 Programmering i Java

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

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl

kl Examination - Ada

tentaplugg.nu av studenter för studenter

Tentamen Programmeringsteknik för BME, C, D, E, F, I, N & Pi

Tentamen i Introduktion till programmering

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

TDP Regler

Föreläsning 9 Innehåll. Söndra och härska. Fibonaccitalen. Söndra och härska. Divide and conquer teknik för att konstruera rekursiva algoritmer.

Föreläsning 7 Innehåll. Rekursion. Rekursiv problemlösning. Rekursiv problemlösning Mönster för rekursiv algoritm. Rekursion. Rekursivt tänkande:

Transkript:

2006-12-08.kl.08-13 Uppgift 1 ( Betyg 3 uppgift ) Implementera följande funktion: fun(1) = 1 fun(n) = fun(n / 2), för jämna n fun(n) = n / (fun(n - 1) + fun(n + 1)), för udda n Exempel på korrekta resultat: fun(2) = 1 fun(3) = 1.5 fun(4) = 1 fun(5) = 2 fun(6) = 1.5 fun(7) = 2.8 fun(8) = 1 fun(123) = 10.0502129319534 fun(321) = 19.7074964131994

2006-12-08.kl.08-13 Uppgift 2 Skriv en funktion som heter Number_Sort. Denna skall ta emot en vektor innehållande heltal. Funktionen skall gå igenom vektorn och skapa en frekvenstabell (en ny vektor innehållande antalet av respektive heltal) samt skriva ut en tabell innehållande de olika talen och hur många av dem som den ursprungliga vektorn innehöll. Tabellen skall vara sorterad efter antalet i första hand (i sjunkande ordning) och i andra hand efter talens storlek (i stigande ordning). För att kunna testa din funktion skall du dessutom skriva ett huvudprogram där användaren får mata in vektorn som skall skickas till funktionen. Körexempel 1: Mata in vektorn som skall hanteras: [1 2 3 2 3 1 4 22 1 3] Frekventabell Antal Tal 3 1 3 3 2 2 1 4 1 22 Körexempel 2: Mata in vektorn som skall hanteras: [-1-2 -3 2 3 4-1 -1 2] Frekventabell Antal Tal 3-1 2 2 1-3 1-2 1 3 1 4

Uppgift 3 Skriv ett program som ritar ut en stjärna som ser ut enligt nedan. Användaren skall mata in antalet spetsar stjärnan skall ha samt radien på den cirkel som tangerar spetsarna. Det är givet att användaren alltid matar in ett udda antal spetsar (alltid minst 3 som då ger en triangel som vi anser vara den minsta stjärnan). Exempel 1: Mata in antalet spetsar: 5 Mata in yttre radien : 5 Exempel 2: Mata in antalet spetsar: 9 Mata in yttre radien : 5

Uppgift 4 Skriv en funktion, vector_shuffle, som tar emot en vektor med heltal och sen blandar runt dem slumpmässigt. Man kan tänka sig att vektorn som kommer till funktionen motsvarar t.ex. en kortlek och att den skall blandas. Den blandade vektorn skall vara utdata från funktionen. Ett krav är att alla positioner i vektorn måste ha bytt data med någon annan position i vektorn (eventuellt samma position om slumpen råkar göra det så). Observera att vektorn som kommer in till funktionen kan vara olika lång vid olika tillfällen. Tips: Det kan vara lämpligt att skapa någon funktion som slumpar ut heltal i intervallet [1, längden av vektorn].

2006-12-08.kl.14-19 Uppgift 1 ( Betyg 3 uppgift ) Om man har en vektor innehållande ett antal heltal och skickar den till den inbyggda funktionen sort får man tillbaka antingen den sorterade vektorn (om man har ett anrop enligt v2 = sort(v1); ) eller så får man tillbaka både den sorterade vektorn och en vektor där man ser vilken plats talen hade innan sorteringen (om man anropar enligt [v2 v3] = sort(v1); ). Antag att v1 innehåller följande data: [1 3 6 0 5 1 8 6 5 5] Utdata blir då i v2 (oavsett anrop ovan): [0 1 1 3 5 5 5 6 6 8] I fall nummer två blir utdatat i v3: [4 1 6 2 5 9 10 3 8 7] Din uppgift är att skriva en funktion, restore_vector, som tar emot de två vektorerna v2 och v3 och returnerar den ursprungliga vektorn v1. OBS! du skall inte skriva ut något i funktionen. Krav: Din funktion skall klara av godtyckligt långa vektorer, d.v.s. man kan anropa din funktion med olika långa vektorer olika gånger. Förutom ovanstående skall du skriva ett program som sköter själva in- och utmatningen av data. Detta skall bete sig enlig körexemplet nedan. Programmet skall givetvis anropa ovanstående funktion. Körexempel (utskrifterna av vektorerna behöver dock inte se ut som i exemplet): Mata in en vektor motsvarande v1: [1 3 6 0 5 1 8 6 5 5] Programmet anropar nu den inbyggda sort för att få v2 och v3. v1 = 1 3 6 0 5 1 8 6 5 5 v2 = 0 1 1 3 5 5 5 6 6 8 v3 = 4 1 6 2 5 9 10 3 8 7 Programmet anropar nu restore_vector för att återskapa v1. v1 = 1 3 6 0 5 1 8 6 5 5 OBS! Du skall givetvis inte skriva ut original-v1 utan det som kommer tillbaka från restore_vector i den sista utskriften av v1!

2006-12-08.kl.14-19 Uppgift 2 Implementera följande funktion: n f(n) = ----------------------------------------------------- n-1 n-1 ------------------------- + ------------------------- n-2 n-2 n-2 n-2 ----------- + ----------- ----------- + ----------- / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ 2 ----- 1 + 1 Exempel: f(1) = 1 2 f(2) = ----- = 1 1 + 1 3 f(3) = ------------- = 1.5 2 2 ----- + ----- 1 + 1 1 + 1 4 f(4) = ----------------------------- = 1.33333 3 3 ------------- + ------------- 2 2 2 2 ----- + ----- ----- + ----- 1 + 1 1 + 1 1 + 1 1 + 1 f(5) =... = 1.875 f(10) =... = 2.03174603174603 Tips: Rekursion är inte dumt. Skriv om funktionen så att det blir rekursiv innan du börjar med själva programmeringen.

Uppgift 3 Skriv ett program som ritar ut en stjärna som ser ut enligt nedan. Användaren skall mata in antalet spetsar stjärnan skall ha samt de två radier som motsvarar en omkringliggande cirkels radie samt en inskriven cirkels radie. Det är givet att användaren alltid matar in ett antal spetsar så att det går att rita en stjärna. Exempel 1: Mata in antalet spetsar: 5 Mata in yttre radien : 5 Mata in inre radien : 1.9 Exempel 2: Mata in antalet spetsar: 9 Mata in yttre radien : 5 Mata in inre radien : 1.75

Uppgift 4 När syskon skall dela på en godispåse kan det ibland bli så att alla inte får lika mycket. Speciellt om storebror delar innehållet. I denna uppgift får vi se ett exempel där storebror delar godiset till alla med hjälp av en tärning. Du skall skriva ett program som slumpar fram ett antal barn som skall få godis och delar ut godis till dem. Programmet skall slumpa ut antalet barn mellan 5 och 10 samt antal godisbitar, som skall delas ut, mellan 50 och 100. Därefter skall programmet slumpa hur många bitar, mellan 1 och 6 stycken, respektive barn får enligt följande algoritm: 1) Sätt N = 1. 2) Slumpa ut antal godisbitar som skall delas ut. 3) Plocka så många bitar det går upp till det slumpade antalet och ge dessa till barn nummer N. 4) Om det inte finns bitar kvar att dela ut: Avsluta utdelningen. 5) Öka N med 1. 6) Om N överstiger antalet barn: Sätt N till 1. 7) Börja om från punkt 2. Programmet skall skriva ut hur många godisbitar respektive barn har fått i slutänden.

2006-12-15.kl.08-13.extrainsatt Uppgift 1 (Extra insatt tenta, speciella regler) Skriv en funktion som heter min_union. Denna skall ta emot två vektorer innehållande heltal. Funktionen skall gå igenom vektorerna och skapa en ny vektor som innehåller alla tal som fanns i antingen den första vektorn, den andra vektorn eller i båda de inkommande vektorerna. Dock skall den nya vektorn inte innehålla några dubletter. Du skall förutom detta skriva ett huvudprogram som anropar din funktion. Huvudprogrammet skall bete sig som i exemplen nedan. Körexempel 1: Mata in första vektorn som skall hanteras: [1 2 3 2 3] Mata in andra vektorn som skall hanteras : [3 2 1 5 4] Resultatet blev: [1 2 3 4 5] Körexempel 2: Mata in första vektorn som skall hanteras: [1 2 3 4 5 6] Mata in andra vektorn som skall hanteras : [7 8 9 1 2 3 7 9 1] Resultatet blev: [1 2 3 4 5 6 7 8 9] OBS! Resultatvektorn skall givetvis vara sorterad.

2006-12-15.kl.14-19.extrainsatt Uppgift 1 (Extra insatt tenta, speciella regler) Skriv en funktion som heter min_snitt. Denna skall ta emot två vektorer innehållande heltal. Funktionen skall gå igenom vektorerna och skapa en ny vektor som innehåller alla tal som fanns i båda de inkommande vektorerna. Dock skall den nya vektorn inte innehålla några dubletter. Du skall förutom detta skriva ett huvudprogram som anropar din funktion. Huvudprogrammet skall bete sig som i exemplen nedan. Körexempel 1: Mata in första vektorn som skall hanteras: [1 2 3 2 3] Mata in andra vektorn som skall hanteras : [3 2 1 5 4] Resultatet blev: [1 2 3] Körexempel 2: Mata in första vektorn som skall hanteras: [1 2 3 4 5 6] Mata in andra vektorn som skall hanteras : [7 8 9 1 4 3 7 9 1] Resultatet blev: [1 3 4] OBS! Resultatvektorn skall givetvis vara sorterad.