Analoog/Digitaal Analoog Digitaal

Slides:



Advertisements
Verwante presentaties
PROS2 Les 13 Programmeren en Software Engineering 2.
Advertisements

PSD Basisstructuren programmeren.
PSD Basisstructuren programmeren.
Hoe werkt een rekenmachine?
Informatica klas 4 Hoofdstuk 1
Informatieverwerkende systemen
Programmeren met Alice
dia's bij lessenserie Pythagoras ± v Chr.
Hoofdstuk 1 Programmeren.
Hardware (1) NSG Informatica.
Bits en Bytes
BESTURINGS SYSTEMEN Vincent Naessens.
OOP met Java Sessie 1.
JAVA1 H 1. KENNISMAKING MET JAVA EN DE ONTWIKKELOMGEVINGEN 1. ONTSTAANSGESCHIEDENIS VAN JAVA Java: ontworpen in 1990 door Sun Microsystems voor de programmering.
Logische schakelingen
bewerkingen in programmeeromgevingen
Het ontwerpen van een klasse

Hoofdstuk 6: Controle structuren
1 SOCS Hoofdstuk 3 Basisprogrammatuur. 2 Inhoud De Vertaler De Voorvertaler De Lader De Binder De Vertolker  Werking van vertolker  Voor- en nadelen.
Hoofdstuk 1 Programmeren.
Digitale foto Megapixel à 3 bytes = 12 Megabyte.
De verschillende evoluties: Digitalisering Microchiptechnologie Bandbreedte Koperpaar -> coax -> glasvezelkabel Compressietechniek Schakeltechnologie Servers.
Hoe een computer gegevensverwerkende processen realiseert
Het binaire talstelsel
De processor.
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
Frank Stalpers en Ad Baars
Numerieke Natuurkunde
Visual Basic .NET voor studenten
GESPRG Les 7 Gestructureerd programmeren in C. 92 Verwisselen Schrijf een functie waarmee twee int variabelen verwisseld kunnen worden. void wissel(int.
Informatica op het Kalsbeek College. Informatica op het Kalsbeek College.
Hoe werkt een rekenmachine?
Talstelsels, rekenen en rekenschakelingen
Algoritmiek Object-georiënteerd Programmeren
6.1 Inleiding HOOFDSTUK 6 METHODEN
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Power PC Assembler. Assembler toolkit bevat Assembler zelf Linkerlibrarian.
Klik ergens op het witte deel van deze pagina om verder te gaan
MICROCONTROLLERS.
BINAIR2: 10-jan-2003, RW Maar HOE reken je nu een BINAIRE waarde om naar een DECIMALE waarde?
Informatica: Binair rekenen.
Programma Structuur Diagrammen (PSD’s)
BINAIR REKENEN.
H1 Informatie digitaal §1.1 Bits en bytes Informatie in nullen en enen
CONTROLESTRUCTUREN (DEEL 1)
Bits & bytes.
tircms02-p les 1 Operating Systems practicum
1 Introductie next MCT - Programmeren 2 © S. Walcarius Waarom java? programma machinetaal (.exe) compilen platformspecifiek Een exe programma.
JAVA: een platformonafhankelijke taal
Inleiding computersystemen en netwerken Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 2.1 Programmeren (2.9) assembler,
Programmeren.
Gecijferdheid les 1.4 Grootst gemene deler Kleinst gemene veelvoud
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Agenda  Lesuur minuten  Wat kun je met programmeren?  Wat is code en hoe werkt het?  Code schrijven: de basis  Lesuur minuten  Zelf.
Welkom! maandag 16 November 2015 Les B-2.
Bits en bytes. Bit  Transistor laat stroom door of niet  Hoge spanning of lage spanning  1 of 0  Tweetallig, binair  Tientallig, decimaal  Digit.
Informatica Welkom! maandag 16 November Les B-1.
Programmeren. Wat is programmeren? Het schrijven van opdrachten voor de processor De processor “spreekt” machinetaal:
Gevorderde programmeer Les
Kennismaking met programmeren
Informatica-Actief Thema: Informatie en communicatie Hoofdstuk:
Kennismaking met programmeren
Programmeren woensdag 4 oktober 2017.
Kennismaking met programmeren
Binaire getallen 1. binair → decimaal 2. decimaal → binair.
Software Development fundamentals
GGD en KGV.
Software Development fundamentals
Transcript van de presentatie:

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

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

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)

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: 1010112= 1x32 + 0x16 +1x8 +0x4 + 1x2 +1x1=4310 zestientallig heeft 16 “cijfers”: na de 9 komt A, B, C, D, E en F 3E16=3x16 + 14x1=6210

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

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: 10111 101 10111 10111 (2 plaatsen verschoven) 1110011

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

Probleem ? CPU mensentaal machine-instructies

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

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?

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

(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

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

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

Java geschiedenis: genealogie

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.

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

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

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.

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

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

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>

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

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.

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.

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

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

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

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

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)

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