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

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

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

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

JAVAUTVECKLING LEKTION 7

Språkkonventioner och redigering av tal.

Föreläsning 14. Filhantering

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

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

Objektorienterad programmering i Java

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

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

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

Föreläsningsmaterial (Syntax och variabler)

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

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

Tentamen. Lösningsförslag

Lösningar för tenta 2 DAT043,

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

Föreläsning 3-4 Innehåll

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

Arrayer med primitiva datatyper

Objektorienterad Programmering (TDDC77)

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

JAVAUTVECKLING LEKTION 4

Fördjupad Java. Undantagshantering. Fel

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

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

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

OOP Objekt-orienterad programmering

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

TENTAMEN OOP

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

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

Malmö högskola 2008/2009 CTS

SMD 134 Objektorienterad programmering

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

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

DAT043 Objektorienterad Programmering

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

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

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

Tentamen ID1004 Objektorienterad programmering May 29, 2012

Tentamen , Introduktion till Java, dtaa98, dtea53

Tentamen OOP

Tentamen FYTA11 Javaprogrammering

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.

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

Input. Programmering. Andra källor

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

Föreläsning 9-10 Innehåll

F4. programmeringsteknik och Matlab

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

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

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

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

Lösningsförslag, tentamen FYTA11 Javaprogrammering

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.

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

Instuderingsuppgifter läsvecka 6 - LÖSNINGAR

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

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.

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

Del A (obligatorisk för alla)

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

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

Tentamen , Grundläggande programmering i Java

Föreläsning 14. Träd och filhantering

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

DAT043 Objektorienterad programmering för D, DIT011 Objektorienterad programvaruutveckling för GU

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ

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

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

for-satsen Fält for-satsen Föreläsning 8 (OH-bilder 7) for-satsen for-sats är en styrsats för iterationer. for-sats har följande generella utseende:

LÖSNINGSFÖRSLAG TILL TENTAMEN PROGRAMMERINGSMETODIK MOM2 - JAVA, 4P.

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

Hur ser ett Java-program ut?

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

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

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

TENTAMEN OOP

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

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

Objektorienterad programmering D2

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

Objektorienterad Programmering (TDDC77)

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

System.out.println("Jaså du har "+ antalhusdjur+ " husdjur"); if ( antalhusdjur > 5 ) System.out.println("Oj det var många);

[] Arrayer = Indexerad variabel

Programmeringsteknik och Matlab. Dagens program. Viktiga datum. Repetitionsexempel. Repetition av if/else, for, while och Scanner

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

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

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

Föreläsning 5-6 Innehåll

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

Kompilera och exekvera Javakod

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

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

Transkript:

Tangentbord.java import java.io.*; class Tangentbord public static void main(string[] args) throws IOException BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Skriv text. Avsluta med att på en blankrad cka control+z (c) (på pc) eller control+d (unix)"); String rad = in.readline(); while (rad!= null) //sant så länge som strängen inte är null, man inte har matat in ctrl+c System.out.println(rad); //skriver ut den inlästa textsträngen rad = in.readline(); Talinlasning.java import java.io.*; /*Detta program läser in ett heltal och ett decimaltal. Det har dock ingen felhantering vilket medför att felaktiga värden leder till exekveringsavbrott*/ class Talinlasning public static void main(string[] args)throws IOException BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Skriv in ett heltal: "); String text = in.readline(); //läser in en text från tangentbordet int tal = Integer.parseInt(text); //omvandlar texten till ett heltal. //Om texten inte är ett heltal kraschar programmet System.out.println("Du skrev: " + tal); System.out.println("Skriv in ett decimaltal. OBS använd punkt "); text=in.readline(); double decimaltal = Double.parseDouble(text); System.out.println("Du skrev: " + decimaltal);

TalinlasningFelhantering.java import java.io.*; class TalinlasningFelhantering /**Detta program tillåter inläsning av ett heltal och ett flyttal. Denna version har felhantering som tar hand om felaktiga inmatningar och skriver ut lämpligt felmeddelande.*/ public static void main(string[] args) throws IOException BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Skriv in ett heltal."); String rad = in.readline(); //läser en textrad från tangentbordet. int tal = 0; //Try-sats för att fånga NumberFormatException som kan uppstå vid felaktig inmatning tal = Integer.parseInt(rad); //omvandlar textsträngen till ett heltal. System.out.println("Du skrev: " + tal); //denna sats utförs endsast om inget fel uppstod catch (NumberFormatException e) //Fångar upp exception //här hamnar exekveringen om en felaktig datatyp matades in och ett exception uppstod. System.out.println("Du angav felaktig datatyp."); System.out.println("Skriv in ett decimaltal. OBS använd punkt istället för komma"); rad = in.readline(); double decimaltal = 0.0; decimaltal = Double.parseDouble(rad);//omvandlar textsträngen till ett decimaltal System.out.println("Du skrev: " + decimaltal); //dessa satser utförs endsast om inget fel uppstod catch (NumberFormatException e) //här hamnar exekveringen om en felaktig datatyp matades in och ett exception uppstod. System.out.println("Du angav felaktig datatyp."); IOExempel_1.java /* * Programmet är ett minimalt exempel på hur data kan läsas från en textfil, rad * för rad. * */

import java.io.bufferedreader; import java.io.filenotfoundexception; import java.io.filereader; import java.io.ioexception; public class IOExempel_1 public static void main(string[] args)throws IOException BufferedReader in; FileReader freader = null; String textrad; freader = new FileReader("infil.txt"); catch (FileNotFoundException e) System.out.println("Filen hittades inte. Programmet avslutas."); in = new BufferedReader(fReader); while ((textrad = in.readline())!= null) System.out.println(textRad); catch (IOException e1) System.out.println("Problem uppstod vid läsning av filen. Programmet avslutas."); IOExempel_2.java import java.io.*; public class IOExempel_2 public static void main(string[] args)throws IOExcpetion PrintWriter ut; FileWriter fwriter;

String[] namn; namn = new String[5]; namn[0]="jonas"; namn[1]="lotta"; namn[2]="kalle"; namn[3]="lisa"; namn[4]="pelle"; fwriter = new FileWriter("utfil.txt"); ut = new PrintWriter(fWriter); for(int i=0;i<namn.length;i++) ut.println(namn[i]); ut.close(); catch (IOException e) System.out.println("Problem uppstod vid filhanteringen."); PelletsExempel.java import java.io.bufferedreader; import java.io.filereader; import java.io.ioexception; class PelletsExempel public static void main(string[] args) // Programmet inleds med deklarationer och initiering // av array och variabler int[] pellets = new int[1000]; int summa=0; int antal=0; float medelvarde=0.0f; BufferedReader in; FileReader freader = new FileReader("pelletsvikter.txt"); in = new BufferedReader(fReader); String line; while ((line = in.readline())!=null)

pellets[antal]=integer.parseint(line); antal++; catch (IOException e) System.out.println("Problem vid filhantering."); // Summan och medelvärdet beräknas for (int i=0; i < antal;i++) summa += pellets[i]; medelvarde = (float)summa / antal; // Medelvärdet skrivs därefter ut System.out.println("Antal pellets: " + antal); System.out.println("Medelvikt: " + medelvarde); Produkt.java class Produkt private String namn; private int pnummer; private int pris; public Produkt() public Produkt(String init_namn, int init_nummer, int init_pris) namn = init_namn; pnummer = init_nummer; pris = init_pris; public String getnamn() return namn; public void setnamn(string nytt_namn) namn = nytt_namn;

public int getpnummer() return pnummer; public void setpnummer(int nytt_nummer) pnummer = nytt_nummer; public int getpris() return pris; public void setpris(int nytt_pris) pris = nytt_pris; ProduktRegister.java import java.io.*; public class ProduktRegister private Produkt[] prodarray; private int antalprodukter; public ProduktRegister(int maxantal) prodarray = new Produkt[maxAntal]; antalprodukter = 0; public void addprodukt(produkt p) prodarray[antalprodukter] = p; antalprodukter++; public Produkt getprodukt(int index) return prodarray[index]; public int getantalprodukter() return antalprodukter;

public void franfil(string filnamn) BufferedReader in; FileReader freader; freader = new FileReader(filNamn); in = new BufferedReader(fReader); String line; while ((line = in.readline())!=null) Produkt p = new Produkt(); p.setnamn(line); line = in.readline(); p.setpnummer(integer.parseint(line)); line = in.readline(); p.setpris(integer.parseint(line)); this.addprodukt(p); catch (IOException e) System.out.println("Problem uppstod vid filhanteringen."); public void tillfil(string filnamn) PrintWriter ut; FileWriter fwriter; fwriter = new FileWriter(filNamn); ut = new PrintWriter(fWriter); for (int i = 0; i < antalprodukter; i++) Produkt p = this.getprodukt(i); ut.println(p.getnamn()); ut.println(integer.tostring(p.getpnummer())); ut.println(integer.tostring(p.getpris())); ut.close(); catch (IOException e) System.out.println("Problem uppstod vid filhanteringen.");

ProduktApp.java public class ProduktApp public static void main(string[] args) ProduktRegister preg = new ProduktRegister(100); preg.franfil("produktdata.txt"); System.out.println("Antal produkter: " + preg.getantalprodukter());; Produkt p = new Produkt(); p.setnamn("pda"); p.setpnummer(123456); p.setpris(5230); preg.addprodukt(p); preg.tillfil("prod.txt"); Textfilsvisare.java import java.io.*; //import av paket io class Textfilsvisare /** Textfilsvisare läser en textfil och skriver ut den på skärmen.*/ private String filnamn; //namnet på filen som skall läsas. private BufferedReader infil; //Inström som representerar filen som skall läsas. private boolean oppnat = false; //används för att kolla om man har öppnat filen eller ej. /** String filnamn är namnet på den fil som skall läsas.*/ public Textfilsvisare(String init_filnamn) //konstruktor filnamn = init_filnamn; public void oppnafilen() infil = new BufferedReader(new FileReader(filnamn)); //filen öppnas oppnat = true; //logisk flagga som sätts till sann om filen kunde öppnas. catch (FileNotFoundException e)

public void lasfilen() throws IOException if (oppnat)//sann om filen kunde öppnas. Hindrar att metoderna används i fel ordning. String s = infil.readline(); //läser en textsträng ifrån textfilen while (s!= null) //sant så länge som strängen inte är null System.out.println(s); //Skriver ut textsträngen till bildskärmen. s = infil.readline(); else StartTextfilsvisare.java import java.io.*; //import av paket io class StartTextfilsvisare /** Start har till enda uppgift att läsa in ett kommandradsargument, nämligen namnet på den textfil som skall läsas, skapa ett Textfilsvisarobjekt och anropa dess operationer.*/ public static void main(string[] args) throws IOException if (args.length == 1)//sann om det finns ett argument på kommandoraden = filnamnet Textfilsvisare tfs = new Textfilsvisare(args[0]); //skapar ett Textfilsvisareobjekt tfs.oppnafilen(); //anropar oppnafilen-operationen tfs.lasfilen(); //anropar lasfilen-operationen else System.out.println("Du angav inget filnamn. Programmet avslutas."); System.exit(0); Övningsuppgifter 1. Skriv om programmet TalinlasningFelhantering så att det vid felaktigt dataformat ber användaren

mata in ett nytt tal till dess att ett riktigt dataformat matats in. 2. a) Skriv ett program som kopierar en textfil. Namn på originalfilen och kopiafilen ska anges av användaren. Om originalfilen inte kan hittas skall ett felmeddelande skrivas ut. b) Modifiera programmet från övning 2 a så att det inte kräver inmatning av namnet på kopiafilen, istället ska namnet på kopian bli namnet av original med strängen kopia_av_ före. Exempelvis ska filen mintext.txt bli kopia_av_mintext.txt. 3. Skriv ett program som tar två textfiler som indata och slår samman dessa till en fil. Exempel Indatafil1 Indatafil2 Utdata Här börjar berättelsen. Den är inte så lång. Här kommer fortsättningen. Den var inte heller så lång. Här börjar berättelsen. Den är inte så lång. Här kommer fortsättningen. Den var inte heller så lång. 4. Nedanstående program har ett logiskt fel. Vid exekvering kraschar programmet och ger ett felmeddelande. Din uppgift är att hitta detta fel och rätta till det, vilket kan göras med eller utan användning av undantagshantering. Gör en lösning där du utnyttjar undantagshantering och en där du inte utnyttjar undantagshantering. class Luckor public static void main(string[] args) String[] text = "ett", "två", "tre", "fyra", "fem"; text[3] = null; for(int i =0; i<text.length; i++) System.out.println(text[i] + "\t" + text[i].length()); 5. Gör om något av de tidigare objektorienterade programmen under kursen (tex elevprogrammet eller artikelprogrammet) så att det sparar data om objekten i en fil.