F - PowerPoint PPT Presentation

1 / 37
About This Presentation
Title:

F

Description:

F rel sning 2 - Intro till Java Sammanfattning av Lektion 1 (kap 2): Vad beh vs f r att kunna programmera? DrJava Java Reserverade ord Primitiva variabler – PowerPoint PPT presentation

Number of Views:145
Avg rating:3.0/5.0
Slides: 38
Provided by: TorstenJ7
Category:
Tags:

less

Transcript and Presenter's Notes

Title: F


1
Föreläsning 2 - Intro till Java
  • Sammanfattning av Lektion 1 (kap 2)
  • Vad behövs för att kunna programmera?
  • DrJava
  • Java
  • Reserverade ord
  • Primitiva variabler
  • Typomvandling
  • Utskrifter och inläsning
  • Hur lagras information i datorn
  • Ev. Intro till Objektorienterad programmering
    (kap 3)

2
Vad behövs för att kunna programmera?
  • Java program som översätter (för människan
    begripliga) instruktioner till datorspråk
    (javabyte kod/maskinkod) Kompilator ...
  • Andra exempel C, Python, etc
  • DrJava en editor ...(ordbehandlare) anpassad
    för programmering. Andra exempel
    BlueJ, Eclipse, etc (IDE)

3
(No Transcript)
4
DrJava
  • Med kursboken följer en CD med många program (sk.
    javaklasser) för hantering av grafik, bilder,
    ljud, etc.
  • DrJava använder i sin tur andra program som finns
    på datorn för att lösa sin uppgift
  • Javakompilatorn
  • Javainterpretatorn

5
Java
  • är ett programmeringsspråk
  • högnivåspråk
  • objektorienterat språk
  • innehåller många hjälpprogram (klasser)
  • Internet/Webben
  • Grafik
  • Användargränssnitt
  • Standardprogram, t ex Math mm.
  • är fritt
  • kan användas på alla typer datorer

6
Java
  • När java installeras på datorn får ni bl.a
    följande
  • Javakompilatorn
  • Javainterpretatorn
  • En massa färdiga javaprogram, sk. klasser som
    hör till språket Java, t.ex. Math, JoptionPane
  • I kursen kommer ni att använda
  • De standardprogram som följer med Java t ex Math
  • De specialprogram som följer med boken, t ex
    Turtle och World
  • De program ni skriver själva

7
Java
  • Språket har strikta regler för hur det skall
    skrivas, dvs språkets grammatik, det kallas
    språkets syntax.
  • Språket byggs upp av identifierare och
    reserverade ord som sätts ihop till satser.
  • Identifierare är det som programmeraren själv
    hittar på namn för, t.ex. variabelnamn,
  • Reserverade ord är de ord som finns inbyggda i
    språket.
  • En sats är en instruktion. En sådan avslutas
    normalt med ett semikolon Ex double
    xKoordinat 18.4

8
(No Transcript)
9
Variabler
  • Deklareras att vara av en specifik datatyp, tex
    int, double, char
  • En primitiv variabel kan innehålla ett värde,
    t.ex. ett heltal
  • Vid deklarationen reserveras ett minnes-utrymme
    för variabelns värde. Variabelns namn är ett
    alias för adressen till minnesutrymmet.

10
  • Exempel Vi deklarerar och initierar variabler
    som är primitiva datatyper int tal (deklarera
    en variable) int x67(deklarera och
    initiera)double x2.5char cA'boolean
    vintertrue

Vi går igenom på tavlan hur dessa variabler
lagras i datorns minne.Detaljer finns under
sidorna 22-34 i denna presentation som börjar med
rubriken Hur lagras data i datorn?
11
Åtta primitiva datatyper
  • Fyra heltalstyper (numeriska)
  • byte, short, int, long
  • Två flyttalstyper (numeriska)
  • float, double
  • En teckentyp
  • char
  • En boolskt typ (sant eller falskt)
  • boolean

Finns signed och unsigned heltalstyper, dvs tal
med /- eller bara .
12
(No Transcript)
13
De numeriska datatyper
Typ Minnesutrymme Min/Maxvärde
byte 8 bit -128 127
short 16 -32768 32767
int 32 -2147483648 2147483647
long 64 /- 9 x 1018
float 32 /- 3.4 x 1038, 7 siffrors nogr.
double 64 /- 1.7 x 10308, 15 siffrors nogr.
14
Numeriska datatyper, några viktiga kom-i-håg
  • Heltalsdivision
  • int a 2, b 3, c a/b
  • System.out.println(c) //Vad skrivs ut?
    System.out.println(7/4) //Vad
    skrivs ut?
  • Modulusoperatorn
  • int x 7, y 3, z xy
  • System.out.println(z) //Vad skrivs ut?
    System.out.println(105) //Vad skrivs
    ut?

15
Numeriska datatyper, några viktiga kom-i-håg
  • och - - operatorerna
  • x
  • System.out.println(x) //Vad skrivs ut?
  • Ändra en variabels värde OBS! Tilldelning
  • int tal 3
  • tal tal 2 //Det nya värdet det gamla
    2
  • tal 2 //samma som ovan
  • tal tal 5
  • tal 5 //samma som ovan

16
Typomvandling
  • Heltal ? Flyttal per auto, eller med (double)
    ()
  • Flyttal ? Heltal
  • (int) () ger trunkering
  • (int) ( 0.5) ger avrundning av talgt0
  • Math.round(...) ger avrundning
  • Char ? Heltal (int) ()
  • Heltal ? Char (char) ()
  • Flyttal ? String Double.toString()
  • String ? Flyttal Double.parseDouble()
  • String ?? Heltal finns motsvarande

17
Tecken
  • En char-variabel lagrar ett enstaka tecken i två
    byte (speciellt för Java).
  • Tecknet kodas först till ett heltal innan det
    lagras i minnet.
  • Koden är unicode, se http//www.unicode.org.
    Koden för de vanligaste tecknen finns på ASCII
    Code - The extended ASCII table
  • Två byte innebär ett minnesutrymme som kan ha
    värden 0-65536, men... (encodings)
  • Version 6.0 mer än 100.000 tecken från världens
    alfabet, symboler,...
    System.out.println(\u0041) //A

Ethiopic Extended-A
18
String
  • Är inte inte en primitiv variabel
  • String s "Programmering"
  • String t
  • Jämför char tkn 'a'
  • En strängvariabel är en sk. objektvariabel.
  • En sådan variabel refererar till många värden

19
Varför (1) deklarera och (2) ha många datatyper?
  • Säkerhet Bara använda variabler som är
    deklarerade
  • Ex. stavfel x14 x1xl8
  • 2. Värden man vill räkna med är av olika sorter
  • Bra då att ha variabler som matchar dessa.
  • Minnesutrymmet anpassas till värdena.
  • Beräkningarna anpassas till datatypen.
  • Snabbare beräkningar.
  • Ordning och reda

20
Utskrifter i Java
  • I terminalfönstret (I DrJavas Interaction
    Pane)double O bas2 höjd2System.out.print
    ln(Omkresten O m.)
  • I ett Popup-fönster
    import javax.swing.
    String namn Anna
  • JOptionPane.showMessageDialog(null,"Jag heter
    "namn)

21
Inläsning i Java
  • I terminalfönstret (I DrJavas Interaction
    Pane)import java.util.ScannerScanner scan
    new Scanner(System.in)int x
    scan.nextInt()double y scan.nextDouble()Stri
    ng s1 scan.nextLine() // hel radString s2
    scan.next() // ett ord
  • I ett Popup-fönster import javax.swing.String
    ss JOptionPane.showInputDialog("x?") x
    Integer.parseInt(s)

Kommande bilder 22-34 tar vi inte upp på
föreläsningen. Till för egna studier. Vi hoppar
till bild 34!
22
Hur lagras data i datorn?
  • I datorn används koder för att representera
    all information
  • Koderna består av 1or och 0or
  • Någonting är på (1) eller av (0)
  • Binära tal används (binära talsystemet)

23
  • Vad är ett talsystem?
  • Ett talsystem har en bas och siffror (symboler)
  • Ex.decimala systemet har basen 10 och symbolerna
    0-9
  • 10310 110201013100 1100 010 31

24
Binära talsystemet
  • Basen 2 och symbolerna 0, 1.
  • 11012 12³122021120 8401 1310
  • Översätt från decimalt till binärt
  • 2710 16 8 2 1 24 23 21 20 110112

25
Binära talsystemet
  • En byte 8 bit, 0-255, dvs 256 st värden
  • 00000000 0
  • 00000001 1
  • 00000010 2
  • 11111111 255
  • Ex. en byte
  • 00001111 027 026 025 024 123
    122 121 120 1510

26
  • Binära talsystemet
  • Bit 0 eller 1
  • Byte 8 bitar
  • Kilobyte (KB) 103 byte
  • Megabyte (MB) 106 byte
  • Gigabyte (GB) 109 byte
  • Terabyte (TB) 1012 byte

27
Hexadecimala talsystemet
  • Basen 16 och symbolerna 0-9,A,B,C,D,E,F
  • A10, B11, C12, D13, E14, F15
  • Ex
  • 2F16 2161 F160 2161 15160
  • 32 15 4710
  • Omvandling hexadecimalt ? binärt och tvärtom är
    relativt enkelt (4 binära sifforen hexadecimal
    siffra)111101012 1111 0101 15161 5160
    F516

28
Att lagra tal
  • Tal kan lagras som
  • heltal
  • flyttal

29
Heltal
  • Lagras ofta i 4 byte, dvs 32 bit.
  • En bit används för /- Vänstra biten0 ?
    positivt tal 31 bitar Vänstra biten1 ?
    negativt tal 31 bitar
  • Värdemängden i 4 byte -232-1, 232-1-1, d.v.s.
  • -2147483648, 2147483647
  • Exempel6710 10000112 och lagras i 4 byte som
  • 00000000 00000000 00000000 01000011

Teckenbiten 0?positivt tal
30
Tecken
  • Lagras ofta i en byte (i java dock som 2
    byte)Tecken kodas till heltal (ASCII-koden) som
    sedan lagras binärt.
  • Vi studerar www.asciitabell.se
  • (koderna visas som decimala, octala,
    hexadecimala, binära). T.ex. tecknet T har den
    (decimala) koden 84, vilket binärt är 01010100
  • Övning
  • Öppna Notepad och knappa in några tecken. Spara
    filen. Markera med högermusknapp på filens ikon
    och välj Properties så får du veta hur stor filen
    är uttryckt i antal bytes (size resp. size on
    disk)
  • Testa samma sak i Word. Den filen blir mycket
    större eftersom Word även lagrar info om hur
    dokumentet är formaterat (fonter, fontstil,
    fontstorlek, färg, etc)

31
Text (String)
  • Text är en sekvens av tecken
  • Exempel, texten
  • Torsten
  • Består av 7 tecken som kodas enligt ascii-koden
    (decimalt som)
  • T o r s t e n
  • 84 111 114 115 116 101 110
  • Vilket kan lagras binärt i 7 byte, eller som i
    java 7x2 byte

32
Flyttal
  • Decimaltal
  • 10-potenser
  • Ett flyttal 0.mantissa 2exponent
  • Lagras som två delar Mantissa (siffrorna) och
    exponent
  • Om 4 byte flyttal
  • 3 byte mantissa och 1 byte exponent
  • Om 8 byte flyttal
  • 6 byte mantissa och 2 byte exponent

33
Flyttal
  • Ex 2,510 2(10)0 5(10)-1 0.25(10)1
  • Men tal lagras binärt, gör om till binärt
  • 2,510 1(2)1 0(2)0 1(2)-1
  • 10.12 (obs binärpkt).
  • 10.12 0.10122
  • Mantissan är 101
  • Exponenten är 2 10 binärt.
  • Om talet lagras i 4 byte
  • Mantissa (3 byte) 101
  • Exponent (1 byte) 10

34
Flyttal
  • Problem med flyttal
  • Begränsad mängd siffror
  • 4 byte 7 siffrors nogrannhet
  • 8 byte 15 siffrors nogrannhet
  • Kan vanligen ej lagras exakt
  • Ex.flyttalet 2,6
  • 2,610 1(2)1 0(2)0 1(2)-1
  • 120110.500.2500.12510.0625

35
Intro till ObjektOrienterad Programmering (OOP)
  • Ett exempel (SwedeFlower)
  • Demo av greenfoot
  • Klass vs objekt
  • En klass beskriver egenskaper och metoder
  • Ett objekt har egenskaper (inre tillstånd/eget
    minne)
  • Kan kommunicera med (skicka meddelanden till)
    objekten via metoder för ändra objekten eller få
    veta deras egenskaper

36
OOP
Att hitta klasser, egenskaper och metoder. Det
kommer bilar till en vägkorsning. Vid korsningen
finns trafikljus som kan visa olika färg.
Bilarna kan bromsa och gasa. Bilarna har
hastighet och position.
37
Övning OOP
  • Hur många objekt finns i bild 1?
  • Hur många olika typer av objekt, dvs hur många
    klasser, finns representerade i bild 1?
  • Ange lämpligt namn på resp. klass och vilka
    egenskaper som klassen kan beskrivas med
    (bild1).
  • Ange vilka metoder som kan vara lämpliga i
    respektive klass för att kunna rita bilderna 2
    och 3, utgående från bild 1. Föreslå namn på
    metoderna.

Bild 1
Bild 2
Bild 3
Write a Comment
User Comments (0)
About PowerShow.com