Leksjon 2. Setninger og uttrykk

Like dokumenter
Leksjon 2. Setninger og uttrykk

Leksjon 2. Setninger og uttrykk

Oversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon

Del 1 En oversikt over C-programmering

Leksjon 3. Kontrollstrukturer

INF1000 undervisningen INF 1000 høsten 2011 Uke september

Kapittel 1 En oversikt over C-språket

Leksjon 3. Kontrollstrukturer

Leksjon 4. Metoder. Program, klasse og metode

6108 Programmering i Java. Leksjon 4. Metoder. Roy M. Istad 2015

Programmering Høst 2017

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm

Litt om Javas håndtering av tall MAT-INF 1100 høsten 2004

6108 Programmering i Java. Leksjon 5. Tabeller. Roy M. Istad 2015

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

Læringsmål og pensum. Oversikt

Python: Variable og beregninger, input og utskrift. TDT4110 IT Grunnkurs Professor Guttorm Sindre

I dag skal vi se på. INF 1000 (uke 2) Variabler, tilordninger og uttrykk. Gruppene starter denne uken! Klart for første oblig

Programmeringsspråket C

Java. INF1000 : Forelesning 2. Ulike varianter for ulike behov. Java Standard Edition (Java SE) Java:

Leksjon 3. Kontrollstrukturer

Læringsmål for forelesningen

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Leksjon 7. Filer og unntak

Repetisjon: operatorene ++ og -- Java 5. Nøtt. Oppgave 1 (fra forrige gang) 0 udefinert udefinert. Alternativ 1 Prefiks-operator

INF1000 : Forelesning 1 (del 2)

Rekker (eng: series, summations)

Repetisjon Program. INF1000 Uke 2. Repetisjon Program Prosedyren main Alt inne i klasser. Repetisjon Variable og uttrykk

INF1000 (Uke 4) Mer om forgreninger, While-løkker

Object interaction. Innhold. Abstraksjon Grunnleggende programmering i Java Monica Strand 3. september 2007.

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Repetisjon. Mer om forgrening While-løkker

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

Tall. Posisjons-tallsystemer. Representasjon av heltall. Tall positive, negative heltall, flytende tall. Tekst ASCII, UNICODE XML, CSS

Øvingsforelesning 1 Python (TDT4110)

Leksjon 6. Objekt. Evt. importsetninger. public class Klasse { Konstruktør. Objektmetoder. Innkapsling (private): set-og get-metoder

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale.

Oversikt. Uke 2, INF 1000, 30 aug Variable, tilordninger og uttrykk. Repetisjon: Java programmering

Litt Java-historikk. Litt Java-historikk. Ulike varianter for ulike behov. Litt Java-historikk. The Green Team

Litt mer om uttrykk: ++ og -- INF1000 : Forelesning 4. Oppgave. Blokker. 0 udefinert udefinert. Alternativ 2 Postfiks-operator

Eksempel: Body Mass Index (BMI)

TDT4110 IT Grunnkurs Høst 2015

Rekker (eng: series, summations)

Tall. Binære regnestykker. Binære tall positive, negative heltall, flytende tall

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.

Forelesning inf Java 2

Forelesning inf Java 5

Forelesning inf Java 5

Løsningsforslag ukeoppg. 2: 31. aug - 6. sep (INF Høst 2011)

Eksempel: Body Mass Index (BMI) Forelesning inf Java 3. Ferdig program (første del) Ferdig program (siste del)

Designe et program. TDT4110 Informasjonsteknologi grunnkurs: Kapittel 2 Python: Bruk av funksjoner, variabler og input/output. Mål.

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre,

Innhold Forstå program iii

Høgskolen i Telemark EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale.

Forelesning Datatyper Kap 5.2 Instruksjonsformat Kap 5.3 Flyttall App B

Eksamensoppgave i IFUD1025 Programmering i Java og IINI4013 Programmering i Java

Tall. Ulike klasser tall. Læringsmål tall. To måter å representere tall. De naturlige tallene: N = { 1, 2, 3, }

Kompendium til TOD065 - Diskret matematisk programmering

Forelesning inf Java 3

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

Oversikt. INF1000 Uke 3. Repetisjon Program. Repetisjon Program. Litt repetisjon Program Variabler og Uttrykk Presedens Matematiske funksjoner

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I Løsningsforslag

MAT-INF 1100: Obligatorisk oppgave 1

Innlesning fra tastatur med easyio. INF1000 høst Vi må først skrive i toppen av programmet: import easyio.*;

Forelesning inf Java 2

Kapittel august Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 2.

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr

KAPITTEL 2 Tall og datamaskiner

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Lese fra fil. INF1000 : Forelesning 5. Eksempel. De vanligste lesemetodene. Metoder:

Dagens tema. Mer om C Enkle datatyper Sammensatte datatyper: Vektorer og matriser Tekster Mengder Strukturer Unioner Ringbuffere

TDT4105/TDT4110 Informasjonsteknologi grunnkurs:

Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.8

INF1000 Uke 4. Innlesning fra terminal. Uttrykk og presedens. Oversikt

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

Del 2 Tabeller, arrays, strenger

Transkript:

6108 Programmering i Java Leksjon 2 Setninger og uttrykk Del 2 Roy M. Istad 2015

Uttrykk, operatorer og verdier int tall = 3; int x = 1 + tall; // x er 4 Uttrykk: Variabler, verdier, konstanter og metodekall sammensatt med operatorer. Verdier: Anonyme konstanter og metodekall. Anonym konstant: Konkret verdi i koden, her heltallene 1 og 3. Operatorer: Spesielle symbol utfører operasjoner (oppgaver) på/mellom verdier og uttrykk. Eks. + * / 6108 Programmering i Java Leksjon 2 Del2 side 2

Eksempel: Uttrykk, operatorer og verdier 1) 12 + 6 / 3 1 = 12 + 2 1 = 13 2) (12 + 6) / 3 1 = 18 / 3 1 = 5 3) (12 + 6) / (3 1) = 18 / 2 = 9 Vi bruker parenteser for å styre/overstyre beregningsrekkefølgen. NB! Operatorene har ulik prioritet, de utføres i en bestemt rekkefølge. F.eks. * og / utføres foran + og 6108 Programmering i Java Leksjon 2 Del2 side 3

Primitive datatyper Datatype Navn Plass (bit) Min.verdi Maks.verdi Enkelttegn char 16-2 1470483 648 2 147 65535 483 647 Heltall int 32 2 31 2 31 1 Desimaltall double 64 4.9 10 324 1.8 10 +308 = = Logiske verdier boolean 1 false true 6108 Programmering i Java Leksjon 2 Del2 side 4

Primitive datatyper Datatype Navn Plass (bit) Min.verdi Maks.verdi Enkelttegn char 16 0 65535 Heltall byte 8 128 127 Heltall short 16 32768 32767 Heltall int 32 2 31 2 31 1 Heltall long 64 2 63 2 63 1 Desimaltall float 32 1.4 10 45 3.4 10 +38 Desimaltall double 64 4.9 10 324 1.8 10 +308 Logiske verdier boolean 1 false true 6108 Programmering i Java Leksjon 2 Del2 side 5

Heltallstype - Primitive datatyper....... -4-3 -2-1 0 1 2 3 4....... MIN_VALUE -128 byte MAX_VALUE 127-2 147 483 648 int Integer.MIN_VALUE 2 147 483 647 Integer.MAX_VALUE Hva blir 1 500 000 000 + 1 500 000 000 i datatypen int? 6108 Programmering i Java Leksjon 2 Del2 side 6

Primitive datatyper Heltallstype int: Adderer tall til stadig større verdi... integer overflow Eks. 1 000 000 000 + 1 000 000 000 < 2 147 483 647 = MAX_VALUE + 1 000 000 000? = 1 294 967 296 2000000000 + 2000000000 + 1000000000 = 705032704? 6108 Programmering i Java Leksjon 2 Del2 side 7

Primitive datatyper Heltallstype 0 +1 MIN_VALUE MAX_VALUE 6108 Programmering i Java Leksjon 2 Del2 side 8

Automatisk typeskifte: int x = 5; double y = x; // 5 er et heltall! out.println("y = " + y); // gir...? // Hva skjer omvendt? y = 5.0 double z = 5; int w = z; // 5.0 er et desimaltall out.println("w = " + w); // gir...? Typetvang: Typeblanding og typetvang incompatible types: possible lossy conversion Datatype til beregningsresultat overstyres aktivt double desimal = 2.8; int hel = (int)desimal; (datatype)uttrykk Verdioverføring typetvang automatisk Liten datatype Stor datatype 6108 Programmering i Java Leksjon 2 Del2 side 9

Typeblanding: Datatypen til beregningsresultatet settes automatisk. Hvordan skal vi få 2,5 eple pr barn som resultat? Hvilken datatype må/bør variablene ha? double lengde = 3.5 + 6; NB! Datatypen blir double når: epleprbarn = 10/4.0; double int brøk = 12.9 / 3; epleprbarn = 10 / 4; epleprbarn = 10.0/4; epleprbarn = (double)10/4; 6108 Programmering i Java Leksjon 2 Del2 side 10

Enkelttegn, char og Unicode Datatypen char brukes for å ta vare på ett enkelt tegn, f.eks. 'a' Alle tegn har en tallkode i Unicode (side 405 406) Tegnet stor A har koden 65, stor B har 66 osv. Obs! De norske bokstavene ligger spredt utover (Å 197, Ø 216) Eksempel på automatisk typeskifte: char tegn = 'A'; int kodenr = tegn; // kodenr er nå 65 Eksempel på typetvang (eksplisitt typeskifte): int kodenr = 97; char tegn = (char)kodenr; // tegn er nå 'a' 6108 Programmering i Java Leksjon 2 Del2 side 11

side 405 406 6108 Programmering i Java Leksjon 2 Del2 side 12

Uttrykk og operatorer Regneoperasjoner: int pris = 100 + 24; // pris er 124 int beløp = 2 * 100; // beløp er 200 int veksel = beløp - pris; // veksel er 76 int ant10kr = veksel / 10; // ant10kr er 7 int ant1kr = veksel % 10; // ant1kr er 6 OBS! Bruker både / og % i samme divisjon, men med ulike svar altså... 76 : 10 = 7-70 6 6108 Programmering i Java Leksjon 2 Del2 side 13

Restoperator % kalles også moduloperator Eksempel: 11 / 2 = 5 med 1 i rest fordi 11 : 2 = 5 10 1 rest 11 % 2 11 / 2 Uttrykk og operatorer Eksempel (10 99) Plukk ut første og andre siffer i et tosifret heltall tall = 47 = 4*10 + 7 siffer1 siffer2 : : // tall deklarert og innlest int siffer1 = tall / 10; int siffer2 = tall % 10; out.println(tall + "har sifrene:" + "\n" + "Første siffer = " + siffer1 + "\n" + "Andre siffer = " + siffer2); : : // Alternativ til restoperator int siffer2 = tall siffer1*10; 6108 Programmering i Java Leksjon 2 Del2 side 14

Oppdateringsoperatorer Steglengde 1 (ett hakk): i++; // Er definert som i = i+1; i--; // Er definert som i = i-1; Andre steglengder: x += 4; // Er definert som x = x+4; x -= 3; // Er definert som x = x-3; x *= 5; // Er definert som x = x*5; x /= 2; // Er definert som x = x/2; 6108 Programmering i Java Leksjon 2 Del2 side 15

Matematisk verktøy (sidene 61 63) NB! import static java.lang.math.*; Absoluttverdi: abs double x = abs(-3.4); Det største av to tall: max int størst = max(23,56); Det minste av to tall: min int minst = min(23,56); double minst2 = min(9.5,7.5); Avrund desimaltall: round double hel = round(24.55); // x er lik 3.4 // størst er lik 56 // minst er lik 23 // minst2 er lik 7.5 // hel er lik 25.0 Kvadratrot: sqrt double y = sqrt(25); Potens: pow int v = (int)pow(2,3); 25 2 3 // y er lik 5.0 // v er lik 8 = 2*2*2 6108 Programmering i Java Leksjon 2 Del2 side 16

Sammensatte metodekall Fig. 2.17, side 62 Fig. 2.18, side 64 h kv lv Hvor lang er diagonalen d? d (kv) + (lv) double d = sqrt( pow(kv,2) + pow(lv,2) ); Eks. Uttrykket skal evalueres med verdiene: kv = 3.0 og lv = 4.0 d = 5.0 6108 Programmering i Java Leksjon 2 Del2 side 17

6108 Programmering i Java Slutt på leksjon 2 Del 2