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

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

Lösningsförslag till tentamen

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

OOP Objekt-orienterad programmering

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

Lösningsförslag till tentamen

Lösningsförslag till tentamen

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

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

Tentamen, EDAA20/EDA501 Programmering

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

Lösningsförslag till tentamen

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

Tentamen, EDAA20/EDA501 Programmering

Lösningsförslag till tentamen

Föreläsning 3: Booleans, if, switch

DAT043 Objektorienterad Programmering

F4. programmeringsteknik och Matlab

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

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

Objektorienterad programmering

TENTAMEN OOP

Lösningsförslag till tentamen

Lösningsförslag till tentamen

Instuderingsfrågor, del E

Tentamen. Lösningsförslag

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.

TENTAMEN OOP

TENTAMEN OOP

Tentamen, EDAA20/EDA501 Programmering

Tentamen i Objektorienterad programmering

Lösningsförslag till tentamen

OOP Objekt-orienterad programmering

Objektorienterad programmering

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

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

Lösningsförslag till tentamen

Lösningsförslag tentamen FYTA11 Java

Lösningsförslag till tentamen

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

Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 25 maj 2009

OOP Objekt-orienterad programmering

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

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

Föreläsning 11: Rekursion

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

Tentamen OOP

Lösningsförslag till tentamen

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

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

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

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

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

Instuderingsfrågor, del D

Del A (obligatorisk för alla)

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

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

Detta dokument är ett exempel, cirka hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling

Testning och felhantering

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.

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 12: Exempel och problemlösning

Malmö högskola 2007/2008 Teknik och samhälle

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

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

Objektorienterad programmering

JAVAUTVECKLING LEKTION 4

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

Del A (obligatorisk för alla)

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

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

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

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

Föreläsning 3-4 Innehåll

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

Tentamen, EDA501 Programmering M L TM W K V

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

Tentamen på kursen DA7351, Programmering , kl Malmö högskola Teknik och samhälle. DA7351, Programmering

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

JAVAUTVECKLING LEKTION 7

Tentamen EDAA45 Programmering, grundkurs

Laboration A Objektsamlingar

Lösningsförslag, tentamen FYTA11 Javaprogrammering

Föreläsning 3. Iteration while-satsen

Instuderingsfrågor, del A

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

Iteration while-satsen

D0010E. Hello world! Nedräkning. Sågtand. Övningsuppgifter i Eclipse. Skapa ett program som skriver ut "Hello world" på skärmen.

TDDE10 TDDE11, 725G90/1. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU

Föreläsning 9-10 Innehåll

Lösningsförslag till tentamen

F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander

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

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

JAVAUTVECKLING LEKTION 11

Transkript:

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-15, TDA540 Dag: 2016-04-09, Tid: 14.00-18.00 Uppgift 1 Metoden mystery vänder om ett fält. Utskriften är: [4, 9, 3, 8, 5] Uppgift 2 Utskriften blir: Johan / 13 / 7 Anna / 11 / 5 Uppgift 3 Vid kompilering av metoden erhålls följande kompileringsfel: missing return statement Eftersom sista if-satsen saknas en else-gren med en return sats, dvs om n är större eller lika med 1000 kommer metoden inte att returnerar något. Vi kan korrigerar det med att lägga till en else-gren eller genom att ta bort sista if statsen: public static String storlek(int n) { if (n < 0) return "Negative"; else if (n < 100) return "Small"; else return "Large"; 1

Uppgift 4 public static int[] bin(int n, int d) { final int BASE = 2; int[] bits = new int[d]; for (int i = d-1; i >= 0; i--) { bits[i] = n % BASE; n /= BASE; return bits; public static int[] parity(int n) { final int BITS = 7; int[] xs = bin(n, BITS); int[] ys = new int[bits + 1]; boolean even = true; for (int i = 0; i < xs.length; i++) { ys[i+1] = xs[i]; if (xs[i] == 1) even =!even; if (!even) ys[0] = 1; return ys; Uppgift 5 public class Parity { public static void main(string[] args) { dialogparity(); // Check binary format private static boolean isbin(string b) { for (char c : b.tochararray()) if (!(c == 0 c == 1 )) return false; return true; private static boolean checkparity(string n) { char[] bits = n.tochararray(); boolean even = true; for (int i = 1; i < bits.length; i++) 2

if (bits[i] == 1 ) even =!even; return even == (bits[0] == 1); // Kommandofönster version public static void cmdparity() { boolean done = false; Scanner sc = new Scanner(System.in); while (!done) { System.out.print("Give a binary number: "); if (sc.hasnext()) { String n = sc.next(); if (isbin(n)) if (checkparity(n)) System.out.println("Parity check succeeded!"); else System.out.println("Parity check failed!"); else System.out.println("The input should be a binary number!"); else done = true; // Dialogrutor version public static void dialogparity() { boolean done = false; while (!done) { String input = JOptionPane.showInputDialog("Give a binary number: "); if (input!= null) { Scanner sc = new Scanner(input); String n = sc.next(); if (isbin(n)) { String msg = "Parity check " + (checkparity(n)? "succeeded" : "failed"); JOptionPane.showMessageDialog(null, msg); else JOptionPane.showMessageDialog(null, "The input should be a binary number!"); else done = true; Uppgift 6 public static List<Integer> difference(list<integer> xs, List<Integer> ys) { List<Integer> res = new ArrayList<>(); for (Integer x : xs) if (!ys.remove(x)) res.add(x); 3

return res; Uppgift 7 public static int[][][] scale(int[][][] samples, int n) { int[][][] newsamples = new int[samples.length * n][samples[0].length * n][3]; for (int row = 0; row < samples.length; row++) { for (int col = 0; col < samples[row].length; col++) { for (int c = 0; c < samples[row][col].length; c++) { int rn = row * n; int cn = col * n; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { newsamples[rn + i][cn + j][c] = samples[row][col][c];; return newsamples; Uppgift 8 public static class Encode { public static String escape(char ch) { switch (ch) { case : : return "%3A"; case / : return "%2F"; case? : return "%3F"; case = : return "%3D"; default : return ch + ""; public static String encodeurl(string url) { String res = ""; for (char ch : url.tochararray()) res += escape(ch); return res; 4

Uppgift 9 public static String copy(int n, String x) { String res = ""; for (int i = 0; i < n; i++) res += x; return res; public static String julgran(int n) { String res = "", margin, stripe; for (int i = 0; i < n; i++) { margin = copy(i, "."); stripe = copy(n - 1 - i, "*-") + "*"; res = margin + stripe + margin + "\n" + res; return res; Uppgift 11 Exempel på olika tänkbara klasser och attribut (finns fler) public class Album { private String name; private List<Song> songs; private Artist artist; private int totalduration; public Album(String name, List<Song> songs, Artist artist) { this.name = name; this.songs = songs; this.artist = artist; totalduration = adddurations(); private int adddurations() { int l = 0; for (Song s : songs) l += s.getduration(); return l; public enum Genre { CLASSICAL, ROCK, POP, SOUL 5

public class Artist { private String name; private Genre genre; private int age; public Artist(String name, Genre genre, int age) { this.name = name; this.genre = genre; this.age = age; public class Song { private String title; private int duration; private Genre genre; public Song(String title, int duration, Genre genre) { this.title = title; this.duration = duration; this.genre = genre; public int getduration() { return duration; public class Collection { private List<Album> albums; public Collection() { albums = new ArrayList<Album>(); 6