2D1339 Programkonstruktion för F1, ht 2003

Relevanta dokument
2D1339 Programkonstruktion för F1, ht 2003

2D1339 Programkonstruktion för F1, ht 2004

2D1342 Programkonstruktion för F1, ht 2006

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

DD1342 Programkonstruktion för F1, ht 2007

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

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

Föreläsning 3-4 Innehåll

DD1342 Programkonstruktion för F1,

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

Lab5 för prgmedcl04 Grafik

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

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

Java, klasser, objekt (Skansholm: Kapitel 2)

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

Föreläsning REPETITION & EXTENTA

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

PROGRAMMERINGSTEKNIK TIN212

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

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

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]

Objektorienterad Programkonstruktion. Föreläsning jan 2016

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 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

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.

Klassdeklaration. Metoddeklaration. Parameteröverföring

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

Programmeringsteknik I

(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

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

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

Del A (obligatorisk för alla)

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

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

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.

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

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

Tentamen ID1004 Objektorienterad programmering May 29, 2012

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

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

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

Föreläsning 5-6 Innehåll

1 Funktioner och procedurell abstraktion

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

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.

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

Systemutvecklare SU13, Malmö

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

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

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

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

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

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

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

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

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

Typkonvertering. Java versus C

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Tentamen i Grundläggande Programvaruutveckling, TDA548

Föreläsning 9-10 Innehåll

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

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

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

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

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

Instuderingsfrågor, del D

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

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.

TENTAMEN OOP

Administrativt. Programmeringsteknik för I1. Dagens program. Objektorienterad programmering

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 29 november 2003 kl , sal D34.

F4. programmeringsteknik och Matlab

Tentamen ID1004 Objektorienterad programmering December 15, 2012

Tentamen OOP

Föreläsning 13 Innehåll

Laboration 1: Figurer i hierarki

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

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

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

Sammanfattning och repetition utgående från typiska tentamensuppgifter

Malmö högskola 2008/2009 CTS

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

Överlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad Programmering!

Introduktion till Datalogi DD1339. Föreläsning 3 29 sept 2014

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private

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.

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

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

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

Laboration 1: Linser

Skriftlig tentamen för kursen DV017A. Inledande programmering i Java A

Tentamen i Introduktion till programmering

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

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

Transkript:

2D1339 Programkonstruktion för F1, ht 2003 Fiktiv Kontrollskrivning 1 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 Skrivtid för den riktiga skrivningen är en lektionstimme, 45 minuter. 8 rätt (av 12 möjliga) krävs för godkänt. 1. Vilken av typerna nedan ska variabeln x ha för att if-satsen skall gå att kompilera utan fel? if (x < 0.01) { : a)boolean b)char c)double d)string 2. Vilka värden har variablerna x och y efter nedanstående kodavsnitt? int x = 1, y = 1; if (x == 0) { x = x - 1; y = 0; else { x = x + 1; y = y - 1; x = x - 1; a) x=0, y=1 b) x=1, y=0 c) x=2, y=0 d) x=-1, y=0 3. Följande kodavsnitt finns i en paint-metod i en Applet. Hur många linser ritas (hur många gånger anropas metoden ritalins)? int x = 100; while (x > 1000) { ritalins(g, x); x = x + 100; a) 0 gånger b) 1 gång c) 10 gånger d) Går ej att svara på då while-satsen ger en oändlig repetition och programmet måste avbrytas utifrån t.ex. med Ctrl-C 1

4. Följande kodavsnitt exekveras i en metod. Det blir en utskrift i terminalfönstret som påminner om en geometrisk figur. Vilken? for (int i=1; i<10; i++) { for (int j=1; j<=i; j++) { System.out.print("*"); System.out.println(); a) Cirkel b) Rektangel c) Regelbunden 10-hörning d) Triangel 5. Vilket av följande påståenden om metoder i Java är falskt? a) En metod kan deklareras (definieras) inuti en annan metod. b) En metod kan anropas inuti en annan metod. c) En metod måste deklareras (definieras) inuti en klass. d) En metod måste ha en parameterlista. Parameterlistan får vara tom. 6. Du deklarerar den lokala variabeln int k; ienmetodienjava-klass.vilketav påståendena nedan är sant? a) Namnet k är nu upptaget och det är omöjligt att deklarera int k; i andra metoder i klassen. b) Den först deklarerade k existerar bara inuti den metod där den är deklarerad och är helt oberoende av variabler i andra metoder oavsett vad variablerna heter. c) Den först deklarerade k gör att det går att använda k i andra metoder i klassen utan att deklarera om den. d) Det är tillåtet att deklarera k i andra metoder i klassen men inte att deklarera k som instansvariabel. 2

7. Metoden funk deklareras double funk (int m, double y) { // här står metodkroppen I vilken av raderna nedan anropas metoden korrekt enligt deklarationen ovan? (Alla satserna finns i instansmetoder i samma klass som funk är definierad) a) double z = funk(3, Math.sin(0.1)); b) int k = 14; double w = 1.42; double z = funk(int k, double w); c) int m = 13; double y = 0.37; double z = funk(); d) double r = 3.27; System.out.println(funk(2.97, r)); 8. I en Applet skall en rad med staplar i form av rektanglar ritas. Positionerna i x-led för staplarnas vänsterkanter anges i vektorn xpos nedan och staplarnas höjd anges i vektorn höjd. Alla rektanglar ska ritas med nederkanten i position ybas och alla skall ha bredden 30 pixels. Metoden drawrect i klassen Graphics skall användas. Metoden har samma parametrar som drawoval som används för linserna i linslabben. Vilken paint-metod ritar de begärda staplarna? int[] xpos = {50, 100, 200, 250; int[] höjd = {80, 220, 60, 105; int ybas = 300; a) for (int i=0; i< xpos.length; i++) g.drawrect(xpos[i], höjd[i]); b) for (int i=0; i< xpos.length; i++) g.drawrect(xpos[i], ybas - höjd[i], 30, höjd[i]); c) for (int i=0; i< xpos.length; i++) drawrect(g, xpos[i], ybas - höjd[i], 30, höjd[i]); d) for (int i=0; i< ybas; i++) g.drawrect(xpos[i], ybas, 30, höjd[i]); 3

9. Antag att programmet i föregående uppgift skall utvidgas så att ytterligare två staplar ritas, i positionerna 325 resp. 375 med höjderna 25 resp. 100. Vilka delar av programmet behöver ändras? a) Endast definitionerna av vektorerna xpos och höjd. b) Definitionerna av vektorerna xpos och höjd samt paint-metoden. c) Endast paint-metoden. d) Något annat än vektorerna och paint - metoden måste ändras. 10. Metoden ritafigur ritar en intressant figur. Metoden deklareras i en Applet och skall ha ett Graphics - objekt, en skalfaktor samt x- och y-värden för dess position som parametrar. void ritafigur (Graphics go, int skala, int xpos, int ypos) { // Här finns de satser som ritar figuren. I vilket av följande alternativ görs ett korrekt anrop av metoden ritafigur? Vi antar i samtliga fall att g är definierad där anropet sker och refererar till ett Graphics-objekt. Metodanropen görs i paint-metoden i den Applet där ritafigur är deklarerad. a) b) c) d) Figur f = ritafigur(g, 80, 100, 200); int skala = 30; int xpos = 250; int ypos = 100; ritafigur(g); int sk = 30; int x0 = 250; int y0 = 100; g.ritafigur(sk, x0, y0); for (int x = 100; x <= 800; x +=50) ritafigur(g, 40, x, 200); 4

11. Vi vill ha en metod som omvandlar ett x-värde i ett koordinatsystem (1) till motsvarande värde i ett annat koordinatsystem (2). Sett från system (1) så ligger origo i system (2) i punkten x0 och skalfaktorn mellan de två systemen är s. x0 och s är definierade i den klass där metoden ligger och kan användas av metoden. Metoden skall kunna anropas t.ex så här double x2 = pos + x1tillx2(378.5); Vilket av följande alternativ är en riktig deklaration av metoden som stämmer med anropsexemplet ovan? Obs! Man behöver inte förstå hur koordinatomvandlingen görs för att svara på frågan. a) void x1tillx2 (double x) { return (x - x0)/s; b) double x1tillx2 (double x) { return (x - x0)/s; c) void x1tillx2 (double x, double s, double x0) { return (x - x0)/s; d) double x1tillx2 (double x) { x2 = (x1 - x0)/s; 12. Följande programavsnitt beräknar och skriver ut en talserie: Antag att n har ett värde som är minst 10. Vilka är de första 10 talen som skrivs ut? int f0 = 0, f1 = 1, f2; System.out.print(f0 + " " + f1 + " "); for (int i=2; i<=n; i++) { f2 = f1 + f0; System.out.print(f2 + " "); f0 = f1; f1 = f2; a)0123456789 b)011248163264128 c)0112358132134 d)0110110110 5

Omfattning Kontrollskrivning 1 Flera av uppgifterna har nära anknytning till linsprogrammet. Tag gärna med ett fungerande program till skrivningen. En hel del svar på frågorna finns också i labanvisningen. Läs den noga inför labtillfällena och tag med den också till skrivningen! Böcker, anteckningar och andra skriftliga hjälpmedel är tillåtna men det betyder inte att man kan komma oförberedd och leta rätt på alla svar. Det hinner man inte göra. primitiva datatyper, variabler och uttryck med dessa typer, även boolean med värdena true och false (uppgift 1). villkorssatser med if... och if... else i kombination med andra satser (uppgift 2). repetitionssatser med while (uppgift 3) och for (uppgift 8), även nästlade sådana dvs där en repetitionssats repeteras (uppgift 4) repetitionssatser där något värde förs över från ett steg i repetitionen till nästa som t.ex. linjernas lutning i linslabben (uppgift 12). vektorer (fält med ett index) definierade på enklaste sätt så som görs i linslabben, t.ex. double[] f = {0.2, 0.5, 0.03. Andra typer än double kan förekomma. (uppgift 8, 9) repetition med for över vektor i olika sammanhang (uppgift 8) metoder utan returvärde, typ void (uppgift 10) metoder med returvärde, typ int, double o.s.v. och return-sats där värde av rätt typ returneras (uppgift 7, 11) metoders parametrar (hanteras exakt likadant för metoder med och utan returvärden). Formella parametrar, aktuella parametrar. Man ska kunna se på en metoddefinition hur metoden skall anropas (uppgift 7, 10) och kunna från ett exempel på anrop känna igen möjliga definitioner (uppgift 11). användning av parametrarna i en metod, lokala variabler i en metod, (uppgift 6), instansvariabler i en metod strukturen hos ett program (modell linslabben) med instansvariabler och metoder (uppgift 5), särskilt paint-metoden ritmetoder i klassen Graphics, samma typ av användning som i linslabben (uppgift 8,9,10) Händelsehantering kommer inte på skrivningen Labbens sista steg, att detektera mushändelser (för att den som kör programmet ska kunna flytta på lampan) tar vi inte upp på skrivningen. Alltså MouseMotionListener, addmousemotionlistener, mousemoved, mousedragged o.s.v. ingår ej i skrivningen men väl i labarbetet. 6