Konvexa höljet Laboration 6 GruDat, DD1344

Storlek: px
Starta visningen från sidan:

Download "Konvexa höljet Laboration 6 GruDat, DD1344"

Transkript

1 Konvexa höljet Laboration 6 GruDat, DD1344 Örjan Ekeberg 10 december 2008 Målsättning Denna laboration ska ge dig övning i att implementera en algoritm utgående från en beskrivning av algoritmen. Du ska få insikt i hur man kan manipulera geometriska objekt som punkter, linjer och polygoner. Du kommer också att få prova på att använda enkel grafik för att visualisera resultatet av din algoritm. 1 Uppgiften Du ska skriva ett program som räknar ut det konvexa höljet för en punktmängd. Punkterna läser du in från filen sweden.txt där varje rad innehåller två tal som ska tolkas som x- och y-koordinater. Det konvexa höljet är den minsta konvexa polygonen där ingen punkt ligger utanför. Figur 1 visar ett exempel. Det konvexa höljet till en mängd punkter i planet kan beräknas med en algoritm som kallas Graham-Scan. Din uppgift är att implementera denna algoritm och använda den för att hitta och rita ut det konvexa höljet till punkterna i filen. Figur 1: Konvexa höljet till en punktmängd i planet. Det konvexa höljet är en polygon som byggs upp av en delmängd av punkterna. 1

2 2 Algoritmen Graham-Scan går till på följande sätt: 1. Låt vara den punkt som har minst x-koordinat. Om fler har samma x-koordinat, välj den (av dessa) som har störst y- koordinat. 2. Låt [,,..., p n ] vara resten av punkterna, ordnade motsols runt punkten. 3. Lägg in punkterna, och i en stack s. 4. För varje punkt p i {,,..., p n } Så länge punkten överst på s ligger till vänster om linjen från punkten näst överst på s till p så ta bort stackens översta element. Lägg in p på stacken. 5. Returnera punkterna i s Steg 1 garanterar att punkten är en punkt som kommer att tillhöra lösningen. Steg 2 kräver att punkterna sorteras efter stigande vinkel för linjen från till den aktuella punkten (se figur 2). Huvuddelen av algoritmen är loopen i steg 4. Hur den fungerar illustreras i figur 3. Figur 2: Punkterna,,..., p n sorteras efter stigade vinkel på linjen som utgår från. 2

3 A B C D E F Figur 3: Bilderna illustrerar hur Graham-Scan algoritmen succesivt bygger polygonen. Först (A) upptäcker man att punkten ligger till vänster om linjen från till. plockas därför bort från stacken innan läggs in. I nästa steg (B) konstateras att ligger till höger om linjen. lämnas därför kvar på stacken när läggs in. I steg C jämförs med linjen p 5 och eftersom punkten ligger till höger om linjen så lämnas den kvar på stacken. I D jämförs p 5 med linjen p 6 och även här ligger punkten till höger om linjen. I nästa steg (E) plockas först punkten p 6 bort eftersom den ligger till vänster om p 5, men här plockas även p 5 bort eftersom den ligger till vänster om. Den slutliga lösningen utgörs av punkterna som finns kvar på stacken när alla punkter behandlats (F). 3

4 3 Hjälpfunktioner Graham-Scan använder sig av en återkommande test: befinner sig en punkt p till vänster om en linje? Detta undersöker man enklast (och säkrast) genom att beräkna kryssprodukten av vektorerna p och och avgöra om denna är positiv eller ej. Kryssprodukten mellan två vektorer a och b i planet räknas enkelt ut som a x b y a y b x. Skriv en hjälpfunktion som tar tre punkter och returnerar True om den första punkten ligger till vänster om linjen från den andra till den tredje. För att kunna sortera punkterna i vinkelordning behöver man räkna ut vinkeln för en vektor. Här är det lämpligt att utnyttja funktionen math.atan2(y, x) som ger vinkeln (i radianer) från origo till punkten (x, y). För att sorteringen ska fungera är det viktigt att vinkelberäkningarna inte plötsligt gör ett hopp på 2π. Genom att utgå från punkten med minst x-koordinat är vi garanterade att alla vinklar ligger mellan π 2 och π 2. math.atan2 gör sitt hopp vid π så detta bör vara säkert. 4 Implementera Graham-Scan Implementera nu de funktioner som behövs för att räkna ut vilken polygon som utgör det konvexa höljet till punkterna i filen sweden.txt. För sorteringen kan du med fördel utnyttja den inbyggda funktionen sorted. Lägg märke till att sorted kan ta en extraparameter (en s.k. nyckelordsparameter) i form av en funktion som plockar fram den nyckel man vill sortera efter; i vårt fall vinkeln. Sorteringen kan därför göras på detta sätt: def mykey( point ) : return anglebetween ( o r i g i n, point ) o r i g i n = p [ 0 ] v = s o r t e d ( p [ 1 : ], key=mykey) 4

5 5 Sköldpaddsgrafik Under 1960-talet utvecklades ett experimentellt programmeringsspråk Logo speciellt för att lära barn programmering. Logo introducerade en speciell sorts grafik kallad Turtle Graphics, där namnet syftar på den typ av figurer som skapas när sköldpaddor går omkring på en sandstrand. Python har en modul turtle som implementerar denna typ av grafik. Prova gärna följande: import t u r t l e t u r t l e. down ( ) t u r t l e. goto (100, 0) t u r t l e. up ( ) t u r t l e. goto (50, 0) t u r t l e. down ( ) t u r t l e. c i r c l e ( 10) t u r t l e. c o l o r ( blue ) t u r t l e. r i g h t (90) t u r t l e. forward (20) Här är ett urval av de funktioner som finns: down up goto right forward circle color speed tracer Sänk pennan Lyft pennan Gå till angivna koordinater Sväng höger Gå framåt Gå runt Byt färg på pennan Trimma sköldpaddan Animerad uppritning på/av Mer information får du genom help(turtle) i Python, bl.a. hur du fyller ytor och skriver text. Använd sköldpaddsgrafik för att rita ut alla punkterna och det konvexa höljet. Använd t.ex. små cirklar för punkterna och linjer för det konvexa höljet. Rita gärna lite större cirklar för de punkter som ingår i höljet. Sköldpaddsgrafiken är från början inställd att rita långsamt för att man ska hinna se vad som händer. Om du tycker att tempot är lite väl lågt kan du öka sköldpaddans fart genom turtle. speed( fastest ). Alternativt kan du helt stänga av animeringen under uppritningen genom turtle. tracer(false). 5

6 6 Extrauppgift för högre betyg 6.1 Största avståndet När man har det konvexa höljet kan man använda detta för att snabbt (O(n)) räkna ut det största avståndet mellan två punkter i den ursprungliga punktmängden. En brute force algoritm som beräknar alla parvisa avstånd kommer att kräva O(n 2 ) tid. För att komma ned till O(n) måste man vara smartare. En idé är att stega igenom polygonen med en variabel medan man samtidigt i en annan variabel håller reda på vilken punkt i polygonen som ligger längst bort. Använd denna idé för att skriva en funktion som räknar ut vilka två punkter som ligger längst ifrån varandra. Rita en linje mellan dessa punkter (gärna med en annan färg). När du är klar med laborationen: redovisa för en handledare och försök att få en kvittens här. Ditt namn: Handledarens signatur: Dagens datum: Extrauppgift genomförd: GruDat 2008, Laboration 6 6

Extramaterial till Matematik Y

Extramaterial till Matematik Y LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ TRE Algebra ELEV Det finns många olika programmeringsspråk. Ett av dem är Python, som du ska få bekanta dig med i den här uppgiften.

Läs mer

Area och volym Punktposition Konvexa höljet. Geometri. Douglas Wikström KTH Stockholm

Area och volym Punktposition Konvexa höljet. Geometri. Douglas Wikström KTH Stockholm Geometri Douglas Wikström KTH Stockholm popup-help@csc.kth.se Volym av parallellepiped En parallellepiped i R n med ett hörn i origo kan beskrivas av vektorer v 1,...,v n R n. Dess orienterbara volym ges

Läs mer

Abstrakta datatyper Laboration 2 GruDat, DD1344

Abstrakta datatyper Laboration 2 GruDat, DD1344 Abstrakta datatyper Laboration 2 GruDat, DD1344 Örjan Ekeberg (fritt från en idé av Henrik Eriksson) 27 oktober 2008 Målsättning Målet med denna laboration är att ge en inblick i hur man kan använda abstrakta

Läs mer

Föreläsning 11: Beräkningsgeometri

Föreläsning 11: Beräkningsgeometri DD2458, Problemlösning och programmering under press Föreläsning 11: Beräkningsgeometri Datum: 2009-11-24 Skribenter: David Björklund, Christoer Lundell Johansson och Mårten Selin Föreläsare: Fredrik Niemelä

Läs mer

Aktiviteter Del 4. h succesivt anta mindre värden, som till exempel π. , och låta programmet summera sekanternas längder från x = a till x = b.

Aktiviteter Del 4. h succesivt anta mindre värden, som till exempel π. , och låta programmet summera sekanternas längder från x = a till x = b. Matematik Gymnasieskola Modul: Matematikundervisning med digitala verktyg II Del 4: Programmering i matematik Aktiviteter Del 4 Här finns ett antal aktiviteter att välja mellan. Det ena handlar om att

Läs mer

Vektorgeometri för gymnasister

Vektorgeometri för gymnasister Vektorgeometri för gymnasister Per-Anders Svensson http://homepage.lnu.se/staff/psvmsi/vektorgeometri/gymnasiet.html Fakulteten för teknik Linnéuniversitetet Skalärprodukt Innehåll Skalärprodukt - Inledning

Läs mer

Linjär Algebra, Föreläsning 2

Linjär Algebra, Föreläsning 2 Linjär Algebra, Föreläsning 2 Tomas Sjödin Linköpings Universitet Geometriska vektorer, rummen R n och M n 1 En (geometrisk) vektor är ett objekt som har storlek och riktning, men inte någon naturlig startpunkt.

Läs mer

Polygoner. Trianglar på tre sätt

Polygoner. Trianglar på tre sätt Polygoner Trianglar på tre sätt Man kan skriva in punkter antingen via punktverktyget eller genom att skriva punktens namn och koordinater i inmatningsfältet. Då man ritar månghörningar lönar det sig att

Läs mer

Översikt. Stegvis förfining. Stegvis förfining. Dekomposition. Algoritmer. Metod för att skapa ett program från ett analyserat problem

Översikt. Stegvis förfining. Stegvis förfining. Dekomposition. Algoritmer. Metod för att skapa ett program från ett analyserat problem Översikt Stegvis förfining Pseudokod Flödesdiagram Dekomposition KISS-regeln Procedurell dekomposition DRY-regeln Algoritmer Sortering och sökning Stegvis förfining Metod för att skapa ett program från

Läs mer

Problemlösning och funktioner Grundkurs i programmering med Python

Problemlösning och funktioner Grundkurs i programmering med Python Hösten 2009 Dagens lektion Problemlösningsstrategier Repetition av funktioner Mer om funktioner 2 Problemlösningsstrategier 3 PROBLEMLÖSNINGSSTRATEGIER Strategier Det finns ett flertal olika ansatser till

Läs mer

Använda Python Laboration 1 GruDat, DD1344

Använda Python Laboration 1 GruDat, DD1344 Använda Python Laboration 1 GruDat, DD1344 Örjan Ekeberg 14 oktober 2008 Målsättning Målet med denna laboration är att du ska prova på att använda Python, framförallt interativt. Du ska också lära dig

Läs mer

MATEMATIK GU. LLMA60 MATEMATIK FÖR LÄRARE, GYMNASIET Analys, ht 2014. Block 5, översikt

MATEMATIK GU. LLMA60 MATEMATIK FÖR LÄRARE, GYMNASIET Analys, ht 2014. Block 5, översikt MATEMATIK GU H4 LLMA6 MATEMATIK FÖR LÄRARE, GYMNASIET Analys, ht 24 I block 5 ingår följande avsnitt i Stewart: Kapitel 2, utom avsnitt 2.4 och 2.6; kapitel 4. Block 5, översikt Första delen av block 5

Läs mer

Tentamen TNM061, 3D-grafik och animering för MT2. Onsdag 20/ kl SP71. Inga hjälpmedel

Tentamen TNM061, 3D-grafik och animering för MT2. Onsdag 20/ kl SP71. Inga hjälpmedel Tentamen TNM061, 3D-grafik och animering för MT2 Onsdag 20/8 2014 kl 14-18 SP71 Inga hjälpmedel Tentamen innehåller 7 uppgifter, vilka tillsammans kan ge maximalt 50 poäng. För betyg G (registreras som

Läs mer

Robotarm och algebra

Robotarm och algebra Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson 2010-12-07 Robotarm och algebra I denna laboration skall du lära dig lite mer om möjlighetera att rita ut mer avancerade

Läs mer

Sortering. Brute-force. Sortering Ordna element enligt relation mellan nyckelvärden

Sortering. Brute-force. Sortering Ordna element enligt relation mellan nyckelvärden Sortering Brute-force Sortering Ordna element enligt relation mellan nyckelvärden Flera olika algoritmer med olika fördelar Brute-force Gå igenom alla permutationer och hitta den där elementen ligger i

Läs mer

SF1624 Algebra och geometri

SF1624 Algebra och geometri Föreläsning 2 Institutionen för matematik KTH 2 november 2016 Skalärprodukt Dagens ämne: Skalärprodukt, kapitel 1.3-1.4 i boken Definition, skalärprodukt på två sätt Vinklar mellan vektorer Norm Plan och

Läs mer

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

729G04 Programmering och diskret matematik. Föreläsning 4 729G04 Programmering och diskret matematik Föreläsning 4 Turtle Graphics LOGO LOGO: programmeringsspråk för användning inom undervisning 1967 av Papert och Feurzeig Språket är släkt med LISP, men som "utenhet"

Läs mer

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass EDAA20 Föreläsning 11-12 Klassen ArrayList Klassen ArrayList Skriva program som läser data från en textfil och skriver data till en textfil Repetition inför delmålskontroll 2 är en standardklass (i paketet

Läs mer

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) 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:

Läs mer

TAIU07 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab TAIU07 Matematiska beräkningar med Matlab Laboration 3. Linjär algebra Namn: Personnummer: Epost: Namn: Personnummer: Epost: Godkänd den: Sign: Retur: 1 Introduktion 2 En Komet Kometer rör sig enligt ellipsformade

Läs mer

Extramaterial till Matematik Y

Extramaterial till Matematik Y LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ TVÅ Geometri ELEV Desmos Geometry är ett matematikverktyg som bland annat kan hjälpa dig att avbilda geometriska figurer och

Läs mer

Några saker till och lite om snabbare sortering

Några saker till och lite om snabbare sortering Några saker till och lite om snabbare sortering Generellt om avbrott Generera avbrott Snabb sortering principer Snabb sortering i Scheme och Python QuickSort (dela städat slå ihop) Mergesort (dela slå

Läs mer

729G04 Programmering och diskret matematik TEN kl 8-12

729G04 Programmering och diskret matematik TEN kl 8-12 729G04 Programmering och diskret matematik TEN4 091120 kl 8-12 Examinator: Annika Silvervarg, telefonnummer 013-284068 Hjälpmedel: Dator, penna och suddgummi. Uppgifter: Tentamen består av 4 uppgifter

Läs mer

Objektorienterad Programkonstruktion. Föreläsning 9 30 nov 2016

Objektorienterad Programkonstruktion. Föreläsning 9 30 nov 2016 Objektorienterad Programkonstruktion Föreläsning 9 30 nov 2016 Collections Ett samlingsnamn på objekt som innehåller en samling av andra objekt Det finns många olika sorters Collections, t.ex listor, träd,

Läs mer

Elevuppgift: Bågvinkelns storlek i en halvcirkel

Elevuppgift: Bågvinkelns storlek i en halvcirkel Elevuppgift: Bågvinkelns storlek i en halvcirkel 1. Öppna GeoGebra Classic och välj perspektivet Grafanalys. Dölj koordinataxlarna. 2. Skapa konstruktionen nedan. Det är ingen skillnad var i rutfältet

Läs mer

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

Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00 1 ( 7) Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00 Tillåtna hjälpmedel: Dator, penna, papper, linjal, suddgummi, godkänd(a) bok/böcker/kompendier (ej anteckningar,

Läs mer

Objektorienterad Programkonstruktion

Objektorienterad Programkonstruktion Objektorienterad Programkonstruktion Föreläsning 9 Projektuppgift Collection, Iterator, Composite Christian Smith ccs@kth.se 1 Projektuppgift IM, skickar meddelanden mellan datorer En lite större labbuppgift,

Läs mer

DD1320 Tillämpad datalogi. Lösning (skiss) till tenta 20 okt 2011

DD1320 Tillämpad datalogi. Lösning (skiss) till tenta 20 okt 2011 DD1320 Tillämpad datalogi Lösning (skiss) till tenta 20 okt 2011 1 KMP P I P P I N i 1 2 3 4 5 6 Next[i] 0 1 0 2 1 3 2 Huffmankodning: Algoritmen 1. Sortera tecknen som ska kodas i stigande förekomstordning.

Läs mer

3.0. Tips och Trix Sida 1 av 18

3.0. Tips och Trix Sida 1 av 18 3.0 https://beta.scratch.mit.edu/ Tips och Trix 2018-08-31 Sida 1 av 18 Innehåll Starta nytt program 3 Scenens koordinatsystem 3 Centrumpunkt / rotationspunkt 4 Sprajtens inställningar 5 Placering i Z-led

Läs mer

Institutionen för matematik och datavetenskap Karlstads universitet. GeoGebra. ett digitalt verktyg för framtidens matematikundervisning

Institutionen för matematik och datavetenskap Karlstads universitet. GeoGebra. ett digitalt verktyg för framtidens matematikundervisning Karlstads GeoGebrainstitut Institutionen för matematik och datavetenskap Karlstads universitet Mats Brunström Maria Fahlgren GeoGebra ett digitalt verktyg för framtidens matematikundervisning Invigning

Läs mer

Kojo med Inga Ingenjör. Lär dig programmera Nybörjaruppdrag

Kojo med Inga Ingenjör. Lär dig programmera Nybörjaruppdrag Kojo med Inga Ingenjör Lär dig programmera Nybörjaruppdrag Intro En programmeringsworkshop för barn i 8-årsåldern. Den togs under hösten 2016 via flertalet feedbackomgångar med pedagoger och en pilotstudie

Läs mer

Sätt att skriva ut binärträd

Sätt att skriva ut binärträd Tilpro Övning 3 På programmet idag: Genomgång av Hemtalet samt rättning Begreppet Stabil sortering Hur man kodar olika sorteringsvilkor Inkapsling av data Länkade listor Användning av stackar och köer

Läs mer

TANA17 Matematiska beräkningar med Matlab

TANA17 Matematiska beräkningar med Matlab TANA17 Matematiska beräkningar med Matlab Laboration 1. Linjär Algebra och Avbildningar Namn: Personnummer: Epost: Namn: Personnummer: Epost: Godkänd den: Sign: Retur: 1 Introduktion I denna övning skall

Läs mer

Lab5 för prgmedcl04 Grafik

Lab5 för prgmedcl04 Grafik Lab5 för prgmedcl04 Grafik Viktigt läs detta först:den här labblydelsen är ganska lång, detta betyder inte att labben tar lång tid.en hel del av lydelsen är anvisning om hur man går tillväga för att kunna

Läs mer

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

Börja med att kopiera källkoden till din scheme-katalog (som du skapade i Laboration 1). Laboration 3 Grafiska figurer I den här laborationen skall du konstruera ett schemeprogram som kan rita rektanglar, punkter, cirklar, linjer och bilder som består utav en eller flera av nyss nämnda figurer.

Läs mer

Kojo med Inga Ingenjör

Kojo med Inga Ingenjör När du klarat alla uppdrag får du Inga Ingenjörs körkort i Kojo-programmering Kojo med Inga Ingenjör Lär dig programmera Nybörjaruppdrag Innehåll 1. Kan du styra din kompis? 2. Kan du styra sköldpaddan

Läs mer

P Q = ( 2, 1, 1), P R = (0, 1, 0) och QR = (2, 2, 1). arean = 1 2 P Q P R

P Q = ( 2, 1, 1), P R = (0, 1, 0) och QR = (2, 2, 1). arean = 1 2 P Q P R 1 Matematiska Institutionen KTH Lösningar till några övningar på geometri och vektorer inför lappskrivning nummer 2 på kursen Linjär algebra II, SF1604, vt11. 1. En triangel har hörn i punkterna (1, 2,

Läs mer

LABORATION 4 OBJEKTORIENTERAD PROGRAMMERING I C++ I

LABORATION 4 OBJEKTORIENTERAD PROGRAMMERING I C++ I LABORATION 4 OBJEKTORIENTERAD PROGRAMMERING I C++ I Vt 2002 Mål: Lära sig: Filhantering Stränghantering Vektorer Funktioner Programstruktur Tid: Läroboken: 6 timmars handledd laborationstid. Beräknad klar

Läs mer

c d Z = och W = b a d c för några reella tal a, b, c och d. Vi har att a + c (b + d) b + d a + c ac bd ( ad bc)

c d Z = och W = b a d c för några reella tal a, b, c och d. Vi har att a + c (b + d) b + d a + c ac bd ( ad bc) 1 Komplexa tal 11 De reella talen De reella talen skriver betecknas ofta med symbolen R Vi vill inte definiera de reella talen här, men vi noterar att för varje tal a och b har vi att a + b och att ab

Läs mer

LNC Lösningar

LNC Lösningar LNC022 2013-05-27 Lösningar 1. (a) På en vägskylt står det att vägens lutning är 12 %. Om detta innebär att höjdskillnaden är 12 % av den körda vägsträckan, vilken är då vägens lutningsvinkel? (Rita figur.)

Läs mer

Programmering. Scratch - grundövningar

Programmering. Scratch - grundövningar Programmering Scratch - grundövningar Lär känna programmet: Menyer för att växla mellan att arbeta med script, utseende/bakgrund och ljud. Scenen där allting utspelar sig. Här klickar du på bakgrunden

Läs mer

Extramaterial till Matematik Y

Extramaterial till Matematik Y LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ ETT Geometri ELEV Desmos Geometry är ett matematikverktyg som bland annat kan hjälpa dig att avbilda geometriska figurer och

Läs mer

Läsöversikt. Föreläsningar 2-6. Genomförande av laborationer

Läsöversikt. Föreläsningar 2-6. Genomförande av laborationer Läsöversikt LP Part I Part IV, kap 18 PL: kap 1, 2 (Sem 1), 3 (Sem 3), 5.1-5.3, 5.8 intro, 6.1-6.3, 7.1-7.3, 8.1-8.3, 9.1-9.2 Wikipedia kan användas som stöd för PL-avsnitten. Föreläsningar 2-6 Genomförande

Läs mer

Lösningar till udda övningsuppgifter

Lösningar till udda övningsuppgifter Lösningar till udda övningsuppgifter Övning 1.1. (i) {, } (ii) {0, 1,, 3, 4} (iii) {0,, 4, 6, 8} Övning 1.3. Påståendena är (i), (iii) och (v), varav (iii) och (v) är sanna. Övning 1.5. andra. (i) Nej.

Läs mer

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26 TAIU07 Föreläsning 2 Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26 Matriselement och Index För att manipulera

Läs mer

{ 1, om i = j, e i e j = 0, om i j.

{ 1, om i = j, e i e j = 0, om i j. 34 3 SKALÄPRODUKT 3. Skaläprodukt Definition 3.. Skalärprodukten mellan två vektorer u och v definieras där θ är vinkeln mellan u och v. u v = u v cos θ, Anmärkning 3.. Andra beteckningar för skalärprodukt

Läs mer

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

Föreläsning 12. Söndra och härska Föreläsning 12 Söndra och härska Föreläsning 12 Söndra och härska Maximal delsekvens Skyline Closest pair Växel Uppgifter Söndra och härska (Divide and conquer) Vi stötte på dessa algoritmer när vi tittade

Läs mer

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

Sökning i ordnad lista. Sökning och sortering. Sökning med vaktpost i oordnad lista Sökning och sortering Sökning i oordnad lista Att söka efter data man lagrat undan för senare användning är vanligt Egentligen har man ingen annan anledning för att lagra undan data Har man mycket data

Läs mer

Föreläsning 9-10 Innehåll

Föreläsning 9-10 Innehåll Föreläsning 9-10 Innehåll Inläsning från textfil, utskrift från textfil Vektorer med objekt Matriser Datavetenskap (LTH) Föreläsning 9-10 HT 2018 1 / 41 Klassen Scanner Läsa från System.in Vi har tidigare

Läs mer

Programmering F-3. -dansprogrammering. Del 1

Programmering F-3. -dansprogrammering. Del 1 Programmering F-3 -dansprogrammering Del 1 Lärarhandledning till Dansprogrammering 2 Innehåll o o o o o o o o o o o o o o o o o o Det här behöver du... Dansprogrammering. Generellt upplägg. Tidsåtgång.

Läs mer

Undersökande arbetssätt i matematik 1 och 2

Undersökande arbetssätt i matematik 1 och 2 Matematik Gymnasieskola Modul: Matematikundervisning med digitala verktyg Del 6: Undersökande arbetssätt med matematisk programvara Undersökande arbetssätt i matematik 1 och 2 I texten Undersökande arbetssätt

Läs mer

Affina avbildningar och vektorgrafik

Affina avbildningar och vektorgrafik och vektorgrafik 2010-02-04 och vektorgrafik Affin avbildning som matriser Definition En affin avbildning f är en sammansättning av en linjär avbildning x Bx och en translation x x + c och är alltid på

Läs mer

TDP002 Imperativ programmering. Laborationsmaterial emacs python-mode

TDP002 Imperativ programmering. Laborationsmaterial emacs python-mode TDP002 Imperativ programmering Laborationsmaterial emacs python-mode Höstterminen 2008 Innehållsförteckning Introduktion...3 Redovisning av laborationer...3 Laboration 1 emacs python-mode...4 Uppgift 1

Läs mer

Laboration 3 GUI-programmering

Laboration 3 GUI-programmering Laboration 3 GUI-programmering Syfte Erbjuder studenterna en möjlighet att lära sig grunderna i gränssnittsprogrammering i Java. Genomförande Genomförs individuellt eller i grupp om 2 personer. Uppskattad

Läs mer

Grundläggande Datalogi

Grundläggande Datalogi s delar Grundläggande Datalogi s delar s delar s delar Dataabstraktion Rekursion Algoritmanalys s delar Sortering Trädstrukturer Grafalgoritmer Optimering Stavning Strängmatchning Datakompression Versionshantering

Läs mer

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET UMEÅ UNIVERSITET Datavetenskap 010824 TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET Datum : 010824 Tid : 9-15 Hjälpmedel : Inga Antal uppgifter : 7 Totalpoäng : 40 (halva poängtalet krävs normalt

Läs mer

Veckoblad 1, Linjär algebra IT, VT2010

Veckoblad 1, Linjär algebra IT, VT2010 Veckoblad, Linjär algebra IT, VT Under den första veckan ska vi gå igenom (i alla fall stora delar av) kapitel som handlar om geometriska vektorer. De viktigaste teoretiska begreppen och resultaten i kapitlet

Läs mer

Laboration 1: Figurer i hierarki

Laboration 1: Figurer i hierarki Laboration 1: Figurer i hierarki Bakgrund Två grundläggande tekniker i objektorienterad konstruktion är arv och komposition. Mål Laborationen har flera avsikter: 1. Ge kunskaper i hur program kan organiseras

Läs mer

Geometriska transformationer

Geometriska transformationer CTH/GU LABORATION 5 TMV6/MMGD - 7/8 Matematiska vetenskaper Inledning Geometriska transformationer Vi skall se på några geometriska transformationer; rotation, skalning, translation, spegling och projektion.

Läs mer

Vad är algoritmer? Lektionen handlar om att få en grundläggande förståelse för vad en algoritm är. Vad är algoritmer?

Vad är algoritmer? Lektionen handlar om att få en grundläggande förståelse för vad en algoritm är. Vad är algoritmer? Lektionen handlar om att få en grundläggande förståelse för vad en algoritm är. Lektionsförfattare: Lotta Ohlin Andersson Till läraren 1. Vad vet du om algoritmer? 2. Vad betyder ordet algoritm? En digital

Läs mer

Exempel på användning av arv: Geometriska figurer

Exempel på användning av arv: Geometriska figurer (9 maj 2014 Klasshierarkier 1 ) Exempel på användning av arv: Geometriska figurer Uppgift: Skriv ett program som kan hantera några olika geometrisk figurer: linjer, cirklar och rektanglar. (9 maj 2014

Läs mer

SF1624 Algebra och geometri

SF1624 Algebra och geometri SF1624 Algebra och geometri Föreläsning 2 David Rydh Institutionen för matematik KTH 28 augusti 2018 Detta gjorde vi igår Punkter Vektorer och skalärer, multiplikation med skalär Linjärkombinationer, spannet

Läs mer

Exempel :: Spegling i godtycklig linje.

Exempel :: Spegling i godtycklig linje. INNEHÅLL Exempel :: Spegling i godtycklig linje. c Mikael Forsberg :: 6 augusti 05 Sammanfattning:: I detta dokument så är vårt uppdrag att beräkna matrisen för spegling i en godtycklig linje y = kx som

Läs mer

1 Vektorer i koordinatsystem

1 Vektorer i koordinatsystem 1 Vektorer i koordinatsystem Ex 11 Givet ett koordinatsystem i R y a 4 b x Punkten A = (3, ) och ortsvektorn a = (3, ) och punkten B = (5, 1) och ortsvsektorn b = (5, 1) uttrycks på samma sätt, som en

Läs mer

Övning 1 - Abstrakta datatyper

Övning 1 - Abstrakta datatyper /home/lindahlm/activity-phd/teaching/12dd1320/exercise1/exercise1.py September 3, 20121 0 # coding : latin Övning 1 - Abstrakta datatyper 18 Summering Vi gick igenom betydelsen av abstrakta datatyper/datastrukturer.

Läs mer

Linjär Algebra, Föreläsning 2

Linjär Algebra, Föreläsning 2 Linjär Algebra, Föreläsning 2 Tomas Sjödin Linköpings Universitet Riktade sträckor och Geometriska vektorer En (geometrisk) vektor är ett objekt som har storlek och riktning, men inte någon naturlig startpunkt.

Läs mer

Parabeln och vad man kan ha den till

Parabeln och vad man kan ha den till Parabeln och vad man kan ha den till Anders Källén MatematikCentrum LTH anderskallen@gmail.com Sammanfattning I det här dokumentet diskuterar vi vad parabeln är för geometrisk konstruktion och varför den

Läs mer

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3 TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3 Laboration 3 Visualisering (och implementering) av sortering Exempel på grafik (med Swing-paketet) Frågor 1 Laboration 3 Visualisering

Läs mer

Saker du ska kunna Föreläsning 13 & 14

Saker du ska kunna Föreläsning 13 & 14 Saker du ska kunna Föreläsning 13 & 14 LISTOR Ta bort element från en vektor Både sorterad och osorterad Söka upp element i en vektor Linjärsökning räcker (jag har även visat binärsökning) Registrering

Läs mer

Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell www.bjornregnell.se

Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell www.bjornregnell.se Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell www.bjornregnell.se Mål Så enkelt som möjligt: låg tröskel Ett riktigt programmeringsspråk: inget tak Roliga uppgifter som går

Läs mer

Mer om analytisk geometri

Mer om analytisk geometri 1 Onsdag v 5 Mer om analytisk geometri Determinanter: Då man har en -matris kan man till den associera ett tal determinanten av som också skrivs Determinanter kommer att repeteras och studeras närmare

Läs mer

Laboration 2: Designmönster

Laboration 2: Designmönster Laboration 2: Designmönster Bakgrund Det har visat sig väldigt svårt att beskriva hur ett system, eller en dellösning, skall konstrueras på ett bra sätt. Det har överhuvud taget varit svårt att veta om

Läs mer

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

729G04 PYTHON 4 JODY FOO. Department of Computer and Information Science (IDA) Linköping University, Sweden 729G04 PYTHON 4 JODY FOO Department of Computer and Information Science (IDA) Linköping University, Sweden TURTLE GRAPHICS LOGO LOGO: programmeringsspråk för användning inom undervisning 1967 av Papert

Läs mer

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning. Programmering för Språkteknologer II Markus Saers markus.saers@lingfil.uu.se Rum -040 stp.lingfil.uu.se/~markuss/ht0/pst Innehåll Associativa datastrukturer Hashtabeller Sökträd Implementationsdetaljer

Läs mer

7F Ma Planering v2-7: Geometri

7F Ma Planering v2-7: Geometri 7F Ma Planering v2-7: Geometri Arbetsform under en vecka: Måndagar (50 min): Genomgång av gemensamma svårigheter i begrepp och metoder. Arbete i grupp med begrepp och metoder. Läxa (30 min): Läsa på anteckningar

Läs mer

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

Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering... Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering... 4 Bussen (projektförslag)... 5 Bakgrund... 5 Klassen Buss

Läs mer

Föreläsning REPETITION & EXTENTA

Föreläsning REPETITION & EXTENTA Föreläsning 18 19 REPETITION & EXTENTA Programmeringsteknik på 45 minuter Klasser och objekt Variabler: attribut, lokala variabler, parametrar Datastrukturer Algoritmer Dessa bilder är inte repetitionsbilder

Läs mer

Rumsuppfattning är förmågan att behandla sinnesintryck av former

Rumsuppfattning är förmågan att behandla sinnesintryck av former Güner Ahmet & Thomas Lingefjärd Tredimensionellt tänkande Tredimensionella matematiska representationer är inte särskilt vanliga i skolans matematikkurser, med undantag för kurs 3 5 i gymnasiet. Varför

Läs mer

Karta över Jorden - viktigt exempel. Sfär i (x, y, z) koordinater Funktionen som beskriver detta ser ut till att vara

Karta över Jorden - viktigt exempel. Sfär i (x, y, z) koordinater Funktionen som beskriver detta ser ut till att vara Föreläsning 1 Jag hettar Thomas Kragh och detta är kursen: Flervariabelanalys 1MA016/1MA183. E-post: thomas.kragh@math.uu.se Kursplan finns i studentportalens hemsida för denna kurs. Där är två spår: Spår

Läs mer

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok, t.ex. den rekommenderade kursboken. Boken får ha anteckningar,

Läs mer

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Dataingenjörsprogrammet, elektroingenjörsprogrammet och medicinsk teknik KTH Skolan för Teknik och Hälsa Redovisning: Se Kurs-PM om hur redovisningen

Läs mer

Klassrumsprojekt programmering - Digitalt lärande

Klassrumsprojekt programmering - Digitalt lärande Klassrumsprojekt programmering - Digitalt lärande Projektet passar för lågstadiet eller nybörjare i äldre årskurser Utgå från boken Hej Ruby- Äventyr i datorernas magiska värld av Linda Liukas, Volante

Läs mer

8F Ma Planering v2-7 - Geometri

8F Ma Planering v2-7 - Geometri 8F Ma Planering v2-7 - Geometri Arbetsform under en vecka: Tisdagar (50 min): Genomgång av gemensamma svårigheter i begrepp och metoder. Arbete i grupp med begrepp och metoder. Läxa (30 min): Läsa på anteckningar

Läs mer

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

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2 Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2 Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok,

Läs mer

Introduktion till Python Teoridel

Introduktion till Python Teoridel Institutionen för teknikvetenskap och matematik, LTU 2 november 2014 Laboration 1, M0043M, HT14 Laborationsuppgifter skall lämnas in senast 21 november 2014. Introduktion till Python Teoridel 1 Inledning

Läs mer

Explorativ övning Vektorer

Explorativ övning Vektorer Eplorativ övning Vektorer Syftet med denna övning är att ge grundläggande kunskaper om vektorräkning och dess användning i geometrin Liksom många matematiska begrepp kommer vektorbegreppet från fysiken

Läs mer

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok, t.ex. den rekommenderade kursboken. Boken får ha anteckningar,

Läs mer

Python. Vi har ofta behov av att behandla datastrukturer på ett enhetligt sätt så att vi kan göra samma sak i flera olika program.

Python. Vi har ofta behov av att behandla datastrukturer på ett enhetligt sätt så att vi kan göra samma sak i flera olika program. Moduler Vi har ofta behov av att behandla datastrukturer på ett enhetligt sätt så att vi kan göra samma sak i flera olika program. Vi har också ofta behov av att skapa överblick i våra program. Som ett

Läs mer

Liten lathund för användning av klubbens Quarq Shockwiz (QSW).

Liten lathund för användning av klubbens Quarq Shockwiz (QSW). Liten lathund för användning av klubbens Quarq Shockwiz (QSW). Läs igenom hela denna text först. Kika sen på tre Youtubeklipp om tid och intresse finns. Installation: https://www.youtube.com/watch?v=mvmm6ub9-g4

Läs mer

Quicksort. Koffman & Wolfgang kapitel 8, avsnitt 9

Quicksort. Koffman & Wolfgang kapitel 8, avsnitt 9 Quicksort Koffman & Wolfgang kapitel 8, avsnitt 9 1 Quicksort Quicksort väljer ett spcifikt värde (kallat pivot), och delar upp resten av fältet i två delar: alla element som är pivot läggs i vänstra delen

Läs mer

Innehåll. Innehåll... 2 Detaljövningar Övning 1 Skiss och Intersect Övning 2 Path, Pattern Övning 3 - Featureträdet...

Innehåll. Innehåll... 2 Detaljövningar Övning 1 Skiss och Intersect Övning 2 Path, Pattern Övning 3 - Featureträdet... Innehåll Innehåll Innehåll... 2 Detaljövningar... 5 Övning 1 Skiss och Intersect... 5 Övning 2 Path, Pattern... 9 Övning 3 - Featureträdet... 12 Övning 4 Feature Copy... 15 Övning 5 3D Skiss, Work feature...

Läs mer

Lennart Rolandsson, Uppsala universitet, Ulrica Dahlberg och Ola Helenius, NCM

Lennart Rolandsson, Uppsala universitet, Ulrica Dahlberg och Ola Helenius, NCM Matematik Gymnasieskola Modul: Matematikundervisning med digitala verktyg II Del 1: Om programmering Aktiviteter Del 1 Lennart Rolandsson, Uppsala universitet, Ulrica Dahlberg och Ola Helenius, NCM Ni

Läs mer

Tenta i Grundläggande programmering DD klockan

Tenta i Grundläggande programmering DD klockan Tenta i Grundläggande programmering DD1331 2017-10-20 klockan 14.00 16.00 Marcus Dicander, KTH CST Tillåtna hjälpmedel: En Pythonbok, skrivmaterial, mat, medicin och vattenflaska. Otillåtna hjälpmedel:

Läs mer

Transformationer i R 2 och R 3

Transformationer i R 2 och R 3 Linjär algebra, I / Matematiska vetenskaper Inledning Transformationer i R och R 3 Vi skall se på några geometriska transformationer; rotation, skalning, translation och projektion. Rotation och skalning

Läs mer

Handbok Kig. Dominique Devriese Översättare: Stefan Asserhäll

Handbok Kig. Dominique Devriese Översättare: Stefan Asserhäll Dominique Devriese Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 2 Grundläggande användning 6 2.1 Konstruera objekt...................................... 6 2.1.1 Konstruera punkter................................

Läs mer

9 Geometriska begrepp

9 Geometriska begrepp 9 Geometriska begrepp Rita figurer som visar vad vi menar med... 261 a) 4 cm och 4 cm 2 b) 5 cm och 5 cm 2 262 Rita två olika figurer som båda har arean 8 cm 2 263 Rita tre olika figurer som alla har arean

Läs mer

Aktivitetsbank. Matematikundervisning med digitala verktyg II, åk 7-9. Ulrihca Malmberg, Maria Johansson, Ulrica Dahlberg

Aktivitetsbank. Matematikundervisning med digitala verktyg II, åk 7-9. Ulrihca Malmberg, Maria Johansson, Ulrica Dahlberg Aktivitetsbank Matematikundervisning med digitala, åk 7-9 Ulrihca Malmberg, Maria Johansson, Ulrica Dahlberg Matematik Grundskola åk 7-9 Modul: Matematikundervisning med digitala Aktivitetsbank till modulen

Läs mer

9E Ma Planering v2-7 - Geometri

9E Ma Planering v2-7 - Geometri 9E Ma Planering v2-7 - Geometri Arbetsform under en vecka: Måndagar (50 min): Genomgång av gemensamma svårigheter i begrepp och metoder. Arbete i grupp med begrepp och metoder. Läxa (45 min): Läsa på anteckningar

Läs mer

Bestäm den matris B som löser ekvationen = 1 2

Bestäm den matris B som löser ekvationen = 1 2 MÄLARDALENS HÖGSKOLA Akademin för utbildning, kultur och kommunikation Avdelningen för tillämpad matematik Examinator: Lars-Göran Larsson TENTAMEN I MATEMATIK MAA Grundläggande vektoralgebra, TEN5 alt.

Läs mer

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

Uppgifter till praktiska tentan, del A. (7 / 27) Uppgifter till praktiska tentan, del A. (7 / 27) I. Sortering/Sökning: III II. Representation/Omvandling/format/protokoll: II III. Strukturering: II I alla problem, där bokstäver förekommer, antar vi att

Läs mer