Föreläsning 6: Undantag, filhantering samt flera användbara klasser
|
|
- Lars Eliasson
- för 5 år sedan
- Visningar:
Transkript
1 Föreläsning 6: Undantag, filhantering samt flera användbara klasser Eva Blomqvist Linköpings universitet Sweden November 11,
2 Innehåll Undantag Filhantering Flera användbara klasser i standardbiblioteket November 11,
3 Undantag November 11,
4 Undantag (exception) - vad är det? Undantagssituation Onormal situation så att uppgiften i programmet inte kan genomföras - oftast någon form av "fel" som har uppstått Genom att kontrollera värden och inmatningar kan vi undvika att undantag inträffar Exempel: om användaren uppmanas att mata in ett tal mellan 1 och 10 - kontrollera med en if-sats att värdet ni fick in faktiskt är mellan 1 och 10, annars t ex fråga igen Generella metoder, t ex i Javas standardbilbiotek kan inte veta hur du vill använda dem - istället kastas ett undantag när något oväntat inträffar Ansvaret faller på ditt program, där metoden används, att bestämma hur undantaget ska hanteras! Hanteras inte undantaget så att programmet kan köra vidare avslutas det Kasta ett undantag = skapa ett undantagsobjekt som innehåller information om undantaget och göra det tillgängligt för resten av programmet (=throw) November 11,
5 Skapa och kasta ett undantag Metod som returnerar elementet på en angiven position i en array public static int hamtaelement(int[] arrayen, int position) if (position >= arrayen.length) throw new ArrayIndexOutOfBoundsException("Felaktigt index!!"); else return arrayen[position]; November 11,
6 Skapa och kasta ett undantag (forts.) public class Undantag public static void main (String[] args) int[] v = 1,2,3; int element = hamtaelement(v,3); System.out.println("Elementet är: " + element); public static int hamtaelement(int[] v, int position) if (position >= v.length) throw new ArrayIndexOutOfBoundsException("Felaktigt index!!"); else return v[position]; November 11,
7 Skapa och kasta ett undantag (forts.) public class Undantag public static void main (String[] args) int[] v = 1,2,3; int element = hamtaelement(v,3); System.out.println("Elementet är: " + element); public static int hamtaelement(int[] v, int position) if (position >= v.length) ArrayIndexOutOfBoundsException e = new ArrayIndexOutOfBoundsException("Felaktigt index!!"); throw e; else return v[position]; November 11,
8 Undantagsmeddelande ("stack trace") Typ av undantag Mitt meddelande På vilken rad i huvudprogrammet undantaget dök upp På vilken rad inne i metoden undantaget kastades November 11,
9 Deklarera ett undantag (överkurs) public class Undantag public static void main (String[] args) int[] v = 1,2,3; int element = hamtaelement(v,3); System.out.println("Elementet är: " + element); public static int hamtaelement(int[] v, int position) throws ArrayIndexOutOfBoundsException if (position >= v.length) throw new ArrayIndexOutOfBoundsException("Felaktigt index!!"); else return v[position]; November 11,
10 När måste man deklarera ett undantag? (överkurs) Kontrollerade undantag måste deklareras "checked exception" Sådana undantag som man kan anta att programmet vill kunna hantera - information till andra som använder dina metoder Exempel: System.in.read() kastar checked exceptions, t ex när man försöker läsa från en fil som inte finns Okontrollerade undantag måste inte (men kan) deklareras "unchecked exception" November 11,
11 Fånga och hantera undantag try //Den vanliga koden, dvs det programmet ska utföra //Här bevakar programmet om ett undantag kastas catch (TypAvException e) //Kod som exekveras endast om ett undantag av //den givna typen kastas inne i try-blocket November 11,
12 Exempel: fånga och hantera public class UndantagHanteras public static void main (String[] args) int[] v = 1,2,3; try int element = hamtaelement(v,3); System.out.println("Elementet är: " + element); catch (ArrayIndexOutOfBoundsException e) System.out.println(e); System.out.println("Efter catch-satsen"); public static int hamtaelement(int[] v, int position) if (position >= v.length) throw new ArrayIndexOutOfBoundsException("Felaktigt index!!"); else return v[position]; November 11,
13 Exempel: fånga och hantera public class UndantagHanteras public static void main (String[] args) int[] v = 1,2,3; try int element = hamtaelement(v,3); System.out.println("Elementet är: " + element); catch (ArrayIndexOutOfBoundsException e) System.out.println(e); int element = hamtaelement(v,2); System.out.println("Sista elementet är: " + element); System.out.println("Efter catch-satsen"); public static int hamtaelement(int[] v, int position) if (position >= v.length) throw new ArrayIndexOutOfBoundsException("Felaktigt index!!"); else return v[position]; 13
14 Exempel: fånga och hantera (forts.) public class UndantagHanteras public static void main (String[] args) int[] v = 1,2,3; try int element = hamtaelement(v,3); System.out.println("Elementet är: " + element); catch (ArrayIndexOutOfBoundsException e) e.printstacktrace(); System.out.println("Efter catch-satsen"); public static int hamtaelement(int[] v, int position) if (position >= v.length) throw new ArrayIndexOutOfBoundsException("Felaktigt index!!"); else return v[position]; 14
15 Exempel: fånga och hantera (forts.) public class UndantagHanteras public static void main (String[] args) int[] v = 1,2,3; try int element = hamtaelement(v,3); System.out.println("Elementet är: " + element); catch (ArrayIndexOutOfBoundsException e) System.out.println(e); System.exit(0); System.out.println("Efter catch-satsen"); public static int hamtaelement(int[] v, int position) if (position >= v.length) throw new ArrayIndexOutOfBoundsException("Felaktigt index!!"); else return v[position]; 15
16 Hantera olika undantag - flera catch-satser try //Den vanliga koden, dvs det programmet ska utföra //Här bevakar programmet om ett undantag kastas catch (TypAvException e) //Kod som exekveras endast om ett undantag av //den givna typen kastas inne i try-blocket catch (AnnanTypAvException e) //Kod som exekveras endast om ett undantag av //den givna typen kastas inne i try-blocket November 11,
17 Undvik undantag! Försök att förutse alla situationer som kan uppstå i ditt program och hantera dem innan de blir undantag Exempel: kontrollera inmatade värden innan de används Exempel: kontrollera att ett index är mindre än längden på en array eller sträng innan ni försöker hämta ett element Exempel: kontrollera att en variabel innehåller ett värde, dvs inte är lika med "null" innan ni utför en operation på variabeln Om undantag inte kan undvikas - försök att hantera dem så att programmet kan fortsätta -> robust program! Exempel: om användaren matar in ett värde som inte går att hantera utan ett undantag kastas - uppmana användaren att mata in ett nytt värde och fortsätt exekveringen November 11,
18 Exempel: undvika undantag public class UndantagUndviks public static void main (String[] args) int[] v = 1,2,3; int position = 3; if (position >= 0 && position < v.length) int element = hamtaelement(v,position); System.out.println("Elementet är: " + element); else System.out.println("Felaktigt index!"); public static int hamtaelement(int[] v, int position) return v[position]; 18
19 Filhantering Paket: java.io November 11,
20 Strömmar November 11,
21 Strömmar till disk - disköverföring är långsamt November 11,
22 Buffrad utmatning - samla ihop en lämplig datamängd innan utmatning November 11,
23 Olika typer av strömmar Dataströmmar Värden av olika primitiva datatyper Teckenströmmar Överför tecken från dess Unicode-representation (två byte) internt i vårt program till t ex dess ASCII-kod i en textfil (en byte) - transformation + överföring Objektströmmar Överföra instanser av klasser Lagrar typen av objekt (klass) och de data som ingår November 11,
24 Standardin- och utmatning Vi har redan sett (och använder för labbarna) java.util.scanner för att läsa in rader, eller primitiva värden Finns även metoder för att läsa in tecken ett och ett (OBS! ni behöver inte dessa i labbarna - om ni använder dem, se upp med "skräptecken" som ligger kvar i bufferten) System.in med sin metod read() - teckenström Det finns även varianter som lagrar data i en buffert först BufferedReader! BufferedWriter! flush() framtvingar utmatning November 11,
25 Representera kataloger och filer java.io.file representation av en fil eller katalog så att man kan hänvisa till den i sitt program Skapa objekt: File katalog = new File("minkatalog"); Skapar ett objekt av typen File som representerar en fil eller katalog i den aktuella katalogen (annars måste sökväg anges) med det namnet OBS! Betyder inte att filen/katalogen finns eller skapas! katalog.exists() - true om fil eller katalog med det namnet finns Kontrollera om det är en fil eller katalog katalog.isfile() - true om det är en fil katalog.isdirectory() - true om det är en katalog Hämta sökvängen till filen eller katalogen String s = katalog.getcanonicalpath();! Lista kataloger och filer String[] lista = katalog.list();! November 11,
26 Representera kataloger och filer (forts.) Ändra i filsystemet OBS! var försiktiga när ni experimenterar - ni kan radera/ ändra i viktiga filer Skapa fil: katalog.createnewfile()! Skapa katalog: katalog.mkdir()! Ta bort fil eller katalog (katalog raderas bara om den är tom): katalog.delete()! November 11,
27 Läsa och skriva till fil Paketet java.io innehåller två kategorier av klasser för att läsa och skriva till fil XXXReader och XXXWriter hanterar tecken (char) genom deras Unicode-koder - metoderna read() och write() FileReader och FileWriter - grundklasser för att hantera filer - glöm inte att stänga strömmen med close()! XXXInputStream och XXXOutputStream hanterar byte (binärfiler) - metoderna read() och write() read() returnerar -1 vid "end of file" (EOF), dvs när filen är slut Aktuell katalog i Eclipse Workspace? Oftast projektkatalogen... November 11,
28 Textfiler OBS! Det finns flera olika varianter (mer specifika klasser) för att läsa in text och annan information från fil - läs Javadoc för de klasser som kan vara aktuella och välj den som har de metoder ni behöver! På labbarna behöver ni bara FileReader/Writer och BufferedReader/Writer Till projektet kan ni behöva andra klasser.. Läsa in tecken från textfil med en FileReader FileReader fr = new FileReader(new File("minfil.txt")); char c = (char) fr.read();! read() returnerar -1 vid filslut när inmatningen är klar - stäng strömmen fr.close();! Läsa in rader med text från textfil med en BufferedReader FileReader fr = new FileReader(new File("minfil.txt")); BufferedReader br = new BufferedReader(fr); String s = br.readline();! null vid filslut November 11,
29 Textfiler (forts.) Skriva tecken till textfil med en FileWriter FileWriter fw = new FileWriter(new File("minfil.txt")); fw.write('a'); fw.close();! Lägga till i slutet av filen: FileWriter fw = new FileWriter(!!!!new File("minfil.txt"), true); fw.write('a'); fw.close();! eller använd metoden append()! Skiva rader med text till textfil med en BufferedWriter FileWriter fw = new FileWriter(new File("minfil.txt")); BufferedWriter bw = new BufferedWriter(fw); bw.write("en textsträng som skrivs till filen."); bw.close();! November 11,
30 Mer om Javas standardbibliotek November 11,
31 Olika typer av metoder public static-metoder public - metoden kan anropas från andra klasser (annars hade vi inte kunnat använda den alls!) static - metoden finns i själva klassen, dvs vi behöver inte först skapa ett nytt objekt av klassen för att använda metoden Exempel: instansmetod för klassen String - inte static String s = "hej"; //skapar en ny instans av klassen String s = s.touppercase(); //anropar metoden touppercase() på instansen! Exempel: static-metod för klassen String String s = String.valueOf('A'); //anropar metoden valueof() direkt från klassen String! Vi återkommer till vad "klassmetod" och "instansmetod" betyder i nästa del av kursen, men ni behöver vara uppmärksamma på hur metoder ska anropas när ni använder klasser ur Javas standardbibliotek! November 11,
32 Klassen Math Klassen Math ligger i paketet java.lang - OBS detta paket importeras alltid, dvs du måste inte inte skriva java.lang.math eller import java.lang.math! Konstanter och metoder för matematiska beräkningar Alla är konstanter och metoder är public static, dvs vi skapar ingen instans av klassen utan använder dess konstanter och metoder direkt kom ihåg: konstanter skrivs vanligen med versaler, t ex PI! Exempel: konstanten pi double radie = 10.0; double omkrets = 2 * radie * Math.PI;! Exempel: kvadratroten ur ett tal - metoden sqrt double roten = Math.sqrt(25.0);! Exempel: slumptal - olika tal ( ) vid varje exekvering double slump = Math.random();! November 11,
33 Klasser som representerar de primitiva datatyperna - omslagsklasser ("wrapper") För varje primitiv datatyp finns en motsvarande klass i paketet java.lang byte!!byte short!!short int!!!integer long!!long float!!float double!!double char!!character boolean!!boolean! Varför? - klasserna innehåller ett antal metoder och konstanter som hjälper till att hantera värden av dessa typer November 11,
34 Omslagsklasser - "bra att ha" metoder Omvandla mellan olika typer av tal -> type cast Omvandla tal till textsträngar?? vi kan använda omslagsklassen för taltypen (eller metoden valueof() i klassen String) Alla typer har en metod tostring() för att omvandla från värden till en textsträng metoden är public static! Exempel: heltal till sträng int i = 2345; String s = Integer.toString(i);! Exempel: decimaltal till sträng double d = 2.345; String s = Double.toString(d);! November 11,
35 Omslagsklasser - "bra att ha" metoder Tvärt om: Omvandla textsträngar till tal?? vi kan använda omslagsklassen för taltypen Alla taltyper har en metod parse...() för att omvandla från textsträng till värden metoden är public static! Exempel: sträng till heltal String s = "2345"; int i = Integer.parseInt(s);! Exempel: sträng till decimaltal String s = "2.345"; double d = Double.parseDouble(s);! November 11,
36 Omslagsklasser - "bra att ha" metoder Hantera tecken - public static metoder i Character! boolean isletter(char c)! boolean islowercase(char c)! boolean isuppercase(char c)! boolean isdigit(char c)! boolean isletterordigit(char c)! boolean iswhitespace(char c)! char touppercase(char c)! char islowercase(char c)! Exempel: tester på en bokstav char bokstav = 'A'; boolean b1 = Character.isLetter(bokstav); //sant boolean b2 = Character.isLowerCase(bokstav); //falskt char litenbokstav = Character.toLowerCase(bokstav)! November 11,
37 Klassen Arrays - repetition Tillhör paketet java.util - måste importeras, eller så skriver ni det fullständiga namnet Innehåller metoder för att hantera arrayer på olika sätt Exempel: jämföra arrayer int[] v1 = 4,2,3; int[] v2 = 4,2,3; int[] v3 = 1,2,2; boolean lika12 = Arrays.equals(v1,v2); //sant boolean lika23 = Arrays.equals(v2,v3); //falskt! Exempel: sortera värden i en array char[] v4 = 's','d','a'; Arrays.sort(v1); //v1 kommer vara 2,3,4 Arrays.sort(v4); //v4 kommer vara 'a','d','s'! November 11,
38 Systemtid och fördröjning Klassen System för att hantera systemtid long tid = System.currentTimeMillis(); Ger aktuell tid enligt systemets klocka. Anges i antal millisekunder från midnatt 1 januari 1970 (!!) Få programmet att vänta 7 sekunder: while (System.currentTimeMillis() - tid < 7000);! OBS! - ineffektiv lösning, kontrollerar hela tiden Bättre lösning: Thread.sleep(7000); Programkörningen läggs i "viloläge" i 7 sekunder - resurserna släpps fria att användas av andra program som körs November 11,
39 Att importera en klass class UpprepaFor public static void main (String[] args) java.util.scanner in = new java.util.scanner(system.in); int tal = 0; for (int rakna = 1; rakna <= 10; rakna++) System.out.println("Loopen körs gång nr " + rakna); System.out.print("Skriv ett heltal: "); tal = in.nextint(); System.out.println("Talet är: " + tal); System.out.println("Slut!"); November 11,
40 Att importera en klass import java.util.scanner; class UpprepaFor public static void main (String[] args) Scanner in = new Scanner(System.in); int tal = 0; for (int rakna = 1; rakna <= 10; rakna++) System.out.println("Loopen körs gång nr " + rakna); System.out.print("Skriv ett heltal: "); tal = in.nextint(); System.out.println("Talet är: " + tal); System.out.println("Slut!"); November 11,
41 Nycklar och värden - Exempel: HashMap (java.util.hashmap) Exempel: mappa personnummer till ett namn - personnummer är en unik nyckel, vi vill kunna slå upp en persons namn m h a personnumret En HashMap lagrar värden baserat på en unik nyckel Nyckeln och värdena kan vara av olika typ, men alla nycklar resp. alla värden måste ha samma typ Vi skapar en HashMap enligt följande: HashMap<Integer,String> personkatalog = new HashMap();! Metoden "put" lägger till ett nyckel-värde par i katalogen, "get" hämtar värdet för en specifik nyckel > Hans Hansson > Anders Andersson November 11, > Maria Larsson...
42 Tillbaka till webbshoppen (igen) Skulle vi kunna använda en HashMap här? Vad sägs om två!? - En för produkternas priser och en för antal som en specifik användare vill köpa Nycklar? Priserna: Produkt-ID (int) Inköpen: Produkt-ID (int) Värden? Priserna: Pris pers st (double) Inköpen: Antal (int) Fördel: vi behöver inte lagra alla produkter utan bara de som användaren vill köpa, och sedan slå upp priset för dessa November 11,
43 Exempel webbshoppen import java.util.hashmap; import java.util.iterator; class Handla public static void main (String[] args) HashMap<Integer, Integer> artikelantal = new HashMap<Integer, Integer>(); HashMap<Integer, Double> priskatalog = new HashMap<Integer, Double>(); java.util.scanner in = new java.util.scanner(system.in); System.out.println("Ange artikelnr: "); while (in.hasnextint()) int artikelnr = in.nextint(); if (artikelnr < 0 artikelnr > 100) break; System.out.println("Ange antal: "); int antal = in.nextint(); artikelantal.put(artikelnr, antal); System.out.println("Ange artikelnr: "); Iterator<Integer> artiklar = artikelantal.keyset().iterator(); while (artiklar.hasnext()) int artikelnr = artiklar.next(); System.out.println("Ange pris för artikel " + artikelnr + ": "); double pris = in.nextdouble(); priskatalog.put(artikelnr, pris); artiklar = artikelantal.keyset().iterator(); double totalpris = 0; while (artiklar.hasnext()) int artikel = artiklar.next(); int ant = artikelantal.get(artikel); double pris = priskatalog.get(artikel); totalpris = totalpris + (ant*pris); System.out.println("Totalpriset för din order är: " + totalpris);
44 Exempel webbshoppen import java.util.hashmap; import java.util.iterator; class Handla public static void main (String[] args) HashMap<Integer, Integer> artikelantal = new HashMap<Integer, Integer>(); HashMap<Integer, Double> priskatalog = new HashMap<Integer, Double>(); java.util.scanner in = new java.util.scanner(system.in); System.out.println("Ange artikelnr: "); java.util.scanner while in (in.hasnextint()) = new java.util.scanner(system.in); int artikelnr = in.nextint(); if (artikelnr < 0 artikelnr > 100) break; System.out.println("Ange antal: "); int antal = in.nextint(); artikelantal.put(artikelnr, antal); System.out.println("Ange artikelnr: "); Skapa två HashMap Iterator<Integer> instanser artiklar = artikelantal.keyset().iterator(); while (artiklar.hasnext()) för att lagra dels antal per int artikelnr = artiklar.next(); artikel och dels pris per System.out.println("Ange artikel pris för artikel " + artikelnr + ": "); double pris = in.nextdouble(); priskatalog.put(artikelnr, pris); artiklar = artikelantal.keyset().iterator(); double totalpris = 0; while (artiklar.hasnext()) int artikel = artiklar.next(); int ant = artikelantal.get(artikel); double pris = priskatalog.get(artikel); totalpris = totalpris + (ant*pris); System.out.println("Totalpriset för din order är: " + totalpris); HashMap<Integer, Integer> artikelantal = new HashMap<Integer, Integer>() HashMap<Integer, Double> priskatalog = new HashMap<Integer, Double>()
45 Exempel webbshoppen import java.util.hashmap; import java.util.iterator; class Handla public static void main (String[] args) System.out.println("Ange HashMap<Integer, Integer> artikelantal artikelnr: = new HashMap<Integer, "); Integer>(); HashMap<Integer, Double> priskatalog = new HashMap<Integer, Double>(); while java.util.scanner (in.hasnextint()) = new java.util.scanner(system.in); System.out.println("Ange artikelnr: "); while (in.hasnextint()) int artikelnr = in.nextint(); int artikelnr = in.nextint(); if (artikelnr < 0 artikelnr > 100) break; System.out.println("Ange antal: "); antal: "); int antal = in.nextint(); int antal artikelantal.put(artikelnr, = in.nextint(); antal); System.out.println("Ange artikelnr: "); artikelantal.put(artikelnr, antal); Iterator<Integer> artiklar = artikelantal.keyset().iterator(); System.out.println("Ange artikelnr: "); while (artiklar.hasnext()) int artikelnr = artiklar.next(); System.out.println("Ange pris för artikel " + artikelnr + ": "); double pris = in.nextdouble(); priskatalog.put(artikelnr, pris); artiklar = artikelantal.keyset().iterator(); double totalpris = 0; Låt användaren mata in artikelnummer och antal för de artiklar han/hon vill köpa. vi antar att artikelnummer är postivia heltal < 100 if (artikelnr < 0 artikelnr > 100) break; while (artiklar.hasnext()) int artikel = artiklar.next(); int ant = artikelantal.get(artikel); double pris = priskatalog.get(artikel); totalpris = totalpris + (ant*pris); System.out.println("Totalpriset för din order är: " + totalpris);
46 Exempel webbshoppen import java.util.hashmap; import java.util.iterator; class Handla public static void main (String[] args) HashMap<Integer, Integer> artikelantal = new HashMap<Integer, Integer>(); HashMap<Integer, Double> priskatalog = new HashMap<Integer, Double>(); java.util.scanner in = new java.util.scanner(system.in); System.out.println("Ange artikelnr: "); while (in.hasnextint()) int artikelnr = in.nextint(); if (artikelnr < 0 artikelnr > 100) break; System.out.println("Ange antal: "); while (artiklar.hasnext()) int antal = in.nextint(); artikelantal.put(artikelnr, antal); int artikelnr = artiklar.next(); System.out.println("Ange artikelnr: "); Iterator<Integer> artiklar = artikelantal.keyset().iterator(); double pris = in.nextdouble(); while (artiklar.hasnext()) int artikelnr = artiklar.next(); priskatalog.put(artikelnr, pris); System.out.println("Ange pris för artikel " + artikelnr + ": "); double pris = in.nextdouble(); priskatalog.put(artikelnr, pris); Skapa en iterator över de artikelnummer som användaren matat in. För varje sådant nummer fråga användaren om priset och lagra det. Iterator<Integer> artiklar = artikelantal.keyset().iterator(); System.out.println("Ange pris för artikel " + artikelnr + ": "); artiklar = artikelantal.keyset().iterator(); double totalpris = 0; while (artiklar.hasnext()) int artikel = artiklar.next(); int ant = artikelantal.get(artikel); double pris = priskatalog.get(artikel); totalpris = totalpris + (ant*pris); System.out.println("Totalpriset för din order är: " + totalpris);
47 Exempel webbshoppen import java.util.hashmap; import java.util.iterator; class Handla public static void main (String[] args) HashMap<Integer, Integer> artikelantal = new HashMap<Integer, Integer>(); HashMap<Integer, Double> priskatalog = new HashMap<Integer, Double>(); java.util.scanner in = new java.util.scanner(system.in); System.out.println("Ange artikelnr: "); while (in.hasnextint()) int artikelnr = in.nextint(); if (artikelnr < 0 artikelnr > 100) break; System.out.println("Ange antal: "); int antal = in.nextint(); artikelantal.put(artikelnr, antal); System.out.println("Ange artikelnr: "); artiklar = artikelantal.keyset().iterator(); Iterator<Integer> artiklar = artikelantal.keyset().iterator(); double totalpris while (artiklar.hasnext()) = 0; int artikelnr = artiklar.next(); while (artiklar.hasnext()) System.out.println("Ange pris för artikel " + artikelnr + ": "); double pris = in.nextdouble(); int artikel = artiklar.next(); priskatalog.put(artikelnr, pris); int ant = artikelantal.get(artikel); artiklar = artikelantal.keyset().iterator(); double totalpris pris = 0; = priskatalog.get(artikel); while (artiklar.hasnext()) totalpris = int totalpris artikel = artiklar.next(); + (ant*pris); int ant = artikelantal.get(artikel); double pris = priskatalog.get(artikel); totalpris = totalpris + (ant*pris); System.out.println("Totalpriset för din order är: " + totalpris); Skapa en iterator över alla artikelnummer igen. För varje artikelnummer, hämta antalet och priset, multiplicera dem och lägg till talet till resultatvariabeln. System.out.println("Totalpriset för din order är: " + totalpris);
48 Programmeringsmetod November 11,
49 Större program - viktigare med metod Bryta ner problemet i delsteg Använd metoder för att bryta ut delar av lösningen Se förra föreläsningen!! Använd pseudokod Rita upp på ett papper vad som ska hända i varje delsteg och "testkör" ditt program på papper November 11,
50 Vad är pseudokod? Skriv ett program som läser in en persons födelseår och räknar ut personens ålder. Vad ska det här programmet göra - vilka steg behövs? Vi behöver: Uppmana användaren att mata in födelseår Läsa in födelseåret Uppmana användaren att mata in aktuellt år Läsa in aktuellt år Beräkna ålder genom att subtrahera födelseår från aktuellt år Skriva ut resultatet Vi kan skriva detta som pseudokod såhär: print "Födelseår?" read fodelse print "Nuvarande år?" read nuvarande alder = nuvarande - fodelse print "Du är " + alder November 11,
51 Vad är pseudokod? (forts.) Pseudokod är en blandning av naturligt språk och ord från programmeringsspråket Syftet med pseudokod är att göra programmet mer begripligt, eller att utforma algoritmen innan man vet exakt hur man ska lösa problemet i det specifika språket Finns ingen standard eller regler, men bra tips: Använd indentering för att visa hur programmet ska vara strukturerat Vet du inte hur något ska lösas, skriv det bara i vanlig text så länge, eller anta att det löses i en metod! - du kan göra flera versioner av din pseudokod som är mer och mer detaljerade November 11,
52 Exempel: från beskrivning till kod Problembeskrivning Skriv ett program som bestämmer (skriver ut) snittet av två mängder med 5 element vardera, där varje mängd ska vara representerad som en heltalsarray och matas in av användaren. November 11,
53 Exempel: från beskrivning till kod Problembeskrivning Skriv ett program som bestämmer (skriver ut) snittet av två mängder med 5 element vardera, där varje mängd ska vara representerad som en heltalsarray och matas in av användaren. Bryta ner problemet Vilka delar innehåller problemet? Läsa in två arrayer som representerar mängderna Bestämma snittet och skriva ut resultatet November 11,
54 Exempel: från beskrivning till kod Pseudokod - del 1 (skapa arrayer och läsa in element) array1 = ny tom array med längden 5 array2 = ny tom array med längden 5 print "Skriv in tal för mängd 1" while användaren matar in nya tal och vi inte har fyllt array1 tal = läs in heltal if tal finns inte redan i array1 lägg till tal i array1 print "Skriv in tal för mängd 2" while användaren matar in nya tal och vi inte har fyllt array2 tal2 =läs in heltal if tal2 finns inte redan i array2 lägg till tal2 i array2 November 11,
55 Exempel: från beskrivning till kod Pseudokod - del 2 (bestäm och skriv ut snittet) while inte slut på array1 element = hämta aktuellt element i array1 boolean finns = finnstal(element, array2) if finns print element Är ni osäkra på någon del i programmet? bryt ut det till en metod ange returvärde och inparametrar fundera senare ut hur ni ska lösa just den metoden November 11,
56 Exempel: från beskrivning till kod Pseudokod - del 2 (bestäm och skriv ut snittet) while inte slut på array1 element = hämta aktuellt element i array1 boolean finns = finnstal(element, array2) if finns print element metod: boolean finnstal (int e, heltalsarray v) finns = false for alla element i v if v == aktuellt element finns = true return finns November 11,
57 Exempel: från beskrivning till kod Skriv den faktiska koden! Glöm inte test och felsökning Testa med normala värden som programmet ska hantera Testa med "gränsvärden" för alla villkor Testa med slumpvisa värden, eller värden som inte borde kunna komma in i programmet Har vi tillräckligt bra felhantering? Undvik att kasta undantag - lägg till kontroller av värden i programmet istället November 11,
58 Sammanfattning Undantag Skapa och kasta undantag Fånga och hantera undantag Filhantering java.io.file representerar både filer och kataloger Finns metoder för att kolla om filen/katalogen existerar, skapa den, ta bort den, lista filer i katalogen mm Använd FileWriter och FileReader för att läsa från och skriva enskilda tecken till fil Vill du läsa in/skriva hela rader använd BufferedWriter och BufferedReader istället (kräver en FileWriter/FileReader som input när de skapas) Javas standardbibliotek - lite nya klasser "Wrapper"-klasser för grundläggande datatyper Math, Array, HashMap... November 11,
59 Nästa gång...börjar vi på del 2: objektorienterad programmering November 11,
60 November 11,
Föreläsning 3: Typomvandling, villkor och val, samt textsträngar
Föreläsning 3: Typomvandling, villkor och val, samt textsträngar Camilla Kirkegaard camilla.kirkegaard@liu.se Linköpings universitet Sweden October 14, 2013 1 Innehåll n n n n n Repetition Typomvandlingar
Läs merFö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 merParsing 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 merProgrammering 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 merGrundkurs 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 merObjektorienterad 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 merFöreläsning 8 - del 2: Objektorienterad programmering - avancerat
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta
Läs merKompilering 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 merObjektorienterad 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 merCommand 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 merFö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 merAtt 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 merTentamen , 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 mer732G 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 merITK: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 merFö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 mer725G61 - Laboration 4 Interaktion och I/O. Johan Falkenjack
725G61 - Laboration 4 Interaktion och I/O Johan Falkenjack November 5, 2013 1 Inledning I labb 1-3 har vi tittat på de grundläggande byggstenarna i programmering. Vi kommer återkomma till detta ämne när
Läs merTentamen 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 merJAVAUTVECKLING 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 merF4. 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 merJAVAUTVECKLING 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 merFö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 merProgramstruktur 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 merSMD 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 merSprå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 merOOP Objekt-orienterad programmering
OOP F4:1 OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder Metoder - subrutiner OOP F4:2 Kod som utför en viss operation. Ligger i olika klasser och anropas via operatorn.
Läs merObjektorienterad 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 merFö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 merArv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }
En klassdefinition class A extends B {... Arv definierar en klass A som ärver av B. Klassen A ärver alla fält och metoder som är definierade för B. A är en subklass till B. B är en superklass till A. class
Läs mer725G61 - 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 merOOP 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 merFö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 merUppgift: 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 merDagens 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 merTentamen 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//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 merTENTAMEN 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 merProgrammering 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 merObjektorienterad 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 merTDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket
TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2 Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket 1 Länkade listor Likadant som i Ada-kursen. 2 Stack MyStack MyStack
Läs merOOP 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[] 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 merFöreläsning 2. Täcker material från lektion 1, 2, 3 och 4:
(22 januari 2016 F2.1 ) Föreläsning 2 Täcker material från lektion 1, 2, 3 och 4: Datatyper Aritmetik Tecken och strängar Klasser, Objekt Metoder Villkor, villkorssatser och iterationer main-metoden Kodstandard
Läs merObjektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java
Läs merProgrammeringsteknik I
Programmeringsteknik I Föreläsning 2: Grundläggande Java Johan Öfverstedt Java Grundläggande begrepp Datatyper Selektion if Räckvidd (scope) Iteration while Klasser Objekt Metoder Metodhuvudet Kodstandarden
Läs merI Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program
Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java
Läs merEDAA20 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 merFöreläsning 3: Booleans, if, switch
TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt
Läs merDagens 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 merUndantagshantering. 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 merGrundlä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 merUndantagshantering. 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 merObjektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Java Språket Utmatning av Sträng litteraler Variabler
Läs merÖvning2. Variabler. Data typer
Vahid 28 okt 2002 prgk02 Övning2 -Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =, ,!=,!) -String hur man
Läs merLö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 merDet 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 merDatatyper 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 mer1 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 merAnmä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 merF2 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 merObjektorienterad 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 merTDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Laboration 2 Datastrukturer En liten uppgift Frågor
TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2 Laboration 2 Datastrukturer En liten uppgift Frågor 1 Laboration 2 - Datastrukturer Länkade datastrukturer Stack Kö (En. Queue) Lista
Läs merLite 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 mer732G 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 merFö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 merFö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 mer725G61 - 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 merTypkonvertering. 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 merExempel på listor (klassen ArrayList). Ett exempel med fält. Avbildning är en speciell typ av lista HashMap.
Institutionen för Datavetenskap Göteborgs universitet HT2008 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Innehåll Föreläsning 4 Exempel på listor (klassen ArrayList). Ett exempel med fält.
Läs merLektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)
Lektion Java Grunder Javas historia Ursprungligen utvecklades Java (1991) för att användas i olika typer av konsumentelektronik (mikrovågsugnar, videoapparater) av programmerare på Sun. Språket kallades
Läs merTentamen 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 merDagens 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 merIdag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes
Idag statiska metoder och variabler private/public/protected final, abstrakta klasser, gränssnitt, delegering wrapper classes ett lite större exempel Objectorienterad programmering Sida 1 Vad vi vet om
Läs mer2D1311 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 merFö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 merAtt 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 merObjektorienterad 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 merDD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye
DD2310 Javaprogrammering för Pythonprogrammerare Johan Boye James Gosling pappa till Java Hej.java public class Hej { public static void main( String[] args ) { System.out.println( "Hej" ); Java basics
Läs merDatastrukturer. Erik Forslin. Rum 1445, plan 4 på Nada
Datastrukturer Vad är en datastruktur? Vad är en datatyp? Primitiva datatyper i Java Icke-primitiva datatyper i Java Minnesexempel med datastrukturer Vektorer i Java Erik Forslin efo@nada.kth.se Rum 1445,
Läs merChapter 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 merObjektorienterad 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 merF5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander
F5 Selektion och iteration ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Boolska uttryck Boolska uttryck använder sig av jämförelseoperatorer < > = ==!= Resultatets datatyp är boolean
Läs merAnmä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 merIntroduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014
Introduktion till Datalogi DD1339 Föreläsning 2 22 sept 2014 Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4 public class { public class { Åtkomst, public betyder fullt tillgänglig utifrån public
Läs merI ett program hantera man ofta samlingar av objekt av samma typ.
Fält I ett program hantera man ofta samlingar av objekt av samma typ. Sådana samlingar vill man vanligtvis kunna gruppera ihop till en sammanhängande struktur. För detta ändamål tillhandahåller Java språkkonstruktioner
Läs merObjektorienterad 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 merDet 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 merOutline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler
Outline Objektorienterad Programmering (TDDC77) Föreläsning V: arrayer, metoder, räckvidd (scope), eclipse Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Vända om inlästa värden Vända om inlästa
Läs mer"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 merDetta dokument är ett exempel, cirka hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling
Göteborg, Magnus Myréen, 2014-10- 15 Detta dokument är ett exempel, cirka hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling Fulltentamen vitsord: 3=28p, 4=38p, 5= 48p, max 60p. Max
Läs merOutline. 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 merObjektorienterad 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 merFöreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.
Föreläsning 11 Arrayer Arrayer Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt int[] tal = new int[3]; Kan ha en array av t.ex: Heltal (int) Tecken (char) Personer (objekt av klassen
Läs merIdag. 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 merOOP 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 merLösningsförslag till tentamen för TDA540 Objektorienterad Programmering
Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-16, TDA540 Dag: 2017-01-09, Tid: 14.00-18.00 Uppgift 1 a) class används för en klassdeklaration
Läs merÖ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 merFö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 merLite 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 merAnmä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