extra04
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