AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007



Relaterede dokumenter
Videregående Programmering Obligatorisk opgave - 3. semester, efterår 2004

Ugeseddel 4 1. marts - 8. marts

Skriftlig eksamen i Datalogi

Eksempel: Skat i år 2000

DM01 DM Obl. Afl. Jacob Christiansen, , D12, Elias 18/ Side 1 af 11

Abstrakte datatyper C#-version

Skriftlig eksamen i Datalogi

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2

DANMARKS TEKNISKE UNIVERSITET

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4

Forelæsning Uge 2 Torsdag

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java

Datalogi OB, Efterår 2002 OH er, forelæsning 10/ Klasser og nedarvning

Klasser og nedarvning

Forelæsning Uge 2 Torsdag

Civilingeniøreksamen januar Skriftelig prøve den 12. januar 2001 Kursusnummer 49104

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer

A Profile for Safety Critical Java

Klasser og objekter. (Afsnit i manualen)

Forelæsning Uge 2 Torsdag

DM502. Peter Schneider-Kamp

DM507 Algoritmer og datastrukturer

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1.

DM507 Algoritmer og datastrukturer

Anvendelse af metoder - Programmering

SWC Elementer i klassedefinition

DM507 Algoritmer og datastrukturer

Løsning af møntproblemet

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11

DM507 Algoritmer og datastrukturer

SWC eksamens-spørgsmål. Oversigt

Tree klassen fra sidste forelæsning

Studiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3

Hvad er Objekter - Programmering

Videregående Programmering for Diplom-E Noter

Programmering i C. Lektion december 2008

Sekvensafstand DM34 - Eksamensopgave. Jacob Aae Mikkelsen

Objektorienteret Programmering

Dvs. at give dit program muligheden for at loade og bruge plugins som andre har lavet.

Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner

Forelæsning Uge 6 Mandag

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.

Java Programmering. En bog for begyndere. Skrevet af Henrik Kressner

Find største element, sæt det på sidste plads. Grundidé i hobsortering. er er

Singleton pattern i Java

Løsningsforslag til Camp Let. Case Beskrivelse: Camp Let

Software Construction 1. semester (SWC) januar 2014 Spørgsmål 1

Forelæsning Uge 5 Mandag

Forelæsning Uge 3 Mandag

Forelæsning 17, tirsdag 2. november 1999 Søgning efter en given værdi i en tabel. Programmering 1999

Forelæsning Uge 3 Mandag

Hvordan vælger jeg dokumentprofilen?

Noter og opgaver. Programmering A IMADA. Niels Kjeldsen & Jacob Aae Mikkelsen. Med grundig korrektur og rettelser af Edmund Christiansen

Forelæsning Uge 4 Torsdag

Skriftlig eksamen i Datalogi

Hashing og hashtabeller

Forelæsning Uge 4 Mandag

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

Specifikation Abstrakt OO OS-API Rev Specifikation. Abstrakt, objektorienteret operativsystem-api

Kursusarbejde 1 Grundlæggende Programmering. Arne Jørgensen, klasse dm032-1a

METODER ARV KLASSER. Grundlæggende programmering Lektion 5

BRP Kursusintroduktion og Java-oversigt

Singleton pattern i C#

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 6

DM507 Algoritmer og datastrukturer

Bits, bit operationer, integers og floating point

Software Construction 1 semester (SWC) Spørgsmål 1

Design by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater

Forelæsning Uge 4 Mandag

Tabelbegrebet. Klassediagrammer (III) Oversigt. Anvendelse af Tabeller. Tabeller og qualified associations

Datalogi OB, Efterår 2002 OH er, forelæsning 3/ forstå datastrukturer og algoritmer (teoretisk forståelse og intuition)

Forelæsning Uge 3 Mandag

Java Klasse nedarvninger

Test af It-komponent

DATALOGI 0GB. Skriftlig eksamen tirsdag den 6. januar 2004

14.1 Internationale programmer

DM507 Algoritmer og datastrukturer

Forelæsning Uge 3 Torsdag

Forelæsning Uge 3 Mandag

RMI med BlueJ. Tutorial lavet af Jákup W. Hansen TSU semester 11. desember 2007

Grundlæggende Programmering ITU, Efterår Skriftlig eksamen i Grundlæggende Programmering

Kursusarbejde 3 Grundlæggende Programmering

Sekvenser af længde mellem 1 og 4 ord repræsenteres ved en klasse Segment, som uden grundlæggende ser således ud:

BRP Tal. Om computer-repræsentation og -manipulation. Logaritmer

Introduction til.net remoting i C#

Kursus navn: Indledende programmering Kursus nr

DM507 Algoritmer og datastrukturer

class subklasse-navn extends superklasse-navn { } NorwaySpruce har superklassen Spruce, som igen har superklassen Tree.

Forelæsning Uge 2 Mandag

Tabeller (I) Tabeller

import java.awt.event.*; import java.awt.*; Container <- Panel <- Applet Component <- Button <- Checkbox <- ScrollPane <- Label

9.8 Kildekode. side 88. Pakke Klasse Sidenummer. fortsætter..

JavaScript. nedarvning.

Lektion 6. Grundlæggende programmering i VR

ATTRIBUTES MULTITHREADING DYNAMIC PROGRAMMING. Grundlæggende programmering Lektion 11

Forelæsning Uge 5 Mandag

DM507 Algoritmer og datastrukturer

Transkript:

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til fjj@noea.dk. Besvarelsen skal være forsynet med navn, personnummer, gruppenummer samt uddannelsesretningen. Besvarelsen skal være afleveret senest den 18.maj 2007. Pensum: Pensum beskrives i forhold til lærebogen: Introduction to Programming Using Java, Fifth Edition, David J. Eck. Pensum er følgende afsnit i bogen: Afsnit 1.1-1.5 Afsnit 2.1-2.6 Afsnit 3.1-3.7 Afsnit 4.1-4.5 Afsnit 5.1-5.7 Afsnit 7.1-7.5 Afsnit 9.1 1

Opgave 1 Implementér en klasse (f.eks. Opgave1) som indeholder følgende metoder fra opgave 1.1 til opgave 1.4. Metoderne skal afprøves via en main metode på samme klasse. Opgave 1.1 Implementér en statisk metode ud fra følgende: Som parameter anvendes to decimaltal a,b af typen double. Metoden returnerer kvadratroden af a*a+b*b. Opgave 1.2 Implementér en statisk metode med følgende egenskaber: Som parameter anvendes to heltal af typen int. Hvis begge heltal er negative returnerer metoden 0 og ellers returnerer metoden summen af de to heltal. Opgave 1.3 Implementér en statisk metode med følgende egenskaber: Som parametre anvendes tre heltal, metoden skal returnere det største af de tre tal. Opgave 1.4 Implementér en statisk metode med følgende egenskaber: Som parameter anvendes datatypen char. Hvis parameteren indeholder et af følgende små bogstaver (vokaler): a, e, i, o, u, y, æ, ø og å, returnerer metoden true og ellers returnerer metoden false. Opgave 1.5 Følgende kode er blevet implementeret public interface Person public String getnavn(); public class Ansat implements Person private String navn; private double løn; public double getløn() return løn; Når ovenstående kode kompileres modtager programmøren følgende fejl: Ansat.java:1: Ansat should be declared abstract; it does not define getnavn() in Ansat public class Ansat implements Person Men det er ikke meningen at klassen Ansat skal være abstrakt. Hvad er problemet? 2

Opgave 2 Implementér en klasse (f.eks. Opgave2) som indeholder følgende statiske metoder: public static double genover20(int[] array ) // Metoden returnerer gennemsnittet af alle de tal i arrayet array, der er større end 20 public static void opdateralle(int[] array, int x, int y) //Metoden erstatter alle forekomster af x i array med y //Hvis f.eks. array indeholder [12, 7, 4, 6, 2, 6, 1, 2, 3], og der kaldes opdateralle(2,77) skal //arrayet efter kaldet indeholde [12, 7, 4, 6, 77, 6, 1, 77, 3]. public static int[] returnnegative(int[] array) //Metoden returnerer et array af heltal, som indeholder alle de tal i array, der er negative. //Hvis f.eks. array indeholder elementerne [2, -3, 1, -12, 5] skal metoden returnerer et array med //elementerne [-3, -12] public static boolean containsx( int[] array, int x) //Metoden returnerer true, hvis der er en forekomst af tallet x i array ellers false public static int countx( int[] array, int x) //Metoden returnerer antal af gange x forekommer i arrayet array Metoderne skal afprøves via en main metode på samme klasse 3

Opgave 3 Denne opgave drejer sig om fletning af to sorterede lister. En fletning tager to sorterede lister som input og producerer ud fra disse en ny sorteret liste. Afhængigt af formålet er der forskellige typer af fletninger, bl.a. total fletning, hvor den nye liste indeholder alle elementer fra de to inputlister. Fx vil den totale fletningen af: blive a = 1,2,3,4,6,8,12,15; b = 2,4,5,6,7,9,11,12,17,18; 1,2,2,3,4,4,5,6,6,7,8,9,11,12,12,15,17,18 I denne opgave er listerne blot arrays med heltal som elementer. Neden for er der en test-klasse, som kalder en metode totalflet. Implementér denne metode i henhold til ovenstående class Flet public static void main(string[] args) int[] a = 1,2,3,4,6,8,12,15; int[] b = 2,4,5,6,7,9,11,12,17,18; int[] c = totalflet(a,b); public static int[] totalflet(int[] a, int[] b) //Antag at a og b er sorterede. Metoden returnerer den totale fletning af a og b 4

Opgave 4 Hos Andelsboligforeningen Bytoften kan man købe og sælge andelsboliger. Når en andelsbolig sættes til salg bestilles der annoncer hos forskellige aviser i lokalområdet. Nedenstående viser et udsnit af systemet beskrevet ved et såkaldt klassediagrammet: husnr : String andelsværdi : double Andelsbolig Andelsbolig() Andelsbolig(husnr : String, andelsværdi : double) gethusnr() : String getandelsværdi() : double getannoncer() : java.util.arraylist 1 tekst : String pris : double 0..* Annonce Annonce(tekst : String, pris : double, avis : Avis) gettekst() : String getpris() : double getavis() : Avis 0..* 1 Avis navn : String getnavn() : String setnavn(navn : String) : void equals(o : Object) : boolean Opgave 4.1 Som det fremgår af klassediagrammet er en avis modeleret ved klasse Avis med følgende klasse medlemmer: Implementér klassen Avis en private instansvariabel navn af typen String set og get metoder til instansvariablen navn samt metoden equals, der override(r) metoden equals fra klassen java.lang.object. Opgave 4.2 Som det endvidere fremgår af klassediagrammet er en annonce modeleret ved klasse Annonce med følgende klasse medlemmer: en private instansvariabel tekst af typen String 5

en private instansvariabel pris af typen double en private instansvariabel avis af typen Avis (fremgår ikke direkte af figuren) get metoder til alle instansvariablerne tekst, pris, avis En constructor som initialiserer alle instansvariablerne. Implementér klassen Annonce Opgave 4.3 Klassediagrammet viser også en klasse Andelsbolig. Klassen repræsenterer naturligvis andelsboliger i forening og har i systemet ansvaret for at gemme oplysninger om hvilke annoncer der er knyttet til en andelsbolig bestilt i forbindelse med foreningens salgsaktiviteter. Klassen har følgende klasse medlemmer: en private instansvariabel husnr af typen String en private instansvariabel andelsværdi af typen double get metoder til instansvariablerne husnr samt andelsværdi en default constructor en constructor som initialiserer instansvariablerne husnr samt andelsværdi Endvidere, har klassen en private instansvariabel annoncer af typen java.util.arraylist, som skal anvendes til at opbevarer referencer til annonce objekter, der er knyttet til netop denne andelsbolig. (Listen fremgår ikke direkte af diagrammet) Slutteligt, har klassen en instansmetode public java.util.arraylist getannonce(), som er en get metode til instansvariablen annoncer. Implementér klassen Andelsbolig Opgave 4.4 Når en ny annonce skal oprettes i systemet overføres annonceteksten, annonceprisen samt avisreferencen til en metode på klassen Andelsbolig. Herefter er det andelsboligens ansvar at oprette annoncen og gemme denne i sin liste. Implementér følgende metode på klassen Andelsbolig: public void opretannonce(string tekst, double pris, Avis avis) //En annonce er oprette med tekst og pris. //Annoncen har referencen til avisen avis //Annoncen er gemt i andelsboligens annonceliste Opgave 4.5 Foreningens regnskab kræver en metode, som beregner den samlede annonceudgift knyttet til denne bolig. (Dvs. summen over de enkelte annoncepriser) Implementér følgende metode på klassen Andelsbolig: public double getannonceudgift() //metoden returnerer den samlede annonceudgift knyttet til denne andelsbolig 6