PROGRAMMERING-Java Omtentamina

Relevanta dokument
PROGRAMMERING-JAVA TENTAMINA

PROGRAMMERING-Java TENTAMINA

OOP Objekt-orienterad programmering

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

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

Iteration while-satsen

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:

Föreläsning 3. Iteration while-satsen

TENTAMEN OOP

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Tentamen , Introduktion till Java, dtaa98, dtea53

Att skriva till och läsa från terminalfönstret

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Tentamen OOP

OOP Tentamen

Föreläsning 3-4 Innehåll

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

Chapter 4: Writing Classes/ Att skriva egna klasser.

public boolean containskey(string key) { return search(key, head)!= null; }

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

Chapter 3: Using Classes and Objects

Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

Modelsvar för Tentamen för Objektorienterad programvaruutveckling, TDA545

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

Laboration 13, Arrayer och objekt

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

TDDC77 Objektorienterad Programmering

TENTAMEN OOP

Anteckningar 1: Grundläggande saker

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

Outline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler

Tentamen i Grundläggande Programvaruutveckling, TDA548

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

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

OOP Objekt-orienterad programmering

Malmö högskola 2012/2013 Teknik och samhälle

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Institutionen för TENTAMEN CTH VT-15 Datavetenskap TDA540. Tentamen för TDA540 Objektorienterad programmering

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

Laboration A Objektsamlingar

Tentamen i Algoritmer & Datastrukturer i Java

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

Tentamen FYTA11 Javaprogrammering

Föreläsning 3. Iteration. while-satsen for-satsen do-satsen

Modelsvar för Tentamen för Objektorienterad programvaruutveckling, TDA545

System.out.println("Jaså du har "+ antaldollar + " stycken.");

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.

Tentamen ID1004 Objektorienterad programmering April 7, 2015

4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &

Tentamen i Grundläggande Programvaruutveckling, TDA548

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-15, TDA540. Dag: , Tid:

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

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Tentamen Programmeringsteknik II Skrivtid: Hjälpmedel: Java-bok (vilken som helst) Skriv läsligt! Använd inte rödpenna!

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Dagens föreläsning. Arrayer och klasser. Medan ni väntar: Gå till m.voto.se/prog11 och svara på några gamla tentamensfrågor! (26 januari 2018 F3 1 )

Institutionen för TENTAMEN CTH HT-14 Datavetenskap TDA540. Tentamen för TDA540 Objektorienterad programmering

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Uppgift: Algoritm för att beräkna kontrollsiffran i ett personnummer givet de 9 första siffrorna. Torrsimning av algoritm för personnummer

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

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

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

Sammanfattning och repetition utgående från typiska tentamensuppgifter

SMD 134 Objektorienterad programmering

Föreläsning 5-6 Innehåll

Grundläggande programmering med C# 7,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för: TEN1 NGC011 ADAEK17, ASYST17 samt öppen för alla

OOP Omtenta

Rekursion och induktion för algoritmkonstruktion

Del A (obligatorisk för alla)

Föreläsning 8: Exempel och problemlösning

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:

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

Objektorienterad Programmering (TDDC77)

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

OOP Objekt-orienterad programmering

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

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Grundläggande programmering med C# 7,5 högskolepoäng

Del A (obligatorisk för alla)

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

Programmeringsteknik och Matlab. Dagens program. Viktiga datum. Repetitionsexempel. Repetition av if/else, for, while och Scanner

1 Egna klasser. 1.1 En punkt-klass

LÖSNINGSFÖRSLAG TENTAMEN

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

I ett program hantera man ofta samlingar av objekt av samma typ.

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Tentamen, EDAA10 Programmering i Java

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

int iarray[]= new int[3]; // deklarera ett heltalsfält med tre heltal int jarray[]={ 1, 3, 5, 7, 9, 11, 13, 15}; // initierat fält 8 element

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-15, TDA540. Dag: , Tid:

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Transkript:

PROGRAMMERING-Java Omtentamina Nicolina Månsson 2007-08 13 Tentamensinstruktioner Poängsättning Hela tentamen omfattar 41 poäng. Poäng för varje uppgift står angivet inom parentes före varje uppgift. - För att få betyget 3,4 eller 5 krävs det minst 20,28 eller 37 poäng - För att få betyget G eller VG krävs det minst 20 eller 32 poäng Redovisning I varje uppgift står det vad som skall göras för att få angivet antal poäng. Redovisa koden i den ordning den efterfrågats i texten med så mycket implementerat som möjligt. Tänk på att vara noggrann och strukturerad. Det är Du som skall visa vad Du kan! Hjälpmedel Finns hos tentavakten. Lycka till!

Uppgift 1 - Enkla program med variabler, metoder, val och repetition satser (3p+3p+3p+3p+3p) a) Skriv ett enkelt program som slumpar 3 heltalsvärden i intervallet 1-6. Med en whileloop skall programmet slumpa repeterade gånger tills alla 3 heltalen som slumpas råkar ha samma värde. Då skall programmet avslutas och skriva ut hur många gånger loopen har gått. Ledning! Använd en räknare-variabel som uppdateras för varje iteration i loopen. Slumpa tal med hjälp av ett Random-objekt. Konstrueraren från klassen Random och metoden nextint() som ska användas för att slumpa tal är definierade som nedan: Random () Creates a new random number generator. int nextint(int n) Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive), drawn from this random number generator's sequence. b) Skriv ett program som från en användare läser in 4 heltalsvärde (x1,y1) och (x2,y2), som representerar koordinaterna för två punkter. Därefter skall programmet beräkna och skriva ut avståendet mellan de två punkterna. Formeln du skall använda är: avstånd= (x2-x1)^2+(y2-y1)^2. Använd metoderna från klassen Math: static double sqrt(double a) Returns the correctly rounded positive square root of a double value. static double pow(double a, double b) Returns the value of the first argument raised to the power of the second argument. c) För att konvertera en vinkel från grader till radian multipliceras graderna med PI och delas med 180.0, alltså: double radians = (degrees * Math.PI)/180.0 ; Skriv ett program som använder ett loop och skriver ut en tabell med vinklar från 0 till 360 både i grader och radian. d) Använd en while-loop i ett program som läser in positiva heltal från användaren och skriver ut den största av dem. Loopen avbryts efter 10 inläsningar eller om ett negativ tal matas in. Tips! Använd en variabel (kalla den max). För varje loop jämför max med den nya inmatade värdet.

e) Skriv ett program som läser in ett heltal från användaren. Om inmatat tal är mellan 0 och 9 ska Ensiffrigt skrivas ut utom om talet är 7 då istället Mitt lyckotal skrivas ut. Är talet mellan 10 och 99 skall Tvåsiffrigt skrivas ut utom om talet är 77 då Dubbel lycka skrivs ut. Om talet är negativ eller 3-siffrigt skall Utanför intervallet skrivas ut. Uppgift 2 Klasser, metoder och Arrayer, (4p+ 8p+2p+4p) I följande klasser beskrivs ett telefonregister i vilket man kan lagra namn och telefonnummer för ett antal personer. Så, för att skapa ett telefonregister av personer måste du först implementera klassen Person. En Person i detta samanhang består enbart av namn och telefonnummer, som du ser nedan. Implementera färdig klassen enligt beskrivningen som finns framför varje metod. class Person { private String namn; private Sting telnr; /** skapa en person med namnet name och telefonnumret telnbr */ public Person(String name, String telnbr); /** returnerar personens namn*/ public String getnamn(); /** returnerar personens telefonnummer*/ public String gettelnbr(); b) Ett telefonregister är helt enkelt en array av Person-objekt. Att implementera metoder för insert och remove i och från en array av Person-objekt är mycket likt det du har gjort på laborationen där du har lagt till och tagit bort heltal från en array ( klassen IntSet). Implementera klassen TelefonKatalog enligt nedanstående beskrivning. class TelefonKatalog { private Person[] lista; private int counter; /** konstruerare, skapa arrayen lista med plats för 100 personer*/ public TelefonKatalog(); /** lägg in en person (p) i listan*/ void insert(person p);

/** tag bort personen med namnet name ur listan. Tänkt på att du först måste söka och hitta platsen där personen med respektive namn finns i listan */ void delete(string name); /** returnera telefonnumret för personen i listan som har namnet name (null om ingen sådan person finns) */ public String findtelefon(string name); c) Finns det några nackdelar med att implementera telefonregistret som en array. Vilka? Vad finns det för annat alternativ? d) Skriv ett program som använder klassen Person och TelefonKatalog och gör följande: 1. Skapar ett TelefonKtalog-objekt. 2. Skapar två Person-objekt. 3. Söker efter ett telefonnummer genom att anropa metoden findtelefon(). Skriver ut telefonnumret eller skriver ut Inget telefonnummer för namnet X om ingen person med respektive namn hittas. Uppgift 3 - (8p ) a) Komplettera nedanstående program så att den fungerar som ett enkel miniräknare. Som du ser kan användaren mata in till programmet en sträng innehållande ett enkelt aritmetiskt uttryck (som t.ex 3+5 eller 56*23 ). Programmet skall utifrån den inmatade strängen beräkna uttrycket. public class Calculator { public static void main (String [] arg) { String stal1, String stal2; // variabler som skall lagra värde i strängform. int tal1, int tal2; // variabler som skall lagra värde i heltalsform char operator= ; // variabeln ska lagra den hittade operatorn int plats= -1; // variabeln skall lagra positionen i stängen där operatorn hittades Scanner scan =new Scanner (System.in); System.out.println( Mata in utryck : ); String str = scan.next(); // hitta platsen i strängen där någon av tecken + eller * eller eller / finns och // spara respektive tecken, använd metoden charat() och indexof() // dela uttrycket i två mindre strängar, använd metoden substring() // konvertera sträng talen till heltalsvärde, använd metoden parseint() // gör beräkning utifrån den hittade operatorn och skriv ut resultatet

Ledning: Använd någon/några av följande metoder från klassen String och Integer. Obs! Konvertering från sträng till heltal skall göras efter det att har delat den inmatade stängen sträng uttrycket i de två tal och en operator. int length() Returns the length of this string. int indexof(string str) Returns the index within this string of the first occurrence of the specified substring. String substring(int beginindex, int endindex) Returns a new string that is a substring of this string. char charat(int index) Returns the char value at the specified index. Konvertering av sträng till heltal skall göras med metoden parseint () som finns i klassen Integer och definieras som nedan. static int parseint(string s, int radix) Parses the string argument as a signed integer in the radix specified by the second argument.