De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Analoog/Digitaal Analoog ◦Elementen kunnen alle toestanden aannemen ◦(continu) Digitaal ◦Elementen nemen beperkt aantal toestanden aan (discreet) ◦=> ◦Binair:

Verwante presentaties


Presentatie over: "Analoog/Digitaal Analoog ◦Elementen kunnen alle toestanden aannemen ◦(continu) Digitaal ◦Elementen nemen beperkt aantal toestanden aan (discreet) ◦=> ◦Binair:"— Transcript van de presentatie:

1 Analoog/Digitaal Analoog ◦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 7-tallig tallig tallig tallig A B C D E F 10 tientallig heeft 10 cijfers: 234 betekent 2x100+3x10+4x1 zeventallig heeft 7 cijfers: = 2x49+3x7+4x1= tweetallig heeft 2 cijfers: = 1x32 + 0x16 +1x8 +0x4 + 1x2 +1x1=43 10 zestientallig heeft 16 “cijfers”: na de 9 komt A, B, C, D, E en F 3E 16 =3x x1=62 10

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 machine-instructies mensentaal ? CPU

9 Oplossingen?! 1e niveau (generatie ) : Machinetaal elementaire instructie geheugenadres mnemonicsymbolisch adres ASSEMBLEERTAAL MACHINETAAL PROGRAMMA ASSEMBLER 2e niveau (generatie): Assembleertalen HAALOPgetal BERGOPresultaat

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 ?

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 ??? !

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 bron- code bron- code bron- code CPU machine- instructies Interpreter vertalen en direct uitvoeren Compiler vertalen en opslaan OS: uitvoeren “bytecode” Compiler vertalen en opslaan JVM vertalen en uitvoeren CPU

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

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 nee Ontwerpfouten ontdek je zo niet! start End Edit broncode compileer test syntaxfout? runtime fout? ja nee debug

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

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.

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 Doe eerst dit Dan dit En tenslotte dit Totdat het niet meer hoeft

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

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 ? janee 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 ◦Elementen kunnen alle toestanden aannemen ◦(continu) Digitaal ◦Elementen nemen beperkt aantal toestanden aan (discreet) ◦=> ◦Binair:"

Verwante presentaties


Ads door Google