Programmeringoch databaser

Storlek: px
Starta visningen från sidan:

Download "Programmeringoch databaser"

Transkript

1 Programmeringoch databaser LÖSNINGSFÖRSLAG TILL ÖVNINGAR EDAA /2018

2 LUNDS TEKNISKA HÖGSKOLA EDAA20 Programmeringsteknik Institutionen för datavetenskap 2017/2018 Övning 1 Variabler och tilldelningssatser 1. int sum = ; System.out.println("Summan är: " + sum); Alternativt kan man t.ex. lagra termerna i varsin variabel, för att sedan räkna ut resultatet. Vilket kan vara en fördel om man i framtiden vill bygga ut programmet för att t.ex. låta värdena bero av andra saker eller använda samma termer i en annan uträkning. //Alternativ lösning: int a = 3; int b = 8; int c = 12; int sum2 = a + b + c; System.out.println("Summan är: " + sum2); Det är även möjligt att ha uträkningen direkt i utskriften (om man inte behöver använda summan till något annat än just att skriva ut den en gång). Tänk på att ett plustecken i en utskrift normalt anger att en text läggs till i utskriften. Vid uträkning i en utskrift skulle det krävas extra parenteser: System.out.println("Summan är: " + (a+b+c)); 2. Följande variabler finns efter de två första tilldelningssatserna: nbra 2 nbrb 5 och efter tredje, fjärde respektive femte tilldelningssatsen: nbra nbrb nbrc nbra nbrb nbrc nbra nbrb nbrc a) Parentesen runt c + d i tilldelningssatsen int e =... är onödig. Om den utelämnas görs ändå c + d först, eftersom den additionen står först. b) c) Man måste använda en variabel (här kallar vi den temp) för att mellanlagra det ena värdet. Satser: int temp = a; a = b; b = temp; 2

3 3 Inläsning och beräkning 5. public class TimeDifference { public static void main(string[] args) { System.out.println("Skriv starttid och sluttid (timmar och minuter):"); Scanner scan = new Scanner(System.in); int starthour = scan.nextint(); int startmin = scan.nextint(); int stophour = scan.nextint(); int stopmin = scan.nextint(); int minutes = 60 * (stophour - starthour) + (stopmin - startmin); System.out.println("Tidsavstånd i minuter: " + minutes); 6. För att skriva ut tidsavståndet i timmar och minuter subtraherar vi timmarna för sig, minuterna för sig. Vi måste ta hänsyn till att minutskillnaden kan bli negativ och i så fall korrigera det. Nya satser (efter inläsningssatserna): int diffhour = stophour - starthour; int diffmin = stopmin - startmin; if (diffmin < 0) { diffmin = diffmin + 60; diffhour = diffhour - 1; System.out.println("Tidsavstånd: " + diffhour + " timmar, " + diffmin + " minuter"); Den andra varianten, med heltalsdivision: int minutes = 60 * (stophour - starthour) + (stopmin - startmin); int diffhour = minutes / 60; int diffmin = minutes % 60; System.out.println("Tidsavstånd: " + diffhour + " timmar, " + diffmin + " minuter"); Slumptal 7. I det intervall som efterfrågas finns 100 möjliga utfall ( ) och det minsta möjliga värdet är 100. nextint i anropet nedan ger ett slupmtal i intervallet Random rand = new Random(); int slumptal = rand.nextint(100)+100; System.out.println(slumpTal); 8. I det intervall som efterfrågas finns 21 möjliga utfall och det minsta möjliga värdet är 10. Random rand = new Random(); int slumptal = rand.nextint(21)+10;

4 4 System.out.println(slumpTal); 9. Här visas två möjliga lösningar. De skiljer sig i hur man säkerställer att de två slumptalen är olika. I den första lösningen används en while-sats för att dra nya slumptal tills de två är olika: public class TwoRandomNumbers { public static void main(string[] args) { Random rand = new Random(); int nbr1 = rand.nextint(100) + 1; int nbr2 = rand.nextint(100) + 1; while (nbr2 == nbr1) { nbr2 = rand.nextint(100) + 1; System.out.print("Två slumptal: "); if (nbr1 < nbr2) { System.out.println(nbr1 + ", " + nbr2); else { System.out.println(nbr2 + ", " + nbr1); While-satsen ovan kan potentiellt behöva köras flera gånger (även om det är rätt osannolikt). Man kan därför utgå från att det andra slumptalet bara ska ha 99 utfall: public class TwoRandomNumbers { public static void main(string[] args) { Random rand = new Random(); int nbr1 = rand.nextint(100) + 1; int nbr2 = rand.nextint(99) + 1; if (nbr2 >= nbr1) { nbr2++; System.out.print("Två slumptal: "); if (nbr1 < nbr2) { System.out.println(nbr1 + ", " + nbr2); else { System.out.println(nbr2 + ", " + nbr1); Aritmetiska uttryck 10. a) y = Math.sin(20 * Math.PI / 180); //Eller y = Math.sin(Math.toRadians(20)); b) z = a * Math.exp(x) + b * Math.exp(-Math.cos(x)); c) hyp = Math.hypot(a, b); // eller: hyp = Math.sqrt(a * a + b * b); 11. (int) Math.round(x) 12. a) if (n % 2 == 0)... b) if (n % 10 == 0)... c) digit1 = number / 100;

5 digit2 = (number % 100) / 10; // eller: digit2 = (number / 10) % 10; digit3 = number % 10; 5

6 LUNDS TEKNISKA HÖGSKOLA EDAA20 Programmeringsteknik Institutionen för datavetenskap 2017/2018 Övning 2 Logiska uttryck 1. a) a > 5 b) a > 2 c) a <= 2 d) a <= 2 a >= 9 e) a >= 0 && a <= 10 f) ready g)!ready Loopar 2. Lösningen gör antagandet att användaren skriver in ett positivt tal. Lägg gärna till en kontroll av detta. Scanner scan = new Scanner(System.in); int n = scan.nextint(); int factorial = 1; for (int i = 2; i <= n; i++) { factorial = factorial * i; System.out.println(n + "! = " + factorial); 3. Scanner scan = new Scanner(System.in); System.out.println("Skriv in ett tal"); int n = scan.nextint(); int factorial = 1; int i = 2; while (i <= n) { factorial = factorial * i; i++; System.out.println(n + "! = " + factorial); Summering 4. public class AverageTemperature { public static void main (String[] args) { final int NBR = 30; //Behöver inte vara final för att fungera double sum = 0; Scanner scan = new Scanner(System.in); for (int i = 0; i < NBR; i++) { double temperature = scan.nextdouble(); sum = sum + temperature; scan.close(); double averagetemperature = sum / NBR; 6

7 7 System.out.println("Medeltemperatur: " + averagetemperature + " grader"); 5. Scanner scan = new Scanner(System.in); double limit = scan.nextdouble(); double smallsum = 0; double largesum = 0; for (int i = 0; i < 100; i++) { double nbr = scan.nextdouble(); if (nbr < limit) { smallsum = smallsum + nbr; else if (nbr > limit) { largesum = largesum + nbr; System.out.println("Summan av tal < " + limit + " = " + smallsum); System.out.println("Summan av tal > " + limit + " = " + largesum); Observera att man måste skriva...else if(nbr > limit)... och inte bara else. Med enbart else kommer tal lika med limit med i largesum. 6. public class HugeSalary { public static void main (String[] args) { int daysalary = 1; int totalsalary = 0; int days = 0; while (totalsalary < ) { totalsalary = totalsalary + daysalary; days = days + 1; daysalary = 2 * daysalary; System.out.println("Man måste arbeta " + days + " dagar."); Beräkna max och min 7. a) public class Max { public static void main(string[] args) { int max = Integer.MIN_VALUE; System.out.println("Skriv talen:"); Scanner scan = new Scanner(System.in); while (scan.hasnextint()) { int nbr = scan.nextint(); if (nbr > max) { max = nbr; System.out.println("Största talet = " + max);

8 8 b) Byt namn på variabeln max till (det nu lämpligare) namnet min och tilldela den ett stort startvärde: int min = Integer.MAX_VALUE; Vänd på jämförelsen i if-satsen: if (nbr < min)... min = nbr;... Vektorer 8. 4, 48, 55, 1 9. double[] a = new double[10]; Scanner scan = new Scanner(System.in); for (int k = 0; k < 10; k++) { a[k] = scan.nextdouble(); for (int k = 9; k >= 0; k ) { System.out.println(a[k]); 10. a) /** Beräknar summan av talen i vektorn v. */ public static int sum(int[] v) { int sum = 0; for (int i = 0; i < v.length; i++) { sum += v[i]; return sum; b) /** Hittar minsta talet i vektorn v. */ public static int min(int[] v) { int minnbr = Integer.MAX_VALUE; for (int i = 0; i < v.length; i++) { if (v[i] < minnbr) { minnbr = v[i]; return minnbr;

9 LUNDS TEKNISKA HÖGSKOLA EDAA20 Programmeringsteknik Institutionen för datavetenskap 2017/2018 Övning 3 Använda färdiga klasser 1. Följande ritas: 2. Lösningen illustreras genom att de kodsnuttar och begrepp som hänger ihop nu står på samma rad. Begrepp Kodsnutt metodanrop sq1.draw(w); ett nytt objekt skapas new Square(100, 100, 200); en ny referensvariabel deklareras Square sq1 typ Square namn på en referensvariabel sq1 argumentet w skickas in till metod draw(w) argument till konstruktor (400, 400, Squares"); klassrubrik public class SquareExample här börjar exekveringen public static void main(string[] args) 3. public class ErrorTest { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600, 600, "ErrorTest"); Square sq = new Square(100, 200, 50); // deklaration while (sq.getx() < 300) { // parentes sq.draw(w); sq.move(10, 10); // parameter Objekt i minnet 4. a) Efter satsen sq2 = sq1 refererar båda referensvariablerna till samma objekt: sq1 sq2 x y side b) Satsen sq1 = null sätter referensvariabeln till null objektet som variabeln refererar till påverkas inte: 9

10 10 sq1 sq2 null x y side Variablerna sq1 och sq2 innehåller samma värde efter andra tilldelninssatsen: sq1 sq2 x y side Från kod till specifikation 6. Klassen Apartment har följande specifikation: /** Skapa en lägenhet med lägenhetsnumret nbr och ytan area kvadratmeter. */ Apartment(int nbr, double area); /** Sätt lägenhetens hyra per kvadratmeter och månad till sqmr. */ void setsquaremetrerent(double sqmr); /** Returnera lägenhetens månadshyra. */ double getrent(); Namnen på de formella parametrarna behöver inte överensstämma med de i lösningsförslaget.

11 LUNDS TEKNISKA HÖGSKOLA EDAA20 Programmeringsteknik Institutionen för datavetenskap 2017/2018 Övning 4 Implementera metoder 1. Observera att grodan inte ska ritas ut någonstans. a) Det är inte bara en ny metod som tillkommer. Klassen måste nu spara meters som ett attribut och se till att attributet uppdateras när grodan hoppar. public class Frog { private int x; private int y; private int meters; public Frog() { x = 0; y = 0; meters = 0; public int getx() { return x; public int gety() { return y; public void jumpsouth(int n){ y = y-n; meters = meters+n; public int getmeters(){ return meters; b) public void jumpnorth(int n){ y = y+n; meters = meters+n; c) public void jumpwest(int n){ x = x-n; meters = meters+n; public void jumpeast(int n){ x = x+n; meters = meters+n; 11

12 12 Implementera klasser 2. public class Car { private String nbr; private Person owner; // registreringnummer // ägare /** Skapar en bil med registreringsnummer licensenbr som ägs av personen owner. */ public Car(String licensenbr, Person owner) { nbr = licensenbr; this.owner = owner; /** Tar reda på bilens registreringsnummer. */ public String getlicensenbr() { return nbr; /** Tar reda på bilens ägare. */ public Person getowner() { return owner; /** Sätter bilens ägare till newowner. */ public void changeowner(person newowner) { owner = newowner; 3. Minnessituation: p c1 c2 nbr owner "ABC123" name "Bo Ek" owner "XYZ789" name "Eva Alm" 4. public class RailwayCoach { private int seats; // antalet platser i vagnen private int free; // antalet lediga platser /** Skapar en vagn med nbrseats platser. */ public RailwayCoach(int nbrseats) { seats = nbrseats; free = nbrseats; /** Tar reda på antalet platser i vagnen. */

13 13 public int getnbrseats() { return seats; /** Tar reda på antalet lediga platser. */ public int getnbrfreeseats() { return free; /** Bokar n platser i vagnen. Det får förutsättas att n är <= antalet lediga platser. */ public void makereservation(int n) { free = free - n; 5. public class Person { private int age; /** Skapar en person med åldern age. */ public Person(int age) { this.age = age; /** Undersöker om denna person är äldre än personen p. Returnerar då true, annars false. */ public boolean isolderthan(person p) { return age > p.age; Observera att det går bra att nå den andra personens (p) attribut age direkt med punktnotation. Det beror på att p har typen Person och den kod vi skriver finns i klassen Person. Ett attribut deklarerat private är privat för klassen (och inte för ett specifikt objekt).

14 LUNDS TEKNISKA HÖGSKOLA EDAA20 Programmeringsteknik Institutionen för datavetenskap 2017/2018 Övning 5 Strängar 1. /** Undersöker om strängarna s1 och s2 är lika långa och alla tecknen i s1 är lika med motsvarande tecken i s2. */ public static boolean equals(string s1, String s2) { if (s1.length()!= s2.length()) { return false; for (int i = 0; i < s1.length(); i++) { if (s1.charat(i)!= s2.charat(i)) { return false; return true; 2. /** Bildar en sträng som innehåller tecknen i s i omvänd ordning. */ public String reverse(string s) { StringBuilder sb = new StringBuilder(); for (int i = s.length() - 1; i >= 0; i--) { sb.append(s.charat(i)); return sb.tostring(); 3. String exempel = "Detta är en sträng"; int nbroft=0; int nbrofp=0; for(int i =0;i<exempel.length();i++){ if(exempel.charat(i)== t ){ nbroft++; else if(exempel.charat(i)== P ){ nbrofp++; System.out.println("Antalet t är: " + nbroft + " och antalet P är: " + nbrofp); Vektorer 4. a) /** Hittar minsta talet i vektorn v. Returnerar -1 om x ej finns i vektorn. */ public static int min(int[] v) { for (int i = 0; i < v.length - 1; i++) { if (v[i] == x) { return i; 14

15 15 return -1; b) /** Undersöker om talen är sorterade i växande ordning. */ public static boolean issorted(int[] v) { for (int i = 0; i < v.length - 1; i++) { if (v[i] > v[i + 1]) { return false; return true; c) /** Undersöker om vektorerna v1 och v2 är lika, dvs. om de är lika långa och alla v1[i] == v2[i]. */ public static boolean equal(int[] v1, int[] v2) { if (v1.length!= v2.length) { return false; for (int i = 0; i < v1.length; i++) { if ( v1[i]!= v2[i]) { return false; return true; 5. a) 33 b) 100 c) 1 Matriser 6. Exempel på hur man snabbt kan skapa en förifylld matris att testa med: int [][] m = new int[][] {{2, 53, 87, 4,{3,33,2,90,{0,70,80,90; System.out.print(" "); //Skriv först ut kolumnrubrikerna for(int col = 0; col < m.length; col++) { System.out.print(" [" + col + "]"); System.out.println(); //Skriv ut hela matrisen for (int row = 0; row < m.length; row++) { System.out.print(" [" + row + "]"); //Först på varje rad kommer radindexet for(int col = 0; col < m.length; col++) { System.out.print(" " + m[row][col] + " "); System.out.println(); //Efter varje matris-rad kommer en ny rad

16 16 7. a) public class SudokuGrid { private int[][] grid; /** Skapar ett tomt Sudokurutnät. */ public SudokuGrid () { grid = new int[9][9]; /** Placerar siffran value i rutan (row,col). */ public void put(int row, int col, int value) { grid[row - 1][col - 1] = value; /** Tar bort siffran i rutan (row,col). */ public void clear(int row, int col) { grid[row - 1][col - 1] = 0; /** Tar reda på siffran i rutan (row,col), noll om rutan tom. */ public int get(int row, int col) { return grid[row - 1][col - 1]; /** Tar reda på om rutan (row,col) är tom. */ public boolean empty(int row, int col) { return grid[row - 1][col - 1] == 0; b) /** Kontrollerar om samtliga rutor är ifyllda*/ public boolean allset() { for (int r = 0; r < 9; r++) { for (int c = 0; c < 9; c++) { if (grid[r][c] == 0) { return false; return true; c) /** Kontrollerar om raden row är korrekt ifylld. */ public boolean checkrow(int row) { //För varje ifylld ruta, kolla om samma siffra finns någon annanstans for(int c = 0;c<9;c++){ if(grid[row-1][c]!= 0){ for(int c2 = c+1;c2<9;c2++){ if(grid[row-1][c2] == grid[row-1][c]){ //Vi står inte på samma ruta men vi har hittat samma värde return false; //Alla rutor kollade, inga dubletter hittade return true; Alternativ lösning:

17 17 /** Kontrollerar om raden row är korrekt ifylld. */ public boolean checkrow(int row) { boolean[] temp = new boolean[10]; // motsvarar siffrorna 0..9 for (int c = 0; c < 9; c++) { int digit = grid[row - 1][c]; if(digit!= 0 && temp[digit]== true){ //Rutan är ifylld och siffran har förekommit förut return false; temp[digit] = true; //Alla rutor kollade, inga dubletter hittade return true; d) public boolean checkregion(int row, int col){ boolean[] temp = new boolean[10]; // motsvarar siffrorna 0..9 //Ta reda på index för regionens övre vänstra hörn int cornerrow = ((row-1)/3)*3; int cornercol = ((col-1)/3)*3; //Loopa över 3x3 rutor for(int i = 0;i<3;i++){ int r = cornerrow+i; for(int k = 0;k<3;k++){ int c = cornercol+k; int digit = grid[r][c]; if(digit!= 0 && temp[digit]== true){ //Rutan är ifylld och siffran har förekommit förut return false; temp[digit] = true; //Alla regionens rutor kollade, inga dubletter hittade. return true; 8. /** Tar reda på elementet med index i, k. */ public double get(int i, int k) { return a[i][k]; /** Adderar matrisen m till denna matris (matriserna förutsätts vara lika stora). */ public void add(matrix m) { for (int i = 0; i < a.length; i++) { for (int k = 0; k < a[i].length; k++) { a[i][k] += m.a[i][k]; /** Beräknar spåret av matrisen, dvs summan av diagonalelementen från övre vänstra hörnet till nedre högra hörnet. */ public double trace() {

18 18 double sum = 0; for (int i = 0; i < a.length; i++) { sum += a[i][i]; return sum;

19 LUNDS TEKNISKA HÖGSKOLA EDAA20 Programmeringsteknik Institutionen för datavetenskap 2017/2018 Övning 6 1. a) int sum = 0; for (int i = 0; i < cards.size(); i++) { sum += cards.get(i).getrank(); b) int pos = 0; while (pos < cards.size() &&!(cards.get(pos).getsuit() == Card.SPADES && cards.get(pos).getrank() == 12)) { pos++; if (pos >= cards.size()) { pos = -1; Alternativ lösning: int pos = -1; for (int i = 0; i < cards.size(); i++ { if (cards.get(i).getsuit() == Card.SPADES && cards.get(i).getrank() == 12) { pos = i; break; c) Card acard = new Card(s, r); int pos = 0; while (pos < cards.size() && cards.get(pos).getrank() < acard.getrank()) { pos++; cards.add(pos, acard); 2. a) I ArrayList<Job> är Job ett typargument som talar om att det är objekt av typen Job som ska lagras i listan. b) Listan med jobb fylls på efterhand och man vet inte hur många jobb som kommer att läggas till när listan skapas. När man skapar en vektor måste man ange antal element. c) Attribut: nbr, jobs (deklarerade private i början av metoden) Parametrar: nbr i konstruktorn och j i metoden assignjob. Lokala varibler: time och i i metoden gettotaltime, b och i i metoden jobsasstrings d) Vektorn med maskiner är indata till konstruktorn. Maskin-objekten skapas och läggs in i en vektor innan konstruktorn kan anropas. 19

20 20 e) /* Returnerar den maskin som har minst att göra. */ private Machine machinewithleasttodo() { int min = Integer.MAX_VALUE; int minpos = -1; for (int i = 0; i < machines.length; i++) { int totaltime = machines[i].gettotaltime(); if (totaltime < min) { min = totaltime; minpos = i; return machines[minpos]; /** Fördelar jobben i listan jobs på maskinerna. Jobben är sortrade är sorterad efter avtagande tidsåtgång. */ public void makeschedule(arraylist<job> jobs) { for(int i = 0; i < machines.length; i++) { machines[i].clearjobs(); for (int i = 0; i < jobs.size(); i++) { Machine m = machinewithleasttodo(); m.assignjob(jobs.get(i)); Maskin Tid Jobb 1 16 j4 (16) 2 17 j2 (14), j7 (3) 3 17 j5 (6), j6 (5), j3 (4), j1 (2)

21 LUNDS TEKNISKA HÖGSKOLA EDAA20 Programmeringsteknik Institutionen för datavetenskap 2017/2018 Övning 7 Arv f) 1. a) Man anger arv med extends och anropar superklassens konstruktor med super: j public class Person { private String name; public Person(String name) { this.name = name; public class Student extends Person { private String program; public Student(String name, String program) { super(name); this.program = program; b) Observera Student- och Teacher-objekten: attributet name har ärvts från Person, men det syns inte på objekten. Nils Nilsson Bo Ek D Eva Alm CS c) 1) p = s är korrekt p får referera till Student-objekt eftersom Student är en subklass till Person, och s refererar garanterat till ett Student-objekt; 2) s = p är felaktigt p kan ju referera till andra slags objekt än Student-objekt; 3) s = t är felaktigt s får inte referera till Teacher-objekt; 4) s = (Student) p är korrekt referensen konverteras explicit till Student (men det kan bli fel under exekvering). d) s = (Student) p ger ClassCastException om p under exekvering inte refererar till ett Student-objekt (eller till ett objekt av en subklass till Student). e) super.tostring() betyder att tostring-metoden i superklassen anropas. Utskrift: Nils Nilsson Bo Ek, D Bo Ek, D Notera att samma sats, System.out.println(p.toString()), ger två olika resultat. Det beror på att Java använder dynamisk bindning för metodanrop: första gången refererar p till ett Person-objekt och Person.toString() anropas, andra gången refererar p till ett Student-objekt och Student.toString() anropas. Anmärkning: tostring anropas automatiskt när man ger ett objekt som parameter till print eller println. I stället för System.out.println(p.toString()) kan man alltså skriva System.out.println(p). 21

22 22 2. Det som skrivs ut börjar med en blankrad och är: AAA AAAAAA BB Abstrakta klasser och metoder 3. a) Satsen s.draw(w) går ej att kompilera. Eftersom s är deklarerad med typen Shape så söker kompilatorn i klassen Shape och uppåt i arvshierarkin efter draw. Men metoden draw finns inte där. Istället är draw implementerad i subklasserna Square och Circle. För att vi ska kunna skriva s.draw() måste det finnas en metod draw i klassen Shape. Lösningen är att deklarera draw som en abstrakt metod. public abstract class Shape {... public abstract void draw(simplewindow w); b) public class Drawing { private ArrayList<Shape> shapes; /** Skapar en tom teckning. */ public Drawing() { shapes = new ArrayList<Shape>(); /** Lägger in figuren s i teckningen. */ public void insert(shape s) { shapes.add(s); /** Ritar alla figurerna i fönstret w. */ public void draw(simplewindow w) { for (int i = 0; i < shapes.size(); i++) { shapes.get(i).draw(w);

Programmeringsteknik för BME, F och N

Programmeringsteknik för BME, F och N Programmeringsteknik för BME, F och N LÖSNINGSFÖRSLAG TILL ÖVNINGAR EDA011/017 2016/2017 LUNDS TEKNISKA HÖGSKOLA EDA011/017 Programmeringsteknik Institutionen för datavetenskap 2016/2017 Övning 1 1. int

Läs mer

Programmeringsteknik för D

Programmeringsteknik för D Programmeringsteknik för D LÖSNINGSFÖRSLAG TILL ÖVNINGAR EDA016 2015/2016 LUNDS TEKNISKA HÖGSKOLA EDA016 Programmeringsteknik Institutionen för datavetenskap 2015/2016 Övning 1 1. int sum = 3 + 8 + 12;

Läs mer

Föreläsning 3-4 Innehåll

Föreläsning 3-4 Innehåll Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå

Läs mer

Föreläsning 5-6 Innehåll

Föreläsning 5-6 Innehåll Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]

Läs mer

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

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser Föreläsning 5-6 Innehåll Exempel på program med objekt Skapa och använda objekt Skriva egna klasser public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600,

Läs mer

Övningar, EDAA20 Programmering och Databaser

Övningar, EDAA20 Programmering och Databaser LUNDS TEKNISKA HÖGSKOLA EDAA20 Programmering och databaser Institutionen för datavetenskap HT 2016 Övningar, EDAA20 Programmering och Databaser Övningarna är papper- och penn -övningar. Du löser uppgifter

Läs mer

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll. EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.axelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade

Läs mer

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

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer

Läs mer

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

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER Från laboration 3 till 4 I laboration 3 har du implementerat klasser implementerat metoder i klasserna I laboration 4 kommer du att implementera

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

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

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering. EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade

Läs mer

Föreläsning 13 Innehåll

Föreläsning 13 Innehåll Föreläsning 13 Innehåll Arv Repetition Om tentamen Datavetenskap (LTH) Föreläsning 13 HT 2017 1 / 32 Diskutera Här är början på klassen MemoryWindow som använts på en lab. Vad kan menas med extends SimpleWindow?

Läs mer

Programexempel: tärningsspel. Programexempel: tärningsspel Kasta tärning tills etta. Klassen Die Specifikation. Slumptalsgenerator Klassen Random

Programexempel: tärningsspel. Programexempel: tärningsspel Kasta tärning tills etta. Klassen Die Specifikation. Slumptalsgenerator Klassen Random Kasta tärning tills etta Skriv ett program som låter en användare spela detta tärningsspel: Spelaren gör första tärningsslaget och får samma poäng som tärningen visar. Sedan fortsätter spelet enligt följande

Läs mer

Tentamen, EDA501 Programmering M L TM W K V

Tentamen, EDA501 Programmering M L TM W K V LUNDS TEKNISKA HÖGSKOLA 1(3) Institutionen för datavetenskap Tentamen, EDA501 Programmering M L TM W K V 2010 04 13, 8.00 13.00 Anvisningar: Denna tentamen består av 4 uppgifter. Preliminärt ger uppgifterna

Läs mer

Övningar, EDA501 Programmering

Övningar, EDA501 Programmering LUNDS TEKNISKA HÖGSKOLA EDA501 Programmering Institutionen för datavetenskap VT 2010 Övningar, EDA501 Programmering I kursen ingår fem övningar. Under övningarna ska du självständigt eller tillsammans

Läs mer

2. Betrakta följande program, där fyra heltal läses från tangentbordet och några (ointressanta) beräkningar görs:

2. Betrakta följande program, där fyra heltal läses från tangentbordet och några (ointressanta) beräkningar görs: Övningsuppgifter I kursen ingår 10 övningar (det är ingen övning vecka 7 i läsperiod ht2). Under övningarna ska du självständigt eller tillsammans med en kamrat lösa övningsuppgifterna. Övningsledaren

Läs mer

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

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1) Föreläsning 10 STRING OCH STRINGBUILDER; VARIABLERS SYNLIGHET Att deklarera och att använda variabler När vi deklarerar en variabel, t ex int x; inför vi en ny variabel med ett namn och en typ. När namnet

Läs mer

Repetition av viktiga begrepp inom objektorienterad programmering

Repetition av viktiga begrepp inom objektorienterad programmering Repetition av viktiga begrepp inom objektorienterad programmering Tema: Arv, parameteröverföring, statiska attribut och metoder. Arv U 1. Betrakta följande klasser: public class Person { protected String

Läs mer

Objekt som argument. Föreläsning 7-8 Innehåll. Hur komma åt den andra kvadratens attribut? Anropa metod på objektet självt

Objekt som argument. Föreläsning 7-8 Innehåll. Hur komma åt den andra kvadratens attribut? Anropa metod på objektet självt Föreläsning 7-8 Innehåll Objekt som argument Antag att vi har lagt till följande metod i klassen Square (från lab 4). Mer om att skriva egna klasser Fel och felsökning Klasserna String och StringBuilder

Läs mer

1 Repetition av viktiga begrepp inom objektorienterad programmering

1 Repetition av viktiga begrepp inom objektorienterad programmering Repetition av viktiga begrepp inom objektorienterad programmering 3 1 Repetition av viktiga begrepp inom objektorienterad programmering Tema: Arv, parameteröverföring, statiska attribut och metoder. Litteratur:

Läs mer

Föreläsning 7-8 Innehåll

Föreläsning 7-8 Innehåll Föreläsning 7-8 Innehåll Mer om att skriva egna klasser Fel och felsökning Klasserna String och StringBuilder Datavetenskap (LTH) Föreläsning 7-8 HT 2017 1 / 42 Objekt som argument Antag att vi har lagt

Läs mer

Programmering och databaser

Programmering och databaser Programmering och databaser KURSKOMPENDIUM EDAA20 http://cs.lth.se/edaa20 2017/2018 EDAA20 Programmeringsteknik, godkända obligatoriska uppgifter 2017/2018 Skriv ditt namn och din namnteckning nedan:

Läs mer

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

Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER Logiska uttryck datatypen boolean Logiska uttryck kan ha två möjliga värden, true eller false. Variabler av typen boolean kan tilldelas

Läs mer

Algoritmexempel. Föreläsning 5-7 Innehåll. Summering Mönster. Summering Exempel: alternerande harmoniska serien

Algoritmexempel. Föreläsning 5-7 Innehåll. Summering Mönster. Summering Exempel: alternerande harmoniska serien Föreläsning 5-7 Innehåll Algoritm för summering Aritmetiska uttryck Logiska uttryck Algoritm för att beräkna max och min Repetition inför delmålskontroll 1 Teckenuttryck Slumptal Undervisningsmoment: föreläsning

Läs mer

Objekt-orientering. Java är ett objekt-orienterat programmeringsspråk

Objekt-orientering. Java är ett objekt-orienterat programmeringsspråk Repetition EDAA10 Objekt-orientering Java är ett objekt-orienterat programmeringsspråk Program byggs upp av klasser och objekt Objekt instantieras från klasser Klasser och objekt innehåller attribut och

Läs mer

Datastrukturer. Föreläsning Innehåll. Program med vektor Exempel. Deklarera vektorer

Datastrukturer. Föreläsning Innehåll. Program med vektor Exempel. Deklarera vektorer Föreläsning 1-12 Innehåll Vektorer Registrering (räkna element av olika slag) Sökning Matriser Klasserna String och StringBuilder Repetition inför delmålskontroll 2 Undervisningsmoment: föreläsning 1-12

Läs mer

Objektorienterad programmering (OOP) Föreläsning 15 & 16. Klasser för olika slags fordon. Klasser och objekt

Objektorienterad programmering (OOP) Föreläsning 15 & 16. Klasser för olika slags fordon. Klasser och objekt Föreläsning 15 & 16 ARV Objektorienterad programmering (OOP) Idé: vi ser ett program som en modell av verkligheten Ursprung: Simula-67, Norsk regnesentral, 1960-talet Smalltalk-80: Xerox PARC, 1970-talet

Läs mer

Tentamen, EDAA20/EDA501 Programmering

Tentamen, EDAA20/EDA501 Programmering LUNDS TEKNISKA HÖGSKOLA 1(4) Institutionen för datavetenskap Tentamen, EDAA20/EDA501 Programmering 2011 10 19, 8.00 13.00 Anvisningar: Denna tentamen består av fem uppgifter. Preliminärt ger uppgifterna

Läs mer

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar

Läs mer

TENTAMEN OOP

TENTAMEN OOP TENTAMEN OOP 2013-08-08 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli

Läs mer

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det

Läs mer

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

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten? Programmeringsteknik och Matlab Övning 4 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312

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

Exempel på program med objekt Klass med main-metod. Föreläsning 3-4 Innehåll. Övning Viktiga begrepp

Exempel på program med objekt Klass med main-metod. Föreläsning 3-4 Innehåll. Övning Viktiga begrepp Föreläsning 3-4 Innehåll Eempel på program med objekt Klass med main-metod Klasser Implementera (skriva programkod för) egna klasser Datatper Undervisningsmoment: föreläsning 3-4 övning 2 laboration 3-5

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

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 1 & 2 INTRODUKTION Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga

Läs mer

Tentamen OOP 2015-03-14

Tentamen OOP 2015-03-14 Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning

Läs mer

TENTAMEN OOP

TENTAMEN OOP TENTAMEN OOP 2014-01-19 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli

Läs mer

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.

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. 1 Uppgift 1 Klassen Company Banken FinanceTrust som tidigare bara haft privatpersoner som kunder vill nu bygga ut sitt datasystem så att även företag kan registreras som kunder. Skriv klassen Company som

Läs mer

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik 2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det riktiga provet tar 45 minuter (en lektionstimme) och det

Läs mer

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 Tentamen Programmeringsteknik I 2016-03-17 Skrivtid: 1400 1900 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Institutionen för datavetenskap 2014/15

Institutionen för datavetenskap 2014/15 LUNDS TEKNISKA HÖGSKOLA Programmeringsteknik för D/C Institutionen för datavetenskap 2014/15 Lösningar till övningsuppgifterna Lösningar till övningsuppgifterna som hämtats från läroboken finns i boken.

Läs mer

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

Programmeringsteknik och Matlab. Dagens program. Viktiga datum. Repetitionsexempel. Repetition av if/else, for, while och Scanner Programmeringsteknik och Matlab Övning 3 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312

Läs mer

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 1 & 2 INTRODUKTION Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga

Läs mer

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning Varför? 732G11 Linköpings universitet 2011-02-08 Varför? 1 2 3 Varför? 4 5 Medelvärde av 5000 tal Varför? while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while (

Läs mer

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

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C. Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett

Läs mer

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 Tentamen Programmeringsteknik I 2016-03-17 Skrivtid: 1400 1900 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

TENTAMEN OOP

TENTAMEN OOP TENTAMEN OOP 2014-03-15 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli

Läs mer

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

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2014-10-17 Skrivtid: 0800-1300 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till

Läs mer

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser. (16 februari 2016 F5.1 ) Dagens text Programmeringsteknik Mer om Scanner-klassen Dialogrutor (klassen JOptionPane) Bubbelsortering ArrayList Omslagsklasser Arbetsexempel (16 februari 2016 F5.2 ) Pokertärningar

Läs mer

Föreläsning 10 OM DELMÅLSKONTROLLEN ; VARIABLERS SYNLIGHET STRING OCH STRINGBUILDER

Föreläsning 10 OM DELMÅLSKONTROLLEN ; VARIABLERS SYNLIGHET STRING OCH STRINGBUILDER Föreläsning 10 OM DELMÅLSKONTROLLEN ; VARIABLERS SYNLIGHET STRING OCH STRINGBUILDER Denna vecka Läsperiodens sista föreläsning Uppsamlingslabb (laboration 6 redovisas först nästa läsperiod) Ingen resurstid

Läs mer

Del A (obligatorisk för alla)

Del A (obligatorisk för alla) Del A (obligatorisk för alla) A1. Ringa in rätt svarsalternativ eller skriv svar i ruta om sådan a) Satsen double x = (int)(1 + 3/2.0) + 3.; resulterar i b) Satsen int x = (int)(1 + 3/2.0) + 3.; resulterar

Läs mer

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

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ orienterad programmering Föreläsning 3 Exempel: Telefonboken Fält som funktionsresultat Exempel Definiera static double[] vectorsum(double[] a, double[] b) Betrakta sedan följande kodavsnitt:... double[]

Läs mer

Tentamen, EDAA20/EDA501 Programmering

Tentamen, EDAA20/EDA501 Programmering LUNDS TEKNISKA HÖGSKOLA 1(4) Institutionen för datavetenskap Tentamen, EDAA20/EDA501 Programmering 2013 08 22, 8.00 13.00 Anvisningar: Denna tentamen består av fyra uppgifter. Preliminärt ger uppgifterna

Läs mer

Föreläsning 1-2 innehåll

Föreläsning 1-2 innehåll Föreläsning 1-2 innehåll Om kursen Kursens mål och innehåll Praktisk information om kursen Programmering program, algoritmer variabler, datatyper och tilldelningssatser läsa in värden från tangentbordet,

Läs mer

Lösningsförslag tentamen FYTA11 Java

Lösningsförslag tentamen FYTA11 Java Lunds universitet FYTA11 Institutionen för Teoretisk fysik HT 10 Lösningsförslag tentamen FYTA11 Java Måndag 10:e januari 2011, 09:00 13:00 Instruktioner Hjälpmedel: enkla ritverktyg och Javadoc-genererade

Läs mer

2D1339 Programkonstruktion för F1, ht 2003

2D1339 Programkonstruktion för F1, ht 2003 2D1339 Programkonstruktion för F1, ht 2003 Kontrollskrivning 1 Onsdag 19/11 2003 kl 9.15 10.00 Endast ett svar är rätt på varje fråga! Om mer än ett svar givits blir det noll poäng på frågan. Alla skriftliga

Läs mer

Föreläsning Innehåll. Hantera många element. Exempel: polygon Godtyckligt antal element. Exempel: polygon forts

Föreläsning Innehåll. Hantera många element. Exempel: polygon Godtyckligt antal element. Exempel: polygon forts Föreläsning 11-12 Innehåll Hantera många element Tidigare har vi använt vektorer för att lagra många element av samma tp. Eempel: Klassen ArraList Inläsning från tetfil, utskrift på tetfil int[] nbrs

Läs mer

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser. (1 oktober 2017 F5 1 ) Dagens text Programmeringsteknik Mer om Scanner-klassen Dialogrutor (klassen JOptionPane) Bubbelsortering ArrayList Omslagsklasser Arbetsexempel (1 oktober 2017 F5 2 ) Pokertärningar

Läs mer

Föreläsning Innehåll. Checklista. Några metoder i klassen ArrayList<E> Exempel på vad du ska kunna

Föreläsning Innehåll. Checklista. Några metoder i klassen ArrayList<E> Exempel på vad du ska kunna Föreläsning 13-15 Innehåll Checklista Klassen ArrayList Arv Undervisningsmoment: föreläsning 13-15 övning 5 laboration 9-10 Avsnitt i läroboken: 12.1-3, 12.8, 9.1-9.6, 10 Avsnitt 12.6 och 12.10 ingår

Läs mer

Tentamen i Programmering

Tentamen i Programmering LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Tentamen i Programmering EDAA65/EDA501/EDAA20 M MD W BK L 2018 05 30, 8.00 13.00 Preliminärt ger uppgifterna 7 + 14 + 6 + 9 + 4 = 40 poäng.

Läs mer

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

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000

Läs mer

Typkonvertering. Java versus C

Typkonvertering. Java versus C Typer Objektorienterad programmering E Typkonvertering Typkonvertering Satser: while, for, if Objekt Föreläsning 2 Implicit konvertering Antag att vi i ett program deklarerat int n=3; double x = 5.2; Då

Läs mer

Föreläsning Innehåll. Generisk klass. Några metoder i klassen ArrayList<E>

Föreläsning Innehåll. Generisk klass. Några metoder i klassen ArrayList<E> Föreläsning 13-15 Innehåll Klassen ArrayList Klassen ArrayList Inläsning från textfil, utskrift på textfil Arv Undervisningsmoment: föreläsning 13-15 övning 5 laboration 9-10 Avsnitt i läroboken:

Läs mer

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

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private. Tentamen Programmeringsteknik I 2013-06-14 med lösningar 1. Svara kortfattat på följande: a) Vad är en instansvariabel? Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och

Läs mer

Sammanfattning och repetition utgående från typiska tentamensuppgifter

Sammanfattning och repetition utgående från typiska tentamensuppgifter (2 mars 2018 F6 1 ) Dagens föreläsning Sammanfattning och repetition utgående från typiska tentamensuppgifter (2 mars 2018 F6 2 ) A-fråga Hur många objekt skapas av nedanstående kod? World w = new World();

Läs mer

Tentamen. Lösningsförslag

Tentamen. Lösningsförslag Sida 1/8 Tentamen Grundläggande programmering i Java A 5p, DTAA32 2002-03-22 Lösningsförslag Uppgift 1 ( 3p ) Utskriften blir: Skriv in ett tal 24 47 48 intal=471 Uppgift 2 ( 6p ) a.) b.) c.) d.) e.) falskt

Läs mer

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander F2 Datatyper och variabler ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Datatyper Java är ett starkt typat språk Varje slags data har en datatyp Datatyp Javasyntax Exempel Teckensträng

Läs mer

2 b) Följande finns definierat: public class Käk String titel = "Chili con carne"; Krydda[] kryddor = new Krydda[10]; kryddor[0] = new Krydda("Svartpe

2 b) Följande finns definierat: public class Käk String titel = Chili con carne; Krydda[] kryddor = new Krydda[10]; kryddor[0] = new Krydda(Svartpe Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för I1, K2, L1, M1, Media1 och T1. Tentamen (1p) 6 april 2002, kl 14.00 17.00 Hjälpmedel: En javabok(det blå javahäftet som ingår i kursbunten räknas

Läs mer

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

Grundläggande programmering med C# 7,5 högskolepoäng Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Omtentamen DE13, IMIT13 och SYST13 samt öppen för alla (Ifylles av student) (Ifylles av student)

Läs mer

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

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2012-09-01 Skrivtid: 0900-1200 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till

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

Del A (obligatorisk för alla)

Del A (obligatorisk för alla) Del A (obligatorisk för alla) A1. Koden följer garanterat namnkonventionerna. Ringa in rätta svar och lämna in tillsammans med dina övriga svar! a) Hur många objekt skapas av följande kod? World w = new

Läs mer

LÖSNINGSFÖRSLAG TENTAMEN

LÖSNINGSFÖRSLAG TENTAMEN LÖSNINGSFÖRSLAG TENTAMEN OBJEKTORIENTERAD PROGRAMMERING I JAVA 5P FRISTÅENDE KURS, DAG (ITM - ÖSTERSUND) MÅNDAG 2 JUNI, 2003, KL. 8-13 TID: 5 TIMMAR ANTAL UPPGIFTER: 8 MAX POÄNG: 43 BETYGSKALA: UNDERKÄND

Läs mer

Föreläsning 2, vecka 8: Repetition

Föreläsning 2, vecka 8: Repetition TDA 548: Grundläggande Programvaruutveckling Föreläsning 2, vecka 8: Repetition Magnus Myréen Chalmers, läsperiod 1, 2016-2017 Idag Metoder och terminologi Referensvärden och arrays Interface och ritning

Läs mer

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 5 Innehåll Subklasser och arv Inledning till grafik (JFrame och JPanel).

Läs mer

Lösningsförslag till tentamen i EDA011, lördagen den 16 december 2006

Lösningsförslag till tentamen i EDA011, lördagen den 16 december 2006 Lösningsförslag till tentamen i EDA011, lördagen den 16 december 2006 Detta lösningsförslag är skrivet i stor hast, så det är möjligt att det innehåller en del slarvfel jag ber i så fall om ursäkt för

Läs mer

Objektorienterad programmering i Java

Objektorienterad programmering i Java Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet

Läs mer

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Kort om klasser och objekt En introduktion till GUI-programmering i Java Kort om klasser och objekt En introduktion till GUI-programmering i Java Klasser En klass är en mall för hur man ska beskriva på något. Antag att vi har en klass, Bil. Den klassen innehåller en lista på

Läs mer

Bedömning av kontrollskrivning, EDA016 Programmeringsteknik

Bedömning av kontrollskrivning, EDA016 Programmeringsteknik LUNDS TEKNISKA HÖGSKOLA Institutionen för datavetenskap Bedömning av kontrollskrivning, EDA016 Programmeringsteknik 2015-10-27 Instruktioner Maxpoäng per uppgift Med en icke-tom rad menas en kodrad som

Läs mer

Chapter 4: Writing Classes/ Att skriva egna klasser.

Chapter 4: Writing Classes/ Att skriva egna klasser. Chapter 4: Writing Classes/ Att skriva egna klasser. I dessa uppgifter kommer du att lära dig om hur man definierar egna objekt genom att skriva klasser. Detta är grunden för att förstå objekt orienterad

Läs mer

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning. Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java

Läs mer

Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl Hjälpmedel: En Javabok. För betyget godkänt krävs at

Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl Hjälpmedel: En Javabok. För betyget godkänt krävs at Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl 14.00 17.00 Hjälpmedel: En Javabok. För betyget godkänt krävs att a- eller b-delen av varje fråga (uppgift 1 4) samt

Läs mer

TDA550 - Objektorienterad programvaruutveckling, fk

TDA550 - Objektorienterad programvaruutveckling, fk Lösningsförslag: Övning vecka 2. Uppgift 1 Utskriften blir: a: Vector, b: Vector, c: Vector, x: 1 y: 2 z: 3 För detaljer se bilaga 1. Kommentarer:

Läs mer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man

Läs mer

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1 Institutionen för Data- och informationsteknik JSk TENTAMEN OBJEKTORIENTERAD PROGRAMVARUUTVECKLING Övningstentamen 1 OBS! Det kan finnas kurser med samma eller liknande namn på olika utbildningslinjer.

Läs mer

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

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk

Läs mer

Tentamen, EDAA10 Programmering i Java

Tentamen, EDAA10 Programmering i Java LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen, EDAA10 Programmering i Java 2017 04 20, 14.00 19.00 Anvisningar: Preliminärt ger uppgifterna 4 + 6 + 13 + 7 + 15 = 45 poäng. För godkänt

Läs mer

2 b) Följande finns definierat: public class Spel String titel = "Spel"; Dice[] tärningar = new Dice[10]; tärningar[0] = new Dice("Röd"); tärningar[1]

2 b) Följande finns definierat: public class Spel String titel = Spel; Dice[] tärningar = new Dice[10]; tärningar[0] = new Dice(Röd); tärningar[1] Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B2 och V1. Tentamen (1p) 12 januari 2002, kl 14.00 17.00 Hjälpmedel: En javabok(det blå javahäftet som ingår i kursbunten räknas som en javabok.

Läs mer

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

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen (10 februari 2019 F4 1 ) Dagens föreläsning Sett i datorsalarna Mer om arrayer Matriser Formatering av utskrifter Inläsning med hjälp av Scanner-klassen (10 februari 2019 F4 2 ) Hört och sett if-loop Skall

Läs mer

Malmö högskola 2008/2009 CTS

Malmö högskola 2008/2009 CTS Laboration 8 Avsikten med laborationen är att du lära dig skapa objekt med hjälp av klasser. Detta är en introduktion till ett objektorienterat tankesätt. Med hjälp av detta tankesätt kan du så småningom

Läs mer

OOP Tenta

OOP Tenta Stockholms universitet sid 1 OOP OOP Tenta 2012-01-14 10.00 15.00 Avser kurserna DSK1:OOP och GES:OOP Anvisningar Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt

Läs mer

Föreläsning 7 Innehåll. Rekursion. Rekursiv problemlösning. Rekursiv problemlösning Mönster för rekursiv algoritm. Rekursion. Rekursivt tänkande:

Föreläsning 7 Innehåll. Rekursion. Rekursiv problemlösning. Rekursiv problemlösning Mönster för rekursiv algoritm. Rekursion. Rekursivt tänkande: Föreläsning 7 Innehåll Rekursion Rekursivt tänkande: Hur många år fyller du? Ett år mer än förra året! Rekursion Rekursiv problemlösning Binärsökning Generiska metoder Rekursiv problemlösning: Dela upp

Läs mer

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel Idag Ett exempel Undantag Substitutierbarhet, subtyper, subklasser När val av metod beror av typerna hos två objekt Lite om överlagring Exempel, version 2 Notera: för samtliga figurer gäller: arean av

Läs mer

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

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen (5 februari 2018 F4 1 ) Dagens föreläsning Sett i datorsalarna Mer om arrayer Matriser Formatering av utskrifter Inläsning med hjälp av Scanner-klassen Ett exempel med dialogrutor Java-doc Kommer först

Läs mer

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

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2015-03-19 Skrivtid: 14:00 19:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Läs mer

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

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga

Läs mer

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

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) Grundläggande programmering med C# Provmoment: Ladokkod: Tentamen ges för: 7,5 högskolepoäng TEN1 NGC011 Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) (Ifylles av student) (Ifylles av student)

Läs mer

Lösningsförslag till tentamen

Lösningsförslag till tentamen Uppgift 1 Lösningsförslag till tentamen 140423 a) Vad kompilatorn klagar på är att metoden Math.sqrt() inte finns! Detta kan ju verka något mystiskt eftersom vi alla vet att det i klassen Math finns en

Läs mer