2D1342 Programkonstruktion för F1, ht 2006

Relevanta dokument
DD1342 Programkonstruktion för F1, ht 2007

2D1339 Programkonstruktion för F1, ht 2004

2D1339 Programkonstruktion för F1, ht 2003

2D1339 Programkonstruktion för F1, ht 2003

DD1342 Programkonstruktion för F1,

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

5. En metod som anropar sig själv a) får inte förekomma i Java-program b) kallas destruktiv c) kallas iterativ d) kallas rekursiv 6. Vilka värden har

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

Föreläsning 3-4 Innehåll

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

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

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

2 b) Bodega bodegan = new Bodega(); double moms = 0.235; String namn = "Vargtass"; System.out.println(namn + " " + moms + bodegan.ändra(moms, namn); S

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 Käk String titel = "Chili con carne"; Krydda[] kryddor = new Krydda[10]; kryddor[0] = new Krydda("Svartpe

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

Det finns en referensbok (Java) hos vakten 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

2 b) Följande finns definierat: import java.awt.*; public class Uppgift1b public static void main(string[] mupp) Color färg = Color.blue; Bil[] bilar

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

Datalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs

Tentamen OOP

Datalogi I, grundkurs med Java 10p, 2D4112, Tentamen 29 november 2003, svar och lösningar

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

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

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.

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

Tentamen i Programmeringsteknik I

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

Dugga i Grundläggande programmering STS, åk

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

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

Föreläsning 5-6 Innehåll

Lite logik. Kap 6: Sid 2

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

Tentamen ID1004 Objektorienterad programmering May 29, 2012

Java, klasser, objekt (Skansholm: Kapitel 2)

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

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

Uppgift: Algoritm för att beräkna kontrollsiffran i ett personnummer givet de 9 första siffrorna. Torrsimning av algoritm för personnummer

OOP Objekt-orienterad programmering

OOP Tenta

F4. programmeringsteknik och Matlab

Objektorienterad Programkonstruktion. Föreläsning jan 2016

Tentamen ID1004 Objektorienterad programmering December 15, 2012

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

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

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

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl

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

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

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Objektorienterad programmering i Java. Föreläsning 5 Kort om Java-Applets

Att prova på en enkel Applet och att lära sig olika sätt att hämta data från tangentbordet. Du får även prova på att skapa din första riktiga klass.

OOP Omtenta

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

Typkonvertering. Java versus C

Del A (obligatorisk för alla)

Lösningsförslag tentamen FYTA11 Java

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

OOP Omtenta

Översikt MERA JAVA OCH ECLIPSE. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning

Programmering A. Johan Eliasson

Tentamen. Lösningsförslag

4.4 Swing ett interaktivt grafiskt gränssnitt

tentaplugg.nu av studenter för studenter

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

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

SMD 134 Objektorienterad programmering

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

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

Tentamen i Objektorienterad programmering

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

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

Programmeringsteknik I

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

OOP Tentamen

Att skriva till och läsa från terminalfönstret

Tentamen. DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl Hjälpmedel: penna, suddgummi, linjal

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

DAT043 Objektorienterad Programmering

Anteckningar 1: Grundläggande saker

TENTAMEN OOP

Föreläsning 9-10 Innehåll

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.

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.

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

PROGRAMMERINGSTEKNIK TIN212

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

TDDC77 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

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 tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Klassdeklaration. Metoddeklaration. Parameteröverföring

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.

Transkript:

2D1342 Programkonstruktion för F1, ht 2006 Lappskrivning 1 Tisdag 7/11 2006 kl 11.15 12.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 hjälpmedel är tillåtna. 9-10 rätt av 15 möjliga ger godkänt och 1poäng. 11-12 rätt ger 1.5 poäng och 13-15 rätt ger 2poäng. Skriv alla svar på svarsblanketten! 1. Endast en av typerna nedan duger till variabeln x om if-satsen skall gå att kompilera utan fel. Hur ska x deklareras? x har förstås fått ett värde före if-satsen. if (x > 1) { //... A) boolean x; B) double[] x; C) int x; D) String x; 2. Vilket värde har variabeln z efter satserna nedan, vilket värde skrivs alltså ut? int z = 0; boolean b = (z>=0); if (b) { z = 42; z = 2*z; else { z = 100; z = z+1; System.out.println(z); A) 85 B) 84 C) 100 D) 101 3. Vilket av följande påståenden om Javaprogram är falskt? A) En klass kan innehålla metoder. B) För alla klassvariabler, instansvariabler, formella parametrar till metoder samt lokala variabler i metoder måste datatyp anges. C) Applet-program behöver inte kompileras innan de exekveras. D) Exekvering av ett fristående program (application) börjar alltid i en metod som heter main. 1

4. Vilken av ustskrifterna produceras av kodavsnittet? int n = 5; for (int i=1; i<=n; i++) { for (int j=1; j<=i; j++) { System.out.print("*"); System.out.println(); for (int i=n; i>=1; i--) { for (int j=1; j<=i; j++) { System.out.print("*"); System.out.println(); A) * B) * C) * D) ***** ** ** ** **** *** *** *** *** **** **** **** ** ***** ***** ***** * * ***** * ** **** ** *** *** *** **** ** **** ***** * ***** 5. Hur många Hej skrivs ut av programraderna nedan? int r = 9; while (r >= 0) { System.out.println("Hej"); r = r-2; System.out.println(r); A) 0 B) 1 C) 3 D) 5 6. Vilket värde har variabeln r efter kodavsnittet i uppgift 5 är exekverat, dvs vad skrivs ut med satsen System.out.println(r)? A) 9 B) 1 C) -2 D) -1 2

7. Vilket värde har variabeln p efter saterna är utförda, dvs vilket tal skrivs ut efter Svaret blir? int t = 3; int[] e = {1,1,0; int p = 1; for (int i=0; i<e.length; i++) { p = p*p; if (e[i] == 1) p = p*t; System.out.println("Svaret blir " + p); A) 1 B) 27 C) 729 D) 2187 8. Två metoder definieras double f (double x) { return 1/(1 + x*x); double g (double x) { return Math.sin(x)/x; På tre av följande rader görs korrekta anrop av metoderna. Vlken rad innehåller minst ett fel? Vi antar att alla anropen görs i den klass där metoderna f och g är definierade. A) double y = f(0.22); B) double z = f(g(1.0 + f(0.5))); C) double t = 0.3; double u = g(t*t-1); D) double x = 0.14; double z = f() + g(); 9. Vilket av följande påståenden om metoder i Java är falskt? A) Vid ett metodanrop måste de aktuella parametrarna ha samma namn som de formella parametrarna har i metoddefinitionen. B) Samma regler gäller för parameterlistan till en void-metod som för parameterlistan till en metod med returtyp. C) När en metod anropas måste man ange lika många aktuella parametrar som det finns formella parametrar i metoddefinitionen. D) När en metod anropas utförs satserna i metodkroppen. 3

10. I en statistiktillämpning behöver man beräkna summan av alla värden i vektorn x och summan av kvadraterna av värdena i vektorn x, alltså summorna n 1 n 1 sumx = x i och sumx2 = i=0 där n är antalet värden i vektorn x. Itreavdefyrakodavsnittennedanberäknas summorna korrekt men i ett av alternativen beräknas inte de sumx och sumx2 som definieras ovan. Vilket alternativ är felaktigt? i=0 x 2 i A) double sumx = 0, sumx2 = 0; for (int j=0; j<x.length; j++) { sumx = sumx + x[i]; sumx2 = sumx2 + x[j]*x[j]; B) double sumx = 0, sumx2 = 0; for (int i=0; i<x.length; i++) sumx = sumx + x[i]; for (int i=0; i<x.length; i++) sumx2 = sumx2 + x[i]*x[i]; C) double sumx = 0, sumx2 = 0; sumx = sumx + x[i]; sumx2 = sumx2 + x[i]*x[i]; D) double sumx = 0, sumx2 = 0; double t = x[i]; sumx = sumx + t; sumx2 = sumx2 + t*t; 4

11. Metoden f skall kunna anropas så som följande exempel visar. Vilken av metoddefinitionerna nedan stämmer med anropsexemplet? Exempel på anrop: double z = f(5, 0.99); A) double f (int n, double x) { double r = 1; for (int i=1; i<=n; i++) r = r*x; f = r; B) double f (int n, double z) { double tmp = z; for (int i = 1; i<=n; i++) tmp = 1/(1+tmp); return tmp; C) void f (int n, double x) { double r = 1; for (int i=1; i<=n; i++) r = r*x; return r/n; D) double f (double z, int n) { double tmp = z; for (int i = 1; i<=n; i++) tmp = 1/(1+tmp); return tmp; 12. Om en metod har huvudet void mysko(string s, String t, int h) Vilket av följande förslag är garanterat ett riktigt anrop av metoden? Alla förslag står i en metod i samma klass som mysko är definierad och det finns inga variabler eller parametrar av typ String tillgängliga vid anropet. A) mysko("troll", "Häxa", "999"); B) mysko(troll, Häxa, 999); C) mysko("troll", "Häxa", 999); D) System.out.println(mysko(String s, String t, String h)); 5

13. I appleten nedan är avsikten att rita upp den funktion som definieras i metoden f genom att dra många små streck mellan närliggande punkter på kurvan. Metoden f fungerar, dess värden är rimliga och positiva. Du behöver inte detaljstudera hur funktionsvärdet beräknas! Vilket av påståendena nedan om programkoden är riktigt? import java.awt.*; import java.applet.*; public class RitaKurva extends Applet { public void paint (Graphics g) { int grans = 600; int x1 = 0, y1 = f(0); int x2 = 0, y2 = 0; int steg = 2; while (x2 < grans) { // A) x2 = x1 + steg; y2 = f(x2); g.drawline(x1,y1,x2,y2); // B) x1=x2; y1=y2; // C) int f (double x) { double t = x-300; return (int) (300-200*(Math.exp(-0.0001*t*t)) + 0.5); A) Man måste använda en for-sats när man ritar. While-sats duger inte då det inte finns någon uppdatering av x-värden i while-satsen. B) Satsen g.drawline(x1,y1,x2,y2) ritar exakt samma streck varje gång den utförs. Det kan inte bli en kurva utan endast ett streck. C) Satserna x1=x2; och y1=y2; gör att punkten (x1,y1) och punkten (x2,y2) är samma punkt och nästa g.drawline(x1,y1,x2,y2) kommer bara att rita en punkt. Det kan inte bli någon kurva. D) Inget av påståendena A), B) och C) stämmer för appleten ovan. En kurva kommer att ritas. 6

14. Vad är sant om följande metod? static boolean what (int[] x) { for (int i=0; i < x.length; i++) { if (x[i] <=0) return false; return true; A) Metoden räknar hur många av värdena i vektorn som ges som parameter som är positiva och returnerar detta antal. B) Metoden går igenom parameter-vektorn och sätter alla dess värden till noll. C) Metoden tar reda på om alla värden i parameter-vektorn är positiva och returnerar true i så fall och returnerar false om något värde är negativt eller noll. D) Metoden returnerar true om värdena i parameter-vektorn kan vara sidor i en månghörning med lika många sidor som det finns värden i vektorn och false om detta inte är möjligt. 15. Följande applet ska rita blå rutor i de positioner som anges av vektorerna x och y. X-koordinater för rutornas vänsterkanter ligger i vektorn x och y-koordinater för rutornas nederkanter ligger i vektorn y. Rutornas storlekar slumpas och ska ligga mellan 10 och 50. En sats saknas i programmet och ska stoppas in där kommentaren // ** här ** finns. Hur ska den utelämnade satsen se ut? import java.awt.*; import java.applet.*; public class Rutor extends Applet { int[] x = {10, 100, 200, 150, 300, 40, 70; int[] y = {200, 50, 300, 130, 150, 250, 170; public void paint (Graphics g) { int newsize = (int) (10 + Math.random()*40 + 0.5); // ** här ** void ritaruta (int x, int y, int size, Graphics picasso) { picasso.setcolor(color.blue); picasso.fillrect(x, y-size, size, size); A) picasso.ritaruta(x[i], y[i], newsize, newsize); B) g.ritaruta(x[i], y[i], newsize, newsize); C) ritaruta(x[i], y[i], newsize, picasso); D) ritaruta(x[i], y[i], newsize, g); 7