Leksjon 2. Setninger og uttrykk

Like dokumenter
Leksjon 2. Setninger og uttrykk

Leksjon 2. Setninger og uttrykk

Leksjon 2. Setninger og uttrykk

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

Del 1 En oversikt over C-programmering

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

Leksjon 3. Kontrollstrukturer

INF 1000 høsten 2011 Uke september

INF1000 undervisningen INF 1000 høsten 2011 Uke september

Kapittel 1 En oversikt over C-språket

Leksjon 3. Kontrollstrukturer

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

INF 1000 (uke 2) Variabler, tilordninger og uttrykk

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

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

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

Blokker. Uke 4, INF 1000, 13 sept Løkker og arrayer. Eksempel. Deklarasjoner inne i blokker. Institutt for Informatikk Universitet i Oslo

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

Læringsmål for forelesningen

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

EKSAMENSFORSIDE. Emnenavn: Programmering i Java Tid fra / til: 10:00-14:00. Fakultet: Handelshøyskolen Antall vedlegg: 1

Øvingsforelesning 1 Python (TDT4110)

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

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

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.

Innhold Forst a program

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

som jobbet nærmest døgnet rundt i 18 måneder i Menlo Park i California for å forberede den neste bølgen innen computing.

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

INF1000 : Forelesning 3

Eksempel: Body Mass Index (BMI)

Body Mass Index (BMI) INF1000 : Forelesning 3. Ferdig program (forts.) Ferdig program

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

TDT4110 IT Grunnkurs Høst 2015

Rekker (eng: series, summations)

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

Java 4. Mer om easyio Mer om forgreninger Løkker. 7. september 2004

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

Forelesning inf Java 2

Forelesning inf Java 2

I dag. Rep: Oppsummering - variabler. Rep: Datatyper. INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger

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

INF 1000 (uke 2) Variabler, tilordninger og uttrykk

Forelesning inf Java 5

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

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.

Praktisk informasjon. Repetisjon: While-løkker. I dag. INF1000 (Uke 5) Mer om løkker, arrayer og metoder. Oblig 2 er lagt ut

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

Praktisk informasjon. I dag. Repetisjon: While-løkker. INF1000 (Uke 5) Mer om løkker, arrayer og metoder

Forelesning inf Java 3

Læringsmål og pensum. Designe et program

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.*;

Oversikt. INF1000 Forelesning 6. Variable Deklarasjon. Variabel en plass i lageret int radius;

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 1

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 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 2

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 - MIN_VALUE....... -4-3 -2-1 0 1 2 3 4....... MAX_VALUE -128 byte 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 3

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

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 double int lengde = 3.5 + 6; brøk = 12.9 / 3; epleprbarn = 10 / 4; NB! Datatypen blir double når: epleprbarn = 10/4.0; epleprbarn = 10.0/4; epleprbarn = (double)10/4; 6108 Programmering i Java Leksjon 2 Del2 side 10 5

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; Eksempel på typetvang (eksplisitt typeskifte): int kodenr = 97; char tegn = (char)kodenr; // kodenr er nå 65 // 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 6

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 7

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); Kvadratrot: sqrt double y = sqrt(25); 25 Potens: pow int v = (int)pow(2,3); 2 3 // x er lik 3.4 // størst er lik 56 // minst er lik 23 // minst2 er lik 7.5 // hel er lik 25.0 // y er lik 5.0 // v er lik 8 = 2*2*2 6108 Programmering i Java Leksjon 2 Del2 side 16 8

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