Övningar, EDA501 Programmering

Storlek: px
Starta visningen från sidan:

Download "Övningar, EDA501 Programmering"

Transkript

1 LUNDS TEKNISKA HÖGSKOLA EDA501 Programmering Institutionen för datavetenskap VT 2010 Övningar, EDA501 Programmering I kursen ingår fem övningar. Under övningarna ska du självständigt eller tillsammans med en kamrat lösa övningsuppgifterna. Övningsledaren ger tips om lösning, hjälper till om du får problem och diskuterar dina lösningar med dig. Före varje övning bör du förbereda dig genom att läsa i läroboken, titta igenom uppgifterna och gärna försöka lösa en del av dem. Lösningsförslag delas ut i slutet av varje övning. De kommer också att publiceras på kursens hemsida. Förutom uppgifterna i detta häfte finns det övningsuppgifter i läroboken. Innehåll 1 Övning 1 Variabler och tilldelningssatser, objekt och operationer Övning 2 Klasser och metoder, summering Övning 3 Grundläggande programmering Övning 4 Vektorer Övning 5 String och StringBuilder, ArrayList

2

3 Övning 1 Variabler och tilldelningssatser, objekt och operationer 3 Övning 1 Variabler och tilldelningssatser, objekt och operationer Läs i läroboken: avsnitt 1-2, 3.2 Variabler och tilldelningssatser 1. Betrakta följande program, där fyra heltal läses från tangentbordet och några beräkningar görs: public class Example1 { public static void main(string[] args) { Scanner scan = new Scanner(System.in); int a = scan.nextint(); int b = scan.nextint(); int c = scan.nextint(); int d = scan.nextint(); int e = (c + d) - (a + b); c = c + 2; a = (2 * e + c) / 4; System.out.println(a + " " + b + " " + c + " " + d + " " + e); a) En av parenteserna i programmet är onödig. Vilken? Varför? b) Vilka värden skrivs ut när talen 1, 2, 4 och 8 läses? Använd en tabell där du noterar de successiva variabelvärdena. c) Vilka värden skrivs ut när talen 1, 2, 8 och 4 läses? 2. Två heltalsvariabler a och b har deklarerats och fått värden. Skriv satser som byter värde på a och b ( swappar värdena). Exempel: int a = 10; int b = 25; //... dina satser System.out.println(a + " " + b); // ger utskriften Skriv ett program (en klass med en main-metod) som först läser en starttid (två tal, timmar och minuter, till exempel 12 41) och därefter en sluttid (två andra tal, till exempel 16 28) och därefter beräknar och skriver ut hur många minuter det är mellan tiderna. Du kan förutsätta att sluttiden är större än starttiden. Ledning: det behövs fyra int-variabler för de fyra inlästa talen. Ge dessa variabler vettiga namn. 4. Ändra i programmet från uppgift 3 så att tidsavståndet skrivs ut i timmar och minuter i stället för i minuter. Detta kan man göra på två sätt: antingen genom att använda en if-sats eller genom att använda heltalsdivision och operatorn % (avsnitt 6.3 i läroboken). Specifikation av en klass 5. Skriv en specifikation av en klass som beskriver en stad. Städer kännetecknas (i den här uppgiften) av att de har ett namn och ett invånarantal. Namnet, som är en följd av tecken, beskrivs av datatypen String, invånarantalet av ett heltal.

4 4 Övning 1 Variabler och tilldelningssatser, objekt och operationer Utföra operationer på objekt 6. Klasserna SimpleWindow och Square från läroboken antas vara tillgängliga. Vad ritas på skärmen när nedanstående program exekveras? Visa med en skalenlig figur. public class SquareExample { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(400, 400, "Squares"); Square sq1 = new Square(100, 100, 200); Square sq2 = new Square(300, 300, 50); sq1.draw(w); sq2.draw(w); 7. Skriv om programmet från uppgift 6 men skapa bara ett kvadratobjekt. Samma figur som tidigare ska ritas. Förutsätt att klassen Square har en operation void setside(int newside); som ändrar sidlängden till newside. 8. Skriv ett program som ritar en liksidig triangel med sidan 100 pixlar. En av sidorna i triangeln ska vara parallell med x-axeln. Kvadratroten ur ett tal x får man med Math.sqrt(x). Använd klassen SimpleWindow för att rita. 9. Nedanstående program innehåller tre fel som upptäcks av kompilatorn. Korrigera felen. public class ErrorTest { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600, 600); sq = new Square(100, 200, 50); while sq.getx() < 300 { sq.draw(w); sq.move(10, 10);

5 Övning 2 Klasser och metoder, summering 5 Övning 2 Klasser och metoder, summering Läs i läroboken: avsnitt Klasser 1. Rita en bild av minnessituationen (vilka variabler som finns, variablernas värden, vilka objekt som finns, attributens värden) när följande satser har exekverats: Square sq1 = new Square(20, 30, 40); Square sq2 = sq1; sq1 = null; 2. Implementera färdigt klassen Car: public class Car { private String nbr; private Person owner; // registreringnummer // ägare /** Skapar en bil med registreringsnummer licensenbr som ägs av personen owner. */ public Car(String licensenbr, Person owner) { // Lägg till egen kod här. /** Tar reda på bilens registreringsnummer. */ public String getlicensenbr() { // Lägg till egen kod här. /** Tar reda på bilens ägare. */ public Person getowner() { // Lägg tilll egen kod här. /** Sätter bilens ägare till newowner. */ public void changeowner(person newowner) { // Lägg tilll egen kod här. 3. Rita en figur som visar vilka objekt som finns samt värdet av alla variabler och attribut efter det att följande satser har exekverats. Person p = new Person("Bo Ek"); Car c1 = new Car("ABC123", p); p = new Person("Eva Alm"); Car c2 = new Car("XYZ789", p); Klassen Car finns i föregående uppgift och klassen Person ser ut så här. public class Person { private String name; /** Skapar en person med namnet name. */ public Person(String name) { this.name = name;

6 6 Övning 2 Klasser och metoder, summering /** Tar reda på personens namn. */ public String getname() { return name; 4. I ett system för bokning av platser på tåg förekommer en klass RailwayCoach som beskriver en vagn i tåget. Klassen har följande specifikation: /** Skapar en vagn med nbrseats platser. */ RailwayCoach(int nbrseats); /** Tar reda på antalet platser i vagnen. */ int getnbrseats(); /** Tar reda på antalet lediga (obokade) platser. */ int getnbrfreeseats(); /** Bokar n platser i vagnen. Det får förutsättas att n är <= antalet lediga platser. */ void makereservation(int n); Implementera klassen fullständigt, dvs deklarera attribut och implementera konstruktorn och operationerna. Observera att man bara är intresserad av antalet lediga platser, inte numren på de platser som är lediga. 5. Klassen Person beskriver personer (klassen har fler operationer, men dem är vi inte intresserade av här): /** Skapar en person med åldern age. */ Person(int age); /** Undersöker om denna person är äldre än personen p. Returnerar då true, annars false. */ boolean isolderthan(person p); Implementera klassen. Summering 6. Skriv satser som läser ett n-värde och beräknar och skriver ut n! (n-fakultet, n! = n). 7. Skriv ett program som läser 30 temperaturvärden och beräknar och skriver ut medeltemperaturen. 8. Indata består av 101 reella tal. Det första talet kallas limit. Skriv satser som läser talen och beräknar två summor: dels summan av de tal som är mindre än limit, dels summan av de tal som är större än limit. Tal som är lika med limit ska inte summeras. 9. Ett arbete ger lön enligt följande: första dagen är lönen en krona. De följande dagarna får man dubbelt så mycket betalt som man fick närmast föregående dag. Skriv ett program som avgör hur många dagar man måste arbeta innan man har tjänat ihop en miljon kronor.

7 Övning 3 Grundläggande programmering 7 Övning 3 Grundläggande programmering Läs i läroboken: avsnitt 4, 5, , , 7 1. Skriv följande som tilldelningssatser i Java: a) y = sin(20 ) b) z = ae x + be cos(x) c) hyp = a 2 + b 2 2. Talet x är av typ double. Hur konverterar man värdet av x till närmaste int-tal? 3. a) Hur kan man med operatorn % avgöra om heltalet n är jämnt? b) Hur kan man med operatorn % avgöra om heltalet n slutar med en nolla? c) Talet number är tresiffrigt. Skriv tilldelningar så att digit1, digit2, digit3 tilldelas värdet av respektive siffra. Använd operatorerna % och /. 4. Förenkla följande logiska uttryck (a är en int-variabel, ready är en boolean-variabel): a) a > 2 && a > 5 b) a > 2 a > 5 c)!(a > 2) d)!(a > 2 & a < 9) e)!(a < 0 a > 10) f) ready == true g) ready == false 5. Skriv ett program som från tangentbordet läser ett antal positiva heltal (använd hasnextint() för att undersöka om det finns fler tal att läsa). I programmet ska du beräkna och skriva ut det största av talen. 6. Lös samma uppgift som i föregående uppgift, men låt talföljden avslutas av ett negativt tal. 7. Skriv ett program som drar två olika slumptal mellan 1 och 100 och skriver ut dessa med det minsta talet först. 8. Ett heltal a 0 är givet. Man beräknar en talföljd med följande formler: a k+1 = { a k /2, 3a k + 1, om a k är jämnt annars För alla a 0 större än 0 blir a k förr eller senare = 1. (Detta har ingen lyckats bevisa det kallas Collatz problem men de flesta tror att det är så.) Exempel: a 0 = 3 a 0 = 4 a 0 = 5 a 0 = 6 a 0 = 7 ger 10, 5, 16, 8, 4, 2, 1 (8 tal i talföljden) ger 2, 1 (3 tal) ger 16, 8, 4, 2, 1 (6 tal) ger 3, 10, 5, 16, 8, 4, 2, 1 (9 tal) ger 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1 (17 tal) Skriv ett program som läser in ett a 0 och skriver ut den talföljd som bildas med formlerna, till och med den avslutande 1-an. Skriv också ut antalet tal i talföljden.

8 8 Övning 3 Grundläggande programmering 9. En groda hoppar omkring på en gräsmatta. Grodan kan hoppa åt norr, öster, söder och väster. Varje hopp är en meter långt. Från början befinner sig grodan i mitten av gräsmattan, dvs i en punkt med koordinaterna (0, 0). Grodan beskrivs av en klass med följande specifikation: Frog /** Skapar en groda som befinner sig i punkten (0,0). */ Frog(); /** Tar reda på x-koordinaten för grodans position. */ int getx(); /** Tar reda på y-koordinaten för grodans position. */ int gety(); /** Tar reda på hur många hopp grodan gjort sedan den skapades. */ int getjumps(); /** Låter grodan hoppa norrut. */ void jumpnorth(); //... här finns tre ytterligare operationer: jumpeast, //... jumpsouth och jumpwest Implementera klassen Frog. Observera att grodans hopp inte ska ritas ut någonstans. 10. Skriv ett program som placerar grodan från övning 9 i mitten av en m stor gräsmatta och låter grodan hoppa omkring slumpmässigt (med samma sannolikhet i alla riktningar) tills den hamnar utanför gräsmattan. Skriv ut antalet hopp som grodan gjorde.

9 Övning 4 Vektorer 9 Övning 4 Vektorer Läs i läroboken: avsnitt , 8.10 Vektorer och matriser 1. Implementera följande metoder: a) /** Hittar minsta talet i vektorn v. */ public static int min(int[] v); b) ** Undersöker om talen i vektorn v är sorterade i växande ordning. */ public static boolean issorted(int[] v); c) /** Undersöker om vektorerna v1 och v2 är lika, dvs. om de är lika långa och alla v1[i] == v2[i]. */ public static boolean equal(int[] v1, int[] v2); Undersök inte fler tal än nödvändigt i deluppgift b och c. 2. Med spåret av en kvadratisk matris menas summan av elementen i huvuddiagonalen (från övre vänstra hörnet till nedre högra hörnet). Skriv följande metod som beräknar spåret av matrisen m: static double trace(double[][] m); Sökning 3. En vektor a innehåller 100 heltal. Vilken utskrift fås av nedanstående satser om int i = 0; while (i < a.length && a[i]!= 0) { i++; System.out.println(i); a) det finns en nolla i vektorn, i vektorelementet a[33]? b) det inte finns någon nolla i vektorn? c) det finns 50 nollor i vektorn, i vektorelementen med udda index dvs. i a[1], a[3],..., a[99]? 4. En vektor cards är deklarerad och skapad enligt följande: Card[] cards = new Card[52]; Vektorn cards har plats för upp till 52 kort. På plats 0 till n-1 i vektorn finns n olika kort sorterade efter valör. Klassen Card har följande specifikation:

10 10 Övning 4 Vektorer Card /** Konstanter för färgern: */ static final int SPADES =...; static final int HEARTS = SPADES + 1; static final int DIAMONDS = SPADES + 2; static final int CLUBS = SPADES + 3; /** Skapar ett spelkort med färgen suit (SPADES, HEARTS, DIAMONDS, CLUBS) och valören rank (1-13). */ Card(int suit, int rank); /** Tar reda på färgen. */ int getsuit(); /** Tar reda på valören. */ int getrank(); Registrering a) Skriv satser som tar reda på om spader dam finns bland korten. Resultatet av sökningen ska vara att en variabel pos innehåller spader dams position i vektorn (-1 om spader dam ej finns i vektorn). b) Ett nytt kort med valören r och färgen s ska sättas in i vektorn. Korten i vektorn ska vara ordnade i stigande valör. Skriv satser som ser till att detta nya kort skapas och hamnar på sin rätta plats i vektorn med hänsyn till dess valör. Du får förutsätta att det finns plats för det nya kortet. 5. I ett program har man lagrat uppgifter om ett antal personers ålder i en heltalsvektor ages. Man vill räkna hur många av personerna som är 0-5 år, 6-10 år,..., år, >50 år. Detta har man gjort på följande sätt: int[] nbr = new int[11]; // nbr[0] = antal 0-5-åringar, // nbr[1] = antal 6-10-åringar, //... // nbr[9] = antal åringar, // nbr[10] = antal >50-åringar for (int i = 0; i < ages.length; i++) { int age = ages[i]; if (age < 6) { nbr[0]++; else if (age < 11) { nbr[1]++; else if (age < 16) { nbr[2]++; else if (age < 21) { nbr[3]++; else if (age < 26) { nbr[4]++; else if (age < 31) { nbr[5]++; else if (age < 36) { nbr[6]++; else if (age < 41) { nbr[7]++; else if (age < 46) { nbr[8]++; else if (age < 51) {

11 Övning 4 Vektorer 11 nbr[9]++; else { nbr[10]++; Detta fungerar men det är inte snyggt, och det blir ännu värre om man ska ta med flera intervall. Förbättra programmet! 6. Följande klass beskriver en tärning: /** Skapar en tärning. */ Die(); /** Kastar tärningen, returnerar antalet prickar (1-6). */ int roll(); I ett statistikexperiment vill man kasta två tärningar och undersöka hur många gånger som summan av prickarna på tärningarna blir 2, 3, 4,..., 11, 12. Experimentet beskrivs av följande klass: /** Skapar ett experiment där tärningarna d1 och d2 kastas. */ Experiment(Die d1, Die d2); /** Kastar tärningarna n gånger, räknar antalet gånger summan blev 2, 3, 4,..., 11, 12. Returnerar antalen i en vektor. */ int[] makeexperiment(int n); Implementera klassen. Flera uppgifter med vektorer 7. Ola Claessons järnhandel är bygdens största leverantör av fasadsiffror. Störst är försäljningen till nybyggda områden där samtliga hus ska ha fasadsiffror. Oftast får de beställningar på formen fasadsiffror till samtliga hus på Nygatan 101 till 125, endast udda nummer. Skriv följande metod som räknar ut hur många siffror av varje sort som behövs. /** Returnerar en vektor med antal olika siffror av varje sort som behövs för nummer mellan start och stop där intervallet mellan numren är interval. */ int[] nbrdigits(int start, int stop, int interval) { Inparametrar till metoden är tre positiva heltal: första nummer, sista nummer och intervallet. Exempel: Följande vektor returneras vid anropet nbrdigits(101, 125, 2): [0][1][2][3][4][5][6][7][8][9] I handelsresandeproblemet gäller det för en handelsresande att besöka ett antal städer. Varje stad ska besökas exakt en gång. Handelsresanden vill att den totala resvägen ska bli så kort som möjligt. Att lösa detta problem exakt är tidsödande, eftersom man måste beräkna alla möjliga resvägar för att finna den kortaste vägen. Vi nöjer oss därför i denna uppgift med att hitta en approximation till den bästa lösningen genom att i varje steg

12 12 Övning 4 Vektorer besöka den stad som ligger närmast den senast besökta staden. Städerna och kartan med alla städer beskrivs av följande klasser: Town /** Skapar en stad med namnet name. */ Town(String name); /** Tar reda på stadens namn. */ String getname(); /** Tar reda på avståndet till staden t. */ double getdistanceto(town t); /** Undersöker om denna stad är besökt. */ boolean isvisited(); /** Markera att denna stad är besökt/inte besökt (b = true/false). */ void setvisited(boolean b); // Övriga metoder i klassen public class Map { private Town[] towns; // städerna /** Skapar en karta med städer. Uppgifter om städerna läses in från en fil med namnet mapfile. */ public Map(String mapfile) { // Här läses antalet städer från filen mapfile och vektorn // towns skapas. Därefter läses uppgifter om städerna, // Town-objekt skapas och läggs in i vektorn towns. // Konstruktorn är färdigskriven. /** Skriver ut namnet på de städer som besöks, i tur och ordning, när man påbörjar en resa i staden med namnet starttown. Det förutsätts att det finns en stad med det namnet. */ public void printtour(string starttown) { // Markera alla städer som obesökta. // Skriv ut startstadens namn, markera den som besökt. // Leta upp närmaste stad som inte är besökt, skriv ut // dess namn, markera den som besökt.osv. /* Tar reda på den obesökta stad som ligger närmast staden t. */ private Town getnearest(town t); Implementera metoderna printtour och getnearest i klassen Map.

13 Övning 5 String och StringBuilder, ArrayList 13 Övning 5 String och StringBuilder, ArrayList Läs i läroboken: avsnitt 11, , 12.8 String och StringBuilder 1. Skriv följande metod: /** Bildar en sträng som innehåller tecknen i s i omvänd ordning. */ public String reverse(string s); Till exempel ska reverse( asdfg ) ge strängen gfds. Använd ett StringBuilder-objekt. 2. Slumptal kan användas för att kryptera texter. Man behöver en slumptalsgenerator som kan initieras med ett slumptalsfrö så att den kan upprepa följden av slumptal. Klassen java.util.random är en sådan klass man använder den konstruktor som har ett slumptalsfrö som parameter. Kryptering av en text går till på följande sätt: Välj en krypteringsnyckel, ett long-tal key. Skapa slumptalsgeneratorn med key som slumptalsfrö. För varje tecken i texten: dra ett slumptal, addera det till tecknet. Vi förutsätter här att teckenkoderna för tecknen ligger i intervallet [0, 256) och att slumptalen ligger i samma intervall. För att också de krypterade tecknen ska hålla sig inom intervallet ska additionen göras cykliskt, dvs efter tecknet med koden 255 anses tecknet med koden 0 komma. Exempel (teckenkoderna har skrivits i decimal form): Tecken: A t t a c k! Teckenkod: Slumptal: Krypterad kod: Krypterat tecken: E C z b o j ) Dekryptering av texten görs genom att man initierar slumptalsgeneratorn med samma krypteringsnyckel och subtraherar slumptalen från teckenkoderna. Skriv en metod som krypterar en text plaintext utgående från krypteringsnyckeln key. Den krypterade texten ska returneras som resultat. Metoden ska ha följande rubrik: public static String encrypt(string plaintext, long key); 3. Antag att metoderna equals och compareto i klassen String inte är tillgängliga. Skriv följande metod: /** Undersöker om strängarna s1 och s2 är lika långa och alla tecknen i s1 är lika med motsvarande tecken i s2. */ public static boolean equals(string s1, String s2);

14 14 Övning 5 String och StringBuilder, ArrayList ArrayList 4. Ett ArrayList-objekt cards är deklarerad och skapad enligt följande: ArrayList<Card> cards = new ArrayList<Card>; // Här läggs ett antal kort in i cards Klassen Card beskrivs i uppgift 4 från övning 4. a) Skriv satser för att summera kortens valörer. b) Skriv satser som tar reda på om spader dam finns bland korten. c) Ett nytt kort med valören r och färgen s ska sättas in i listan. Korten i listan ska vara ordnade i stigande valör. Skriv satser som ser till att detta nya kort skapas och hamnar på sin rätta plats i listan med hänsyn till dess valör. 5. Ett program som hanterar utlåningen av böcker i ett bibliotek ska skrivas. Biblioteket håller reda på sina böcker, sina låntagare och de utlåningar som gjorts. Böckerna är försedda med en streckkod som identifierar boken (kallas bookcode). Låntagarnas lånekort är försedda med en streckkod som identifierar låntagaren (kallas personcode). Böckerna, låntagarna och utlåningarna beskrivs av följande klasser: Book /** Skapar en bok med koden bookcode, titeln title och författaren author. */ Book(String bookcode, String title, String author); // här finns operationerna getbookcode(), gettitle() och getauthor() Person /** Skapar en person med koden personcode, namnet name och adressen address. */ Person(String personcode, String name, String address); // här finns operationerna getpersoncode(), getname() och getaddress() Loan /** Skapar ett utlåningsobjekt som beskriver att boken b lånades av personen p under dagen d. */ Loan(Book b, Person p, Date d); // här finns operationerna getbook(), getperson() och getdate() Date är en standardklass i Java som beskriver datum. Följande klass håller ordning på biblioteket:

15 Övning 5 String och StringBuilder, ArrayList 15 Library /** Skapar ett nytt (tomt) bibliotek. */ Library(); /** Registrerar att boken med kod bcode lånas ut till personen med kod pcode (se också nedan). */ int lendbook(string bcode, String pcode); /** Registrerar att boken med kod bcode lämnas tillbaka (se också nedan). */ int returnbook(string bcode); // här finns ytterligare operationer för att till exempel lägga in // nya böcker och nya personer. Dessa operationer ska du inte skriva. Implementera klassen Library enligt följande anvisningar: Böckerna, låntagarna och utlåningsobjekten ska lagras i tre olika ArrayList-objekt. Kalla listorna books, persons respektive loans. När en bok lånas ut ska ett utlåningsobjekt skapas och läggas in i listan loans. Med konstruktorn Date() skapar man ett datumobjekt som representerar dagens datum. Metoden ska returnera 0 om boken och personen existerar, -1 om det inte finns någon bok med kod bcode, -2 om det inte finns någon person med kod pcode. Det kan förutsättas att boken inte redan är utlånad. När en bok lämnas tillbaka ska motsvarande utlåningsobjekt tas bort ur listan loans. Om utlåningsobjektet fanns i listan ska metoden returnera 0, annars -1.

Övningar, EDAA20 Programmering och Databaser

Övningar, EDAA20 Programmering och Databaser LUNDS TEKNISKA HÖGSKOLA EDAA20 Programmering och databaser Institutionen för datavetenskap HT 2016 Övningar, EDAA20 Programmering och Databaser Övningarna är papper- och penn -övningar. Du löser uppgifter

Läs mer

2. Betrakta följande program, där fyra heltal läses från tangentbordet och några (ointressanta) beräkningar görs:

2. Betrakta följande program, där fyra heltal läses från tangentbordet och några (ointressanta) beräkningar görs: Övningsuppgifter I kursen ingår 10 övningar (det är ingen övning vecka 7 i läsperiod ht2). Under övningarna ska du självständigt eller tillsammans med en kamrat lösa övningsuppgifterna. Övningsledaren

Läs mer

Föreläsning 5-6 Innehåll

Föreläsning 5-6 Innehåll Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]

Läs mer

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER Från laboration 3 till 4 I laboration 3 har du implementerat klasser implementerat metoder i klasserna I laboration 4 kommer du att implementera

Läs mer

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

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser Föreläsning 5-6 Innehåll Exempel på program med objekt Skapa och använda objekt Skriva egna klasser public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600,

Läs mer

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.

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. EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.axelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade

Läs mer

Föreläsning 3-4 Innehåll

Föreläsning 3-4 Innehåll Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå

Läs mer

Föreläsning REPETITION & EXTENTA

Föreläsning REPETITION & EXTENTA Föreläsning 18 19 REPETITION & EXTENTA Programmeringsteknik på 45 minuter Klasser och objekt Variabler: attribut, lokala variabler, parametrar Datastrukturer Algoritmer Dessa bilder är inte repetitionsbilder

Läs mer

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

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer

Läs mer

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

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering. EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade

Läs mer

Tentamen, EDAA20/EDA501 Programmering

Tentamen, EDAA20/EDA501 Programmering LUNDS TEKNISKA HÖGSKOLA 1(4) Institutionen för datavetenskap Tentamen, EDAA20/EDA501 Programmering 2013 08 22, 8.00 13.00 Anvisningar: Denna tentamen består av fyra uppgifter. Preliminärt ger uppgifterna

Läs mer

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

Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER Logiska uttryck datatypen boolean Logiska uttryck kan ha två möjliga värden, true eller false. Variabler av typen boolean kan tilldelas

Läs mer

Föreläsning 9-10 Innehåll

Föreläsning 9-10 Innehåll Föreläsning 9-10 Innehåll Inläsning från textfil, utskrift från textfil Vektorer med objekt Matriser Datavetenskap (LTH) Föreläsning 9-10 HT 2018 1 / 41 Klassen Scanner Läsa från System.in Vi har tidigare

Läs mer

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass EDAA20 Föreläsning 11-12 Klassen ArrayList Klassen ArrayList Skriva program som läser data från en textfil och skriver data till en textfil Repetition inför delmålskontroll 2 är en standardklass (i paketet

Läs mer

Programexempel: tärningsspel. Programexempel: tärningsspel Kasta tärning tills etta. Klassen Die Specifikation. Slumptalsgenerator Klassen Random

Programexempel: tärningsspel. Programexempel: tärningsspel Kasta tärning tills etta. Klassen Die Specifikation. Slumptalsgenerator Klassen Random Kasta tärning tills etta Skriv ett program som låter en användare spela detta tärningsspel: Spelaren gör första tärningsslaget och får samma poäng som tärningen visar. Sedan fortsätter spelet enligt följande

Läs mer

Tentamen, EDAA20/EDA501 Programmering

Tentamen, EDAA20/EDA501 Programmering LUNDS TEKNISKA HÖGSKOLA 1(4) Institutionen för datavetenskap Tentamen, EDAA20/EDA501 Programmering 2011 10 19, 8.00 13.00 Anvisningar: Denna tentamen består av fem uppgifter. Preliminärt ger uppgifterna

Läs mer

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 Programmeringsteknik I 2016-03-17 Skrivtid: 1400 1900 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

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

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1) Föreläsning 10 STRING OCH STRINGBUILDER; VARIABLERS SYNLIGHET Att deklarera och att använda variabler När vi deklarerar en variabel, t ex int x; inför vi en ny variabel med ett namn och en typ. När namnet

Läs mer

Programmeringoch databaser

Programmeringoch databaser Programmeringoch databaser LÖSNINGSFÖRSLAG TILL ÖVNINGAR EDAA20 2017/2018 LUNDS TEKNISKA HÖGSKOLA EDAA20 Programmeringsteknik Institutionen för datavetenskap 2017/2018 Övning 1 Variabler och tilldelningssatser

Läs mer

Typkonvertering. Java versus C

Typkonvertering. Java versus C Typer Objektorienterad programmering E Typkonvertering Typkonvertering Satser: while, for, if Objekt Föreläsning 2 Implicit konvertering Antag att vi i ett program deklarerat int n=3; double x = 5.2; Då

Läs mer

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

Grundläggande programmering med C# 7,5 högskolepoäng Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Omtentamen DE13, IMIT13 och SYST13 samt öppen för alla (Ifylles av student) (Ifylles av student)

Läs mer

Tentamen, EDA501 Programmering M L TM W K V

Tentamen, EDA501 Programmering M L TM W K V LUNDS TEKNISKA HÖGSKOLA 1(3) Institutionen för datavetenskap Tentamen, EDA501 Programmering M L TM W K V 2010 04 13, 8.00 13.00 Anvisningar: Denna tentamen består av 4 uppgifter. Preliminärt ger uppgifterna

Läs mer

Datastrukturer. Föreläsning Innehåll. Program med vektor Exempel. Deklarera vektorer

Datastrukturer. Föreläsning Innehåll. Program med vektor Exempel. Deklarera vektorer Föreläsning 1-12 Innehåll Vektorer Registrering (räkna element av olika slag) Sökning Matriser Klasserna String och StringBuilder Repetition inför delmålskontroll 2 Undervisningsmoment: föreläsning 1-12

Läs mer

Tentamen i Programmering

Tentamen i Programmering LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Tentamen i Programmering EDAA65/EDA501/EDAA20 M MD W BK L 2018 05 30, 8.00 13.00 Preliminärt ger uppgifterna 7 + 14 + 6 + 9 + 4 = 40 poäng.

Läs mer

Tentamen, EDAA10 Programmering i Java

Tentamen, EDAA10 Programmering i Java LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen, EDAA10 Programmering i Java 2019 08 21, 08.00 13.00 Anvisningar: Preliminärt ger uppgifterna 25 + 15 + 5 = 45 poäng. För godkänt betyg

Läs mer

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Laboration 1. kompilera-ikonen exekvera-ikonen Programmerade system I1 Syfte Laboration 1. Syftet med denna laboration är dels att göra dej bekant med de verktyg som kan vara aktuella i programmeringsarbetet, dels ge en första inblick i att skriva

Läs mer

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

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000

Läs mer

Föreläsning ALGORITMER: SÖKNING, REGISTRERING, SORTERING

Föreläsning ALGORITMER: SÖKNING, REGISTRERING, SORTERING Föreläsning 11 12 ALGORITMER: SÖKNING, REGISTRERING, SORTERING Seminarier: Fredagsklubben för dig som tycker att programmering är svårt (0 eller möjligen 1 poäng på delmålskontrollen) inte avsedda för

Läs mer

Del A (obligatorisk för alla)

Del A (obligatorisk för alla) Del A (obligatorisk för alla) A1. Koden följer garanterat namnkonventionerna. Ringa in rätta svar och lämna in tillsammans med dina övriga svar! a) Hur många objekt skapas av följande kod? World w = new

Läs mer

Tentamen OOP 2015-03-14

Tentamen OOP 2015-03-14 Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning

Läs mer

Exempel på program med objekt Klass med main-metod. Föreläsning 3-4 Innehåll. Övning Viktiga begrepp

Exempel på program med objekt Klass med main-metod. Föreläsning 3-4 Innehåll. Övning Viktiga begrepp Föreläsning 3-4 Innehåll Eempel på program med objekt Klass med main-metod Klasser Implementera (skriva programkod för) egna klasser Datatper Undervisningsmoment: föreläsning 3-4 övning 2 laboration 3-5

Läs mer

Objekt som argument. Föreläsning 7-8 Innehåll. Hur komma åt den andra kvadratens attribut? Anropa metod på objektet självt

Objekt som argument. Föreläsning 7-8 Innehåll. Hur komma åt den andra kvadratens attribut? Anropa metod på objektet självt Föreläsning 7-8 Innehåll Objekt som argument Antag att vi har lagt till följande metod i klassen Square (från lab 4). Mer om att skriva egna klasser Fel och felsökning Klasserna String och StringBuilder

Läs mer

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 Programmeringsteknik I 2016-03-17 Skrivtid: 1400 1900 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Föreläsning 7-8 Innehåll

Föreläsning 7-8 Innehåll Föreläsning 7-8 Innehåll Mer om att skriva egna klasser Fel och felsökning Klasserna String och StringBuilder Datavetenskap (LTH) Föreläsning 7-8 HT 2017 1 / 42 Objekt som argument Antag att vi har lagt

Läs mer

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 1 & 2 INTRODUKTION Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga

Läs mer

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser. (16 februari 2016 F5.1 ) Dagens text Programmeringsteknik Mer om Scanner-klassen Dialogrutor (klassen JOptionPane) Bubbelsortering ArrayList Omslagsklasser Arbetsexempel (16 februari 2016 F5.2 ) Pokertärningar

Läs mer

Föreläsning Innehåll. Hantera många element. Exempel: polygon Godtyckligt antal element. Exempel: polygon forts

Föreläsning Innehåll. Hantera många element. Exempel: polygon Godtyckligt antal element. Exempel: polygon forts Föreläsning 11-12 Innehåll Hantera många element Tidigare har vi använt vektorer för att lagra många element av samma tp. Eempel: Klassen ArraList Inläsning från tetfil, utskrift på tetfil int[] nbrs

Läs mer

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ orienterad programmering Föreläsning 3 Exempel: Telefonboken Fält som funktionsresultat Exempel Definiera static double[] vectorsum(double[] a, double[] b) Betrakta sedan följande kodavsnitt:... double[]

Läs mer

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

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga

Läs mer

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

4 13 / %.; 8 </ '':  / //&'   ' * TelefonKostnad +,-%&. #! $%  &' . > / ' 5 /' * 13/ &' static Math 1+ &'/ % 12  static ' * 1 /) %& & TelefonKostnad static Math static $ & )&* +,-&. 0 +& + & 3 356+573 ) & & 6 3 3 & 3 * 6 3.:; < = 3 = 6 ; < : & >?.;,;@.A@;0,0,? @B0 C,0 > *. > 5 C D & D 5 * &! ; 66C! * C, 0 E,&! 0 F,G0 >: = = C 3 & HI

Läs mer

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

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12 Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 12 I torsdags: Klassen TelefonKostnad Exemplifierar objektorienterad design, metoder, konstruktorer static Standardklassen Math Matematiska

Läs mer

1 Egna klasser. 1.1 En punkt-klass

1 Egna klasser. 1.1 En punkt-klass 1 Egna klasser Vi har bekantat oss med klasser genom att se hur vi kan använda olika klasser. I synnerhet klassen Scanner och klassen Math. För scannerklassen skapade vi en instans för att sedan utnyttja

Läs mer

Lösningsförslag till tentamen i EDA011, lördagen den 16 december 2006

Lösningsförslag till tentamen i EDA011, lördagen den 16 december 2006 Lösningsförslag till tentamen i EDA011, lördagen den 16 december 2006 Detta lösningsförslag är skrivet i stor hast, så det är möjligt att det innehåller en del slarvfel jag ber i så fall om ursäkt för

Läs mer

Tentamen, EDAA20/EDA501 Programmering

Tentamen, EDAA20/EDA501 Programmering LUNDS TEKNISKA HÖGSKOLA 1(4) Institutionen för datavetenskap Tentamen, EDAA20/EDA501 Programmering 2014 04 29, 8.00 13.00 Anvisningar: Denna tentamen består av tre uppgifter. Preliminärt ger uppgifterna

Läs mer

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. Tentamen Programmeringsteknik I 2014-10-17 Skrivtid: 0800-1300 Hjälpmedel: Java-bok 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

Läs mer

Rekursion och induktion för algoritmkonstruktion

Rekursion och induktion för algoritmkonstruktion Informationsteknologi Tom Smedsaas, Malin Källén 20 mars 2016 Rekursion och induktion för algoritmkonstruktion Att lösa ett problem rekursivt innebär att man uttrycker lösningen i termer av samma typ av

Läs mer

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

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar

Läs mer

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 1 & 2 INTRODUKTION Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga

Läs mer

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen (10 februari 2019 F4 1 ) Dagens föreläsning Sett i datorsalarna Mer om arrayer Matriser Formatering av utskrifter Inläsning med hjälp av Scanner-klassen (10 februari 2019 F4 2 ) Hört och sett if-loop Skall

Läs mer

Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet

Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet Programmering hh.se/db2004 Föreläsning 4: Fält samt Input/Output Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Lite om reella tal Vad kan man göra med reella tal? Utöver de

Läs mer

Algoritmexempel. Föreläsning 5-7 Innehåll. Summering Mönster. Summering Exempel: alternerande harmoniska serien

Algoritmexempel. Föreläsning 5-7 Innehåll. Summering Mönster. Summering Exempel: alternerande harmoniska serien Föreläsning 5-7 Innehåll Algoritm för summering Aritmetiska uttryck Logiska uttryck Algoritm för att beräkna max och min Repetition inför delmålskontroll 1 Teckenuttryck Slumptal Undervisningsmoment: föreläsning

Läs mer

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

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga. Tentamen Programmeringsteknik II 2015-05-26 Skrivtid: 0800 1300 Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift på nytt papper. Lägg

Läs mer

Instuderingsfrågor, del D

Instuderingsfrågor, del D Uppgift 1. Instuderingsfrågor, del D Objektorienterad programmering, Z1 I vilka av nedanstående problem behöver man använda sig av fält för att få en elegant lösning? I vilka problem är det är det onödigt/olämpligt

Läs mer

Saker du ska kunna Föreläsning 13 & 14

Saker du ska kunna Föreläsning 13 & 14 Saker du ska kunna Föreläsning 13 & 14 LISTOR Ta bort element från en vektor Både sorterad och osorterad Söka upp element i en vektor Linjärsökning räcker (jag har även visat binärsökning) Registrering

Läs mer

Del A (obligatorisk för alla)

Del A (obligatorisk för alla) Del A (obligatorisk för alla) A1. Ringa in rätt svarsalternativ eller skriv svar i ruta om sådan a) Satsen double x = (int)(1 + 3/2.0) + 3.; resulterar i b) Satsen int x = (int)(1 + 3/2.0) + 3.; resulterar

Läs mer

Tentamen ID1004 Objektorienterad programmering May 29, 2012

Tentamen ID1004 Objektorienterad programmering May 29, 2012 Omtentamen för ID1004 Objektorienterad programmering HT11, 29 maj 2012, 09-13 Denna tentamen examinerar 3 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av 12 frågor. Varje fråga

Läs mer

Tentamen, EDA501/EDAA20 Programmering M MD W BK L

Tentamen, EDA501/EDAA20 Programmering M MD W BK L LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen, EDA501/EDAA20 Programmering M MD W BK L 2017 05 31, 8.00 13.00 Anvisningar: Preliminärt ger uppgifterna 9 + 12 + 10 + 9 = 40 poäng.

Läs mer

TENTAMEN OOP

TENTAMEN OOP TENTAMEN OOP 2013-08-08 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli

Läs mer

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1 Institutionen för Data- och informationsteknik JSk TENTAMEN OBJEKTORIENTERAD PROGRAMVARUUTVECKLING Övningstentamen 1 OBS! Det kan finnas kurser med samma eller liknande namn på olika utbildningslinjer.

Läs mer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man

Läs mer

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 Programmeringsteknik I 2017-03-16 Skrivtid: 0800 1300 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

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 vakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2015-06-11 Skrivtid: 08:00 13:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Läs mer

Tentamen, EDA690 Algoritmer och Datastrukturer, Helsingborg

Tentamen, EDA690 Algoritmer och Datastrukturer, Helsingborg LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Tentamen, EDA690 Algoritmer och Datastrukturer, Helsingborg 2013 12 19, 8.00 13.00 Anvisningar: Denna tentamen består av 4 uppgifter. Preliminärt

Läs mer

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

Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 25 maj 2009 Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 25 maj 2009 Christian 5 mars 2010 Observera att poängen nedan är preliminära det är möjligt att vi korrigerar något

Läs mer

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 Programmeringsteknik I 2018-03-16 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Programmeringsteknik för BME, F och N

Programmeringsteknik för BME, F och N Programmeringsteknik för BME, F och N LÖSNINGSFÖRSLAG TILL ÖVNINGAR EDA011/017 2016/2017 LUNDS TEKNISKA HÖGSKOLA EDA011/017 Programmeringsteknik Institutionen för datavetenskap 2016/2017 Övning 1 1. int

Läs mer

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

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk

Läs mer

Föreläsning 3. Iteration while-satsen

Föreläsning 3. Iteration while-satsen Föreläsning 3 Iteration while-satsen Datatypen double I en dator kan man inte lagra hur stora eller hur små tal som helst. De enkla datatyperna, som används för att lagra tal (t.ex. int och double), har

Läs mer

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

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan. Bankkonto - övning Övningar att göra efter lärardemostration. Filen bankkonto.zip innehåller ett projekt med klassen Bankkonto. Zippa upp denna fil och öppna projektet i BlueJ och skriv vidare på klassen

Läs mer

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

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 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 riktiga provet tar 45 minuter (en lektionstimme) och det

Läs mer

Chapter 4: Writing Classes/ Att skriva egna klasser.

Chapter 4: Writing Classes/ Att skriva egna klasser. Chapter 4: Writing Classes/ Att skriva egna klasser. I dessa uppgifter kommer du att lära dig om hur man definierar egna objekt genom att skriva klasser. Detta är grunden för att förstå objekt orienterad

Läs mer

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser. (1 oktober 2017 F5 1 ) Dagens text Programmeringsteknik Mer om Scanner-klassen Dialogrutor (klassen JOptionPane) Bubbelsortering ArrayList Omslagsklasser Arbetsexempel (1 oktober 2017 F5 2 ) Pokertärningar

Läs mer

[] Arrayer = Indexerad variabel

[] Arrayer = Indexerad variabel [] Arrayer = Indexerad variabel Lagra många värden i en variabel Jmfr inom matematiken, variabler x 0, x 1, x 2, I detta dokument tas upp hur man skapar och hanterar sådana variabler i java. Dessa kallas

Läs mer

Tentamen i Programmeringsteknik MN

Tentamen i Programmeringsteknik MN Tentamen i Programmeringsteknik MN1 001204 Skrivtid : 14.00-19.00 Hjälpmedel : Skansholm, Java direkt eller motsvarande Pärt-Enander mfl, Anv. handledning för Matlab. Matlab-material utdelat på lektion.

Läs mer

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

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten? Programmeringsteknik och Matlab Övning 4 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312

Läs mer

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 vakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2015-03-19 Skrivtid: 14:00 19:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Läs mer

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander F2 Datatyper och variabler ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Datatyper Java är ett starkt typat språk Varje slags data har en datatyp Datatyp Javasyntax Exempel Teckensträng

Läs mer

Del A (obligatorisk för alla)

Del A (obligatorisk för alla) Del A (obligatorisk för alla) A1. Ringa in rätt svarsalternativ eller skriv svar i ruta om sådan a) Vad blir resultatet av följande kod? b) Satsen double h = (double)(1/10); double s = 0; for (int i= 1;

Läs mer

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

Programmering för språkteknologer II, HT2011. Rum Programmering för språkteknologer II, HT2011 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv11/pst2/ Kursplan Mål Efter avslutad kurs skall studenten för att förtjäna betyget

Läs mer

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

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det

Läs mer

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P UME UNIVERSITET Datavetenskap 981212 TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P Datum : 981212 Tid : 9-15 HjŠlpmedel : Inga Antal uppgifter : 9 TotalpoŠng : 60 (halva pošngtalet kršvs normalt fšr

Läs mer

Föreläsning 10 OM DELMÅLSKONTROLLEN ; VARIABLERS SYNLIGHET STRING OCH STRINGBUILDER

Föreläsning 10 OM DELMÅLSKONTROLLEN ; VARIABLERS SYNLIGHET STRING OCH STRINGBUILDER Föreläsning 10 OM DELMÅLSKONTROLLEN ; VARIABLERS SYNLIGHET STRING OCH STRINGBUILDER Denna vecka Läsperiodens sista föreläsning Uppsamlingslabb (laboration 6 redovisas först nästa läsperiod) Ingen resurstid

Läs mer

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 Programmeringsteknik I 2019-03-22 Skrivtid: 14:00 19:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Laboration 1. kompilera-ikonen exekvera-ikonen Syfte Laboration 1. Objektorienterad programmering, Z1 Syftet med denna laboration är dels att göra dej bekant med de verktyg som kan vara aktuella i programmeringsarbetet, dels ge en första inblick i

Läs mer

public och private Obs: private inte skyddar mot access från andra objekt i samma klass.

public och private Obs: private inte skyddar mot access från andra objekt i samma klass. public och private En metod som är public får anropas från alla metoder i alla klasser. Ett attribut som är public får avläsas och ändras från alla metoder i alla andra klasser. En metod som är private

Läs mer

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser // En första version av BankKonto-klassen class BankKonto { private String namn; private long nr; private double saldo; private double ränta; // Klassen TestaBankKonto // Klassens uppgift är att skapa

Läs mer

Tentamen, EDA501 Programmering M L TM W K V

Tentamen, EDA501 Programmering M L TM W K V LUNDS TEKNISKA HÖGSKOLA 1(0) Institutionen för datavetenskap Tentamen, EDA501 Programmering M L TM W K V 2010 05 31, 8.00 13.00 Anvisningar: Denna tentamen består av 4 uppgifter. Preliminärt ger uppgifterna

Läs mer

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen (5 februari 2018 F4 1 ) Dagens föreläsning Sett i datorsalarna Mer om arrayer Matriser Formatering av utskrifter Inläsning med hjälp av Scanner-klassen Ett exempel med dialogrutor Java-doc Kommer först

Läs mer

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. Tentamen Programmeringsteknik I 2012-06-04 Skrivtid: 1400-1700 Hjälpmedel: Java-bok 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

Läs mer

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 ä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. Tentamen Programmeringsteknik I 2011-03-17 Skrivtid: 1400-1700 Hjälpmedel: Java-bok Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift

Läs mer

Iteration while-satsen

Iteration while-satsen Datatypen double TDA143 I1 Programmerade system Föreläsning 3 (OH-bilder 3) Iteration while-satsen Christer Carlsson I en dator kan man inte lagra hur stora eller hur små tal som helst. De enkla datatyperna,

Läs mer

Programmering och databaser

Programmering och databaser Programmering och databaser KURSKOMPENDIUM EDAA20 http://cs.lth.se/edaa20 2017/2018 EDAA20 Programmeringsteknik, godkända obligatoriska uppgifter 2017/2018 Skriv ditt namn och din namnteckning nedan:

Läs mer

LÖSNINGSFÖRSLAG TENTAMEN

LÖSNINGSFÖRSLAG TENTAMEN LÖSNINGSFÖRSLAG TENTAMEN OBJEKTORIENTERAD PROGRAMMERING I JAVA 5P FRISTÅENDE KURS, DAG (ITM - ÖSTERSUND) MÅNDAG 2 JUNI, 2003, KL. 8-13 TID: 5 TIMMAR ANTAL UPPGIFTER: 8 MAX POÄNG: 43 BETYGSKALA: UNDERKÄND

Läs mer

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.

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. 1 Uppgift 1 Klassen Company Banken FinanceTrust som tidigare bara haft privatpersoner som kunder vill nu bygga ut sitt datasystem så att även företag kan registreras som kunder. Skriv klassen Company som

Läs mer

Programmering A. Johan Eliasson johane@cs.umu.se

Programmering A. Johan Eliasson johane@cs.umu.se Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer

Läs mer

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

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 Hjälpmedel: Inga hjälpmedel är tillåtna

Läs mer

Föreläsning 1-2 innehåll

Föreläsning 1-2 innehåll Föreläsning 1-2 innehåll Om kursen Kursens mål och innehåll Praktisk information om kursen Programmering program, algoritmer variabler, datatyper och tilldelningssatser läsa in värden från tangentbordet,

Läs mer

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 Programmeringsteknik I 2016-06-11 Skrivtid: 0900 1400 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Tentamen på kursen DA7351, Programmering 1. 051102, kl 08.15-12.15. Malmö högskola Teknik och samhälle. DA7351, Programmering 1 1 051102

Tentamen på kursen DA7351, Programmering 1. 051102, kl 08.15-12.15. Malmö högskola Teknik och samhälle. DA7351, Programmering 1 1 051102 Tentamen på kursen DA7351, Programmering 1 051102, kl 08.15-12.15 Tillåtna hjälpmedel: Valfri bok om Java. Vid bedömning av lösningarna tas hänsyn till om dessa uppfyller de krav på programkvalitet (strukturering,

Läs mer

1 Repetition av viktiga begrepp inom objektorienterad programmering

1 Repetition av viktiga begrepp inom objektorienterad programmering Repetition av viktiga begrepp inom objektorienterad programmering 3 1 Repetition av viktiga begrepp inom objektorienterad programmering Tema: Arv, parameteröverföring, statiska attribut och metoder. Litteratur:

Läs mer