COMPUTERVAARDIGHEDEN EN PROGRAMMEREN 4 e les Prof. Dr. Frank De Proft 9 oktober 24 Derde les : Hoofdstuk : Computervaardigheden Enkele basisbegrippen» Hardware» Software» Internet en het web Binaire getallen Weergave van gehele getallen
Vierde les : Weergave van reële getallen Weergave van karakters Andere data» geluiden» beelden Hoofdstuk 3 : Software gehele getallen : Bitpatroon Decimale waarde ( 2 3 = 2.47.483.648) ( 2 3 = 2.47.483.647) ( 2 3 = 2.47.483.646)... ( 3) ( 2) ( ) ( ) ( ) ( 2) ( 3)... (2 3 3 = 2.47.483.645) (2 3 2 = 2.47.483.646) (2 3 = 2.47.483.647) 2
bitpatronen die beginnen met : negatieve waarden bitpatronen die beginnen met : niet-negatieve getallen Eerste bit : tekenbit vb. 3 : (tekenbit) + 3-bits representatie van 3 vb. : (tekenbit) + 3-bits representatie van Belangrijke nadelen :» : negatieve nul» decimale stelsel : slechts nul, niet positief of negatief» twee voorstellingen voor nul : onnodig + verwarrend» optelling van 2 binaire getallen onnodig gecompliceerd exact tegengestelde manier bitpatronen toekennen aan negatieve getallen :» negatieve gehele getal grootst in absolute waarde : 2 3 kleinste bitpatroon :» negatieve gehele getal kleinst in absolute waarde : grootste bitpatroon :» voorkomen van negatieve nul» binaire optelling gemakkelijker = twee-complement notatie 3
optellen van binaire getallen : 2 2 + 2 + 2 2 2 eenvoudige operatie ontwerpen van circuit voor binaire optelling : ver van triviaal bouwstenen : logische AND, OR en NOT poorten poort : circuit dat stroom elektriciteit controleert circuit : verzameling transistoren + (mogelijk) andere componenten logische NOT poort» output signaal steeds omgekeerde van inputsignaal» input : spanning output : geen spanning» input : geen spanning output : spanning» geen spanning : spanning : NOT poort Input Output input NOT output 4
logische OR poort» outputdraad stroom indien van beide inputdraden stroom OR poort Input Input2 Output input input2 OR output logische AND poort AND poort Input Input2 Output input input2 AND output AND, OR en NOT poorten : bouwstenen circuit binaire optelling 5
Twee inputlijnen : bits bij elkaar op te tellen Twee outputlijnen : som + overdracht 4 poorten : halfadder Input Overdracht + = Input2 Som Input Overdracht + = Input2 Som + = Input Input2 Overdracht Som Input Overdracht + = Input2 Som optellen van binaire getallen met meer dan bit : sommeren corresponderende bitparen per kolom = slechts halve werk! overdracht van bit van vorige optelling optellen corresponderende bits in getal : optelling van 3 bits twee inputwaarden + mogelijke overdracht 6
Halfadders + logische poorten : full-adder : Input Input2 Input3 Halfadder C S Halfadder C S Overdracht Som Combinatie van 4 full-adders : som van 2 4-bits getallen : C S C S Fulladder Fulladder Fulladder C S Fulladder C S optelling 8 bits getallen :» samenbrengen 8 full-adders» samenbrengen 2 adders van 4 bits geheugen : flip-flop schakeling : Hoofdstuk 4 2.3. Voorstellen van reële getallen Twee manieren van weergeven : decimaal of wetenschappelijk vb. 234.56 vs..23456e3 (.23456 3 ) Wetenschappelijke notatie : normalisatie : 234.56.23456 3 5. 5..99 9.9 4 7
Idenficatie van reëel getal door 2 bestanddelen :» fractionele gedeelte (rond komma)» exponent Komma steeds tussen eerste en tweede cijfer : niet beschouwen bij weergave 234.56.23456 3 (23456,3) 5. 5. ( 5,).99 9.9 4 (99, 4) floating point getallen (drijvende komma getallen) 985 : Institute of Electrical and Electronics Engineers (IEEE) :» Standaard weergave voor de opslag van floating-point getallen» gevolgd door praktisch alle computer- en software constructeurs Single precision (enkele precisie) : Exponent (8 bits)» 32 bits (4 bytes) Fractioneel gedeelte (23 bits)» mogelijke waarden :.7549435 38 tot 3.42823466 38 Double precision (dubbele precisie) : Tekenbit Tekenbit Exponent (» 64 bits (4 bytes) Fractioneel gedeelte (52 bits)» mogelijke waarden : -2.225738585724 38 tot.79769334862358 38 8
fractioneel gedeelte + exponent : combinatie tot karakteristiek bitpatroon sommige bitpatronen : speciale waarden : vb. NaN (Not-a-Number) resultaten onbepaalde wiskundige operaties : /, /,, -, oneindig aantal reele waarden : eindig aantal 32 en 64-bitpatronen niet alle reële getallen exact weer te geven afronding naar patroon dichtste tegen waarde enkele precisie : precisie 7 cijfers na komma dubbele precisie : precisie 6 cijfers na komma Illustratie : eenvoudig geval met precisie = 2 in het binair stelsel met 2 e 3 Voor dit systeem : genormaliseerde getallen : Lijst van alle positieve getallen : ±.*2 e of ±.*2 e met 2 e 3. (2 *2 2 = / 8. (2 *2 2 = 2. (2 *2 = 3 / 4. (2 *2 = / 4. (2 *2 3 = 4. (2 *2 = 3 / 2. (2 *2 = / 2. (2 *2 2 = 3 / 6. (2 *2 2 = 3. (2 *2 =. (2 *2 = 3 / 8. (2 *2 3 = 6 Distributie : bv. 2.2 en 2.4 : identiek!! 9
overflow :» getal te groot voor weergave in deze representatie» langs positieve (getal te groot) en negatieve (getal te klein) kant» positieve en negatieve overflow underflow :» getal te klein voor weergave in deze representatie» langs positieve en negatieve kant» positieve en negatieve underflow Meeste programmeertalen : onderscheid gehele en reële getallen» gehele getallen : 32 bits patronen» reële getallen : floating-point voorstelling : single of double precision Matlab :» gehele getallen : floating integers» reële getallen : double precision Machine-eps :» kleinste verschil tussen getallen dat computer kan herkennen» maat voor de nauwkeurigheid van de machine» kleinste floating point +. : resultaat van.» Matlab : machine-eps : 2.2 6
2.4. Voorstellen van karakters geen natuurlijke overeenkomst tussen karakters en binaire getallen karakters : voorstellen als bitpatronen : arbitraire systemen Standaard code om karakters voor te stellen : ASCII» American Standard Code for Information Interchange» karakter : specifiek 8 bits patroon» cijfers, kleine letters en hoofdletters : opeenvolgende binaire getallen» cijfers : binaire getallen met decimale waarden : 48 57» hoofdletters : binaire getallen met decimale waarden : 65 9» kleine letters : binaire getallen met decimale waarden : 97 22 Figuur 2. rangschikking : mogelijkheid om karakterwaarden te vergelijken vb. Matlab : c = 'a' c2 = 'b' c < c2» Resultaat : logische vector (waar)» vergelijking ASCII codes van c en c2 opeenvolging van karakters : string : sequenties van bytes "g "e "n "o "o "m
Vergelijking van strings in Matlab : s = 'ann' s2 = 'ban' s < s2 Resultaat : logische vector 8 bits ASCII code : voldoende voor Nederlandse tekst sommige alfabetten : 8 bits : te klein steeds toenemende internationalisering : ASCII vervangen door Unicode» 6 bits code» ondersteuning meeste karaktersets uit vreemde talen» terugwaarts compatibel met ASCII vb. ASCII : f : Unicode f : 2.5. Voorstellen van andere vormen van gegevens en data efficiënte opslag en manipulatie complexe data : bijkomende technieken en algoritmen omzetten data naar binaire getallen afkorten binaire data : samendrukken 2.5.. Geluiden verschil digitaal vs. analoog analoge weergave van data :» voorstelling data analoog aan de werkelijkheid» variatie over een oneindige reeks van waarden» opslag van data met hoge graad van variatie maar niet exact weergegeven dient te worden 2
digitaal :» discrete (eindig aantal) waarden» exacte weergaven belang van reproduceerbaarheid geluid :» inherent analoog» drukgolf met unieke amplitude (Pa) stemvork viool» trilling trommelvlies» interpretatie als geluid door hersenen fluit gong niet exacte weergave van analoge signalen : meestal geen probleem» menselijk oor : niet opmerken van bepaalde fouten en inconsistenties» duplicatie van opname : opstapeling van kleine fouten» na verloop van tijd : duidelijk verlies kwaliteit digitale opnames» exact reproduceerbaar» herhaaldelijk copiëren zonder verlies van kwaliteit» omzetting analoge golf in sequentie van discrete waarden = digitale sampling : - meting amplitude op regelmatige intervallen - opslag van de sequentie van discrete set van meetwaarden 3
digitale sampling : 2 dpa dpa dpa dpa 2 dpa Nauwkeurige reproductie geluiden : zeer regelmatig metingen verrichten geluid van CD kwaliteit : minimum 44. metingen/s grote hoeveelheden ruimte voor stockage technieken om grootte digitale geluidsbestanden te verminderen, vb. MP3 (factor ) 2.5.2. Beelden verschillende formats en compressietechnieken voor opslag beelden Eenvoudigste manier : bitmap» figuur : grid van punten : Pixels (Picture elements)» pixel bitpatroon» zwart-wit figuur : pixel bit - pixel bit - bit-waarde pixel : waarde van de hoofdkleur 4
resolutie : scherpte of duidelijkheid afbeelding hogere resolutie :» bitmaps onderverdeeld in kleinere pixels» elke bijkomende pixel : benodigde opslagruimte + bit kleurenplaatje :» meer dan bit per pixel» meestal : elke pixel : 24 bits (RGB waarde)» ontleding kleur in verschillende intensiteiten rood, groen, blauw - elk v/d 3 componenten : 8 bits - intensiteiten van (min) tot 255 (max) - 256 3 = 6.777.26 verschillende kleurencombinaties typische HTML kleuren : Typische HTML kleuren Kleur (R,G,B) Kleur (R,G,B) Kleur (R,G,B) rood (255,,) groen (,28,) blauw (,,255) donkerrood (39,,) donkergroen (,,) donkerblauw (,,39) crimson (22,2,6) olijf (28,28,) lichtblauw (73,26,23) roze (255,92,23) lichtgroen (44,238,44) purper (28,,28) violet (238,3,238) bruin (65,42,42) grijs (28,28,28) oranje (255,65,) wit (255,255,255) zwart (,,) vb. Microsoft Windows : Bitmap» extentie.bmp» voorstellen van iconen & achtergrondfiguren Bitmaps :» eenvoudige te beschrijven en begrijpen» vereisen veel geheugen bij opslag complexe beelden 5
Twee andere populaire formats voor opslag beelden : GIF en JPEG start vanaf bitmap weergave van beeld verschillende methoden om beelden compact te maken Toepassing algoritmes om bitpatroon beeld te verkorten GIF» Graphics Interchange Format» Herhalende patronen in beeld efficiënt opslaan» sterke reductie grootte van uiteindelijke weergave» verliesloos formaat : tijdens compressie gaat geen informatie verloren» oorspronkelijke beeld kan gerecupereerd worden» beelden met discrete grenzen (vb. lijnen) : noodzakelijke precisie JPEG» Joint Photographics Expert Group» gebruik van compressietechnieken die niet volledig omkeerbaar zijn» geschikt voor geleidelijke verandering van kleur, vb. kleurenfoto» opoffering precisie voor betere compressie Bepaald gegeven : welke soort data? vb. =?» gehele getal 97» karakter a» exponent van een reeel getal» onderdeel geluid, beeld aard gegeven door context en programma dat gegevens gebruikt 6
HOOFDSTUK 3 : SOFTWARE 3.. Inleiding Software vaak gebruikt door wetenschappers en ingenieurs :» presentatie van gegevens» analyse van data» berekeningen 3.2. Presentatie van informatie Resultaten op logische en verstaanbare manier aan anderen weergeven Welke software? Afhankelijke aard informatie Strikte minimum = tekstverwerker + rekenbladen, tekenprogramma s en grafische programma s Hoofdstuk 3 : Software 7
3.2.. Tekstverwerking Microsoft Word Wetenschappelijke wereld : TeX (LaTeX) (wis-- en natuurkundingen, theoretisch chemici, ) Word/Wordperfect Wordperfect : WYSIWIG ( What( you see is what you get ) LaTeX : compilatie broncode Resultaat = geformatteerde tekstdocument Voordeel : platformonafhankelijkheid + gratis compilers voorhanden Hoofdstuk 3 : Software Voorbeeld : LaTeX code en resultaat : Hoofdstuk 3 : Software 8
Vijfde les : Hoofdstuk 3 : Software Presentatie van informatie» Chemische vergelijkingen, tekenen van molekulen» Wiskundige vergelijkingen» Diagrammen, tabellen en figuren Analyse van data Berekeningen Besturingssystemen 9