tentaplugg.nu av studenter för studenter Kurskod Kursnamn UU-76062 Inledande programmering i Java Datum Sommaren 2014 Material Provtentamen Kursexaminator Betygsgränser Tentamenspoäng Övrig kommentar
Provtenta UPPGIFT 1 int a = -3; int b = a + 1; int c = a + b - 1; if(b > a) { a ++; if(c > b) { b ++; if(a > c) { c ++; if(a == b && b == c && c == a) { c = b * c; else { a = a * c; Variablerna a, b och c har alla samma värde vid minst ett tillfälle. Falskt Variabeln a har samma värde genom hela koden. Falskt Variabeln c ändrar värde vid minst två tillfällen i koden. Falskt Variabeln b har genom hela koden ett större värde än variabeln c. Sant Summan av variablerna a, b och c är genom hela koden mindre än 0. Falskt UPPGIFT 2 import greenfoot.*; /** * A drum that can play. */ public class Drum extends Instrument { private Sound[] sounds; /** Constructs a drum with the given sounds * @param sounds the sounds for the drum */ public Drum(Sound[] sounds) { this.sounds = sounds; @Override public void act() { //Kod visas ej /* Play the drum */ private void play(int sound) { Greenfoot.playSound(sounds[sound]); Alla parametrar och returvärden är kommenterade och kommentarerna är korrekt formaterade. Falskt sounds är både en array och en instansvariabel. Sant sound är en parameter. Sant Instrument är en klass. Sant
Vi kan ta bort all användning av this i koden utan att det påverkar någon funktionalitet. Falskt UPPGIFT 3 int a = 3; int b = a * 2; int c = b + a; while(a + b >= c) { if(a + b > c) { a ++; b ++; c = b * a; else { a = b / 2; b = a * 2; c = a - b; Variabel a kommer genom hela koden ha ett lägre värde än variabel b. Sant Variabel a kommer genom hela koden ha ett lägre värde än variabel c. Falskt Vid minst ett tillfälle har variablerna a och c samma värde. Falskt Vid minst ett tillfälle har variablerna a och b samma värde. Falskt Både if- och else-satsen kommer att utföras minst en gång i koden. Sant UPPGIFT 4 import greenfoot.*; /** * Fairy Dust with magical powers * * @author Birger Drake * @version 2014-06- 18 */ public class FairyDust extends Actor { private Magic magicpower; private static int magicdone; private final static int maxmagic = 50; /** * Constructs Fairy Dust with the given magic power. * * @param magic the magic for this fairy dust */ public FairyDust(Magic magic) { this.magicpower = magic; /** * Use the Fairy Dust */ public void use() { magicdone ++; if(magicdone < maxmagic) { getworld().addobject(magicpower.use(), getx(), gety()); Alla parametrar och returvärden är kommenterade och kommentarerna är korrekt formaterade. Sant magicdone är en klassvariabel som har samma värde hos alla objekt av typen FairyDust. Sant
magic är en lokal variabel. Falskt Vi kan ändra värdet på variabeln maxmagic i alla objekt av typen FairyDust. Falskt use är en publik metod i båda klasserna FairyDust och i Magic. Sant UPPGIFT 5 int a = 2; int b = 1 + a; int c = b - a; if(a + b > c) { while(b > c a > c) { a = b; b --; else { while(c % 2 == 1) { c = a + c; Båda while-looparna kommer att köras minst en gång. Falskt Variabeln a har vi minst ett tillfälle högre värde än både b och c. Sant Variabeln b kommer att ha värdena 3, 2, 1 och 0 i koden. Sant Variabeln c kommer att byta värde vid minst ett tillfälle i koden. Falskt Efter koden har variabeln c värdet 1. Sant UPPGIFT 6 import greenfoot.*; import java.util.*; /** * A Swedish beaver * * @author Birger Drake * @version 2014-06-18 */ public class Beaver extends Actor { private List offspring; private List family; private int generation; /** * Constructs a Beaver * * @param family all family members; cousins or closer related * @param generation the generation of this beaver */ public Beaver(List family, int generation) { this.family = family; this.generation = generation; offspring = new ArrayList(); @Override public void act() { //Kod visas ej /** * The beaver grows a year. */ public void grow() { offspring.add(new Beaver(this.family, generation ++)); /** * Updates the the beavers family */ public void updatefamily() { for(int i = 0; i < family.size(); i ++) { Beaver b = (Beaver)family.get(i); for(int j = 0; j <
b.offspring.size(); j ++) { Beaver b1 = (Beaver)b.offspring.get(j); if(!family.contains(b1) && generation + 1 == b1.generation) { family.add(b1); Alla parametrar och returvärden är kommenterade och kommentarerna är korrekt formaterade. Sant Enligt kommentarer och kod föder varje bäver en ny bäver varje år. Sant b är en lokal variabel. Sant family är både en instansvariabel och en parameter. Sant offspring är en parameter. Falskt UPPGIFT 7 String text = new String("I like mornings in the evenings"); String newtext = new String(""); for(int i = 0; i < text.length(); i ++) { char c = text.charat(i); if(c == ' ' c!= 'i') { newtext += c; if-satsen kommer att köras minst en gång i koden. Sant Efter koden kommer newtext innehålla texten " i i i i". Falskt Efter koden kommer text att innehålla texten " i i i i". Falskt text och newtext kommer efter koden att innehålla samma text. Falskt newtext.length() kommer efter koden att returnera 19. Falskt 8 int[] numbers = new int[4]; for(int i = 0; i < numbers.length; i ++) { int number = 6; if(i * i > 2) { numbers[i] = number - i; else { numbers[i] = i * i;
Efter koden kommer numbers innehålla [0, 1, 4, 3]. Sant If- och else-satsen kommer båda utföras minst en gång vardera. Sant numbers.length kommer att ha värdet 4 i hela for-loopen. Sant Variabeln i kommer aldrig ha ett större värde än variabeln number i forloopen. Sant Innan for-loopen innehåller numbers [0, 0, 0, 0]. Sant