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

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

Klassdeklaration. Metoddeklaration. Parameteröverföring

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

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

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

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

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

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

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

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

Programmering A. Johan Eliasson

Övning2. Variabler. Data typer

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

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

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

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

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

SMD 134 Objektorienterad programmering

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

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

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

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

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

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

F4. programmeringsteknik och Matlab

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

Föreläsning 3. Iteration while-satsen

OOP Objekt-orienterad programmering

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

OOP Objekt-orienterad programmering

Objektorienterad Programmering (TDDC77)

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

Iteration while-satsen

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

Parameteröverföring. Exempel. Exempel. Metodkropp

Objektorienterad Programmering (TDDC77)

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

Enkla datatyper minne

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

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

Data, typ, selektion, iteration

Föreläsning 3. Iteration. while-satsen for-satsen do-satsen

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

OOP Objekt-orienterad programmering

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

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

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

Objektorienterad programmering i Java

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

(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

Programmeringsteknik I

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

JAVAUTVECKLING LEKTION 3

JAVAUTVECKLING LEKTION 7

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

JAVAUTVECKLING LEKTION 4

TDDC77 Objektorienterad Programmering

Hur ser ett Java-program ut?

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

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

Objektorienterad programmering Föreläsning 4

Lösningsförslag till tentamen

Iteration. Föreläsning 3. TDA540 - Objektorienterad Programmering

TDIU01 - Programmering i C++, grundkurs

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

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

LÖSNINGSFÖRSLAG TENTAMEN

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

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

Visual Basic, en snabbgenomgång

Föreläsning 2 - Intro till Java

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

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

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Objektorienterad programmering

TDIU01 - Programmering i C++, grundkurs

Den som bara har en hammare tror att alla problem är spikar

Tentamen OOP

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

Föreläsning 1 & 2 INTRODUKTION

Tentamen. Lösningsförslag

Villkor och tester. Utförande satser bygger upp metoderna, man brukar finindela detta i: sekvenser. Ett program består i princip av: selektioner (val)

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

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.

DatortillŠmpningar. Det har hšnt nœgot!

Tentamen , Introduktion till Java, dtaa98, dtea53

Introduktion till Java

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

Typkonvertering. Java versus C

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

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

Språkkonventioner och redigering av tal.

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

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

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

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

Undervisning. Examination

Modern Programmering (2546) Tentamen lördag

Lösningsförslag till tentamen

Transkript:

Fler byggstenar Heltalsrepresentation Fyra heltalstyper Intern data representation Typomvandlingar Fler operatorer VŠljande & upprepande satser Tecken-bit by te t short t int t 7 bitar 15 bitar 31 bitar long t 63 bitar 1 2 Heltalet 25 med 8 bitar (1 byte) 00011001-25, invertera alla bitar 11100110 addera ett 11100111 TvŒ-komplement Overflow och Underflow Fasta minnesutrymmen kan ge problem med overflow/underflow Overflow nšr talet blir fšr stort fšr det allokerade utrymmet Underflow nšr všrdet blir fšr litet fšr att kunna skiljas frœn noll Teckenbiten bytte tecken och indikerar ett negativt tal 3 4 FlyttalsvŠrden FlyttalsvŠrden Ett decimalt flyttal kan definieras tecken * mantissa * 10 exponent -843.977 kan skrivas -1 * 843977 * 10-3 dšr Ð tecken Šr 1 eller -1 Ð mantissa positivt všrde som anger de všrdebšrande siffrorna Ð ex pon ent anger hur decimalpunk ten ska skiftas i fšrhœll ande till mantissan BinŠrt tecken * mantissa * 2 exponent 5 6 1

Tecken Tecken Representeras i Java med Unicode Character Set Varje tecken har ett unikt siffervšrde Tecknet 'z' har Unicode všrde 122, som med 16 bitar blir 0000000001111010 DŠrfšr kan man ÓrŠknaÓ med tecken T.ex. 'A' is stored har Unicode všrde 65, vilket medfšr att ch = 'A' + 5; Ger tecknet 'F' in ch (Unicode všrde 70) Kan vara anvšndbart 7 8 Typkonvertering Utškande konverteringar Oftast problemfritt Varje všrde associeras med en specifik datatyp Ibland behšvs konvertering Allt kan inte konverteras, booleska všrden t.ex. Akta sœ att information inte gœr fšrlorad Ð frœn mindre till stšrre všrdemšngd FrŒn Till by te short int long float short, int, long, float eller double int, long, float eller double int, long, float eller double long, float eller double float eller double double 9 10 InskrŠnkande konverteringar Typkonvertering Mer riskfyllt Ð gœr frœn mindre datamšngd till stšrre FrŒn Till by te short int long float double byte eller byte eller short byte, short eller byte, short, eller int byte, short,, int eller long byte, short,, int, long eller float 3 sštt att gšra typkonvertering Tilldelning - všrdet och variabeln har olika typ aritmetisk - operatorer som automatiskt konverterar typen hos operanderna Casting - en operator som tvingar ett všrde till en annan typ 11 12 2

Tilldelning Aritmetisk typkonvertering float pengar; int kronor = 82; pengar = kronor; konverterar všrdet 82 till 82.0 Det všrde som kronor har Šndras inte Mšjligt bara med utškande konverteringar Detta gšller Šven parameteršverfšring Vissa operatorer kršver konsistenta typer fšr operanderna float summa,resultat; int antal ; resultat = summa / antal; VŠrdet i antal konverteras internt till float divisionen utfšrs och ger ett flyttalsresultat VŠrdet hos antal Šndras inte 13 14 Cast-operatorn Primitiva typerna har wrapper class. Wrappers Operator som specificeras av ett typ-namn inom parentes Placeras framfšr všrdet som ska konverteras Heltalsdelen av pengar lagras i kronor kronor = (int) pengar; VŠrdet hos pengar Šndras inte r en konvertering mšjlig, kan den gšras med en cast Primitiv Typ int double boolean Wrapper Class Integer Double Character Boolean Objekt istf. primitiv typ Ger metoder (appendix O) int heltal = Integer.parseInt(Ó123Ó); 15 16 Fler operatorer Operatorer fšr att ška och minska Andra operatorer i Java : Ð operatorer som škar/minskar ett všrde Ð logiska operatorer (har vi redan tittat pœ) Ð tilldelnings operatorer Operatorn (++) adderar ett till heltal eller flyttal antal++; I princip ekvivalent med antal = antal + 1; Motsvarande finns fšr att minska med ett 17 18 3

ka och minska Operatorerna kan appliceras prefix (fšre variabeln) eller postfix (efter variabeln) Som egen sats Šr : antal++; ekvivalent med ++antal; import java.util.*; class Tips public static void main(string[] args) Random tips1x2 = new Random; tecken; int slumptal; slumptal = Math.abs(tips1X2.nextInt()) % 3; if (slumptal = 1) tecken = Õ1Õ; else if (slumptal = 2) tecken = Õ2Õ; else tecken = ÕXÕ; É //main //Tips Exempel 19 20 Syntax : switch (expression) case value1: statement-list1 case value2: statement-list2 case É switch import java.util.*; class Tips public static void main(string[] args) É Random tips1x2 = new Random; tecken; switch (Math.abs(tips1X2.nextInt() % 3 )) case 1: tecken = Õ1Õ; break; case 2: tecken = Õ2Õ break; default : tecken = ÕXÕ; //main //Tips Exemplet pœ annat sštt.. 21 22 switch -satsen Upprepningar Uttrycket mœste kunna evalueras till heltal eller tecken break ett ÓšvrigaÓ-fall kan lšggas sist med default TvŒ konstruktioner till: do-satsen for-satsen Sitautionen avgšr vilken man všljer 23 24 4

do -satsen Syntax : sats do sats while (villkor); true villkor false Satsen utfšrs tills villkoret blir falskt Villkoret testas efter det att satserna utfšrts import java.io.*; import java.util.random; do - satsen class Dice // Uses a do loop to roll two dice multiple times. public static void main (String[] args) throws IOException Random roll = new Random(); int die1, die2; String again; do Out.println ("Rolling the dice..."); die1 = Math.abs (roll.nextint()) % 6 + 1; die2 = Math.abs (roll.nextint()) % 6 + 1; System.out.println ("You rolled a " + (die1 + die2)); Out.print("Roll again (y or n)? "); again = In.readLine(); while (again.equals("y")); // method main // class Dice 25 26 Kšrning import java.util.random; public class Dice2 private final static int MAX_ROLLS = 1000; for - satsen public static void main (String[] args) Random roll = new Random(); int die1, die2, snake_eyes = 0; for (int count=1; count <= MAX_ROLLS; count++) die1 = Math.abs (roll.nextint()) % 6 + 1; die2 = Math.abs (roll.nextint()) % 6 + 1; if (die1 + die2 == 2) snake_eyes++; // for-loop Out.print ("Out of " + MAX_ROLLS + " rolls, "); Out.println ("you rolled snake eyes " + snake_eyes + " times."); // main // class Dice2 27 28 Kšrningar Syntax : for -satsen motsvarar for (initialisering; villkor; fšršndring) sats; initialisering; while (villkor) sats; fšršndring; 29 30 5

for -satsen for -satsen initialisering Som fšr while sœ testas villkoret innan satsen utfšrs for-loopen utfšrs noll eller flera gœnger Fast loop Loop-variabeln bšr inte Šndras i satserna villkor true sats fšršndring false 31 32 for (int antal=1; antal < 75; antal++) System.out.println (antal); for -satsen for (int num=5; num <= total; num = num*2) sum = sum + num; System.out.println (sum); 33 6