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.