Lösningsförslag till tentamen

Relevanta dokument
Lösningsförslag till tentamen

Lösningsförslag till tentamen

Lösningsförslag till tentamen

Lösningsförslag till tentamen

Lösningsförslag till tentamen

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

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

Lösningsförslag till tentamen

Lösningsförslag till tentamen

Lösningsförslag till tentamen

Föreläsning 3. Iteration while-satsen

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

Lösningsförslag till tentamen

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

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

TENTAMEN OOP

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

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

Lösningsförslag till tentamen

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

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering

TENTAMEN OOP

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

Tentamen OOP

Lösningsförslag till tentamen

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

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

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

Föreläsning 8. Klassen String Mer om fält Klassen ArrayList

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

Lösningsförslag: Instuderingsfrågor, del A

Iteration while-satsen

Föreläsning 9-10 Innehåll

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2

Lösningsförslag: Instuderingsfrågor, del D

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass

DAT043 Objektorienterad Programmering

Objektorienterad programmering

Iteration. Föreläsning 3. TDA540 - Objektorienterad Programmering

Föreläsning 3-4 Innehåll

Tentamen, EDAA20/EDA501 Programmering

Tentamen. Lösningsförslag

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

Lösningar för tenta 2 DAT043,

Saker du ska kunna Föreläsning 13 & 14

Föreläsning 3. Stack

Lösningsförslag övning 2.

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

Föreläsning 3. Stack

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

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

OOP Objekt-orienterad programmering

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

Lösningsförslag till tentamen

Del A (obligatorisk för alla)

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

Parallellism, återblick

JAVAUTVECKLING LEKTION 7

Lösningsförslag. 1 Lösningsförslag. Uppgift 1

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

Lösningsförslag till tentamen

Tentamen , Introduktion till Java, dtaa98, dtea53

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

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

Instuderingsfrågor, del D

TENTAMEN OOP

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Föreläsning 7. for-satsen Fält

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ

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.

Föreläsning REPETITION & EXTENTA

Tentamen, EDAA20/EDA501 Programmering

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

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 bänken.

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

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

TDDD78 Viktiga begrepp, del 2

Del A (obligatorisk för alla)

TDDD78 Objektorientering i Java, del 4. Hur vet man om två objekt är lika? Hur undviker man objekt och när?

Lösningsförslag, tentamen FYTA11 Javaprogrammering

Föreläsning 3. Föreläsning 3

Föreläsning 3. Föreläsning 3

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

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

Föreläsning 14. Filhantering

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

Sammanfattning och repetition utgående från typiska tentamensuppgifter

Klassen String Mer om fält Något om inläsning

Språkkonventioner och redigering av tal.

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

LÖSNINGSFÖRSLAG TENTAMEN

DAT043 Objektorienterad programmering för D, DIT011 Objektorienterad programvaruutveckling för GU

Övning 4. I denna övning ska vi titta på icke-muterbarhet kontra muterbarhet, samt metoderna equals, hashcode och clone.

Skillnader mellan Python och Java

Föreläsning 1 & 2 INTRODUKTION

Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

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

Objektorienterad Programmering (TDDC77)

Transkript:

Uppgift 1 Lösningsförslag till tentamen 150117 a) Utskriften blir: 7 Metoden returnerar värdet av den största siffran som ingår i talet som skickas till metoden. b) Utskriften blir k= 5 a= [3, 1] b= [3, 3] c) En lokal variabel är synlig inom det programblock där variabeln deklareras. Variabeln b är alltså okänd utanför do-blocket. En korrekt kod har följande utseende: boolean b; do { b = Math.random() < 0.5; while (b);

Uppgift 2 Med användning av dialogrutor: import javax.swing.joptionpane ; import java.util.scanner; public class Salary { public static double payment(double hours, double perhour) { double payout; if (hours > 40 ) payout = 40 * perhour + (hours - 40) * 1.5 * perhour; else payout = hours * perhour; return payout; //payment public static void main(string[] args){ while(true) { String indata = JOptionPane.showInputDialog("Ange antalet arbetstimmar och timlön: "); if (indata == null) break; Scanner sc = new Scanner(indata); double nrofhours = sc.nextdouble(); double salaryperhour = sc.nextdouble(); if (nrofhours < 0 salaryperhour < 0) JOptionPane.showMessageDialog(null, "Felaktig indata"); else JOptionPane.showMessageDialog(null, String.format("Veckolönen är %.2f kronor", payment(nrofhours, salaryperhour))); // main //Salary Med användning av System.in och System.out: main-metoden får följande utseende: public static void main(string[] args){ while(true) { System.out.print("Ange antalet arbetstimmar och timlön: "); Scanner sc = new Scanner(System.in); if (!sc.hasnext()) break; double nrofhours = sc.nextdouble(); double salaryperhour = sc.nextdouble(); if (nrofhours < 0 salaryperhour < 0) System.out.println("Felaktig indata"); else System.out.printf("Veckolönen är %.2f kronor\n", payment(nrofhours, salaryperhour)); // main

Uppgift 3 public static int[] getindexofmaxvalues( int[] vekt) { int max = getmaxvalue(vekt); int nrofmaxvalues = nrofoccurrence(vekt, max); int [] res = new int[nrofmaxvalues]; int pos = 0; for (int index = 0; index < vekt.length; index = index + 1) { if (vekt[index] == max) { res[pos] = index; pos = pos + 1; return res; //getindexofmaxvalues private static int getmaxvalue(int[] vekt) { int max = vekt[0]; for (int i = 1; i < vekt.length; i = i + 1) { if (vekt[i] > max) max = vekt[i]; return max; //getmaxvalue private static int nrofoccurrence(int[] vekt, int value) { int counter = 0; for (int i = 0; i < vekt.length; i = i + 1) { if (vekt[i] == value) counter = counter + 1; return counter; //nrofoccurrence Uppgift 4 public static int[][][] frosty(int[][][] samples) { int[][][] newsamples = new int[samples.length][samples[0].length][3]; for (int row = 0; row < samples.length; row = row + 1) { for (int col = 0; col < samples[row].length; col = col + 1) { int xn = disturb(row, 5, samples.length-1); int yn = disturb(col, 5, samples[0].length-1); for (int c = 0; c < 3; c++) { newsamples[row][col][c] = samples[xn][yn][c]; return newsamples; //frosty private static int disturb(int x, int d, int max) { int nx = x + (int)(d*math.random()); return Math.max(0,Math.min(nx,max));

Uppgift 5 public class FibonacciWords { public static void main(string[] args) { System.out.println(fibonacciWord(3)); public static String fibonacciword(int n) { String s0 = "0"; String s1 = "01"; String s2 = ""; if (n == 0) { return s0; else if (n == 1) { return s1; else { for (int i = 0; i < n - 1 ; i++) { s2 = s1 + s0; s0 = s1; s1 = s2; return s2;

Uppgift 6 public class AllLanguage { private static final String VOWEL = "aouåeiyäö"; public String toall(string swe) { String all = ""; for (String word : swe.split(" ")) { int i = indexoffirstconsonant(word); if (i >= 0) { all = all + word.substring(0, i + 1) + "all" + word.substring(i + 1) + " "; else { all = all + word + " "; return all; private boolean isconsonant(char ch) { return VOWEL.indexOf(ch) < 0; private int indexoffirstconsonant(string word) { int index = 0; while (!isconsonant(word.charat(index))) { index++; if (index >= word.length()) { return -1; return index; public static void main(string[] args) { System.out.println(new AllLanguage().toAll("Hur är läget?")); Alternativa lösningar: private int indexoffirstconsonant2(string word) { int index = -1; for (int i = 0; i < word.length(); i++) { if (isconsonant(word.charat(i))) { index = i; break; return index; private int indexoffirstconsonant3(string word) { int index = -1; for (int i = word.length()-1; i >= 0; i--) { if (isconsonant(word.charat(i))) { index = i; return index;

Uppgift 7 public class Card { private final int value; private final String color; // enum better public Card(int value, String color) { this.value = value; this.color = color; import java.util.list; public class CardGame { private final List<Player> players; private Player actual; public CardGame(List<Player> players) { this.players = players; public void pickcard(){ actual.pickcard(); import java.util.list; public class Deck { private final List<Card> deck; public Deck(List<Card> deck) { this.deck = deck; public Card remove() { return deck.remove(0); public class Player { private final Deck deck; private final String name; private final List<Card> hand = new ArrayList<>(); public Player(Deck deck, String name) { this.deck = deck; this.name = name; public void pickcard() { hand.add(deck.remove());

import java.util.arraylist; import java.util.list; public class CommandLineGame { public static void main(string[] args) { buildgame(); game.pickcard(); private static CardGame buildgame() { List<Card> cards = new ArrayList<>(); for (int i = 0; i < 13; i++) { cards.add(new Card(i, "hearts")); // Same för clubs, diamonds, spades Deck deck = new Deck(cards); List<Player> players = new ArrayList<>(); players.add(new Player(deck, "olle")); players.add(new Player(deck, "fia")); return new CardGame(players); Uppgift 8 a) I Java finns två olika objektlikhet. Likhetsoperatorn == ger likhet mellan referenser till objekt (d.v.s identitet om de är lika). Vanligen vill man ha dock likhet mellan värden t.ex. om två tärningar visar samma värde. Likhet utifrån värde skall ges av metoden equals(). Metoden equals() finns i t.ex. String-klassen. Om en klass inte själv definierar en equals-metod så ärvs en från klassen Object. Den ärvda metoden fungerar (tyvärr) på samma sätt som ==. För att få likhet utifrån värde måste man överskugga equals-metoden. Se b) b) public class Player { private String name; @Override public boolean equals(object obj) { if (obj == null) { return false; if (getclass()!= obj.getclass()) { return false; final Player other = (Player) obj; return this.name.equals(other.name);