extra04

January 8, 2018 | Author: Anonymous | Category: Engineering & Technology, Datavetenskap, Java Programming
Share Embed Donate


Short Description

Download extra04...

Description

1

Central-enhet

BIOS

PM

CPU

Skivminne

Sekundärminnesenheter (SM)

CD-läsare

Diskett-läsare

Stefan Möller

2

Primär-minne (PM)

Processor (CPU)

0

11001010 00101101 10101100 10101101

4

00101101 10101100 10101101 10101010

R1

8

10101011 01101101 10011100 11010011

R2

12

00101101 10101100 10101101 11010001

16

11001010 00101101 10101100 10101101

20

01011100 01111001 00110100 11101001

24

10011100 10101011 10101100 10101101

28

11001010 00101101 10101100 01110001

Ett antal register ...

Styrenhet

Aritmetisk enhet

Vektor av minnesceller 8 bitar = 1 byte, 4 byte = 1 ord t ex 256 MB (megabyte - miljoner byte) program-instruktioner & -data Stefan Möller

3

Olika nivåer av program Maskinkod (binär kod) Ett antal (t ex 32) ettor/nollor 100111001001111100011010 Krångligt att skriva direkt

Assemblerkod Mnemoniska namn för instruktioner Add #25 to R3 Ett-till-ett matchning mot maskinkod Olika instruktioner beroende på dator

Högnivåspråk Mer kraftfulla instruktioner if (x!=5) x+=10; Ger 5-10 maskininstruktioner Ej beroende av datorsystem T ex Pascal, C, C++, Java

Stefan Möller

4

Kod i högnivåspråk måste översättas till maskinkod. Kompilering: Källkod i högnivåspråk

Kompilator Olika beroende på datorsystem

Maskinkod som kan exekveras i datorsystemet

Interpretering: Källkod i högnivåspråk

Interpretator Olika beroende på datorsystem Läser en instruktion i taget, översätter till maskinkod och exekverar

Stefan Möller

5

Programmering Indata

Program

Utdata

Data kan vara av olika typ: 12

43 73.67 true

”Kalle Nilsson” ’X’

730512

”Stockholm”

Bil: Volvo ABC 123 Röd 7300 mil

Måste representeras i programmet. Stefan Möller

6

Javas Primitiva Datatyper Heltalstyper: byte short int long

8 bitar 16 bitar 32 bitar 64 bitar

Flyttalstyper: float double

32 bitar 64 bitar

Övriga: char boolean

Unicode 16 bitar true / false

Textsträngar (INTE primitiv datatyp):

String Stefan Möller

7

Litteraler

Deklaration Tilldelning Utskrift Inläsning Selection Iteration Stefan Möller

if-satsen if () ; if () ; else ;

Nästlade if-satser

8

int x=8; if (x>5) System.out.println(x); if (x s2 //ett negativt tal om s1 < s2 samt 0 om s1 = s2

Stefan Möller

10

switch-satsen switch () { case : case : default: } ”Hoppar” till den case som matchar uttrycket. Exekverar resten av programsatserna. break-satsen bryter switch break; (kan även användas på loopar) Uttryck och värde måste vara av heltalstyp eller char

int x, tal=10; //x får ett slumpvärde

switch(x){ case 1: System.out.println(tal); case 2: case 3: System.out.println(++tal); case 4: System.out.println(tal++);

default: System.out.println(tal); } Stefan Möller

11

while - loopen while () ;

- booleskt uttryck - valfri programsats om flera satser inom { } - block

do

break; continue;

; while ();

false

villkor

//bryter loopen //börja om nästa varv

sats

true villkor sats

true

false Stefan Möller

12

for-loopen for ( ; ; ) ;

initiering

Skriv ut talen 1 - 10:

for (int x=1; x < >= instanceof == != & ^ | && || ?: Stefan Möller = += -= *= /= %=

15

Flera variabler av samma sort - arrayer Varje variabel som deklareras får ett utrymme i primärminnet. int tal; double d; tal=43; d=7.85;

tal

43

7.85

d

En array deklareras som [ ] int[] arr;

arr

Utrymmet måste skapas, görs med new arr = new int[5]; arr[0]=28; arr 28 arr[1]=43; 0 arr[2]=12; arr[3]=19; arr[4]=193;

(inget utrymme finns...)

43

12

19

193

1

2

3

4

Stefan Möller

16

Array Deklaration: int[] arr; int arr[];

//Alternativ deklarering

Skapas med new arr=new int[25];

//Alltid index från 0 och uppåt

Indexering med [] arr[3]=12;

Längden kan kollas med length int max=arr.length;

//max får värdet 25

Initiering vid deklaration int[] kvadrater={0, 1, 4, 9, 16, 25, 36}; Stefan Möller

17

Om vi vill representera mer komplexa objekt? T ex bilar som har ett bilmärke, ett registreringsnummer, en färg samt en mätarställning.

Volvo ABC 123 Röd 7300

Saab XYW 987 Vit 3800

Fiat MSQ 545 Svart 12900

Att ”samla ihop” flera attribut på detta sätt görs i klasser. Vi behöver alltså nu en klass Bil som skall ha attributen märke, regnummer, färg och mätarställning. Klasser kan innehålla mer än attribut, exempelvis konstruktorer och metoder.

Stefan Möller

18

Deklaration av klass Bil: class Bil{ String märke, regnummer, färg; int mätarställning; } Varje klass läggs lämpligen i en egen fil. Denna Bil-klass läggs alltså då på filen Bil.java

Skapa objekt Referenser Åtkomst null Stefan Möller

19

class - deklaration class {

Olika data som beskriver klassen, t ex märke, mätarställning hos en Bil



Anropas när ett objekt av klassen skapas (med new )

}

Olika operationer som kan göras på klassen En klass kan ha ”inre” klasser

Stefan Möller

20

Metoder - subrutiner (){ ; } modifierare anger olika egenskaper, t ex för åtkomst public, private, protected, abstract, static, final, native, synchronized returtyp vad som returneras. Valfri datatyp, även referenser till classer eller arrayer. argumentlista lista över eventuella indata till metoden. Om inga argument ( ). int getInt(){...} static void skriv(int x, int y, String str){...} Java ”letar upp” och startar metoden main vid programmets start: public static void main(String[] args){...} Stefan Möller

21

Argumentöverföring Retur-värde

Överlagring klass-metoder instans-metoder

Stefan Möller

22

Slumptal - biblioteks-klassen Random Det finns ett antal fördefinierade klasser i Java’s API-bibliotek. Beskrivs i API-dokumentationen: http://java.sun.com/j2se/1.5.0/docs/api/

Klassen Random används om man vill ha slumptal. Random ligger i java.util - delbiblioteket. Innehåller metoder för att få slumptal, t ex: int nextInt() int nextInt(int n) boolean nextBoolean() double nextDouble()

returnerar ett slumpmässigt heltal returnerar ett slumptal mellan 0 och n-1 (nextInt(100) returnerar alltså ett tal mellan 0 och 99) returnerar true eller false returnerar ett tal mellan 0.0 och 1.0 Stefan Möller

Ett program som skriver ut 10 slumptal mellan 1 och 100: import java.util.*; class SlumpTest{ public static void main(String[] args){ Random slump = new Random(); for (int x=1; x
View more...

Comments

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF