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.