Tentamen, EDA011/EDA017 Programmeringsteknik BME C E F I N Pi



Relevanta dokument
Java M1 V2 L2 K2 TM W. Tentamen i Programmering , kl LUNDS TEKNISKA HÖGSKOLA Institutionen för datavetenskap.

Lathund, procent med bråk, åk 8

Tentamen, EDAA20/EDA501 Programmering

DOP-matematik Copyright Tord Persson. Bråktal Läs av vilka tal på tallinjen, som pilarna pekar på. Uppgift nr

Tentamen, EDAA10 Programmering i Java

Tentamen i Programmering

Tentamen, EDA017, Programmeringsteknik för C, E, I och Pi

Syftet med en personlig handlingsplan

Tentamen, EDA501 Programmering M L TM W K V

Energi & Miljötema Inrikting So - Kravmärkt

Handbok Ämnesprov 2016 Lärarinmatning I Dexter Åk 3. Uppdaterad: /HL Version: IST AB

Partnerskapsförord. giftorättsgods görs till enskild egendom 1, 2. Parter 3. Partnerskapsförordets innehåll: 4

Du ska nu skapa ett litet program som skriver ut Hello World.

Individuellt Mjukvaruutvecklingsprojekt

Föreläsnings 10 - Överlagring, Konstruerare, Arv, Mer Exceptions, Reguljära Uttryck

Elektronen och laddning

Tentamen, EDAA10 Programmering i Java

Vi skall skriva uppsats

Tentamen, EDAA20/EDA501 Programmering

Distribuerade system. CORBA eller RMI

Diskussionsfrågor till version 1 och 2

Nämnarens adventskalendern 2007

Klasser och objekt i C#

Att koda en magnetremsa i plastkortskrivare med inbyggd magnetkodare.

Idag: Dataabstraktion

ANVÄND NAVIGATIONEN I CAPITEX SÄLJSTÖD

konstanterna a och b så att ekvationssystemet x 2y = 1 2x + ay = b 2 a b

Handledning för digitala verktyg Talsyntes och rättstavningsprogram. Vital, StavaRex och SpellRight

Boken om Teknik. Boken om Teknik är en grundbok i Teknik för åk 4 6.

Tentamen i Programmering grundkurs och Programmering C

Tentamen EDA501/EDAA20 M L TM W K V

Snabbslumpade uppgifter från flera moment.

Utveckla arbetsmiljö och verksamhet genom samverkan

Tankar om elevtankar. HÖJMA-projektet

ANVÄNDARHANDLEDNING FÖR

HT 2011 FK2004 Tenta Lärare delen 4 problem 6 poäng / problem

Webb-bidrag. Sök bidrag på webben Gäller från

UPPGIFT: SKRIV EN DEBATTARTIKEL

Datorövning 2 Statistik med Excel (Office 2007, svenska)

Utbildningsplan för arrangörer

Laborativ matematik som bedömningsform. Per Berggren och Maria Lindroth

Erfarenheter från ett pilotprojekt med barn i åldrarna 1 5 år och deras lärare

Tentamen, EDA501/EDAA20 Programmering M MD W BK L

Varför är det så viktigt hur vi bedömer?! Christian Lundahl!

Enkätresultat för elever i åk 9 i Borås Kristna Skola i Borås hösten Antal elever: 20 Antal svarande: 19 Svarsfrekvens: 95% Klasser: Klass 9

DATASAMORDNING NYHETERNA I CHAOS Utbildning Chaos/Handledning - Nyheterna i Chaos 3/

Programmera en NXT Robot

Mera om generik. Innehåll. Generik och arv Wildcards Vektorer och generik Generiska metoder. EDA690 (Mera om generik) HT / 24

729G04 - Hemuppgift, Diskret matematik

TIMREDOVISNINGSSYSTEM

Spelregler. 2-4 deltagare från 10 år. Med hjälp av bokstavsbrickor och god uppfinningsrikedom

Lathund för överföring av rapporter och ljudfiler

912 Läsförståelse och matematik behöver man lära sig läsa matematik?

VÄRDERINGSÖVNINGAR. Vad är Svenskt?

Träning i bevisföring

Gissa det hemliga talet

Avgifter i skolan. Informationsblad

4-3 Vinklar Namn: Inledning. Vad är en vinkel?

Skriva B gammalt nationellt prov

Tentamen i EDA011 Programmeringsteknik

Presentationsövningar

Pesach Laksman är lärarutbildare i matematik och matematikdidaktik vid Malmö högskola.

Handbok Blinken. Danny Allen Översättare: Stefan Asserhäll

Introduktion. Den objektorienterade modellen Grundläggande begrepp Klass Klassen som abstraktion

ELEV- HANDLEDNING (Ansökan via webben)

Lathund till Annonsportalen

Kiwiböckerna metod och begrepp

Föreningen Nordens lokala hemsidor

Algebra, polynom & andragradsekvationer en pampig rubrik på ett annars relativt obetydligt dokument

Hävarmen. Peter Kock

Kvalitetsrapport Så här går det

Får nyanlända samma chans i den svenska skolan?

Praktisk programmering

Repetitivt arbete ska minska

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl

TENTAMEN: Design och konstruktion av grafiska gränssnitt DAT215

Administration Excelimport

Exempel på tentamensuppgifter i LMA100, del 1

Enkätresultat för vårdnadshavare till elever i Centralskolan Söder 4-9 i Grästorp hösten Antal svar: 50

Läsfixarna. Idrott inne. Melinda får ta med en bok eller en sak hemifrån att visa och berätta om.

a n = A2 n + B4 n. { 2 = A + B 6 = 2A + 4B, S(5, 2) = S(4, 1) + 2S(4, 2) = 1 + 2(S(3, 1) + 2S(3, 2)) = 3 + 4(S(2, 1) + 2S(2, 2)) = = 15.

Ekvationssystem, Matriser och Eliminationsmetoden

Strukturen i en naturvetenskaplig rapport

Tentamen. Makroekonomi NA0133. Juni 2016 Skrivtid 3 timmar.

Snapphanalegen. Firekángabogena. Spelregler. (4 spelare)

Tränarguide del 1. Mattelek.

Få jobb förmedlas av Arbetsförmedlingen MALIN SAHLÉN OCH MARIA EKLÖF JANUARI 2013

vägtrafiken? Hur mycket bullrar

GRUNDERNA I SJÄLVLEDARSKAP

Beslutet/domen har vunnit laga kraft. Fastighetsmäklarinspektionens avgörande

Sammanfattning på lättläst svenska

Kapitel 6. f(x) = sin x. Figur 6.1: Funktionen sin x. 1 Oinas-Kukkonen m.fl. Kurs 6 kapitel 1

Övningshäfte i matematik för. Kemistuderande BL 05

2D1310, 2D1311 Programmeringsteknik Tentamen (1p) 3 maj 2001, kl

Programexempel: tärningsspel

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

Systematiskt kvalitetsarbete

Avsikt På ett lekfullt sätt färdighetsträna, utveckla elevers känsla för hur vårt talsystem är uppbyggt samt hitta mönster som uppkommer.

Tentamensdeltagare från Dataekonomutbildningen, Textilekonomutbildningen och Affärsinformatikutbildningen.

Introduktion till Dexter och andra separata instruktioner finns på

Transkript:

LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Tentamen, EDA011/EDA017 Programmeringsteknik BME C E F I N Pi 2016 06 02, 8.00 13.00 Anvisningar: Preliminärt ger uppgifterna 6 + 17 + 16 + 6 = 45 poäng. För godkänt betyg krävs 22, 5 poäng. Tillåtet hjälpmedel: Java-snabbreferens. Lösningsförslag kommer att finnas på kursens hemsida senast dagen efter tentamen. Resultatet läggs in i Ladok när rättningen är klar och anslås inte på anslagstavlan. Tentamensvillkor: Om du tenterar utan att vara tentamensberättigad annulleras din skrivning. För att undvika att någon skrivning annulleras av misstag kommer alla som, enligt institutionens noteringar, tenterat utan att vara tentamensberättigade att kontaktas via epost. Felaktigheter i institutionens noteringar kan därefter påtalas fram till nästa tentamenstillfälle då resterande skrivningar annulleras.

2(5) 1. Historiker och litteraturvetare använder ibland datorbaserade metoder för att få översiktlig information om stora textmassor. Genom att exempelvis räkna förekomster av ortnamn (och liknande) kan man skapa sig en uppfattning om den geografi som beskrivs i texten. 1 Med en sådan metod kan vi undersöka Selma Lagerlöfs bok Nils Holgerssons underbara resa genom Sverige och räkna förekomster av landskapens namn. På så sätt kan vi förstå något om den bild av Sverige som tecknas i boken. Lagerlöfs bok gavs ut 1906 1907, under den nationalromantiska perioden, då många av 1900-talets föreställningar om den svenska nationen tog form. Inledningsvis behöver vi en klass för att hålla reda på ett ord och antalet gånger det förekommer. Klassen WordCount har följande specifikation: /** Skapar ett objekt som håller reda på förekomster av ordet word. Inledningsvis har ordet 0 (noll) förekomster. */ WordCount(String word); /** Tar reda på vilket ord som räknas. */ String getword(); /** Ökar antalet förekomster med 1. */ void inccount(); /** Tar reda på antalet förekomster. */ int getcount(); /** Returnerar en sträng som beskriver ordet och dess förekomster, på formen "xyzzy: 57" (om ordet "xyzzy" förekommit 57 gånger) */ String tostring(); Uppgift: Implementera klassen WordCount. Exempel: Följande satser WordCount w = new WordCount("Södermanland"); w.inccount(); w.inccount(); System.out.println(w.toString()); ger utskriften Södermanland: 2 1 Ett intressant exempel på en sådan historisk undersökning, större än vad vi har möjlighet att göra här, är: Cameron Blevins, Space, Nation, and the Triumph of Region: A View of the World from Houston : Journal of American History, vol. 101, no. 1, 2014.

3(5) 2. När vi undersöker en text, som Lagerlöfs bok, räknar vi alltså förekomster av platser. Vi behöver vi då klassen LocationTable: /** Skapar en tabell av platser och deras antal. Parametern locations anger vilka ord (platser) som ska räknas. Orden i locations förutsätts vara unika. */ LocationTable(String[] locations); /** Undersöker ordet w. Om ordet förekommer i tabellen ökas ordets antal med 1. */ void inspectword(string w); /** Läser text från en Scanner, ord för ord. Om ett läst ord förekommer i tabellen ökas dess antal med 1. */ void readtext(scanner textscanner); /** Skriver ut de 5 vanligast förekommande platserna, angivna i fallande ordning efter förekomst. För varje plats anges antalet förekomster. Om tabellen innehåller färre än 5 platser så skrivs alla ut. */ void printtop5(); Uppgift: Implementera klassen LocationTable utifrån följande anvisningar: Använd en lista av WordCount-objekt. Du ska inte ha någon vektor som attribut. Texternas ord skiljs av mellanslag eller radmatning. Använd Scanner-metoden next. Du behöver inte ta hänsyn till punkt, komma, citationstecken och liknande. (Dessa tecken antas ha filtrerats bort då boken lästs in från början.) Din lösning ska inte använda någon av Javas standardklasser för sortering, som Arrays.sort eller Collections.sort. Exempel. I följande program skapas ett LocationTable-objekt för de svenska landskapen och Lagerlöfs bok läses in. Information om de fem mest förekommande landskapen skrivs ut. public class HolgerssonLocations { public static void main(string[] args) { String[] locations = { "Blekinge", "Bohuslän", "Dalarna", "Dalsland", "Gotland", "Gästrikland", "Halland", "Hälsingland", "Härjedalen", "Jämtland", "Lappland", "Medelpad", "Norrbotten", "Närke", "Skåne", "Småland", "Södermanland", "Uppland", "Värmland", "Västerbotten", "Västergötland", "Västmanland", "Ångermanland", "Öland", "Östergötland" ; try { LocationTable counter = new LocationTable(locations); // Bokens text finns i 99 textfiler lagerlof1.txt.. lagerlof99.txt for (int i = 1; i <= 99; i++) { Scanner s = new Scanner(new File("lagerlof" + i + ".txt")); counter.readtext(s); counter.printtop5(); catch (FileNotFoundException e) { System.out.println("filerna kunde inte läsas"); Resultat: 2 Skåne: 53 Småland: 38 Lappland: 36 Uppland: 25 Västergötland: 21 2 Gränstrakterna (Skåne, Lappland) nämns alltså relativt ofta. Norge, som lämnat unionen med Sverige året innan (1905), nämns däremot endast en gång. Kanske var det viktigt att visa att Sverige ännu var rätt stort?

4(5) 3. Vi ska nu ta fram information om boken på ett annat sätt. Genom att räkna alla ord, inte bara platser, kan vi skapa oss en uppfattning om bokens innehåll. Vi måste emellertid utesluta vissa vanliga ord, som och, ett och att, för att få ett meningsfullt resultat. Vi behöver alltså återigen en tabell av ord, men nu för att räkna alla ord, utom ett antal undantagsord. Klassen WordTable hanterar en sådan tabell: /** Skapar en ordtabell. Ett antal undantagsord, som inte ska räknas, läses in från scannern exclusions. Dessa undantagsord förutsätts vara unika. */ WordTable(Scanner exclusions); /** Undersöker ordet w. Om ordet är ett undantagsord görs ingenting. Annars: - Om ordet inte finns tidigare läggs det in i tabellen. - Antal förekomster för ordet ökar med 1. */ void inspectword(string w); /** Läser text från en Scanner, ord för ord. Varje ord undersöks enligt reglerna i kommentaren för inspectword. */ void readtext(scanner textscanner); /** Skriver ut de 5 vanligast förekommande orden, angivna i fallande ordning efter förekomst. För varje ord anges antalet förekomster. Om tabellen innehåller färre än 5 ord så skrivs alla ut. */ void printtop5(); Uppgift: Implementera klassen WordTable utifrån följande anvisningar: Om du väljer dina attribut väl så blir ett par av metoderna identiska med motsvarande i uppgift 2. Då behöver du inte visa implementationen av dessa metoder, utan kan istället skriva // se lösning 2 Stora/små bokstäver ska behandlas lika ( pojken och Pojken anses vara samma ord). Följande metod i klassen String returnerar strängen översatt till gemener (små bokstäver): String tolowercase(); Exempel. I följande program skapas ett WordTable-objekt. Ett antal undantagsord ( och, ett, att osv.) läses från en fil. Lagerlöfs bok läses sedan in och de fem mest förekommande orden skrivs ut. public class HolgerssonWords { public static void main(string[] args) { try { Scanner exclusions = new Scanner(new File("undantagsord.txt")); WordTable counter = new WordTable(exclusions); for (int i = 1; i <= 99; i++) { Scanner s = new Scanner(new File("lagerlof" + i + ".txt")); counter.readtext(s); counter.printtop5(); catch (FileNotFoundException e) { System.out.println("filerna kunde inte läsas"); Resultat: 3 pojken: 1019 vildgässen: 298 akka: 287 skogen: 246 hörde: 205 3 Resultatet säger något om boken. Ledargåsen Akka är döpt efter ett lappländskt fjällmassiv, och pojken kommer från Skåne. Kanske skymtar även nationalromantikens fascination för den vilda naturen i orden skogen och vildgässen?

5(5) 4. Som du nog upptäckt är de båda klasser du konstruerat i uppgift 2 och 3 delvis väldigt lika. För att undvika duplicerad kod vill vi införa en ny klass Table, som beskriver det som är gemensamt för LocationTable och WordTable. Vi ska därefter skissa ett sätt att implementera LocationTable och WordTable med hjälp av Table. Uppgiften ska lösas med hjälp av arv. Anvisningar: Metoderna (förutom konstruktorerna) i denna uppgift kommer att vara likadana som metoder i tidigare uppgifter. Det räcker därför att du, för varje metod, hänvisar till en tidigare implementerad metod. Om du exempelvis vill ange att en metod m ska vara likadan som metoden m i uppgift 3 kan du skriva:... public void m(int a) // se lösning 3... Läs igenom båda uppgifterna nedan innan du börjar. För full poäng på uppgift (a) och (b) krävs angiven superklass (i förekommande fall), deklarerade attribut, implementerade konstruktorer, hänvisning till metodernas implementation (enligt exemplet m ovan), samt lämplig användning av public, protected och private. a) Implementera klassen Table. b) Implementera klasserna LocationTable och WordTable, på ett sådant sätt att du återanvänder koden i Table. Detalj från svensk 20-kronorssedel, i bruk 1991 2016. Nils Holgersson åker på den vita tamgåsen. Längst fram flyger ledargåsen Akka.