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 VT-15 Datavetenskap TDA540. Tentamen för TDA540 Objektorienterad programmering

Lösningsförslag till tentamen

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

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

Föreläsning 3. Iteration while-satsen

Lösningsförslag till tentamen

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

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

Lösningsförslag till tentamen

Tentamen. Lösningsförslag

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

Instuderingsfrågor, del D

Lösningsförslag till tentamen

JAVAUTVECKLING LEKTION 4

Lösningsförslag till tentamen

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

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

Instuderingsfrågor, del E

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

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

DAT043 Objektorienterad Programmering

Objektorienterad programmering

JAVAUTVECKLING LEKTION 8

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

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

OOP Objekt-orienterad programmering

Iteration while-satsen

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

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

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

Tentamen FYTA11 Javaprogrammering

Lösningsförslag, tentamen FYTA11 Javaprogrammering

Del A (obligatorisk för alla)

Lösningsförslag. Programmeringsmetodik, KV: Java och OOP. 17 januari 2004

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

Föreläsning 2, vecka 8: Repetition

TENTAMEN OOP

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

Tentamen Programmeringsteknik II Inledning. Anmälningskod:

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

Testning och felhantering

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

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

Lösningar för tenta 2 DAT043,

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Tentamen , Introduktion till Java, dtaa98, dtea53

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.

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

Tentamen, EDAA20/EDA501 Programmering

Föreläsning 6: Metoder och fält (arrays)

Parsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck

Föreläsning 9-10 Innehåll

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

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

lgammal2.txt // Lösningar till gammal tentamen // Uppgift 1 a

Tentamen i Programmeringsteknik I

Typkonvertering. Java versus C

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

JAVAUTVECKLING LEKTION 11

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Föreläsning REPETITION & EXTENTA

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

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

Föreläsning 2 Datastrukturer (DAT037)

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

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

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

for-satsen Fält for-satsen Föreläsning 8 (OH-bilder 7) for-satsen for-sats är en styrsats för iterationer. for-sats har följande generella utseende:

Sammanfattning och repetition utgående från typiska tentamensuppgifter

Tentamen OOP

public interface Skrivbar { void skriv(); } public class Punkt implements Skrivbar { public double x; public double y;

TENTAMEN OOP

TENTAMEN OOP

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

Lösningsförslag tentamen FYTA11 Java

Tentamen, EDAA10 Programmering i Java

Tentamen i Objektorienterad 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

Exempel på listor (klassen ArrayList). Ett exempel med fält. Avbildning är en speciell typ av lista HashMap.

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.

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

Föreläsning 12. Föreläsning 12. Rörliga figurer Klassen Timer Undantag Något om applets. Rörliga appletsfigurer Klassen Timer Undantag

Objektorienterad 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

Tentamen, EDAA20/EDA501 Programmering

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

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

Objektorienterad programmering

F4. programmeringsteknik och Matlab

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

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

Transkript:

Uppgift 1 Lösningsförslag till tentamen 150418 a) i) Utskriften blir: ii) [8, 3, 9, 4, 5] Metoden mystery flyttar om elementen i fältet arr på så sätt att alla elementen, förutom det första, flyttas ett position till vänster. Det första elementet hamnar sist. iii) Exempelvis public static void shiftleft(int[] arr) { for (int i = 0; i < arr.length - 1; i = i + 1) { int temp = arr[i]; arr[i] = arr[i + 1]; arr[i + 1] = temp; //shiftleft eller public static void shiftleft(int[] arr) { int temp = arr[0]; for (int i = 0; i < arr.length - 1; i = i + 1) { arr[i] = arr[i + 1]; arr[arr.length-1] = temp; //shiftleft b) Utskriften blir: 1, 2, 6 4, 5, 6 c) Precis som kompilatorn påpekar i sitt felmeddelande saknas det en return-sats. Eftersom parametern betyg är av typen int kan metoden anropas med alla existerande värden av typen int, inte bara värdena 0 till 4 som Stina använder. Detta betyder att alla värden förutom värdena 0 till 4 "passerar förbi" samtliga if-satser och följaktligen stöter dessa värden inte på någon return-sats. Det finns flera sätt att korrigera metoden på. En bra princip, för alla icke-void-metoder, är att ha endast en returnsats som ligger allra sist i metoden (alla exekveringsvägar i metoden leder ju i så fall dit). En lämplig modifiering av metoden är därför: public static String omvandla(int betyg) { String utdata = ""; if (betyg == 0) utdata = "Urdålig!"; else if (betyg == 1) utdata = "Dålig!"; else if (betyg == 2) utdata = "Godkänd!"; else if (betyg == 3) utdata = "Bra!"; else if (betyg == 4) utdata = "Jättebra!"; return utdata; //omvandla

Uppgift 2 import javax.swing.*; import java.util.*; public class Growth { public static void main (String[] arg) { while (true) { String indata = JOptionPane.showInputDialog("Ange kapital, ränta och antal år:"); if (indata == null) break; Scanner sc = new Scanner(indata); double k = sc.nextdouble(); double p = sc.nextdouble(); double t = sc.nextdouble(); if (k < 0 p < 0 t < 0) JOptionPane.showMessageDialog(null, "Ogiltig indata!"); else { JOptionPane.showMessageDialog(null, String.format("%.2f kronor kommer med en ränta på ", k) + String.format("%.2f procent\n", p) + String.format("att på %.2f år växa med %.2f kronor", t, interest(k,p,t))); //while //main private static double interest(double capital, double rate, double year) { return capital * Math.pow(1 + rate/100, year) - capital; //Growth Uppgift 3 public static boolean containsassequence(int[] source, int[] target) { if (source == null target == null) throw new IllegalArgumentException(); boolean found = false; for (int i = 0; i < source.length - target.length; i = i + 1) { boolean okey = true; for (int j = 0; j < target.length; j = j + 1) { if (source[i + j]!= target[j]) okey = false; if (okey) found = true; return found; //containsassequence

Uppgift 4 public static int[][][] montage(int[][][] foreground, int[][][] background) { int[][][] newsample = new int[foreground.length][foreground[0].length][3]; for (int row = 0; row < newsample.length; row = row + 1) { for (int col = 0; col < newsample[x].length; col = col + 1) { if (isgreen(row, col, foreground)) { for (int i = 0; i < 3; i = i + 1) { newsample[row][col][i] = background[row][col][i]; else { for (int i = 0; i < 3; i = I + 1) { newsample[x][y][i] = foreground[x][y][i]; return newsample; //montage private static boolean isgreen(int i, int j, int[][][] image) { return image[i][j][0] == 0 && image[i][j][1] == 255 && image[i][j][2] == 0 ; //isgreen Uppgift 5 public String generate(string s, int n) { Random r = new Random(); String rstr = ""; if (s.length() > 0) { for (int i = 0; i < n; i++) { int j = r.nextint(s.length()); char ch = s.charat(j); rstr = rstr + ch; return rstr; Uppgift 6 public class PLang { public String top(string swe) { String p = ""; for (char ch : swe.tochararray()) { if (isvowel(ch)) { p = p + ch + "p" + ch; else { p = p + ch; return p; private boolean isvowel(char ch) { return "aouåeiyäö".indexof(ch) >= 0;

Uppgift 7 Exempel på olika tänkbara klasser och attribut (finns fler) public class Player { private final String name; private final Piece piece; public Player(String name, Piece piece) { this.name = name; this.piece = piece; public class Piece { private final Color[] wedges = new Color[6]; public void put(color wedge) { // If not there and not full,... add it public class Card { private final Board.Topic topic; private final String text; public Card(Board.Topic topic, String text) { this.topic = topic; this.text = text; public class Board { public enum Topic { Geography, Entertainment, History, ArtsAndLiterature, ScienceAndNature, SportsAndLeisure private final Space[] spaces; public Board(Space[] spaces) { this.spaces = spaces; public class Space { private final Topic topic; public Space(Topic topic) { this.topic = topic; Så här kan man konstruera modellen private TrivialPursuit buildtp() { Player[] players = { new Player("olle", new Piece()), new Player("fia", new Piece()) /*...etc... */ ; Space[] spaces = { new Space(Board.Topic.History) /*...etc..*/ ; Board board = new Board(spaces); Card[] cards = { new Card(Board.Topic.History, "Vad hade Gustav...") /*... etc..*/ ; return new TrivialPursuit(players, board, cards);

Uppgift 8 private void advice(int[] a, int[] b) { boolean success = false; for (int i = 0; i < a.length; i++) { if (a[i] < getmean(a) && a[i] > getmean(b)) { System.out.println("Move " + a[i] + " from A to B"); success = true; for (int i = 0; i < b.length; i++) { if (b[i] < getmean(b) && b[i] > getmean(a)) { System.out.println("Move " + b[i] + " from B to A"); success = true; if (!success) { System.out.println("Omöjligt"); //advice private double getmean(int[] arr) { double sum = 0; for (int i : arr) { sum = sum + i; return sum / arr.length; //getmean