Analog Digitalitet Kontinuerlig Direkt proportionerlig mot källan Ex. sprittermometer Elektrisk signal som representerar ljud Diskret Digital 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
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 nackdelen? 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. Binärat tal Generellt används n bitar så får vi 2 n unika kombinationer. 8 bitar bildar en byte. Om man använder tre bitar ger detta 8 kombinationer. Binära tal För att uttyda ett binärt tal kan följande uppställning användas: 2 3 2 2 2 1 2 0 Placering 1 0 0 1 Binärt tal 1* 2 3 + 0* 2 2 + 0* 2 1 + 1* 2 0 = = 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 En minnescell kan vara t.ex. FFFF,vilket blir 1111 1111 1111 1111 i binär form. 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 också 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 (2 32 = 4 byte) och tar då värden från ~-2*10 9-2*10 9 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*10 38-3.4*10 38 med 7 signifikanta siffror Trunkeras 3.141592654 = 3.141592 Om man vill ha fler signifikanta siffror används double Boolska värden (boolean) Tecken Sanningsvärden true eller false 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 strängar String[] eller 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. Sekvens Kontrollmekanismer 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 Upprepning Styrd av numeriskt värde eller av ett villkor. Ex: for(start; villkor; uppräkning){ Iteration statements; while(condition){ statements;
Procedur I Java benämnt metod, i C funktion Procedurer 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.