De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Analoog/Digitaal Analoog Digitaal

Verwante presentaties


Presentatie over: "Analoog/Digitaal Analoog Digitaal"— Transcript van de presentatie:

1 Analoog/Digitaal Analoog Digitaal
Elementen kunnen alle toestanden aannemen (continu) Digitaal Elementen nemen beperkt aantal toestanden aan (discreet) => Binair: twee toestanden 0 en 1 Wel/niet, aan/uit, geladen/ongeladen Binair geheugen eenvoudiger dan analoog Bit (binary digit) - informatie in één cel Byte (= by eight) - 8 bits bij elkaar

2 Digitaliseren Van analoog naar digitaal Tekeningen/beelden/foto's:
Geluid : digitale audio == compact disc

3 Machine-instructies De CPU van een computer kan alleen instructies begrijpen die er zijn “ingebakken”. (machine-instructies) De instructies verschillen sterk per CPU: Motorola /Z80 / 8086 / Pentium Machine-instructies zijn voor normale mensen niet leesbaar: 3E 20 1A 37 BC (hexadecimaal geschreven)

4 talstelsels positiestelsel tientallig heeft 10 cijfers:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 7-tallig 1 2 3 4 5 6 10 11 12 13 14 15 16 20 21 22 2-tallig 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 16-tallig 1 2 3 4 5 6 7 8 9 A B C D E F 10 positiestelsel tientallig heeft 10 cijfers: 234 betekent 2x100+3x10+4x1 zeventallig heeft 7 cijfers: 2347= 2x49+3x7+4x1=12310 tweetallig heeft 2 cijfers: = 1x32 + 0x16 +1x8 +0x4 + 1x2 +1x1=4310 zestientallig heeft 16 “cijfers”: na de 9 komt A, B, C, D, E en F 3E16=3x x1=6210

5 Binaire getallen Negatieve getallen m.b.v. één bit voor het teken 16-bits --> van , .., -1, -0, +0,+1, .., Gebroken getallen: = 1x4 + 0x2 +1x1 + 0x1/2+ 1x1/4+1x1/8 Fixed point notatie: ( ) vast aantal bytes voor het gehele deel en vast aantal bytes voor het gebroken deel Floating point notatie: ( E +5) vast aantal bytes voor de significante cijfers (mantisse) en voor de exponent (niet zo veel)

6 Binair rekenen Optellen: 0+0 = 0, 0+1= 1, 1+0 = 1, 1+1=0 (1 onthouden)
Vermenigvuldigen: 0*0 = 0*1 = 1*0 = 0, 1*1 = 1 vb: (2 plaatsen verschoven)

7 Mensentaal Mondelinge opdrachten zijn vaak onvolledig en dubbelzinnig
“Schiet op!” “Help” “Bereken mijn salaris” “Simuleer een vogel” Een CPU kan hiermee niet overweg

8 Probleem ? CPU mensentaal machine-instructies

9 Oplossingen?! 1e niveau (generatie ) : Machinetaal 00000001 01100101
elementaire instructie geheugenadres 2e niveau (generatie): Assembleertalen HAALOP getal BERGOP resultaat ASSEMBLEERTAAL MACHINETAAL PROGRAMMA ASSEMBLER mnemonic symbolisch adres

10 Oplossingen ? De mens leert machine-instructies
opnieuw leren voor nieuwe computer (computerafhankelijk) ingewikkeld voor grotere programma’s De computer leert mensentaal Kunstmatige Intelligentie in het algemeen complex meest wenselijk 1946 201?

11 Oplossing ! De mens leert opdrachten te geven in een taal die zowel mensen als computers kunnen begrijpen: (hogere) programmeertaal Opdrachten in deze taal worden door de computer omgezet naar machine-instructies voor CPU. 1946 2??? !

12 (hogere) programmeertaal
voor de mens begrijpbaar: leesbaar inzichtelijk met hulp om foutloos te werken voor de computer begrijpbaar : eenduidig: strikte, formele regels goed in machine-code om te zetten voor meerdere CPU’s geschikt

13 Vertalen (noodzakelijk)
Twee vormen van vertalen: COMPILEREN: hele programma vertalen, nog niet uitvoeren vergelijkbaar met vertalen boek INTERPRETEREN: per opdracht vertalen en meteen uitvoeren vergelijkbaar met vertolken

14 Geschiedenis Start Assembler: 1-op-1 met machine-instructie 1960 Fortran / Basic / Cobol: complexere opdrachten 1970 Pascal / C: gestructureerd 1980 SmallTalk / C++: objectgeörienteerd 1990 Java: gedistribueerd

15 Java geschiedenis: genealogie

16 Programmeertermen Edit - Het opstellen van de tekst in een programmeertaal (broncode of source). Compile - Het omzetten van deze tekst naar machine-instructies. Run - Het uitvoeren van de machine- instructies. Debug - Het herstellen van fouten in de programmeertekst.

17 Java Pascal Basic bron- code CPU Compiler en opslaan Interpreter
machine- instructies Interpreter vertalen en direct uitvoeren Compiler en opslaan OS: uitvoeren “bytecode” JVM en uitvoeren Java Basic Pascal

18 Java Compilatie-proces
bytecode in Java Classes Java Virtual Machine (interpreteren) broncode in de programmeertaal Java Java Compiler CPU Classes in Java Bibliotheek Java (progr), Appletviewer Browser, Server Classes op het Internet

19 Drie Soorten Fouten Syntax-fout: zondigen tegen de regels.
door compiler achterhaald. Run-time fout: programma werkt niet zoals programmeur wil (“crash”). door debuggen of (alpha-) testen achterhaald. Ontwerpfout: programma werkt zoals de programmeur het wil, maar doet niet wat gebruiker wil. Wordt door (beta-)testen achterhaald.

20 Edit-Compile-Debug Loop
start End Edit broncode compileer test syntaxfout? runtime fout? ja nee debug Ontwerpfouten ontdek je zo niet! nee

21 “Waterval model” Software engineering systeemeisen bepalen
Edit-Compile- Debug Loop softwareeisen bepalen software ontwerp programmeren en deeltesten systeem testen “Waterval model” operationeel systeem

22 Java: Hello World Program HelloWorld.java public class HelloWorld
{ public static void main(String[] args) { System.out.println("Hello World!"); } c:\pract>javac HelloWorld.java c:\pract>java HelloWorld Hello World! c:\pract>

23 Algoritmen Een computer kent alleen simpele opdrachten (elementaire instructieset). Hoe laat je een computer complexe laten uitvoeren? Met behulp van algoritmen!

24 Wat is een algoritme? Een algoritme legt precies vast hoe een bepaalde taak moet worden uitgevoerd in termen van simpele opdrachten. Eisen: Een algoritme moet eenduidig zijn. Een algoritme moet uitvoerbaar zijn. Een algoritme moet eindigen. Het oudste voorbeeld: bepaal de grootste gemene deler van twee getallen.

25 Grootste Gemene Deler (Euclides, Alexandria, 300 v.Chr.)
Om de GGD van a en b te bepalen, doe het volgende: 1) maak a het grootste getal en b het kleinste, 2) maak c de rest van a gedeeld door b, 3) als c nul is, dan is b het antwoord, 4) anders stop b in a, c in b, en ga naar stap 2.

26 Nassi-Shneidermann diagram
Om een algoritme te ontwerpen, kun je het best gestructureerd te werk gaan. Het NS-diagram helpt je daarbij. Het NS diagram bestaat uit blokken. Ieder blok is 1 opdracht. De blokken kunnen worden samengevoegd. Nassi-Shneidermann diagram

27 NS: Sequentie Om aan te geven dat opdrachten achter elkaar moeten worden uitgevoerd, plaats je rechthoeken onder elkaar: Doe eerst dit Dan dit En tenslotte dit

28 NS: Iteratie Om herhaling van een aantal opdrachten aan te geven, zet je een haak om een groep blokken: Doe eerst dit Dan dit En tenslotte dit Zolang het nog moet Totdat het niet meer hoeft

29 NS: Selectie Je kunt aangeven dat een opdracht alleen onder bepaalde voorwaarden moet worden uitgevoerd: Doe dat Doe dit Voorwaarde voldaan? ja nee

30 NS: combinatie Omdat het samenvoegen van blokken ook weer blokken oplevert, kun je het voorgaande ook combineren: maak a grootste en b kleinste getal maak c de rest van a gedeeld door b is c nul ? ja nee stop b in a herhaal totdat c nul is het antwoord is b stop c in b bepaal GGD(a,b)

31 Opdrachten Verken het programma structorizer
Teken in structorizer de NS voor GGD Teken een NS-diagram voor de bediening van een (eenvoudige) magnetron


Download ppt "Analoog/Digitaal Analoog Digitaal"

Verwante presentaties


Ads door Google