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

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

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

Hämta data mha URLer Föreläsning 2b. Innehåll Klassen URL

Fördjupad Java. Undantagshantering. Fel

Surfning. Webbklienter och webbservrar. Specialskrivna webbservrar. Kommunikation med sockets

Språkkonventioner och redigering av tal.

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU

Tentamen , Grundläggande programmering i Java

10 Kommunikation i Java

Lösningar för tenta 2 DAT043,

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

Översikt MERA JAVA OCH ECLIPSE. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning

OOP Objekt-orienterad programmering

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

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

JAVAUTVECKLING LEKTION 7

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

Ingenjörsfirman Stéen Java Sida 1 av 1

Upplägg. Introduktion. Examination. Mål. Konsekvenser. Java. Kursen heter konstruktion, ej design eller formgivning.

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

Objektorienterad Programmering (TDDC77)

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 7 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Input. Programmering. Andra källor

Undantag. Engelska: exceptions. Skansholm: exceptionella händelser

Föreläsning 5 Meddelandesändning med TCP

Föreläsning 14. Filhantering

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

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

FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl

Tentamen Nätverksprogrammering Lösningsförslag

F2 Java I/O - strömmar Meddelandesändning med TCP

F5 Meddelandesändning med TCP

Föreläsning 11 Aktiva objekt och trådar, strömmar, kommunikation DAT043,

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

1 Grafiska komponenter, händelsehantering

JAVAUTVECKLING LEKTION 4

Fakulteten för ekonomi, kommunikation och IT. Corba. Datum: Mathias Andersson

Föreläsning 9-10 Innehåll

Tentamen ITK:P2. Inga hjälpmedel tillåtna förutom penna och papper. Skriv tydligt och texta gärna. 14 st frågor, 70 poäng.

Javas Exceptions. DD2385 Programutvecklingsteknik Fler bilder till föreläsning 7 23/ Kort om Javas Exceptions Trådar i Java

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

Föreläsning 5 Meddelandesändning med TCP

DEL 1 För att få godkänt på tentan (betyg 3) måste du lösa minst fem av sju uppgifter i denna del.

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

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

Tangentbord.java. Talinlasning.java. import java.io.*; class Tangentbord {

SMD 134 Objektorienterad programmering

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

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

Tentamen Nätverksprogrammering Lösningsförslag

Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass

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

Tentamen Nätverksprogrammering Lösningsförslag

F2 Java I/O - strömmar Meddelandesändning med TCP EDA095 Nätverksprogrammering

Reguljära uttryck. Reguljära uttryck. Nu kommer en siffra78 och en till SIFFRA(78) men utan 7kstuga SIFFRA(89)

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

Tentamensskrivning Nätverksprogrammering (EDA095 - FED) , kl 8-13

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

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

Objektorienterad Programkonstruktion. Föreläsning 4 8 nov 2016

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

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

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

Felsökning. Översikt. Felsökning (debugging) Kodstandard. Kommentarer. Kommentarer. Praktiska råd

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

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

Tentamen , Introduktion till Java, dtaa98, dtea53

F4. programmeringsteknik och Matlab

Klass och metoddesign. Skapa en OO-design. Kodkonvention. Hur kan man jobba med kodkvalité? Implementation. Bra klasser är grunden

Felsökning, UML. Översikt. Java starkt typat. Typomvandling (casting) Exempelhierarki. Stark typning

Översikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7)

Översikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7)

Felhantering. Andra brott mot språkets regler. Man kan också i programmet bryta mot ett antal olika regler som gäller. Exempelvis:

Tung bakgrundsaktivitet t.ex. Aktiva objekt t.ex. Animering, simulering. DD2385 Programutvecklingsteknik Några bilder till föreläsning 9 6/5 2013

GUI Nyckelbeståndsdelar

2I1073 Lektion 2. Lektion 2a. Lektion 2a. Servlets, säkerhet, och filhantering. import java.io.*; import javax.servlet.*; import javax.servlet.http.

Föreläsning 3 Innehåll. Generiska klasser. Icke-generisk lista ArrayList, skiss av implementering. Icke-generisk lista Risk för fel

Tentamen Nätverksprogrammering Lösningsförslag

Objektorienterad programmering Föreläsning 2

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

Tentamen ID1004 Objektorienterad programmering May 29, 2012

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

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

Objektorienterad programmering

Övning2. Variabler. Data typer

Innehåll. Socketar. Klient och serverprogrammering: Socketar Föreläsning 9. Klienter och servrar (som sagts tidigare ) Varför socketar

DI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

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

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

PROGRAMMERINGSTEKNIK TIN212

Inre klasser Anonyma klasser Kloning I/O-ramverket. anonyma klasser

Lösningsförslag till tentamen

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

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

Outline. 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

Parallellism, återblick

Tentamen FYTA11 Javaprogrammering

Transkript:

Ö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 Var programmet tar vägen i koden Påverkas av t.ex. If-satser For-loopar ar Två sorters loopar For-loop För ett givet antal gånger: gör följande Måste veta rätt antal från början Medan testet är sant: gör följande Mer dynamiskt Kan inte i förväg säga hur många gånger loopen kommer att köras Programmering 1 Rita Kovordányi 3 Programmering 1 Rita Kovordányi 4 For-loop public class ForLoop1 { For-loop public class ForLoop1 { int[] rain = {6, 4, 7, 2, 3, 1, 0; int[] rain = {6, 4, 7, 2, 3, 1, 0; for ( i < 7; i++) { initiering för dessa värden steg for ( i < rain.length; i++) { Programmering 1 Rita Kovordányi 5 Programmering 1 Rita Kovordányi 6

Nästlade for-loop public class ForLoop1 { int[][] rain = { { 6, 4, 7, 2, 3, 1, 0, { 4, 6, 3, 2, 1, 8, 9 ; for ( i < 2; i++) { for (int j = 0; j < 7; j++) { sum = sum + rain[i][j]; Programmering 1 Rita Kovordányi 7 Kontrollflöde för while-loop public class WhileLoop1 { int[] rain = { 1, 3, 7, 12, 4 ; Programmering 1 Rita Kovordányi 9 A i = 0 sum = 0 i < 5 sum = sum + rain[i] i = i++ B Programmering 1 Rita Kovordányi 10 public class WhileLoop1 { public class WhileLoop1 { int[] rain = MyLib.getData(); int[] rain = MyLib.getData(); Tänk alltid på vad som kommer att hända double mean = sum/i; om loopen aldrig körs System.out.println(mean); Programmering 1 Rita Kovordányi 11 Defensiv programmering if (i!= 0) { double mean = sum/i; System.out.println(mean); Programmering 1 Rita Kovordányi 12

Nästlade while-loop public class WhileLoopBreak { int[] rain = { 1, 3, 7, 12, 4 ; int record = 10; if (sum > record) { break; avbryt loopen Programmering 1 Rita Kovordányi 13 int[][] rain = { { 1, 3, 7, 12, 4, { 3, 4, 2, 6, 1 ; int j = 0; while (i < 2) { while (j < 5) { sum = sum + rain[i][j]; j++; Hmm?? Programmering 1 Rita Kovordányi 14 Nästlade while-loop int[][] rain = { { 1, 3, 7, 12, 4, { 3, 4, 2, 6, 1 ; int j = 0; while (i < 2) { j = 0; while (j < 5) { sum = sum + rain[i][j]; j++; Nu ska det nog funka! Skriva till och läsa från filer Programmering 1 Rita Kovordányi 15 Unika kommunikationskanaler Vi behöver en dedicerad kommunikationskanal som är knuten till den specifika filen vi vill arbeta med Klass och objekt (instanser av klassen) Klass: Hus, Djur, BankKonto, Pingvin Objekt: mitthus, annashus ludde pettersonskonto Mitt specifika hus Programmering 1 Rita Kovordányi 17 Programmering 1 Rita Kovordányi 18

Objekt (instanser) Skapa ett eget hus Objekt skapas utifrån den mall som finns i klassen House myhouse = new House(2); Vi har nu ett eget hus med 2 våningar Allt vi gör kommer att ha med detta hus att göra (inte med Hus i allmänhet) myhouse.paint( red ); Programmering 1 Rita Kovordányi 19 Programmering 1 Rita Kovordányi 20 Strömmar Kommunikationskanaler Gemensam beteckning Döljer olikheterna mellan olika input/output-enheter (IO-enheter) Dvs. olika enheter ska kunna skrivas och läsas på samma sätt IO-enheter Terminalen ( console ) Filer Biblioteket java.io Sockets Biblioteket java.net Programmering 1 Rita Kovordányi 21 Programmering 1 Rita Kovordányi 22 IO-data som ska skrivas/läsas Läsa från en binär-fil Binära data (8 bitar).exe-filer Ljud Bild Textfiler (16 bitar) Html XML Skrives/läses via strömmar Behöver dessutom readers och writers ström Programmering 1 Rita Kovordányi 23 Programmering 1 Rita Kovordányi 24

Läsa från en text-fil Läsa från URL ström reader URL url = new URL("http://..."); InputStream instr = url.openstream(); InputStreamReader ireader = new InputStreamReader(instr); BufferedReader reader = new BufferedReader(instrReader); String line = reader.readline(); while (line!= null) { alllines = alllines + line; line = reader.readline(); catch (MalformedURLException e) { catch (IOException e) { Programmering 1 Rita Kovordányi 25 Programmering 1 Rita Kovordányi 26 Skriva till URL URL url = new URL("http://..."); URLConnection connection = url.openconnection(); connection.setdooutput(true); OutputStream ostr = connection.getoutputstream(); OutputStreamWriter out = new OutputStreamWriter(ostr); out.write("hej!"); out.close(); catch (MalformedURLException e) { catch (IOException e) { Måste vara beredd på fel som kan uppstå Fel utanför ens kontroll T.ex. strömmen bryts mitt under fil-läsning Filen finns inte längre (har raderats) Minnet tar slut Programmering 1 Rita Kovordányi 27 Programmering 1 Rita Kovordányi 28 Hantera fel public class ErrHandling1 { Innehåller all information... läs data... om felet catch (Exception e) { System.out.println( Fel har uppstått ); e.printstacktrace(); Visar bl.a. anropskedjan Läs från terminalen ( console ) InputStreamReader inreader = new InputStreamReader(System.in); BufferedReader reader = new BufferedReader(inReader); String line = reader.readline(); if(line!= null) { //... catch (IOException e) { Programmering 1 Rita Kovordányi 29 Programmering 1 Rita Kovordányi 30

Läsa från textfil Skriva till textfil String alllines = ""; FileReader myfilereader = new FileReader( filnamn"); BufferedReader reader = new BufferedReader(myFileReader); String line = reader.readline(); while(line!= null) { alllines = alllines + line + "\n\r"; line = reader.readline(); catch (FileNotFoundException e) { catch (IOException e) { FileWriter fwriter = new FileWriter( filnamn"); PrintWriter writer = new PrintWriter(fWriter); writer.println("hej!"); writer.flush(); // kör ut från interna bufferten writer.close(); catch (IOException e) { Programmering 1 Rita Kovordányi 31 Programmering 1 Rita Kovordányi 32 Tips Eclipse-tricks Använd Debug-perspective för att söka fel i din kod För att fånga upp fel som kan uppstå under körning (t.ex. vid inmatning/utskrift) Skriv din kod Source Surround with Try-Catch block För att få hjälp med småfel på programmet Ctrl-1 (Dvs. tryck ner Control tillsammans med etta ) Navigera bland förslagen med piltangenterna, sedan Enter Programmering 1 Rita Kovordányi 34 Skapa egen Javadoc Skapa egen Javadoc Välj Project Generate Javadoc Notera att Eclipse (till skillnad från t.ex. Netbeans) inte kan hitta bland dina Java-SDK filer Du måste hjälpa den att hitta rätt kommando (rätt.exe-fil) Kilcka på Configure och hitta platsen där javadoc.exe finns Programmering 1 Rita Kovordányi 35