1 Programmering i Java. Program element - Introduktion. Exempel. Exempel. Kapitel 3:

Relevanta dokument
Heltalsrepresentation. Fler byggstenar. Overflow och Underflow. TvŒ-komplement. FlyttalsvŠrden. Fyra heltalstyper. Tecken-bit

Klassdeklaration. Metoddeklaration. Parameteröverföring

SMD 134 Objektorienterad programmering

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

Kapitel 6. Kapitel 6. Hakparenteser fšr att ange index float[] priser = new float[500]; frekvens[4] boolean[] flaggor;

Programmering A. Johan Eliasson

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

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

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

Parameteröverföring. Exempel. Exempel. Metodkropp

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

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

Objektorienterad programmering i Java

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Objektorienterad Programmering (TDDC77)

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Föreläsning 7. Nyckelord I Java. Uttryck. Uttryck, Operatorer Och Kontrollflöden

Objektorienterad Programmering (TDDC77)

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

OOP Objekt-orienterad programmering

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

Språkkonventioner och redigering av tal.

OOP Objekt-orienterad programmering

Övning2. Variabler. Data typer

Datastrukturer. Erik Forslin. Rum 1445, plan 4 på Nada

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

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Föreläsning 3: Booleans, if, switch

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

1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler

Objekt och klasser - Introduktion. Objekt. SparKonto.java 2. SparKonto.java 1. Konton.java. Ett objekt har: Ett bankkonto

JAVAUTVECKLING LEKTION 7

Objektorienterad programmering i Java

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val

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

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

Objekt och klasser - Introduktion. Objekt. Spar_Konto 2. Spar_Konto 1. Konton. Ett objekt har: Ett bankkonto. public void uttag(double belopp)

TDIU01 - Programmering i C++, grundkurs

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

Tentamen , Introduktion till Java, dtaa98, dtea53

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Tentamen Programmeringsteknik II för STS Skrivtid: Inga hjälpmedel.

F4. programmeringsteknik och Matlab

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

l uppgiftsformulering l algoritmkonstruktion l verifikation l kodning l testning och avlusning l validering l dokumentering l underhœll Kapitel 2

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

List.java. List.java. Printed by Tom Smedsaas

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

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

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

TDDC77 Objektorienterad Programmering

Programmeringsteknik I

Föreläsning 3-4 Innehåll

Läsanvisning: Dessa OH bilder samt kap 1-3

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

Objektorienterad Programmering (TDDC77)

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

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

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

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

LÖSNINGSFÖRSLAG TENTAMEN

Skillnader mellan Python och Java

Hur ser ett Java-program ut?

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

OOP Objekt-orienterad programmering

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

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

Föreläsning 2 sept 05 (Onsdag v 36). DD Chapter 2.

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

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

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

Data, typ, selektion, iteration

TDDC77 Objektorienterad Programmering

Tentamen OOP

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

JAVAUTVECKLING LEKTION 4

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Lösningsförslag: Instuderingsfrågor, del A

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

Introduktion till Datalogi DD1339. Föreläsning 3 29 sept 2014

Föreläsning 3. Iteration while-satsen

Objektorienterad programmering Föreläsning 4

Föreläsningar 9, 10 (okt 01, okt 03 v 40). delvis DD Chapter 7.

Inledande programmering med C# (1DV402) 27+15=42 1 (22)

Typkonvertering. Java versus C

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

Mer källkod. Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne. Erik Forslin. Rum 1445, plan 4 på Nada

TDDC77 Objektorienterad Programmering

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

Föreläsning 1 & 2 INTRODUKTION

TDIU01 - Programmering i C++, grundkurs

Tentamen ID1004 Objektorienterad programmering October 29, 2013

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

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

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

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

Tentamen i Algoritmer & Datastrukturer i Java

Ett exempel som illustration till Laboration 1

Transkript:

Program element - Introduktion : Ð data typer Ð variabler Ð operatorer och uttryck Ð val och loopar Ð input och output 1 2 import java.io.*; class Addition //=========================================================== // Reads two integers and prints their sum. //=========================================================== Kšrning public static void main (String[] args) throws IOException BufferedReader stdin; stdin = new BufferedReader(new InputStreamReader(System.in)); String string1, string2; int num1, num2, sum; System.out.println ("Enter a number:"); string1 = stdin.readline(); num1 = Integer.parseInt (string1); System.out.println ("Enter another number:"); string2 = stdin.readline(); num2 = Integer.parseInt (string2); sum = num1 + num2; System.out.println ("The sum is " + sum); } // method main } // class Addition Exempel 3 4 Kšrning Exempel import java.io.*; class Addition //=========================================================== // Reads two integers and prints their sum. //=========================================================== public static void main (String[] args) throws IOException... String string1, string2; int num1, num2, sum; System.out.print ("Enter a number:"); System.out.flush(); string1 = stdin.readline(); num1 = Integer.parseInt (string1);... sum = num1 + num2; } // method main 5 } // class Addition 6 1

Kšrning 7 8 Primitiva Data Typer Heltal data typ definieras av všrden, relationer och operatorer Fšrdefinierade typer : Ð byte, short, int, long, float, double, boolean, char 4 enkla heltalstyper Typ Minne byte short int long 8 bits 16 bits 32 bits 64 bits Min všrde -128-32,768-2,147,483,648 < -9 x 10 18 Max všrde 127 32,767 2,147,483,647 > 9 x 10 18 9 10 Flyttal Tecken TvŒ typer: Typ Minne Approx. Min všrde Approx. Max všrde Enstaka tecken ur Unicode character set float double 32 bitar 64 bitar -3.4 x 10 38-1.7 x 10 308 3.4 x 10 38 1.7 x 10 308 VŠrdena ordnade 16 bitar fšr lagring ger 65.536 unika tecken float 7 signifikanta siffror double 15 signifikanta siffror 11 12 2

import java.io.*; class Temperature2 Villkor final static int BRYTPUNKTEN = 65; public static void main (String[] args) throws IOException BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in)); System.out.println (ÓAnge temperaturen:"); int temperatur = Integer.parseInt (stdin.readline()); System.out.println (ÓAktuell temperatur: " + temperatur); if (temperatur < BRYTPUNKTEN) System.out.print (ÓBrrrrrr. Kallt! "); System.out.println (ÓMen det ar ok!."); } System.out.println (ÓNu avslutas applikationen."); } // method main } // class Temperature2 Kšrningar 13 14 Boolean Variabler Identifierare, minnesplats fšr všrde av angiven typ Variabler mœste deklareras Reserverade ord true och false Syntax : data-typ variabel-namn; Exempel: int total; 15 16 Variabler Primitiva typerna har wrapper class. Wrappers Flera pœ samma rad: int total, count, sum; Kan initialiseras i deklarationen : int total = 0, count = 20; float unit_price = 57.25; Primitiv Typ int double char boolean Wrapper Class Integer Double Character Boolean Objekt istf. primitiv typ Ger metoder (appendix O) int heltal = Integer.parseInt(Ó123Ó); Se Piano_Keys.java 17 18 3

Tilldelningssatsen Konstanter variabel-namn = uttryck; uttrycket evalueras och lagras Se United_States.java (s.80) Primitivt všrde eller komplext uttryck Namngivet všrde Markeras med reserverade ordet final Exempel: final double PI = 3.14159; final int STUDENTER = 64; Enklare att uppdatera LŠttare att lšsa 19 20 Java I/O baseras pœ stršmmar (streams) Input / Output Input / Output Java API mšjliggšr mœnga slag av I/O Tecken stršngar : System.in Šndras till annan stršm Fšrdefinierade standardstršmmar: stršm syfte System.in System.out System.err lšsa input skriva output skriva fel enhet tangentbord bildskšrm bildskšrm BufferedReader stdin = new BufferedReader(new InputStreamReader (System.in)); Ny stršm stdin print och println metoder som skriver pœ standardoutput 21 22 Escape Sekvenser Buffertar Se Echo.java (s.84) Escape-sekvenser fšregœs av backslash (\) FrŒn tangetntbordet till input buffert Vagnretur/enter avslutar inmatningen Ger speciella všrden: Escape Sekvens \t \n \" \' \\ Ger tab Ny rad Dubbel snutt Enkel snutt backslash Utskrifter lagras i output buffert Ð Kan tšmmas pœ skšrmen med flush metoden Se Python.java 23 24 4

SiffervŠrden Uttryck StrŠng - heltal Integer wrapper class: int heltal = Integer.parseInt (str); LŠsa och konvertera i samma sats: Kombination av operander och operatorer Aritmetiska : + - * / Operanderna enkla všrden eller komplexa uttryck heltal = Integer.parseInt (stdin.readline()); Se Addition.java och Addition2.java 25 26 Division Division BŒda operanderna heltal ger heltalsresultat (ev. trunkerat) En av oparanderna flyttal -> resultatet flyttal Modulus (%) ger resten vid heltalsdivision Ð Operanderna mœste vara heltal Se Division.java Resten fœr samma tecken som tšljaren uttryck 17 / 5 17.0 / 5 17 / 5.0 9 / 12 9.0 / 12.0 6 % 2 14 % 5-14 % 5 resultat 3 3.4 3.4 0 0.75 0 4-4 27 28 Prioritetsordning Prioritetsordning Evalueringsregler Vid samma prioritet avgšr associativiteten hos operatorerna (všnster-hšger/hšger-všnster) Parenteser Appendix D Multiplikation, division och modulus hšgre prioritet Šn addition och subtraktion BŒda associerar všnster - hšger uttryck: 5 + 12 / 5-10 % 3 Evalueringsordning: Resultat: 6 3 1 4 2 29 30 5

Exempel If - satsen uttryck 2 + 3 * 4 / 2 3 * 13 + 2 (3 * 13) + 2 3 * (13 + 2) Result 8 41 41 45 Syntax : if (villkor) sats; true villkor false 4 * (11-6) * (-8 + 10) (5 * (4-1)) / 2 40 7 sats 31 32 Booleska uttryck Block Villkoret mœste evaluera till true/false Operatorer Operator : Betydelse == Identisk lika!= Inte identiskt lika < Mindre Šn <= Mindre Šn eller lika med > Stšrre Šn <= Stšrre Šn eller lika med AvgrŠnsas med ÓkrullparenteserÓ sats; sats; É } Kan anvšndas šverallt dšr sats kan fšrekomma Se Temperature2.java Se Temperature.java 33 34 if (villkor) sats1; else sats2; Se Temperature3.java och Right_Triangle.java villkor true sats1 if-else satsen false sats2 class Football_Choice NŠstade if-satser //main.. System.out.println(ÓEnter 1 foréó); int coin = Integer.parseInt(stdin.readLine()); System.out.println(ÓEnter 1 toéó); int choice = Integer.parseInt(stdin.readLine()); if (coin == HEADS) if (choice == RECCEIVE) System.out.println(ÓYou won the toss ÉÓ); else System.out.println(Ó É and will kickoffó); else System.out.println(Ó You lost the tossó); }// main }// Football_Choice ÓDangling elseó 35 36 6

Syntax: While-satsen while satsen while (villkor) sats; villkor false Utfšrs noll eller flera gœnger Se Counter.java (s.103) och Powers_of_Two.java (s.105) true Factors.java Villkoret evalueras - satsen utfšrs/utfšrs inte Villkoret testas inte kontinuerligt sats while(count =< (number/2)) if (number % count == 0) System.out.println(count); } 37 38 OŠndliga loopar Program utveckling Villkoret mœste nœgon gœng bli falskt Vanligt logiskt fel Se Forever.java (s.106) Fyra delmoment: Ð FaststŠlla fšrutsšttningarna/kraven Ð Skapa en design Ð Implementera koden Ð Testa implementationen 39 40 Krav/fšrutsŠttningar Design Vad ska gšras? Hur beršrs anvšndarytan? Vilka begršnsningar finns? Algoritm fšr problemlšsningen Vilka algoritmer och data kršvs? I en objektorienterad design bestšms klasser, objekts och metoder som behšvs Algoritmer kan uttryckas i pseudokod 41 42 7

Implementation Testning versšttning av design till kšllkod Tester mœste konstrueras fšr extremer, svagheter och gršnsfall Alla viktiga beslut tas vid analys och design Dokumenteras Implementationen fokuserar pœ kod-detaljer 43 44 8