JAVAUTVECKLING LEKTION 3

Relevanta dokument
JAVAUTVECKLING LEKTION 4

JAVAUTVECKLING LEKTION 7

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

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

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering

Agenda (obs! halvdag)

Objektorienterad programmering Föreläsning 4

JAVAUTVECKLING LEKTION 8

JAVAUTVECKLING LEKTION 11

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

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Objektorienterad Programmering (TDDC77)

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

Data, typ, selektion, iteration

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 3. Iteration while-satsen

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

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

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Klassdeklaration. Metoddeklaration. Parameteröverföring

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: Typomvandling, villkor och val, samt textsträngar

Iteration while-satsen

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

Objektorienterad programmering

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

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

Malmö högskola 2012/2013 Teknik och samhälle

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

Enkla datatyper minne

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

Instuderingsfrågor, del A

PROGRAMMERING-Java Omtentamina

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

Malmö högskola 2008/2009 CTS

Diagnostiskt Prov. Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas.

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

Objektorienterad programmering Föreläsning 9. Copyright Mahmud Al Hakim Agenda (halvdag)

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

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

JAVA Mer om klasser och objektorientering

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

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

Laboration 1. Objektorienterad programmering, Z1. Syfte

SMD 134 Objektorienterad programmering

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

Utforska cirkelns ekvation

En kort text om programmering i C.

Övningsuppgifter omkrets, area och volym

Objektorienterad programmering Föreläsning 2

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. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

Språket Python - Del 1 Grundkurs i programmering med Python

F4. programmeringsteknik och Matlab

Objektorienterad programmering Föreläsning 5

Föreläsning 3-4 Innehåll

kl Tentaupplägg

OOP Tentamen

Lektion 1, del b Utskrifter av variabelvärden Inläsning av värden till variabler

TDIU01 - Programmering i C++, grundkurs

(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

Lektion 1 Introduktion till DrJava och Java

OOP Objekt-orienterad programmering

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 11

OOP Objekt-orienterad programmering

6.5 Spelserien Gissa tal

Övning2. Variabler. Data typer

Lokala mål i matematik

PROGRAMMERING-Java TENTAMINA

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

2. 1 L ä n g d, o m k r e t s o c h a r e a

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

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

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

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

Programmering A. Johan Eliasson

Metodanrop - primitiva typer. Föreläsning 4. Metodanrop - referenstyper. Metodanrop - primitiva typer

Chapter 4: Writing Classes/ Att skriva egna klasser.

Föreläsningsmaterial (Syntax och variabler)

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

Översikt Introduktion DST 1. Nicholas Wickström. IDE, Högskolan i Halmstad. N. Wickström

Föreläsning 2 - Intro till Java

Tema: Pythagoras sats. Linnéa Utterström & Malin Öberg

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy cards. Slingor

public interface Skrivbar { void skriv(); } public class Punkt implements Skrivbar { public double x; public double y;

Lite logik. Kap 6: Sid 2

Arbetsblad 3:1. Hur stor är vinkeln? 1 Vilken eller vilka av vinklarna är. 2 Uppskatta (gör en bra gissning) hur stora vinklarna är.

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

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

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

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim Agenda (halvdag)

Programexempel: tärningsspel. Programexempel: tärningsspel Kasta tärning tills etta. Klassen Die Specifikation. Slumptalsgenerator Klassen Random

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

OOP Objekt-orienterad programmering

2D1339 Programkonstruktion för F1, ht 2004

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

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

Transkript:

JAVAUTVECKLING LEKTION 3 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Numeriska typer Inläsning av numerisk data Numeriska typomvandlingar Standardklassen Math Villkorskonstruktioner 1

Flyttalstyper Heltalstyper INBYGGDA NUMERISKA TYPER typ antal bitar minsta värde byte 8-128 127 short 16-32 768 32 767 största värde int 32-2 147 483 648 2 147 483 647 long 64 Ungefär -9,2 x 10 18 Ungefär 9,2 x 10 18 float 32 Ungefär -3,4 x 10 38 7 siffrors noggrannhet double 64 Ungefär -1,7 x 10 308 15 siffrors noggrannhet Ungefär 3,4 x 10 38 7 siffrors noggrannhet Ungefär 1,7 x 10 308 15 siffrors noggrannhet ÖVNING 3.1 public class Tilldelning { public static void main (String[] arg) { int i; double d; byte b; i = 500; // OK! d = 500; // OK! b = 500; // inte tillåten, varför? 2

ÖVNING 3.2 public class Tilldelning2 { public static void main (String[] arg) { int i; double d; byte b; i = 500.7; // inte tillåten, varför? d = 500.7; // OK! b = 500.7; // inte tillåten, varför? INLÄSNING AV NUMERISKA DATA String s = JOptionPane.showInputDialog( Ange antal"); Antal lagras i s som sträng (text). Vi behöver omvandla från typen String till int eller double int i = Integer.parseInt(s); double d = Double.parseDouble(s); 3

ÖVNING 3.4 public class Mobil { public static void main (String[] arg) { String s = JOptionPane.showInputDialog("Antal minuter per månad?"); int min = Integer.parseInt(s); s = JOptionPane.showInputDialog("Pris per minut?"); double minutpris = Double.parseDouble(s); double kostnad = min*minutpris; JOptionPane.showMessageDialog(null, "Månadskostnad: " + kostnad); ÖVNING Skriv ett program som läser in en cirkels radie från en dialogruta. Programmet ska beräkna cirkelns omkrets och area. Visa resultaten i en dialogruta. Tips π 3,1415926536 omkretsen=2 π radien Area = π r r = π r 2 4

ÖVNING Skriv ett program som läser in en varas pris, inkl. moms. Programmet skall också till en variabel av typen int läsa in momssatsen som skall vara ett helt antal procent. Programmet skall beräkna dels varans pris exkl. moms och dels momsen. De två resultaten skall visas i en dialogruta. ÖVNING 3.6 public class Datortid { public static void main (String[] arg) { String s = JOptionPane.showInputDialog("Tid (i sekunder)?"); int tid = Integer.parseInt(s); int tim, min, sek; tim = tid / 3600; tid = tid % 3600; min = tid / 60; tid = tid % 60; sek = tid; JOptionPane.showMessageDialog(null, tim + ":" + min + ":" + sek); 5

NUMERISKA TYPOMVANDLINGAR När man gör en tilldelning till en variabel gäller som huvudregel att uttrycket till höger om likhetstecknet skall ha samma typ som variabeln. Ex. d1 = d2 + 2.5; // Ok, om samma typ på båda sidor Om typen till höger är enklare än variabelns typ så sker en automatisk typomvandling. Ex. d = i + 2 i = d // Ok, om d är double och i är int // FEL! Enklare typ till vänster EXPLICIT TYPOMVANDLING Vi kan typomvandla typen till höger explicit (uttryckligt/manuellt) genom att lägga vilken typ man vill ha inom parantes. Ex. b = (byte) i ; // Explicit typomvandling OBS! Explicit typomvandling kan vara farlig. Värdet kan förvanskas. Decimaler kapas vid explicit typomvandling till heltalstyp. Tips: detta kallas cast på engelska. 6

ÖVNING 3.7 int i; double d; byte b; i = 500; d = 500; b = (byte) 500; // värdet förvanskas JOptionPane.showMessageDialog(null, "i=" + i + " d=" + d + " b=" + b); i = (int) 500.7; // i får värdet 500 d = 500.7; b = (byte) 500.7; // värdet förvanskas JOptionPane.showMessageDialog(null, "i=" + i + " d=" + d + " b=" + b); STANDARDKLASSEN MATH Standardklassen Math innehåller ett antal metoder för att beräkna vanliga matematiska funktioner t.ex. abs(a) // ger absolutvärdet av a max(a, b) // ger den största av a och b min(a, b) // ger den minsta av a och b sqrt(x) // ger kvadratroten av x pow(x, y) // ger x y round(x) // avrundar x till ett heltal random() // ger ett slumptal mellan 0 och 1 I klassen Math hittar man också de matematiska konstanterna PI (π) och e 7

ÖVNING Skriv ett program som använder Pythagoras sats för att beräkna hypotenusans längd i en rätvinklig triangel. Bildkälla: http://www.matteguiden.se/matte-a/geometri/omkrets-och-area/ ÖVNING 3.9 public class Slump { public static void main (String[] arg) { int i = (int) (Math.random() * 100); JOptionPane.showMessageDialog(null, i); 8

UPPGIFT 3.1 Skriv ett program som beräknar volymen och arean av en sfär. Bildkälla: http://www.kursnavet.se/kurser/ma1201/geometri/area_och_volym.htm UPPGIFT 3.2 Skriv ett program som läser in en temperatur uttryckt i grader Fahrenheit. Programmet översätter temperaturen till grader Celsius. Använd följande formel T C = (5/9) x (T F 32) https://sv.wikipedia.org/wiki/grad_fahrenheit 9

UPPGIFT 3.4 Avståndsformeln kan användas för att beräkna avståndet mellan två punkter i ett koordinatsystem. Skriv ett program som läser in två punkter och beräknar avståndet mellan punkterna. VILLKORSKONSTRUKTIONER När man skall välja mellan olika vägar i ett program använder man för det mesta en if-sats. Den enklaste versionen har formen if (logiskt uttryck) sats; 10

ÖVNING 4.1 String s = JOptionPane.showInputDialog("Antal minuter per månad?"); int min = Integer.parseInt(s); s = JOptionPane.showInputDialog("Pris per minut?"); double minutpris = Double.parseDouble(s); double kostnad = min*minutpris; if (kostnad >= 1000) kostnad = kostnad - kostnad * 0.10; JOptionPane.showMessageDialog(null, "Månadskostnad: " + kostnad); ÖVNING 4.2 String s = JOptionPane.showInputDialog("Pris för årskort?"); double årskort = Double.parseDouble(s); s = JOptionPane.showInputDialog("Pris för biljett?"); double biljett = Double.parseDouble(s); s = JOptionPane.showInputDialog("Antal besök?"); int antal = Integer.parseInt(s); if (årskort < antal*biljett) JOptionPane.showMessageDialog(null, "Årskort är billigast"); else JOptionPane.showMessageDialog(null, "Biljetter är billigast"); 11

ÖVNING 4.3 String s = JOptionPane.showInputDialog("Poäng?"); int poäng = Integer.parseInt(s); if (poäng >= 45) JOptionPane.showMessageDialog(null, "Betyg: A"); else if (poäng >= 40) JOptionPane.showMessageDialog(null, "Betyg: B"); else if (poäng >= 35) JOptionPane.showMessageDialog(null, "Betyg: C"); else if (poäng >= 30) JOptionPane.showMessageDialog(null, "Betyg: D") else if (poäng >= 25) else JOptionPane.showMessageDialog(null, "Betyg: E"); JOptionPane.showMessageDialog(null, "Betyg: F"); DIALOGRUTOR OCH VAL int knappnr = JOptionPane.showConfirmDialog(null, "Är du under 18 år?"); if (knappnr == 0) // Ja JOptionPane.showMessageDialog(null, "Tyvärr, du får inte köpa tobak!"); else if (knappnr == 1) // Nej JOptionPane.showMessageDialog(null, "Välkommen"); else{ // Avbryt eller kryss JOptionPane.showMessageDialog(null, "Hejdå"); System.exit(0); // Avsluta programmet 12

ÖVNING 4.6 Skriv ett program som läser in personnumren för två personer och som visar om personerna fyller år på samma dag. OBS! För att undersöka om två texter är lika använd inte operatorn == Använd istället metoden equals T.ex. if (s1.equals(s2)) // Samma födelsedag SWITCH-SATSEN ÖVNING 4.8 String s = JOptionPane.showInputDialog("Personnumer (ååmmdd-nnnn)?"); switch(s.charat(9)) { case '0': case '2': case '4': case '6': case '8': JOptionPane.showMessageDialog(null, "Kvinna"); break; case '1': case '3': case '5': case '7': case '9': JOptionPane.showMessageDialog(null, "Man"); break; default: JOptionPane.showMessageDialog(null, "Felaktigt personnummer"); 13