Tentamen i Grundläggande programmering STS, åk 1 fredag

Relevanta dokument
Tentamen i Grundläggande programmering STS, åk

Tentamen i Grundläggande programmering STS, åk 1 fredag

Tentamen i Grundläggande programmering STS, åk 1 lördag

Tentamen i Grundläggande programmering STS, åk

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.

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

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

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

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

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

Dugga i Grundläggande programmering STS, åk

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

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

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 OOP

Tentamen i Programmering

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

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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.

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

Laboration 1 - Grunderna för OOP 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

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

OOP Tentamen

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.

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

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

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

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

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

Tentamen Programmeringsteknik II Skrivtid: Hjälpmedel: Java-bok (vilken som helst) Skriv läsligt! Använd inte rödpenna!

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 i Programmeringsteknik I

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

INFORMATIK - MED SYSTEMVETENSKAPLIG INRIKTNING, GRK/A (1-30 HP)

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

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

DAT043 Objektorienterad Programmering

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

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

OOP Tenta

Tentamen, EDAA20/EDA501 Programmering

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

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

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

Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Skriv ditt idnummer på varje blad (så att vi inte slarvar bort dem).

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

Tentamen i EDA011 Programmeringsteknik för F, E, I, π och N

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

JAVA Mer om klasser och objektorientering

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

OOP Tenta

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

Tentamen i Programmeringsteknik I

TENTAMEN: Objektorienterad programmering. Läs detta! Skriv din tentamenskod på varje blad (så att vi inte slarvar bort dem).

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Tentamen, EDAA10 Programmering i Java

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

Tentamen. Lösningsförslag

Tentamen. Grundläggande programmering i Java A 5p, DTAA

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

Tentamen i Programmeringsteknik MN

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

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.

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

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

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

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

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

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

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

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

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

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

OOP Omtenta

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

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 25 maj 2009

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

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

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 PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

DELPROV 1 I DATAVETENSKAP

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

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

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista

Del A (obligatorisk för alla)

OOP Tentamen

PROGRAMMERINGSTEKNIK TIN212

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

Malmö högskola 2008/2009 CTS

Diagnostiskt Prov. Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas.

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

Transkript:

Tentamen i Grundläggande programmering STS, åk 1 fredag 2003-05-23 Skrivtid: 09.00 14.00 Hjälpmedel: Inga Lärare: Anders Berglund. Anders besöker tentan vid två tillfällen: cirka kl. 10.30 samt cirka kl. 12.00. Observera: Programkod ska skrivas enligt god programmeringssed för Java och objektorienterad programmering. Uppgifterna är inte ordnade efter svårighetsgrad. Läs igenom hela tentan först. Kom ihåg att fylla i försättsbladet ordentligt. Om du är osäker på någon fråga eller uppfattar någon uppgift som oklar, gör ett antagande som du motiverar och förklarar väl. På de uppgifter där du ska skriva programkod, kan du också skriva en förklaring, om du inte är säker på att din lösning är riktig. En sådan ger visserligen inga poäng, men kan hjälpa till vid rättningen att förstå tankarna bakom en lösning Skriv programkod rimligt indenterad och med bra variabelnamn. På så sätt underlättas rättningen. 50% av tentans totala poängantal garanterar betyget godkänt Skriv endast en uppgift per blad och skriv bara på ena sidan av papperet, dvs. ett nytt blad för varje uppgiftsnummer, medan deluppgifter (a, b, c etc.) får skrivas på samma blad. Fyll i försättsbladet ordentligt! Skriv namn på alla papper. Referera inte mellan olika svar. Lycka till!

FÖRSÄTTSBLAD Grundläggande programmering, STS, 23 maj 2003 Denna sida ska ifylld placeras först bland de papper du lämnar in Uppgift 1 2 3 4 5 6 7 8 9 bonus Besvarad ange i förekommande fall vilka deluppgifter du har löst ifylles av institutionen Poäng Namnteckning: Namn: Personnummer:

1. Ord, bara ord (0,5 + 0,5 + 1 + 1 + 1) Förklara kortfattat men precist följande termer: a) syntax (i samband med programmeringsspråk) b) semantik (i samband med programmeringsspråk) c) objekt (i samband med programmeringsspråk) d) klass (i samband med programmeringsspråk) e) inkapsling (i samband med objektorienterad programmering) 2. Klassvariabel (2) Förklara kortfattat och koncist begreppet klassvariabel. Vad är syftet med begreppet? Ge ett relevant exempel (såsom kod, som kan vara syntaktiskt felaktig utan du för den skull får poängavdrag) eller noggrant i ord. 3. Starta din Bil (3 + 2 + 3 + 3 + 4 + 3) Studera klassen Person, som finns i bilagan till denna tenta. Person får inte modifieras i denna uppgift. I denna uppgift, som gäller bilar med motorer och förare, är en förare en sorts person som känner till en bil. En bil har en motor. a) Skriv klasshuvuden för de tre klasserna Forare, Bil och Motor. Skriv också de variabeldeklarationer som anger de samband mellan klasser/objekt som anges ovan. b) Klassen Motor har en metod public void starta(). Denna metod skriver ut texten startar. Skriv metoden. c) Varje bil har ett bilmärke. Bilmärket kan vara olika för olika bilar och anges när bilen skapas. Skriv den eller de metoder (inklusive eventuella konstruktorer) och/eller deklaration(er) som du anser behövs för att kunna skapa en bil av ett visst märke. d) Skriv en metod starta till klassen Bil. Metoden skriver ut bilens märke, samt anropar därefter starta i bilens motor. e) Skriv en konstruktur för klassen Forare. Förare har namn. Du ska på ett relevant sätt använda dig av att en förare är en sorts person. f) Skriv ett huvudprogram i klassen Kora. Huvudprogrammet ska fungera som det anges i denna text, men kan därutöver vara mycket enkelt, vad gäller formateringar av utskrifter etc. Programmet ska på ett relevant sätt använda sig av (objekt ur) klasserna som diskuteras i uppgiften, dvs. Bil, Motor och Forare. Huvudprogrammet ska skapa två bilar, en BMW och en Ferrari (båda med motorer), samt två förare, en till vardera bilen. Se till att förarna verkligen känner till sina respektive bilar. Om du anser att det kräver nya metoder i någon klass, måste du skriva dessa. Du avgör själv vad förarna heter. forts på nästa sida

forts från föregående sida g) Skriv i samma huvudprogram de rader som krävs för att följande text ska skrivas ut, två gånger, en gång för vardera föraren: <förarens namn> kör iväg. Hans <bilmärke> startar <förarens namn> är en egenskap hos föraren och ska behandlas på så sätt. Bilmärket ska skrivas ut av den metod som tillhör en viss förares bil. Utnyttja att en förare känner till sin bil. Startar ska skrivas ut av varje enskild bils motor. 4. Flax (3) Fundera på vad du vet om fåglar. a) Ange tre klasser, som sinsemellan har ett samband av typen är-en-sorts och som på något sätt är relevant för att beskriva några fåglar och samband mellan typer av fåglar. Ledning: Låt en av klasserna vara Fågel. Du behöver enbart ange klassnamn i denna uppgift. b) Utöka din modell från a) med relationer av typen känner-till och har-en. Ledning: Du kan behöva införa nya klasser och/eller objekt ur klasser för att din beskrivning ska vara relevant och rimlig. 5. Publikt och privat (2) Metoder och data i objekt kan vara deklarerade privat eller publikt. Vad menas med dessa två begrepp? Varför används de? Förklara kortfattat men exakt, gärna med ett exempel. 6. Integritet (3) Beskriv en situation där det vid en IT-användning sker en integritetskränkning.vilket är det moraliska problemet? Hur kan kränkningen undvikas? 7. Rekursion (3) Studera nedanstående program. Ange exakt vad utskriften blir, när programmet körs. public class GorVadKlass { public static int gorvad(int x, int n) { if (n == 0) return 1; return x * gorvad(x, n - 1); public static void main(string[] args) { for (int i = 3; i <= 6; i++) { Std.out.println(gorVad(i, i + 1));

8. Gå på banken (2) Klassen Bankkonto har instansvariablerna int nr och double saldo samt metoderna public int getnummer(), public void sättin(double summa), public void taut(double summa) och public void saldobesked(). main-metoden finns nedan. När programmet kompileras får man ett kompileringsfel i main. Visa vad som behöver ändras och förklara i ord varför det inte fungerar som det står nu. public static void main(string [] args) { Bankkonto b1; b1.sättin(3000); b1.saldobesked(); b1.taut(2500); b1.saldobesked(); 9. Fransk lyrik (8) Anna, som gillar att köpa böcker om fransk lyrik, men inte har tid att läsa alla (studierna vid STS är alltför betungande), vill ha bättre koll på sina nyinköpta böcker. Bokhyllan, som böckerna ska stå i, rymmer maximalt 50 böcker (oavsett storlek ) För att böckerna ska stå ordentligt är de sorterade efter sidantal, med de tunnaste först. Anna, som också är road av programmering, vill använda sin dator. Hon har redan skrivit klassen Bok (se nedan för skelettet till klassen) samt börjat skriva klassen Bokhylla. Hon har i Bokhylla skrivit public void sattinbok(bok b) som sätter in en bok på rätt plats i bokhyllan. Metoden förutsätter att det finns plats i bokhyllan. Hon har också skrivit metoden ut() som skriver ut hela bokhylleinnehållet. Din uppgift är nu att skriva färdigt Bokhylla. För det ska följande deluppgifter lösas: a) Skriv klasshuvudet för Bokhylla med eventuell(a) instansvariabel(ler) (såsom plats för böckerna). b) Skriv metoden public void tautbok(bok b). Boken ska tas bort från hyllan och de övriga böckerna ska tryckas ihop för att stå stadigt. c) Skriv metoden public boolean finnsmerplats() som avgör om det finns plats för ytterligare minst en bok i hyllan. d) Skriv en main-metod som testar klasserna genom att skapa ett par böcker och sätta in dem i bokhyllan med hjälp av sattinbok(). Metoden ska också skriva ut innehållet i bokhyllan, samt ta bort böcker, m h a tautbok(). Därefter skrivs innehållet i bokhyllan ut igen. Vid något tillfälle ska det dessutom skrivas ut om det finns plats kvar eller inte. Dock behöver programmet inte testa om det finns plats kvar, innan böckerna sätts in. (finnsmerplats() är tänkt för framtid bruk. Än så länge har Anna bara påbörjat sin samling, och har bara några få böcker i sin stora hylla. Notera! Eftersom Anna har arbetat med denna klass, och skrivit kod för de metoder som anges ovan, fast koden inte redovisas här på tentan, får du anta att dessa metoder finns och fungerar som de bör.

import extra.*; public class Bok { private String titel; private String författare; private String isbn; private int antal sidor; public Bok() här finns programkod public Bok(String title, String forf, Sting nr, int sidor) här finns programkod public String getitel() här finns programkod public String geförfattare()här finns programkod public String geisbn()här finns programkod public int gesidantal()här finns programkod public void Ut() public void nybok() programkod, skriver ut info om en bok programkod, matar in info om en ny Bok i dialog med användaren från tangentbordet

Bilaga till uppgift 3, klassen Person import extra.*; public class Person { private String namn; private String adress; private int ålder; public Person(String n) { namn = n; adress = ""; ålder = 0; public Person(String n, String a, int å) { namn = n; adress = a; ålder = å; public void fyllaår() { ålder = ålder +1; public void flytta(string nyadress) { adress = nyadress; public String genamn(){ return namn; public String geadress(){ return adress; public int geålder() { return ålder;