TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på layout, ett GUI-baserat program Frågor



Relevanta dokument
TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor

TDDC30/725G63. Objektorienterad programmering i Java, datastrukturer och algoritmer

Tentamen, EDAA10 Programmering i Java

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

Föreläsning 1: Introduktion till kursen

Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass

DAT043 Objektorienterad Programmering

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

Kursanalys DA2003 sommar 2017

Objektorienterad programmering D2

TENTAMEN OOP

Schemaunderlag för Programmering, grundkurs (TDDB18)

UMEÅ UNIVERSITET 26 april 2002 Instutionen för datavetenskap. Grafproblem. Laboration 4, Datastrukturer och Algoritmer VT02

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

729G06 Föreläsning 1 Objektorienterad programmering

TDIU01 (725G67) - Programmering i C++, grundkurs

TDDC30/725G63. Objektorienterad programmering i Java, datastrukturer och algoritmer

Översikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7)

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

Facit Tentamen TDDC (7)

Inlämningsuppgifter, EDAF30, 2015

Föreläsning 1 & 2 INTRODUKTION

Kursplanering Objektorienterad programmering

Programmeringsolympiaden 2018

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 7 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Programmeringsteknik II

TDP Regler

Programmering för språkteknologer II, HT2014. Rum

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

Programmering för språkteknologer II, HT2011. Rum

EDAA01 Programmeringsteknik - fördjupningskurs

Värmedistribution i plåt

DD1321, Tentamen i tillämpad programmering och datalogi Lördagen den 18 dexember 2010 kl 13 18

Föreläsning 1: Introduktion till kursen

Föreläsning 1: Introduktion till kursen

Laboration 1 - Grunderna för OOP i Java

Projektuppgift - Biblioteket

Objektorienterad programmering, Java, 5p TDBA63

LABORATION 4 OBJEKTORIENTERAD PROGRAMMERING I C++ I

Teoretisk del. Facit Tentamen TDDC (6)

Introduktion till Datalogi DD1339. Föreläsning 1 8 sept 2014

GPT The bitter end. Förra veckan: Rekursiva funktioner som läggs in externa filer har stor räckvidd

Imperativ programmering i ADA

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Problem: FIL File Paths

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

TDDI16: Datastrukturer och algoritmer

Föreläsnings 9 - Exceptions, I/O

Objektorienterad Programmering (TDDC77)

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 2

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

kl Tentaupplägg

Objektorienterad Programkonstruktion

PROGRAMMERING-Java TENTAMINA

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Teoretisk del. Facit Tentamen TDDC kl (6) 1. (6p) "Snabba frågor" Alla svar motiveras väl.

Planering Programmering grundkurs HI1024 HT data

Undervisningsplan MEKANIK II, för WQF, VT 2015

Föreläsning 11. Giriga algoritmer

Kursmaterial för laborationer i

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Design och konstruktion av grafiska gränssnitt

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

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

Algoritmer. Två gränssnitt

TENTAMEN: Design och konstruktion av grafiska gränssnitt DAT215/TIG091

TDDB56 DALGOPT Algoritmer och Optimering Tentamen , 8 13

Tentamen, EDAA20/EDA501 Programmering

Datorsystem och programmering

Tentamen, EDAA20/EDA501 Programmering

Introduktionsmöte Innehåll

Välkomna till DIT012 IPGO

SKOLFS. beslutade den -- maj 2015.

Tentamen i Algoritmer & Datastrukturer i Java

DD1314 Programmeringsteknik

Tentamen, EDAA20/EDA501 Programmering

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

OOP Objekt-orienterad programmering

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

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

Teoretisk del. Facit Tentamen TDDC kl (6) 1. (6p) "Snabba frågor" Alla svar motiveras väl.

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

TDDC74 - Projektspecifikation

Laboration: Whitebox- och blackboxtesting

Projektuppgift - Gymmet

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Laboration 2 Datastrukturer En liten uppgift Frågor

Introduktion till kursen och MATLAB

Chapter 3: Using Classes and Objects

Tentamen OOP

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

Tentamen Datastrukturer (DAT037)

Objektorienterad programmering E. Telefonboken, än en gång. Gränssnitt. Telefonboken med gränssnitt specificerat, del 1.

DT018G Introduktion till programmering i C++, 7,5 hp Välkommen till denna information om kursen "Introduktion till programmering i C++".

TDP025. Entreprenöriell programmering. Marcus Bendtsen Institutionen för Datavetenskap (IDA)

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

Transkript:

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5 Laboration 4 Lådplanering Exempel på layout, ett GUI-baserat program Frågor 1

Laboration 5 - Introduktion Syfte: Öva på självständig problemlösning Problem: Ett antal lådor ska flyttas, helst på ett optimalt sätt. För att flytta en viss låda krävs ett visst antal personer Man kan endast flytta lådorna som står överst Information om hur lådorna är placerade samt antal personer som krävs för att flytta dem är sparat i en textfil 2

Laboration 5 Optimering Optimering: Inte självklart hur lådorna ska flyttas... Varje låda tar lika lång tid att flytta Kan ev. flytta mer än en låda per tidsenhet Minimera tiden det tar att flytta alla lådor för ett visst antal arbetare Minimera lönekostnaden. Flera personer kan flytta snabbare men inte säkert att den totala kostnaden blir lägre 3

Laboration 5 - Lådkonfigurationsfil Lådkonfigurationsfil 9 Antalet lådor a 2 Låda A kräver 2 personer för att flyttas b 5 c 3 d 1 e 3 f 1 g 3 h 2 i 5 9 Antalet staplade lådor a b Låda A står på låda B b g b e e f f h e i c e c d d 4

Laboration 5 - Krav Programmet skall kunna läsa in nya lådkonfigurationer från fil. Användaren skall kunna välja vilken fil som skall användas vid varje körning. Gränssnittet kan vara grafiskt eller textbaserat. En tydlig presentation av lösningen krävs. I vilken ordning flyttas lådorna? Hur mycket kostar det? Hur lång tid tar det? Läs laborationsbeskrivningen noggrant! 5

Laboration 5 - Uppgifter Uppgift 1: Skapa och implementera en algoritm som ger en möjlig ordning att plocka ner lådorna. Pröva på givna och egna konfigurationer Information om antal personer som krävs används inte. Uppgift 2: Minimera tiden, givet ett antal arbetare. X personer -> Flera lådor kan ev. flyttas samtidigt. Hitta den bortplockningssekvens som ger minimal tid Uppgift 3: Minimera totala lönekostnaden Att flytta en låda tar 15 min, arbetare kostar 100 kr/timme Krävs det tio arbetare vid en tidpunkt kommer dessa kräva betalt under hela flytten även om de är delvis overksamma! 6

Laborationsrapport innefattande: Laboration 5 - Examination Kortfattad beskrivning av valda datastrukturer samt en motivering av era val. Diskussion av hur lämpliga era val visade sig vara. Beskrivning av de algoritmer ni använt för att lösa respektive uppgift samt dess tidskomplexitet. Jämförelse med andra idéer ni haft. Hur nära optimal lösning? Rapporten bör omfatta 1-2 A4 sidor (Klassdiagram bifogas för bonus-delen) 7

Det finns en bonus-uppgiftsdel För G: Ett textuellt gränssnitt Laboration 5 - Examination Slutgiltiga lösningen förfinar sitt svar tills det blir tillräckligt bra Rapport För G++: Ett grafiskt gränssnitt Väl vald datastruktur, snyggt uppdelat program Väl skriven rapport som visar på god förståelse av algoritmanalys 8

Krav för bonus: Laboration 5 - Examination Uppgiften ska ha fått godkänd muntlig redovisning senast på deadline för labb 4. Källkoden samt rapport ska ha skickats in senast efterföljande arbetsdag. Avklarad med maximalt en komplettering, inlämnad senast en vecka efter retur. Ett bonus på lab 3 & 4 medför (del)uppgift(er) på tentamen värd sammanlagt sex poäng automatiskt godkända! Ungefär 25% upp till betyg 3 Mer tid till resten av uppgifterna 9

Laboration 5 - Intermission Nu, lite praktiskt! 10

Laboration 5 - Scanner Används för avkodning och inläsning av indata. Finns ett gäng konstruktorer, använd den som matchar vad du vill göra, t.ex: Scanner sc = new Scanner(someStream) Scanner sc = new Scanner(s) Scanner sc = new Scanner(new File(filename)); Där somestream är namnet på en indataström, s är en variabel av typen String och filename är en sträng som innehåller namnet på en textfil. Scanner kan dela upp texten i s.k. tokens. Tokens avgränsas normalt av blanka tecken. Intressanta metoder: sc.nextint(); // Läser in nästa token och omvandlar till int sc.next(); // Läser in nästa token och tolkar som en String. 11

Uppgift Gotta catch em all Uppgift: Skriv ett grafiskt program för att ladda in och visa Pokémon-bilder för din yngre kusin. Gör det hela livligt så att barnen kan få sin underhållning vid nästa släktträff. Logga gärna vilken Pokémon som är populärast, så mormor vet vilket motiv hon ska välja på tröjan till nästa födelsedag.. 12