725G61 - Laboration 4 Interaktion och I/O. Johan Falkenjack

Storlek: px
Starta visningen från sidan:

Download "725G61 - Laboration 4 Interaktion och I/O. Johan Falkenjack"

Transkript

1 725G61 - Laboration 4 Interaktion och I/O Johan Falkenjack November 5, 2013

2 1 Inledning I labb 1-3 har vi tittat på de grundläggande byggstenarna i programmering. Vi kommer återkomma till detta ämne när vi börjar titta på objektorientering i labb 5. I den här labben kommer vi dock fokusera på lite mer praktiska detaljer om interaktion. En användare kommunicerar med ett program genom ett gränssnitt. Idag har de allra flesta datorprogram ett GUI, Graphical User Interface. Dessa kan i Java konstrueras t.ex. med ramverket Swing. Att bygga sådana grafiska gränssnitt är dock tidskrävande och förhållandevis komplicerat. Ni kommer få testa ett mycket enkelt fall i slutet av den här kursen. En enklare form av gränssnitt är en textbaserad interaktionsloop. Fram till 90-talet byggde alla program på sådana interaktionsloopar och många mer avancerade användare använder sig fortfarande av program med sådana interaktionsloopar. För er som är Linux-användare eller använt kommandoprompten i Windows är interaktionsloopar inte helt nytt. Interaktionsloopar erbjuder inte lika mycket valfrihet och simultant arbete som ett GUI men å andra sidan kan man arbeta mer fokuserat med en enskild uppgift. Många mer avancerade program har interaktionsloopar som kan hantera mycket långa och komplicerade kommandon som i sig nästan kan kallas för program. Många programspråk, som t.ex. Python och Lisp, kan också programmeras direkt i en sådan interaktionsloop. Vi ska i den här labben bygga upp ett litet program som använder sig av interaktionsloopar. 2 Enkel inmatning I labb två använde vi oss av klassen Scanner för att göra mycket enkel inmatning. Här ska vi titta mer på Scanner och hur den fungerar för olika typer av inmatning. I labb två läste vi bara in strängar, det går dock att mata in andra typer också. 1

3 Övning class IntegerInput { 2 public static void main (String[] args) 3 throws Exception { 4 java.util.scanner in = 5 new java.util.scanner (System.in); 6 System.out.print("an integer: "); 7 int int1 = in.nextint(); 8 System.out.print("an integer: "); 9 int int2 = in.nextint(); 10 int sum = int1 + int2; 11 System.out.println("sum: " + sum); Exekvera det här programmet flera gånger, mata in olika heltal olika gånger. Vad händer om du tillför programmet ett, två respektive tre heltal vid den första inmatningen? Vad händer om du trycker på returtangenten utan att ha matat in ett heltal? Vad händer om du skriver in ett tecken istället för ett heltal? Scanner är dock bara en wrapper för System.in.read() som ger oss lite extra funktionalitet och gör det lite enklare. I vissa fall används dock System.in.read() direkt. Övning class CharacterInput { 2 public static void main (String[] args) 3 throws Exception { 4 System.out.print("a charcter: "); 5 char c = (char) System.in.read(); 6 System.out.print("another character: "); 7 int code = System.in.read(); 8 System.out.println("The first character: " 9 + c); 10 System.out.println("The Unicode-code for the " + 11 "second character: " + code); Exekvera programmet flera gånger och mata in olika tecken. skapas? Vilken utskrift 2

4 Övning class EmptyingBuffer { 2 public static void main (String[] args) 3 throws Exception { 4 System.out.print("a character: "); 5 char c1 = (char) System.in.read(); 6 System.in.read(); 7 // System.in.read(); 8 System.out.print("a charcter: "); 9 char c2 = (char) System.in.read(); 10 System.out.println("the characters: " + 11 c1 + " " + c2); Exekvera det här programmet flera gånger, mata in olika tecken olika gånger. Vad händer om ett, två respektive tre tecken tillförs programmet vid den första inmatningen? Vad händer om man bara trycker på returtangenten? Vad händer om kommentarsmarkeringen tas bort? Övning 4.4 Skriv ett program som låter användaren mata in ett heltalsvärde och ett flyttalsvärde, och som sedan undersöker om heltalsvärdet är mindre än flyttalsvärdet, lagrar och skriver ut resultatet av jämförelsen. Exekvera programmet med olika värden, t ex 1 och 1.2, 1 och -1.2, 1 och 1.0 osv. 3 Interaktionsloopen I det här avsnittet, och i resten av labben, kommer vi arbeta med och runt en interaktionsloop. 3

5 UPPGIFT 4.1 Skapa en ny klass som heter Interaction. Innan vi gör något annat ska vi skapa två egna utskriftsmetoder. Detta kan verka lite konstigt men ni kommer förstå senare i labben varför vi gör detta. Den första metoden ska heta print() och ska ta ett sträng och skriva ut den med System.out.print(), dvs utan en extra radbrytning. Den andra metoden heter printline() och ska ta en sträng, lägga till en radbrytning i slutet, och skicka resultatet till print(). En radbrytning i en sträng representeras av specialtecknet \n. Viktigt att veta är att när man anropar System.out.print() respektive System.out.println() så konverteras automatiskt argumentet till en sträng. Nu när vi skapat våra egna wrappers för dessa måste vi själva konvertera argumentet till en sträng. Det görs för primitiva datatyper med metoden String.valueOf(). UPPGIFT 4.2 I den här uppgiften ska ni lägga grunden för resten av uppgifterna i labben. På alla ställen där något skrivs ut ska ni använda print() och printline() från uppgift 4.1. Skapa en metod i Interaction som heter toploop() som inte tar några argument och inte returnerar något. Metoden toploop() ska innehålla en evig while-loop som skriver ut "» " och sedan läser in ett kommando och hanterar det. Om kommandot är "quit" ska loopen avbrytas (använd en if-sats och break för att avbryta loopen snarare än ett predikat i while-satsen). Annars ska ingenting göras och loopen ska bara fortsätta. Ni ska också skapa en main-metod som skriver ut "Welcome to the program.\nwrite quit to quit.", anropar toploop() och sist skriver ut "Quitting program, goodbye!". Kom ihåg att använda print() och printline(). Här kommer ett exempel på hur det kan se ut när programmet körs: Welcome to the program. Write quit to quit. >> test >> help >> dsfg >> 123 >> gfsd >> >> quit Quitting program, goodbye! Precis som i labb 2 har vi nu skapat en mycket enkel interaktionsloop. Traditionellt sett brukar det dock inte vara så här enkelt att avsluta ett program. Programmerare vill oftast att användarna ska sitta kvar vid programmet så 4

6 länge så därför vill man vara säker på att användaren verkligen vill avsluta. Härifrån kommer det klassiska "är du säker på att du vill avsluta"-fenomenet. Vissa anser detta vara ett otyg men då man faktiskt ibland gör fel och råkar avsluta för tidigt så ska vi skapa just en sådan funktionalitet i vårt program. UPPGIFT 4.3 Skapa en metod som skriver ut frågan "Write y if you really want to quit: " som sedan läser in en sträng, om strängen är "y" ska metoden returnera true, om strängen är något annat ska metoden returnera false. Anropa metoden på lämpligt sätt från toploop() så att den används när man försöker avsluta. Här kommer en exempelinteraktion: Welcome to the program. Write quit to quit. >> quit Write y if you really want to quit: >> quit Write y if you really want to quit: n >> quit Write y if you really want to quit: yes >> quit Write y if you really want to quit: y Quitting program, goodbye! 4 Hantering av kommandon Normalt sett vill man att ett program ska informera om det får input som det inte kan tolka. Säg t.ex. att vi tror att det finns ett kommando "add" som lägger ihop en serie heltal och skriver ut summan. Om man testar och det visar sig att add inte exister brukar "Unknown command add " eller något liknande skrivas ut. Vi ska nu se till att vårt program gör just det. Men först kommer en övning på att dela upp strängar. 5

7 Övning public class SplitExample { 2 public static void main(string args[]) { 3 String fullstring = "fish-eggs-milk"; 4 String delimiter = "-"; 5 String[] temp = fullstring.split(delimiter); 6 for(string part : temp) { 7 System.out.println(part); Vilken utskrift får du när du exekverar det här programmet? Försök att förutsäga vilken utskriften kommer att bli innan du exekverar programmet, kontrollera sedan om det stämmer och analysera resultatet. Prova att byta ut strängen fullstring mot olika strängar och delimiter mot olika tecken. UPPGIFT 4.4 Skapa en ny metod handleinput() som tar en String-array som input. Metoden ska sedan skriva ut "Unknown command kommando " där kommando är det första elementet i arrayen. Metoden handleinput() ska anropas från toploop() på ett lämpligt sätt (skriver man inget alls ska loopen bara fortsätta precis som tidigare). Använd den inbyggda metoden split() för strängar för att dela upp inputsträngen som läses in. Här kommer en exempelinteraktion: Welcome to the program. Write quit to quit. >> >> g Unknown command g >> add 1 2 Unknown command add >> quit Write y if you really want to quit: y Quitting program, goodbye! Ofta vill man skicka med argument till ett kommando, som t.ex. add. Till add skickade vi en serie heltal. Implementationen av Scanner innebär dock att vi läser in dessa tal som strängar. På något sätt måste vi alltså konvertera strängarna till heltal. Det fungerar inte att använda vanliga casts så som vi 6

8 gjorde i labb 1. I klassen Integer finns metoden parseint() som tar en sträng och, om den kan tolkas som ett heltal, returnerar motsvarande heltal. Klassen String har en motsvarande metod, valueof(), som nämndes i uppgift 4.1, som konverterar t.ex. ett heltal till en sträng. Övning 4.6 public class StringConversion { public static void main(string[] args) { System.out.println(1 + 1); System.out.println(String.valueOf(1) + 1); String number = "1"; System.out.println(number + number); System.out.println(number + Integer.parseInt(number)); System.out.println(Integer.parseInt(number) + Integer.parseInt(number)); Vilken utskrift får du när du exekverar det här programmet? Försök att förutsäga vilken utskriften kommer att bli innan du exekverar programmet, kontrollera sedan om det stämmer och analysera resultatet. 7

9 UPPGIFT 4.5 I den förra uppgiften försökte, och misslyckades, vi använda kommandot add. I den här uppgiften ska vi implementera just det kommandot. Skapa en metod add() som tar en String-array som innehåller hela add-kommandot (t.ex. "add", "1", "1" och som beräknar och skriver ut summan av de inskickade heltalen, använd String.valueOf() för att konvertera summan till en sträng. Lägg sedan till funktionalitet i handleinput() för att identifiera kommandot add och anropa metoden med samma namn. Andra kommandon ska fortfarande resultera i "Unknown command". a Här kommer en exempelinteraktion: Welcome to the program. Write quit to quit. >> fdsf Unknown command fdsf >> add 0 >> add >> quit Write y if you really want to quit: y Quitting program, goodbye! a Här hade det kunnat vara aktuellt att använda en switch-sats och lägga till fall allt eftersom och ha Unknown command i default-fallet. I den Java-version vi använder i kursen (1.6) kan man dock inte switcha på String utan bara på primitiva datatyper så istället får man använda if. Från och med Java 1.7 går det att switcha även på String. 5 Undantag - Exceptions I tidigare labbar har vi tittat på styrstrukturen if, och i den här labben har vi använt if för att göra viss grundläggande felhantering, dvs att kontrollera att kommandot vi försöker använda faktiskt finns. Ett mer Java-likt sätt att sköta felhantering är att använda undantag, eller exceptions. Undantag är ett sätt att "bevaka" ett program och hantera olika typer av fel när de uppstår och på den mest lämpliga nivån. När vi använder if för felhantering måste vi i förväg komma på var olika fel kan uppstå och kolla att t.ex. indata till en metod inte kommer få metoden att krascha. När vi använder undantag behöver vi bara veta vilken typ av fel som kan uppstå och var det ska hanteras. Undantag används på följande sätt: Omge ett stycke kod med en så kallad try-sats, om ett fel uppstår under körningen av koden i denna try-sats (oavsett 8

10 hur många funktionsanrop bort) så kastas ett undantag som tas emot av en catch-sats. En catch-sats kan liknas vid en else-sats. Här kommer en övning som visar hur vi kan se till att inte programmet kraschar när vi försöker hämta ut värdet på ett index som inte finns i en array. Övning 4.7 import java.io.*; public class ExcepTest{ public static void main(string args[]){ int a[] = new int[2]; System.out.println("Access element three :" + a[3]); System.out.println("Out of the block"); Vilken utskrift får du när du exekverar det här programmet? Försök att förutsäga vilken utskriften kommer att bli innan du exekverar programmet, kontrollera sedan om det stämmer och analysera resultatet. Lägg sedan till rader så att det istället ser ut såhär: import java.io.*; public class ExcepTest{ public static void main(string args[]){ try { int a[] = new int[2]; System.out.println("Access element three :" + a[3]); catch(arrayindexoutofboundsexception e) { System.out.println("Exception thrown :" + e); System.out.println("Out of the block"); Vilken utskrift får du när du exekverar det här programmet? Försök att förutsäga vilken utskriften kommer att bli innan du exekverar programmet, kontrollera sedan om det stämmer och analysera resultatet. Vad händer om du byter ut koden i catch-blocket mot följande? e.printstacktrace(); 9

11 UPPGIFT 4.6 Nu går vi tillbaka till programmet som innehåller vår interaktionsloop, vad händer när du kör add f s? Lägg till en try-catch-sats i metoden add för att fånga exceptions som kastas av Integer.parseInt() när man försöker mata in något annat än heltal som argument. Börja med att fånga det undantag som kastas, dvs ett generellt undantag av typen Exception, och kör i catch-blocket metoden printstacktrace() på undantaget som fångats för att se vilken typ av undantag som kastas. Vad händer med exekveringen av programmet i övrigt när vi lagt till en trycatch-sats i add()? Kommer programmet fortfarande krascha och avslutas? Ändra sedan catch-raden så att bara den specifika undantagstypen som faktiskt kastas kommer att fångas. När det är gjort ska kroppen i catch-satsen ändras så att den avbryter beräkningen av summan och skriver ut "Argument error: The add command can only add integers." Exempelkörning: Welcome to the program. Write quit to quit. >> add >> add 1 d 3 Argument error: The add command can only add integers. >> add I vissa fall vill man att ens kod ska kasta undantag även där Java självt inte identifierar ett fel. Man kan t.ex. hantera felaktig input redan innan felet orsakat problem i någon operation senare i programmet. För att kasta ett undantag använder man kommandot throw, se Övning 4.8 för ett exempel. Där kan vi också se hur man kan hänga på flera catch-block på en try för att fånga olika typer av undantag, och därmed kunna hantera olika typer av fel på olika sätt. 10

12 Övning 4.8 public class ThrowExample { public static void main(string[] args) { Scanner in = new Scanner(System.in); int[] positive = {0, 1, 2, 3; try { System.out.println("Input one of the first" + " three positive integers."); int index = Integer.parseInt(in.nextLine()); if (index == 0) { throw new IndexOutOfBoundsException(); System.out.println(positive[index]); catch (NumberFormatException e) { System.out.println("You think that s " + "an integer?!"); catch (IndexOutOfBoundsException e) { System.out.println("Sorry, that " + "index isn t availible!"); Testkör programmet. Vad händer när man skickar in olika värden? Prova att skicka in olika heltal, t.ex. 0 och 2, men också något annat tecken som t.ex. a. 6 Hjälp För att para ihop data när man programmerar kan man i de enklaste fallen använda associationstabeller eller associationslistor. Detta är en typ av datastruktur som används på ett liknande sätt som en array, med den skillnaden att man inte hämtar ut ett värde med ett index utan med en nyckel. En nyckel kan vara t.ex. ett tecken, eller en sträng, eller liknande. Kärt barn har många namn och precis som för subrutiner finns det många namn på associationstabeller. Ett namn som används t.ex. av programmeringsspråket Python är dictionary, detta namn ger ett exempel på hur en associationstabell kan användas, som en ordbok med uppslagsord kopplade till en beskrivning. Ett annat vanligt namn är map, som kommer från det engelska ordet för en funktion som för ett givet input alltid ger ett visst output. Slå upp HashMap i JavaDoc och ta reda på hur en sådan fungerar i Java inför nästa uppgift. Använd Google för att hitta exempel om det behövs. 11

13 UPPGIFT 4.7 Vi ska nu skapa ett hjälp-kommando. Skapa en global variabel (static-variabel som ligger utanför metoder och direkt i klassen) som heter helpdata och som är en HashMap med strängar både som nyckel och värde. När det är gjort ska ni lägga till alla kommandon som finns i programmet som nycklar och en kort beskrivning av dessa som motsvarande värde (detta bör göras först i mainmetoden), se i exemplet nedan hur beskrivningarna kan se ut. Skapa sedan en metod för kommandot help. Kommandot help ska fungera på följande sätt: >> help Available commands: help add quit >> help add Add a series of integers. >> help help Displays a help message. >> help quit Ends the program. >> help lol Unknown command lol >> 7 Filhantering Vi har nu provat att läsa in från tangentbordet och vi har länge kunnat skriva ut till skärmen. Detta är dock bara en typ av I/O (input/output, dvs ett programs kommunikation med omvärlden). En annan viktig typ av I/O är filhantering, dvs att kunna läsa från och skriva till fil. Det ska vi öva på i det här avsnittet. 12

14 Övning class WriteReadExample { 2 public static void main (String[] args) { 3 String f = new String ("seasons.txt"); 4 try { 5 FileWriter fout = new FileWriter(f); 6 fout.write("winter spring summer autumn"); 7 fout.close(); 8 FileReader fin = new FileReader(f); 9 char[] c = new char[100]; 10 int n = fin.read(c); 11 for (int i = 0; i < n; i++) { 12 System.out.print(c[i]); fin.close(); 15 catch (IOException e) { 16 e.printstacktrace(); Vad händer när det här programmet exekveras? Hur ser filen som skapas ut? Vad gör vi på rad 10 och varför? Vilken utskrift får man på standardutmatningsenheten? Titta på JavaDoc för FileWriter om ni behöver. 13

15 Övning class BRExample { 2 public static void main (String[] args) { 3 String f = new String ("seasons.txt"); 4 try { 5 FileWriter fout = new FileWriter(f); 6 fout.write("winter\nspring\nsummer\nautumn"); 7 fout.close(); 8 BufferedReader br = 9 new BufferedReader(new FileReader(f)); 10 String line; 11 while ((line = br.readline())!= null) { 12 System.out.println(line); br.close(); 15 catch (IOException e) { 16 e.printstacktrace(); Vad händer när det här programmet exekveras? Hur ser filen som skapas ut? Vilken utskrift får man på standardutmatningsenheten? Vad är fördelen med det här tillvägagångssättet jämfört med en ren FileReader? På kurshemsidan, i anslutning till labbarna, finns javaklassen MakeStory. Ladda ner den och importera den i ditt projekt. Lägg sedan till metoden makestory() som finns nedan i Interaction. Lägg sedan till kommandot story i toploop och i helpdata (med beskrivningen "Generate a story".) och testa att det fungerar att generera en saga. private static void makestory() { Scanner in = new Scanner(System.in); print("what is thy name? "); MakeStory.name = in.nextline(); print("what is thy title? "); MakeStory.title = in.nextline(); print("what is thy appearance? "); MakeStory.appearance = in.nextline(); print("have you got a magic bag? (y/n)"); if (in.nextline().equals("y")) { MakeStory.magic_bag = true; else { 14

16 MakeStory.magic_bag = false; print("are you happy? (y/n)"); if (in.nextline().equals("y")) { MakeStory.happy = true; else { MakeStory.happy = false; print("have you got a secret? (y/n)"); if (in.nextline().equals("y")) { MakeStory.secret = true; else { MakeStory.secret = false; printline(makestory.generate()); UPPGIFT 4.8 Modifiera kommandot story och metoden makestory() så att man kan ge story ett argument. Argumentet ska vara ett filnamn och när man kör exempelvis följande >> story out.txt så ska den genererade sagan skrivas till filen out.txt istället för att skrivas ut på skärmen. Får story inget argument ska sagan skrivas ut på skärmen som tidigare. Kom ihåg att inte duplicera kod mer än nödvändigt. UPPGIFT 4.9 På kurshemsidan finns filen wizards.txt som är i så kallat CSV-format, Comma Separated Values. Skapa ett kommando generatestories som tar ett filnamn som argument, läser in filen och genererar sagor utifrån de värden som finns i filen och skriver dessa till skärmen. 8 Redovisning Nu när ni är färdiga med alla uppgifter är det dags at lämna in era lösningar för Uppgift 4.1 till 4.9 för rättning. Gå igenom era lösningar en extra gång och se till så att hi har kommenterat er kod, och testkört den noga så att ni är säkra på att alla lösningar fungerar. Samla ihop kodfilerna (filerna som slutar på.java) i ett zip-arkiv och ladda upp zip-filen under Labb4 i LISAM. Glöm inte att skriva namnen på båda gruppmedlemmarna i kommentarsfältet vid inlämningen. 15

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

Att skriva till och läsa från terminalfönstret Att skriva till och läsa från terminalfönstret Oftast används grafiska komponenter i Java för att kommunicera med användaren (användargränssnitt), men det finns objekt i standardbiblioteken för de tillfällen

Läs mer

725G61 - Laboration 2 Loopar och arrayer. Johan Falkenjack

725G61 - Laboration 2 Loopar och arrayer. Johan Falkenjack 725G61 - Laboration 2 Loopar och arrayer Johan Falkenjack October 29, 2013 1 Inledning I labb 1 lärde vi oss om de primitiva datatyperna (och lite om String). Vi lärde oss också att använda variabler av

Läs mer

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

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning. Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java

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

Parsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck

Parsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck Betrakta följande uttryck a +(b + c) d + e (f + g h) Parsing med Recursive Descent, Avbildningsklasser Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 22 november 2010 Beräkning med regler: multiplikation

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Felhantering Eclipse Felsökning Command line argumenter

Läs mer

//Använd main som ett "handtag" för att hålla ihop programmet. //Själva programmet finns i övriga klasser.

//Använd main som ett handtag för att hålla ihop programmet. //Själva programmet finns i övriga klasser. /*==================================================================== Detta program hör ihop med dokumentet EXEMPEL_AVERAGE_POINTS.PDF där det finns förklaringar. ======================================================================*/

Läs mer

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016 Command line argumenter Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 /* Cla. java * Programmet illustrerar

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

F4. programmeringsteknik och Matlab

F4. programmeringsteknik och Matlab Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F12:1 OOP Objekt-orienterad programmering Föreläsning 12 Mer om JOptionPane Undantagshantering Vad är det? try catch Kasta egna undantag Filhantering spara objekt mellan körningar Användardialog via

Läs mer

Föreläsnings 9 - Exceptions, I/O

Föreläsnings 9 - Exceptions, I/O Föreläsnings 9 - Exceptions, I/O Josef Svenningsson Tisdag 6/11 Undantag - Exceptions Kommer ni ihåg det här programmet? Det var ett av de första ni såg i första föreläsningen. import javax.swing.*; public

Läs mer

Lite mer om Javas stöd för fält. Programmering. Exempel: vad är det största talet? hh.se/db2004. Fält samt Input/Output

Lite mer om Javas stöd för fält. Programmering. Exempel: vad är det största talet? hh.se/db2004. Fält samt Input/Output Programmering hh.se/db2004 Föreläsning 5: Fält samt Input/Output Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Lite mer om Javas stöd för fält Hur många element har ett fält?

Läs mer

Språkkonventioner och redigering av tal.

Språkkonventioner och redigering av tal. Språkkonventioner och redigering av tal. Kap J3-1 Konventioner för olika språk hanteras med hjälp av klassen java.util.locale Ett objekt i denna klass beskriver en lokal konvention. Lokala konventioner

Läs mer

725G61 - Laboration 3 Metoder och abstrakta datatyper. Johan Falkenjack

725G61 - Laboration 3 Metoder och abstrakta datatyper. Johan Falkenjack 725G61 - Laboration 3 Metoder och abstrakta datatyper Johan Falkenjack October 29, 2013 1 Förberedelse Några av klasserna i labb 3 har samma namn som i labb 1 och 2 så antingen måste man skapa ett nytt

Läs mer

Föreläsning 6: Undantag, filhantering samt flera användbara klasser

Föreläsning 6: Undantag, filhantering samt flera användbara klasser Föreläsning 6: Undantag, filhantering samt flera användbara klasser Eva Blomqvist eva.blomqvist@liu.se Linköpings universitet Sweden November 11, 2013 1 Innehåll Undantag Filhantering Flera användbara

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

Tentamen , Introduktion till Java, dtaa98, dtea53

Tentamen , Introduktion till Java, dtaa98, dtea53 Mittuniversitetet 2007-09-01 Institutionen för informationsteknologi och medier Sid:1(3) dtaa98, dtea53 Martin Kjellqvist; Linda Karlsson, Ulf Reiman Lösningsansatser Tentamen 2007-09-01, Introduktion

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F2:1 OOP Objekt-orienterad programmering Föreläsning 2 Input/Output Programsatser Selektion Output OOP F2:2 Görs via System.out, anropa antingen print eller println: System.out.print("Hej"); System.out.println(

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

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

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,

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

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F6:1 OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList tostring() metoden this Vi vill ofta hantera många objekt i ett program: OOP F6:2 public

Läs mer

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Laboration 2 Objektorienterad programmering i Java I Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Syfte: Att kunna använda sig av olika villkors- och kontrollflödeskonstruktioner

Läs mer

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

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel Idag Ett exempel Undantag Substitutierbarhet, subtyper, subklasser När val av metod beror av typerna hos två objekt Lite om överlagring Exempel, version 2 Notera: för samtliga figurer gäller: arean av

Läs mer

Föreläsning 14. Filhantering

Föreläsning 14. Filhantering Föreläsning 14 Filhantering Filhantering Att hantera filer, dvs att läsa eller skriva data till en fil är en viktig del i de flesta program. Ur Javas synvinkel är filer objekt med egenskaper och metoder

Läs mer

Felhantering TDDD78, TDDE30, 729A

Felhantering TDDD78, TDDE30, 729A Felhantering TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Felhantering 2 Ofta antar vi att allt ska fungera Alla filer vi behöver finns går att öppna Tillräckligt mycket minne finns Servrar som

Läs mer

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker

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

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker

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

Algoritmer. Två gränssnitt

Algoritmer. Två gränssnitt Objektorienterad programmering E Algoritmer Sökning Linjär sökning Binär sökning Tidsuppskattningar Sortering Insättningssortering Föreläsning 9 Vad behöver en programmerare kunna? (Minst) ett programspråk;

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

Tentamen FYTA11 Javaprogrammering

Tentamen FYTA11 Javaprogrammering Lunds universitet FYTA11 Institutionen för Astronomi och Teoretisk fysik HT 12 Tentamen FYTA11 Javaprogrammering Onsdag 9 januari 2013, 10:15 14:15 Instruktioner Hjälpmedel: Papper och penna. Behandla

Läs mer

JAVAUTVECKLING LEKTION 7

JAVAUTVECKLING LEKTION 7 JAVAUTVECKLING LEKTION 7 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Olika språkversioner (Klassen Locale) Utskrift i kommandofönster Inläsning via kommandofönster Standardklassen

Läs mer

Föreläsning 3. Stack

Föreläsning 3. Stack Föreläsning 3 Stack Föreläsning 3 ADT Stack Stack JCF Tillämpning Utvärdera ett postfix uttryck Stack implementerad med en array Stack implementerad med en länkad lista ADT Stack Grundprinciper: En stack

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

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

Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine.

Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine. Outline Objektorienterad Programmering (TDDC77) Föreläsning XIV: Undantag, Design Ahmed Rezine IDA, Linköpings Universitet Undantag Design Hösttermin 2017 En frukt har ett namn Man kan lägga en frukt i

Läs mer

Numeriska Metoder och Grundläggande Programmering för P1, VT2014

Numeriska Metoder och Grundläggande Programmering för P1, VT2014 Numeriska Metoder och Grundläggande Programmering för P1, VT2014 Föreläsning 2: Styrstrukturer & Programmeringsstrategi (Kap. 3 4 i MATLAB Programming for Engineers, S. Chapman) January 21, 2014 Innehåll:

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

"if"-satsen. Inledande programmering med C# (1DV402)

if-satsen. Inledande programmering med C# (1DV402) "if"-satsen Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll i verket if-satsen

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

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

SMD 134 Objektorienterad programmering

SMD 134 Objektorienterad programmering SMD 134 Objektorienterad programmering Dagens agenda: Typer i Java: primitiva datatyperna, referenstyper Variabler och variabeltilldelningar med primitiva typer Konstanter av de olika typerna. Heltalsräkning

Läs mer

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

Uppgift: Algoritm för att beräkna kontrollsiffran i ett personnummer givet de 9 första siffrorna. Torrsimning av algoritm för personnummer F6 Observera att när man utvecklar program så är inte alla lösningar på vägen korrekta. Speciellt den här gången så finns många OH med program som inte fungerar eftersom det är just det vi skall se på

Läs mer

Översikt. Skriva och läsa data. Kontrollflöde. Två sorters loopar. For-loop. For-loop

Översikt. Skriva och läsa data. Kontrollflöde. Två sorters loopar. For-loop. For-loop Översikt Repetition for-loopar Skriva till och läsa från filer Strömmar Eclipse Hur anpassa till vad du gillar? Skriva och läsa data Institutionen för datavetenskap Programmering 1 Rita Kovordányi 2 Kontrollflöde

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning XIV: Undantag, Design Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Hashing Undantag Design Outline Hashing Undantag Design En frukt

Läs mer

Föreläsning 6: Metoder och fält (arrays)

Föreläsning 6: Metoder och fält (arrays) TDA 545: Objektorienterad programmering Föreläsning 6: Metoder och fält (arrays) Magnus Myréen Chalmers, läsperiod 1, 2015-2016 I (föregående och) denna föreläsning Läsanvisning: kap 2 & 13 meddelanden

Läs mer

Programmering för språkteknologer I, VT2012. Rum

Programmering för språkteknologer I, VT2012. Rum Programmering för språkteknologer I, VT2012 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.lingfil.uu.se/~evelina/uv/uv12/pst1/ Idag - Kursplan - Börja programmera - Lokala variabler - aritmetiska

Läs mer

Undantagshantering. Fördjupad Java. Fel. Undantag. Fånga Undantag. Grupper av Undantag

Undantagshantering. Fördjupad Java. Fel. Undantag. Fånga Undantag. Grupper av Undantag Undantagshantering Fördjupad Java Ett undantag (Exception) är ett objekt som påtalar en ovanlig eller felaktig situation i ett program. Undantag kastas av programmet och kan fångas och hanteras. Java har

Läs mer

Undantagshantering. Fördjupad Java. Undantag. Fel. Grupper av Undantag. Fånga Undantag

Undantagshantering. Fördjupad Java. Undantag. Fel. Grupper av Undantag. Fånga Undantag Undantagshantering Fördjupad Java Ett undantag (Exception) är ett objekt som påtalar en ovanlig eller felaktig situation i ett program. Undantag kastas av programmet och kan fångas och hanteras. Java har

Läs mer

PROGRAMMERING-Java Omtentamina

PROGRAMMERING-Java Omtentamina PROGRAMMERING-Java Omtentamina Nicolina Månsson 2007-08 13 Tentamensinstruktioner Poängsättning Hela tentamen omfattar 41 poäng. Poäng för varje uppgift står angivet inom parentes före varje uppgift. -

Läs mer

Objektorienterad programmering E. Telefonboken, än en gång. Gränssnitt. Telefonboken med gränssnitt specificerat, del 1.

Objektorienterad programmering E. Telefonboken, än en gång. Gränssnitt. Telefonboken med gränssnitt specificerat, del 1. Objektorienterad programmering E Telefonboken, än en gång Föreläsning 5 Wrapper classes Exempel, histogram. Inldening om undantag. Mer om klassen Påminnelse Vår senaste version bestod av två klasser, bägge

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

Föreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel

Föreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel Föreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel Eva Blomqvist eva.blomqvist@liu.se Linköpings universitet Sweden December 1, 2013 1 Innehåll OO-programmering fortsättning Skapa

Läs mer

Objektorienterad programmering i Java

Objektorienterad programmering i Java Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet

Läs mer

JAVAUTVECKLING LEKTION 4

JAVAUTVECKLING LEKTION 4 JAVAUTVECKLING LEKTION 4 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Iterationer (loopar) Algoritmer Mer om felsökning 1 WHILE-SATSEN String s = JOptionPane.showInputDialog("Talet

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

Chapter 3: Using Classes and Objects

Chapter 3: Using Classes and Objects Chapter 3: Using Classes and Objects I dessa uppgifter kommer du att lära dig om hur man använder klasser och metoder från java biblioteket. Du kommer inte att förstå allt som händer bakom metod anrop

Läs mer

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning Varför? 732G11 Linköpings universitet 2011-02-08 Varför? 1 2 3 Varför? 4 5 Medelvärde av 5000 tal Varför? while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while (

Läs mer

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Interface Generiska klasser Undantag

Läs mer

Tentamen , Grundläggande programmering i Java

Tentamen , Grundläggande programmering i Java Institutionen för informationsteknologi och medier Sid:1(3) Grundläggande programmering i Java Martin Kjellqvist Lösningsförslag, lösningsansatser Tentamen 2006-01-20, Grundläggande programmering i Java

Läs mer

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer Programmering hh.se/db2004 Föreläsning 3: Java. Grundtyper, variabler och arrayer Hej Då, Karel! Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Center for Research on Embedded

Läs mer

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av

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

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F2:1 OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion Deklaration och tilldelning OOP F2:2 int x; double d; char ch; boolean

Läs mer

Fördjupad Java. Undantagshantering. Fel

Fördjupad Java. Undantagshantering. Fel Fördjupad Java 1 Undantagshantering Ett undantag (Exception) är ett objekt som påtalar en ovanlig eller felaktig situation i ett program. Undantag kastas av programmet och kan fångas och hanteras. Java

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

DAT043 Objektorienterad Programmering

DAT043 Objektorienterad Programmering DAT043 Objektorienterad Programmering Detta är en exempeltenta som innehåller gamla tentauppgifter av ungefär liknande slag som ni kan förvänta er se på ordinarie tenta i Del 1 respektive Del 2. Dock är

Läs mer

Objektorienterad programmering D2

Objektorienterad programmering D2 Objektorienterad programmering D2 Laboration nr 2. Syfte Att få förståelse för de grundläggande objektorienterade begreppen. Redovisning Källkoden för uppgifterna skall skickas in via Fire. För senaste

Läs mer

Skillnader mellan Python och Java

Skillnader mellan Python och Java Java Utvecklat på SUN Microsystems mitten 1990-talet Ursprungligen för Webprogram Nu mycket spritt Massor med läroböcker Vi använder Lewis&Loftus http://javasuncom/javase/6/docs/api/ Skillnader mellan

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning V: arrayer, metoder, räckvidd (scope), eclipse Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Arrayer Metoder Räckvidd (Scope) Eclipse

Läs mer

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.

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. Tentamen Programmeringsteknik I 2015-01-10 Skrivtid: 8.00 13.00 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

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

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner 732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (

Läs mer

725G61 - Laboration 5 Grundläggande objektorientering. Johan Falkenjack

725G61 - Laboration 5 Grundläggande objektorientering. Johan Falkenjack 725G61 - Laboration 5 Grundläggande objektorientering Johan Falkenjack November 26, 2013 1 Inledning I labb 1-3 tittade vi på de grundläggande byggstenarna i programmering. Vi lärde oss om variabler, styrstrukturer

Läs mer

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

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA för SY2 1999-03-17, kl 14.00-18.00 Hjälpmedel: En lärobok i Java programmering Återlämningstillfälle:

Läs mer

Laboration: Whitebox- och blackboxtesting

Laboration: Whitebox- och blackboxtesting Tilda11 höstterminen 2011 Laboration: Whitebox- och blackboxtesting Mål med laborationen Du ska lära dig begreppen white-box testing och black-box testing Du ska öva dig på att konstruera testfall Du ska

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 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling

Läs mer

TDDC77 Objektorienterad Programmering

TDDC77 Objektorienterad Programmering TDDC77 Objektorienterad Programmering Föreläsning 5 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Arrayer Metoder Räckvidd och Livslängd Arrayer Vända om inlästa värdena Vända om

Läs mer

725G61 - Laboration 1 Variabler och villkorssatser. Johan Falkenjack

725G61 - Laboration 1 Variabler och villkorssatser. Johan Falkenjack 725G61 - Laboration 1 Variabler och villkorssatser Johan Falkenjack October 16, 2013 1 Inledning till labbarna Any sufficiently advanced technology is indistinguishable from magic. - Arthur C. Clarke Citatet

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

Lösningsförslag, tentamen FYTA11 Javaprogrammering

Lösningsförslag, tentamen FYTA11 Javaprogrammering Lunds universitet FYTA11 Institutionen för Astronomi och Teoretisk fysik HT 12 Lösningsförslag, tentamen FYTA11 Javaprogrammering Onsdag 9 januari 2013, 10:15 14:15 Instruktioner Hjälpmedel: Papper och

Läs mer

Föreläsning 8: Exempel och problemlösning

Föreläsning 8: Exempel och problemlösning TDA 545: Objektorienterad programmering Föreläsning 8: Exempel och problemlösning Magnus Myréen Chalmers, läsperiod 1, 2015-2016 De tre senaste föreläsningarna Läsanvisning: kap 2 & 13 meddelanden och

Läs mer

Föreläsning 12. Föreläsning 12. Rörliga figurer Klassen Timer Undantag Något om applets. Rörliga appletsfigurer Klassen Timer Undantag

Föreläsning 12. Föreläsning 12. Rörliga figurer Klassen Timer Undantag Något om applets. Rörliga appletsfigurer Klassen Timer Undantag Föreläsning 12 Föreläsning 12 Rörliga figurer Klassen Timer Undantag Något om applets Rörliga appletsfigurer Klassen Timer Undantag Något om applets Klassen javax.swing.timer I Swing finns en klass Timer

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

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

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst Outline Objektorienterad Programmering (TDDC77) Föreläsning IV: while, for, do while, switch, arrayer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Ordning Villkorliga hopp I Normalt sett så

Läs mer

Parallellism, återblick

Parallellism, återblick Parallellism, återblick Josef Svenningsson December 11, 2012 Lab7 Det är problem med lab7. Gå med i den grupp som ni använt tidigare. DEMO Flera saker händer samtidigt Ofta hanterar program olika indata

Läs mer

Föreläsning 3. Stack

Föreläsning 3. Stack Föreläsning 3 Stack Föreläsning 3 ADT Stack Stack JCF Tillämpning Utvärdera ett postfix uttryck Stack implementerad med en array Stack implementerad med en länkad lista Evaluate postfix expressions Läsanvisningar

Läs mer

Objektorienterad Programmering DAT043. Föreläsning 4 23/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

Objektorienterad Programmering DAT043. Föreläsning 4 23/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) Objektorienterad Programmering DAT043 Föreläsning 4 23/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) 1 Repetion: Klasser och objekt Vi definierar nya objekttyper i klasser. Ett objekt

Läs mer

Lösningar för tenta 2 DAT043,

Lösningar för tenta 2 DAT043, Lösningar för tenta 2 DAT043, 2018-06-08. Uppgift 1 public class Car{ private String model; private String year; private double price; public Car(String model, String year, double price){ this.model =

Läs mer

Tentamen i Introduktion till programmering

Tentamen i Introduktion till programmering Tentamen i Introduktion till programmering Kurskod: Skrivtid: D0009E 09:00-13:00 (4 timmar) Totalt antal uppgifter: 7 Totalt antal poäng: 38 Tentamensdatum: 2014-05-17 Jourhavande lärare: Tillåtna hjälpmedel:

Läs mer

Ordlistor, filhantering och ut på webben. Linda Mannila 20.11.2007

Ordlistor, filhantering och ut på webben. Linda Mannila 20.11.2007 Ordlistor, filhantering och ut på webben Linda Mannila 20.11.2007 Vad kan vi nu? Primitiva datatyper Tal, strängar, booleska värden Samlingsdatatyp Listan Utskrift Indata Felhantering Funktioner och moduler

Läs mer

TENTAMEN OOP

TENTAMEN OOP TENTAMEN OOP 2014-03-15 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

Recitation 4. 2-D arrays. Exceptions

Recitation 4. 2-D arrays. Exceptions Recitation 4. 2-D arrays. Exceptions Animal[] v= new Animal[3]; 2 declaration of array v Create array of 3 elements v null a6 Assign value of new-exp to v Assign and refer to elements as usual: v[0]= new

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 2, vecka 8: Repetition

Föreläsning 2, vecka 8: Repetition TDA 548: Grundläggande Programvaruutveckling Föreläsning 2, vecka 8: Repetition Magnus Myréen Chalmers, läsperiod 1, 2016-2017 Idag Metoder och terminologi Referensvärden och arrays Interface och ritning

Läs mer