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

Lösningsförslag till tentamen

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

Lösningsförslag till tentamen

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

Lösningsförslag till tentamen

Lösningsförslag till tentamen

ITK:P1 Lektion 4. Lektion 4. Lektion 4. Att implementera en spelidé i Java. DSV Peter Mozelius

Lösningsförslag till tentamen

Rita Egna Bilder, Timer

Lösningsförslag till tentamen

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

Lösningsförslag till tentamen

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

Lösningsförslag till tentamen

Lösningsförslag till tentamen

Denna vecka. Idag. Grafiskt användarsnitt. Vi kommer att se

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

Mer om grafiska komponenter. Händelsestyrda program

Tentamen. Lösningsförslag

Föreläsnings 11 - GUI, Händelsestyrda program, MVC

Institutionen för TENTAMEN CTH VT-17 Datavetenskap TDA143. Tentamen för TDA143 PROGRAMMERADE SYSTEM

Föreläsning 10. Mer om grafiska komponenter Händelsestyrda program. Layout Managers

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

Laboration 4: Game of Life

Föreläsning 10. Mer om grafiska komponenter Händelsestyrda program. Layout Managers. Exempel: FlowLayout. Klassen FlowLayout

Lösningsförslag till exempeltenta 2

Föreläsning 3. Iteration while-satsen

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

Lösningsförslag tentamen FYTA11 Java

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

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

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag aug - 23 Tentamen i Objektorientering och Java Skrivtid 5 h

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

Lösningar för tenta 3 DAT043,

Två designmönster, MVC och Observer/Observable. Objektorienterad programvaruutveckling GU (DIT011)

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

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

Laboration 15 Grafiskt användargränssnitt

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

Lösningar till tentamen i EDAF25

Tentamen FYTA11 Javaprogrammering

Objektorienterad programutveckling, fk

LYCKA TILL!!! TENTAMEN I Programmeringsteknik F1. Var vänlig och läs detta: CTH TIN 211. DATAVETENSKAP Göteborg ( ) TENTAMEN

ITK:P1 Föreläsning 4. Grafiska gränssnitt i Java. AWT-komponenter

2I1073 Lektion 2. Lektion 2a. Lektion 2a. Servlets, säkerhet, och filhantering. import java.io.*; import javax.servlet.*; import javax.servlet.http.

Repetitionsföreläsning 2: Quiz & problemlösning med swing Inget nytt material.

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

Tentamen i Objektorienterad programmering E

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

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

MVC-mönstret. model-view-control i Swing

PROGRAMMERINGSTEKNIK för F1 och TM1 (TIN212)

Programmeringsteknik II - HT18. Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt

Lösningsförslag till exempeltenta 1

Lösningsförslag till tentamen FYTA11 Javaprogrammering

Föreläsning 3: Händelsestyrda program och användargränssnitt

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

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

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

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Lösningsförslag till tentamen

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

Dagens program. Programmeringsteknik och Matlab. Vad är arv? Vi ärver från GregorianCalendar. Kan vi bygga vidare på existerande klasser?

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

Java-concept och Swing. Swing low, sweet chariot

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

kl

Tentamen , Introduktion till Java, dtaa98, dtea53

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

Tentamen Programmeringsteknik II Inledning. Anmälningskod:

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:

Objektorienterad programmering

DI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson

Lösningsförslag övning 2.

Föreläsning 13: Swing (GUI), händelser, timer

OOP Objekt-orienterad programmering

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

2I1049 Föreläsning 8. Grafiska gränssnitt i Java. AWT-komponenter. Grafiska gränssnitt, Java interface och händelsehantering

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.

Laboration 24 Databasen MySQL och java

OOP Objekt-orienterad programmering

Malmö högskola 2008/2009 CTS

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP och DSV1:P2

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

Parallellism, återblick

Föreläsning 9-10 Innehåll

Tentamen FYTA11 Javaprogrammering

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

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

Mer om klasser och objekt

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU

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

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Föreläsning 14: Grafik & mera händelsehantering

Transkript:

Uppgift 1 a) Falskt! Bitmönstret är 10010111 b) Falskt! Memory Manager handhar Lösningsförslag till tentamen 170609 c) Falskt. En trojansk häst är ett program i förklädnad. Det är således program som på ytan ser ut att vara ett vanligt program t.ex ett spel, men som när det startas även gör annat i avsikt att skada den angripna datorn, som t.ex att radera filer eller ändra inställningar. d) Falskt. Det största värdet finns i noden längst till höger i trädet. e) Sant f) Sant g) Falskt! Den vanligaste typen av databaser är relationsdatabaser. h) Sant i) Falskt. Man eftersträvar låg coupling och hög cohesion. j) Falskt! 3D-rendering innebär att ett 3D-objekt projiceras till ett 2D-objekt. Uppgift 2 A B C AND XOR D E NOR F OR G A B C A B D E F G 0 0 0 1 1 0 1 0 1 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 1 0 0 0 1 1 1 0 0 1 1 0 0 Uppgift 3 (1), ( 2 log n), (n), (n 2 log n), (n 2 ), (n 3 ) Uppgift 4 Vid binärsökning måste datamängden som skall sökas igenom vara sorterad. Sökningen utförs i flera steg och i varje steg halveras antalet element i den kvarvarande datamängden som behöver genomsökas. Antag att vi har följande datamängd Anne Beda Christina Doris Eva Fiona Gunnel Helen Irene Jane Klara Laura Moa Nina Olga och att vi söker efter Beda. Sökningen börjar i mittelementet i den ursprungliga sökmängden, dvs med elementet Helen. Eftersom nu Helen är större än Beda, vet vi att Beda måste finnas tidigare i datamändgen än Helen. Således kan vi koncentrera sökningen till datamängden Anne Beda Christina Doris Eva Fiona Gunnel Nu återupprepas samma förfarande, dvs vi undersöker mittelemetet, vilket är Doris. Eftersom Doris är större än Beda kan den fortsatta sökningen koncentreras till datamängden Anne Beda Christina Förfarandet återupprepas, och vi undersöker mittelementet, vilket är Beda. Vi har hittat vad vi söker! Eftersom sökmängden, om vi inte tidigare hittar vad vi söker, reduceras ned till ett element kommer vi att hitta vad vi söker eller konstatera att det vi söket inte finns i den ursprungliga datamängden. Binärsökning har tidskomplexiteten ( 2 log n).

Uppgift 5 Internethierarkin är uppbyggd av fyra lager: Applikationslagret - Transportlagret - Nätverkslagret - Länklagret Hierarkin går uppifrån och ner då information skickas från sändaren och nerifrån och upp då den mottas av mottagaren. Applikationslagret: Applikationsprogram som använder sig av Internet, exempelvis webbläsare och chatprogram, interagerar direkt med varandra genom applikationslagret. Applikationslagret förbereder meddelandet och märker det med en slutadress. Transportlagret: Delar upp meddelandet i mindre delar, så kallade paket( packets). Dessa paket skickas sedan i en angiven ordning. Omvänt så samlar transport ihop paketen och sätter ihop dessa till det ursprungliga meddelandet Nätverkslagret: Nätverkslagret adresserar meddelanden och översätter logiska adresser och namn till fysiska adresser. Det avgör också vilken väg i nätverket som meddelanden skall färdas och hanterar trafiksproblem som stockningar. Länklagret: Ansvarar för att överföra data mellan två närliggande noder i nätet genom att använda sig av det fysiska lagrer. Uppgift 6 Model Price Year To100 Z4 sdrive35i 420000 2016 5.2 Carrera 911 360000 2004 4.7 Boxster S 280000 2012 5.0

Uppgift 7 a) Utskriften blir [2, 4, 7, 8, 12] b) Utskriften blir Vad blir 4*4? 30 Vad blir 5*6? 30 c) Utskriften blir: MELBORP AGNÅM SNNIF TED d) För att kunna exekvera en klass måste klassen ha en statisk main-metod, som är specificerad enligt: public static void main(string [] args) Klassen Wrong har ingen sådan metod! Istället finns en main-metod som är en instansmetod. Denna måste alltså göras om till en klassmetod enligt: public class Wrong { public static void main(string [] args) { int number = -10 ; while (number <= 10) { if ( number % 2 == 0) System.out.println(number); number = number + 1 ; //main //Wrong

Uppgift 8 import javax.swing.*; import java.util.*; import java.text.*; public class StatligSkatt { public static void main (String[] arg) { boolean done = false; while (!done) { String indata = JOptionPane.showInputDialog("Ange beskattningsbar förvärvsinkomst " + " och kapitalinkomst :"); if (indata == null) done = true; else { Scanner sc = new Scanner(indata); int inkomst = sc.nextint(); int kapital = sc.nextint(); if (inkomst < 0 kapital < 0) JOptionPane.showMessageDialog(null, "Ogiltig indata! Kan inte vara negativ!"); else { int skatt = computetax(inkomst, kapital); JOptionPane.showMessageDialog(null, "Inkomstskatt är :" + skatt + " kr"); //main public static int computetax(int incomeofsalary, int incomeofcapital) { double tax = 0; if ( incomeofsalary > 438900 && incomeofsalary <= 638500) tax = ( incomeofsalary - 438900) * 0.20; else if ( incomeofsalary > 638500) tax = ( 638500-438900) * 0.20 + ( incomeofsalary - 638500) * 0.25; tax = tax + incomeofcapital * 0.3; return (int) tax; //computetax //StatligSkatt

Uppgift 9 import java.util.*; public class DominoModel { private ArrayList<Tile> titles; private static Random random = new Random(); public DominoModel() { titles = new ArrayList<Tile>(); for (int i = 0; i <= 6; i++) { for (int j = i; j <= 6; j++) { titles.add(new Tile(i, j)); //constructor public int nroftitles() { return titles.size(); public Tile picktile() { if (titles.size() == 0) return null; int i = random.nextint(titles.size()); return titles.remove(i); //picktitle public boolean match(tile tile1, Tile tile2) { return (tile1.getleft() == tile2.getleft() tile1.getleft() == tile2.getright() tile1.getright() == tile2.getleft() tile1.getright() == tile2.getright()); //match //DominoModel

Uppgift 10 a) b) c) public static boolean isvalid(string password) { if (password.length() < 8) return false; int nrofuppercase = 0; int nroflowercase = 0; int nrofnonletters = 0; for (int i = 0; i < passw.length(); i = i + 1) { char ch = passw.charat(i); if (Character.isUpperCase(ch) ) nrofuppercase++; if (Character.isLowrrCase(ch) ) nroflowercase++; if (!Character.isLetterOrDigit(ch)) nrofnonletters++; if (nrofuppercase > 0 && nroflowercase > 0 && nrofnonletters > 1) return true; else return false; //isvalid public static double[][] tomatrix(double[] scanned, int nrrows) { int nrcols = scanned.length / nrrows; double[][] view = new double[nrrows][nrcols]; int pos = 0; for (int row = 0; row < nrrows; row = row + 1) { if (row % 2 == 0) { for (int col = 0; col < nrcols; col = col + 1) { view[row][col] = scanned[pos]; pos++; else { for (int col = nrcols-1; col >= 0; col = col - 1) { view[row][col] = scanned[pos]; pos++; return view; //tomatrix public static double[][][] fromrgbtocmyk(int[][][] picture) { double[][][] newpicture = new double[picture.length][picture[0].length][4]; for (int row = 0; row < picture.length; row = row + 1) { for (int col = 0; col < picture[row].length; col = col + 1) { double maxofrg = Math.max(picture[row][col][0]/255, picture[row][col][1]/255); double white = Math.max(maxOfRG, picture[row][col][2]/255); newpicture[row][col][0] = (white - picture[row][col][0]/255) / white; newpicture[row][col][1] = (white - picture[row][col][1]/255) / white; newpicture[row][col][2] = (white - picture[row][col][2]/255) / white; newpicture[row][col][3] = 1 - white; return newpicture; //fromrgbtocmyk

Uppgift 11 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class TwinkleLable extends JLabel implements ActionListener { private boolean textvisible = false; private String text; private javax.swing.timer t = new javax.swing.timer(500, this); public TwinkleLable(String text) { sethorizontalalignment(center); //för att få texten centrerad, default är LEFT setbackground(color.yellow); setopaque(true); this.text = text; //constructor public void settwinkleon() { t.restart(); settext(text); textvisible = true; public void settwinkleoff() { t.stop(); settext(""); textvisible = false; public void actionperformed(actionevent e) { if (textvisible) { settext(""); textvisible = false; else { settext(text); textvisible = true; repaint(); //actionperformed // TwinkleLable

import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ShowTwinkleLable extends JFrame implements ActionListener{ private JButton start, stop; private TwinkleLable lable = new TwinkleLable("Varning!!!"); public ShowTwinkleLable(){ JPanel buttons = new JPanel(); buttons.setlayout(new GridLayout(1, 2, 10, 10)); start = new JButton("Start"); start.addactionlistener(this); buttons.add(start); stop = new JButton("Stop"); stop.addactionlistener(this); buttons.add(stop); setlayout(new GridLayout(2, 1, 10, 10)); add(lable); add(buttons); setdefaultcloseoperation(exit_on_close); //constructor public void actionperformed(actionevent e){ if (e.getsource() == start) lable.settwinkleon(); if (e.getsource() == stop) lable.settwinkleoff(); lable.repaint(); //actionperformed //ShowTwinkleLable public class MainTwinkle { public static void main(string[] args){ ShowTwinkleLable r = new ShowTwinkleLable(); r.setsize(150, 150); r.setvisible(true); //MainTwinkle