Digitalitet
Analog
•
•
•
•
Kontinuerlig
Direkt proportionerlig mot källan
Ex. sprittermometer
Elektrisk signal som representerar ljud
Digital
•
•
•
•
Diskret
Representation som siffror/symboler
Ex. CD-skiva
Varje siffra motsvarar spänningen i
den analoga signalen vid en viss
tidpunkt
Representation
• Analog signal => Digital signal
• Sampling = provtagning
• Samplingsfrekvens (rate) t.ex. 44kHz
som är bassamplingsfrekvensen
Pros ’n’ cons
• Fördelar
- Okänslig för störning
- Kan förstärkas över stora avstånd
- Lätt att lagra information
- Lätt att tillverka utrustning
• Nackdelar
- Världen är i stort sett analog
Hur hantera denna nackdel?
• Följ tre steg
1) Konvertera den analoga signalen
till digital form (ADC)
2) Processa den digitala
informationen
3) Konvertera tillbaka till analog form
(DAC)
Digitalisering
• Ljud: analog => digital
• Sträng/tecken A => 65, a => 97
Hej! digitaliseras till 72,101,106,33
(enligt ASCII-systemet)
Digitalitet
• Bild består av pixlar (pixel = picture
element), en svartvit bild kan
representeras som 0 för vit och 1 för
svart. Antal pixlar ger upplösning vilket
påverkar kvalitet.
• Färgbild ser lite annorlunda ut, den
består av RGB (röd/grön/blå) I värden
från 0 till 255.
Binära tal
• Datorn lagrar inte tal i decimal form
utan i binär form.
• Decimala tal har basen 10, binära
basen 2.
• En anledning till att använda binära tal
framför decimaltal är att det endast
finns två värden vilket gör det
generiskt och mindre störkänsligt.
Binära tal
• Information på lägsta nivå är
representerat av 1 eller 0.
• Detta kallas bit (binary digit).
• Om man använder två bitar ger detta
4 möjliga kombinationer.
• Om man använder tre bitar ger detta 8
kombinationer.
Binära tal
• Generellt används n bitar så får vi 2n
unika kombinationer.
• 8 bitar bildar en byte.
Binära tal
• För att uttyda ett binärt tal kan
följande uppställning användas:
23 22 21 20 Placering
1 0
0 1 Binärt tal
1* 23 + 0* 22 + 0* 21 + 1* 20 =
= 8 + 0 + 0 + 1 = 9 Decimalt tal
Hur används binära tal?
• En dators centrala del är CPU (Central
Processing Unit)
• CPU är en Integrated Circuit (integrerad
krets eller IC-krets)
• IC består i sin tur av grindar (gates)
• De grundläggande grindar som finns är
1) AND
2) OR
3) NOT
• Dessa avser logiska ställningstaganden
AND
OR
NOT
XOR – Exclusive OR
Hexadecimala tal
• Minne beskrivs oftast i hexkod.
0 - 9, A - F = 0 – 15 = 0000 - 1111
Unicode
• Utökat från 128 tecken (ASCII –
American Standard Code for
Information Interchange) till 65 536
tecken.
• Syftet var att bli internationellt
gångbar standard.
Programmets element
Datatyper
• Enkla datatyper (kallas ibland
primitiva)
• Oftast inbyggda i språket
• Heltal, Reella tal, Logiska värden,
Tecken
• Enkla då de ej har delar (jmf.
sammansatta)
Heltal
• Benänms ofta int eller integer
• Överensstämmer inte helt med
matematiska definitionen av heltal
• int i Java är 32 bitar (232 = 4 byte) och
tar då värden från ~-2*109 - 2*109
Reella tal
• Benämns ofta real eller float
• Inte heller exakt matematiskt
• float i Java 32 bitar = 4 byte och tar
värden från ~-3.4*1038 - 3.4*1038 med
7 signifikanta siffror
• Trunkeras 3.141592654 = 3.141592
• Om man vill ha fler signifikanta siffror
används double
Boolska värden
• Sanningsvärden
• true eller false
Tecken
• Benämns ofta character eller char
• Tar ett tecken (av 65 536 möjliga)
Datatyp
• En datatyp bestäms också av de
operationer som kan utföras på dem.
• Exempelvis hör till heltal de grundläggande
aritmetiska operationerna (+, -, *, /) och
relationer (<, >, =, )
• Ett uttryck; (7 + (3 * N)) < 19 beskriver inte
ett heltal utan ett boolskt värde.
• Till sanningsvärden hör också relationerna
AND, OR och NOT.
Tillämpning
• Tilldelningsoperatorn = används för att
tilldela en variabel ett värde
• En variabel kan t.ex. vara av typen int
• Man kan inte skriva int = 5
• Namnge variabeln ex. age, ange
typen int och tilldela ett värde:
int age = 5
Sammansatta datatyper
• Består av objekt som är eller kan
delas upp i enkla datatyper.
• Ex. fält (array) av heltal int[ ]
• Exempel på dessa är;
lista, stack, kö, fält, träd, graf
Sammansatta datatyper
• Definierad uppsättning operationer
• Beskrivs implementerat i ett gränssnitt
(interface)
• En generell beskrivning av en sammansatt
datatyp, oberoende av om och hur den är
implementerad, brukar benämnas abstrakt
datatyp.
• Vissa finns implementerade i språk, ex.
array och vektor (fält) i Java.
Kontrollmekanismer
Sekvens
• Två eller fler operationer utförs i bestämd
följd efter varandra (normal implicit)
• Skiljetecken i Java är ; och { }
(satsparenteser)
Ex:
{
int age = 5;
int price = 10;
}
Val eller villkor
• Vanligast med;
if(villkor){
statement;
}
else{
other statement;
}
• Även switch
Iteration
• Upprepning
• Styrd av numeriskt värde eller av ett villkor.
Ex:
for(start; villkor; uppräkning){
statements;
}
while(condition){
statements;
}
Procedurer
Procedur
• I Java benämnt metod
• En väl definierad uppgift, t.ex. en algoritm.
Ex:
public void printList(int[ ] aList){
for(i=0; i<aList.size(); i++){
System.out.println(aList[i]);
}
}
Anropas
printList(lista);
Procedur
• Kan beskrivas som bestående av ett
huvud och en kropp.
• Huvud
public void printList(int[ ] aList)
• Kropp är det som står mellan
satsparenteserna, i detta fall en loop.