COMPUTERVAARDIGHEDEN EN PROGRAMMERENhomepages.vub.ac.be/~fdeprof/Les4_19_10_2004.pdf• efficiënte...
Transcript of COMPUTERVAARDIGHEDEN EN PROGRAMMERENhomepages.vub.ac.be/~fdeprof/Les4_19_10_2004.pdf• efficiënte...
1
COMPUTERVAARDIGHEDEN ENCOMPUTERVAARDIGHEDEN ENPROGRAMMERENPROGRAMMEREN
4e les
19 oktober 2004
Prof. Dr. Frank De Proft
Derde les : Hoofdstuk 1 : Computervaardigheden
• Enkele basisbegrippen» Hardware
» Software
» Internet en het web
Hoofdstuk 2 : Weergave van gegevens
• Binaire getallen
• Weergave van gehele getallen
2
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
Vierde les :
Hoofdstuk 2 : Weergave van gegevens
• Andere data » geluiden
» beelden
Hoofdstuk 3 : Software
• Weergave van reële getallen
• Weergave van karakters
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
gehele getallen :
Bitpatroon Decimale waarde10000000000000000000000000000000 (−231 = −2.147.483.648)10000000000000000000000000000001 (−231−1 = −2.147.483.647)10000000000000000000000000000010 (−231−1 = −2.147.483.646)...11111111111111111111111111111101 (−3)11111111111111111111111111111110 (−2)11111111111111111111111111111111 (−1)00000000000000000000000000000000 ( 0)00000000000000000000000000000001 ( 1)00000000000000000000000000000010 ( 2)00000000000000000000000000000011 ( 3)...01111111111111111111111111111101 (231−3 = 2.147.483.645)01111111111111111111111111111110 (231−2 = 2.147.483.646)01111111111111111111111111111111 (231−1 = 2.147.483.647)
3
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
• bitpatronen die beginnen met 1 : negatieve waarden
• bitpatronen die beginnen met 0 : niet-negatieve getallen
• Eerste bit : tekenbit
vb. 3 : 0 (tekenbit) + 31-bits representatie van 3
vb. 100 : 0 (tekenbit) + 31-bits representatie van 100
00000000000000000000000000000011
00000000000000000000000001100100
• Belangrijke nadelen :
» 10000000000000000000000000000000 : negatieve nul
» decimale stelsel : slechts 1 nul, niet positief of negatief
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
» 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 : −231
kleinste bitpatroon : 10000000000000000000000000000000
» negatieve gehele getal kleinst in absolute waarde : −1
grootste bitpatroon : 111111111111111111111111111111
» voorkomen van negatieve nul
» binaire optelling gemakkelijker
= = tweetwee-complement -complement notatienotatie
4
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
• optellen van binaire getallen :
1 0 1 12 1 1 0 02
12 1 0 12
1 1 0 02 1 0 0 0 12
1 11
+ +
1
• 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
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
• logische NOT poort
» output signaal steeds omgekeerde van inputsignaal
» input : spanning → output : geen spanning
» input : geen spanning → output : spanning
» geen spanning : 0 ↔ spanning : 1
Input Output
NOT poort
input NOT output
0 11 0
5
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
• logische OR poort
» outputdraad stroom indien 1 van beide inputdraden stroom
OR poort
OutputInput1
Input2
input1 input2 OR output
0 0 00 1 1
1 0 1
1 1 1
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
• logische AND poort
OutputInput1
Input2
AND poort
input1 input2 AND output
0 0 00 1 0
1 0 0
1 1 1
• AND, OR en NOT poorten : bouwstenen circuit binaire optelling
6
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
• Twee inputlijnen : bits bij elkaar op te tellen
• Twee outputlijnen : som + overdracht
• 4 poorten : halfadder
0 + 0 = 00Input1
Input2
Overdracht
Som
0
0
0
0
Input1
Input2
Overdracht
Som
0
1
0
10 + 1 = 01
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
1 + 0 = 01Input1
Input2
Overdracht
Som
1
0
0
1
1 + 1 = 10Input1
Input2
Overdracht
Som
1
1
1
0
• overdracht van bit van vorige optellingsommeren corresponderende bitparen per kolom = slechts halve werk !
• optellen van binaire getallen met meer dan 1 bit :
• optellen corresponderende bits in getal : optelling van 3 bitstwee inputwaarden + mogelijke overdracht
7
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
• Halfadders + logische poorten : full-adder :
Halfadder
HalfadderC
S C
S
Overdrachtht
Som
0
1
1
1
0
Input1
Input2
Input3
• Combinatie van 4 full-adders : som van 2 4-bits getallen :
Full-adder
C
S
Full-adder
C
S
Full-adder
C
S
Full-adder
C
S
0101
1100
10001
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
• optelling 8 bits getallen :
• geheugen : “flip-flop” schakeling : Hoofdstuk 4
» samenbrengen 8 full-adders
» samenbrengen 2 adders van 4 bits
2.3. 2.3. Voorstellen Voorstellen van van rereëële getallenle getallen
• Wetenschappelijke notatie : normalisatie :
vb. 1234.56 vs. 1.23456E03 (1.23456 × 103)
• Twee manieren van weergeven : decimaal of wetenschappelijk
−50.0 → −5.0 × 1011234.56 → 1.23456 × 103
0.00099 → 9.9 × 10−4
8
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
• Idenficatie van reëel getal door 2 bestanddelen :
• Komma steeds tussen eerste en tweede cijfer : niet beschouwen bij weergave
» fractionele gedeelte (rond komma)
» exponent
−50.0 → −5.0 × 101 → (−5,1)
1234.56 → 1.23456 × 103 → (123456,3)
0.00099 → 9.9 × 10−4 → (99,−4)
• “floating point” getallen (drijvende komma getallen)
• 1985 : Institute of Electrical and Electronics Engineers (IEEE) :
» Standaard weergave voor de opslag van “floating-point” getallen
» gevolgd door praktisch alle computer- en software constructeurs
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
• Single precision (enkele precisie) : Teken-
bit
Exponent (8 bits) Fractioneel gedeelte (23 bits)
» mogelijke waarden : −1.75494351 × 10−38 tot 3.402823466 × 1038
» 32 bits (4 bytes)
• Double precision (dubbele precisie) :
» mogelijke waarden : -2.2250738585072014 × 10−308 tot 1.7976931348623158 × 10308
» 64 bits (4 bytes)
Teken-bit
Exponent (11bits)
Fractioneel gedeelte (52 bits)
9
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
• fractioneel gedeelte + exponent : combinatie tot karakteristiek bitpatroon
• sommige bitpatronen : speciale waarden : vb. NaN (Not-a-Number)
resultaten onbepaalde wiskundige operaties : 0/0, ∞/∞, 0×∞, ∞-∞, …
• 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 16 cijfers na komma
Illustratie : eenvoudig geval met precisie = 2 in het binair stelsel met−2 ≤ e ≤ 3
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
Voor dit systeem : genormaliseerde getallen :±.10*2e of ±.11*2e met −2 ≤ e ≤ 3
Lijst van alle positieve getallen :
Distributie :
bv. 2.2 en 2.4 : identiek !!
.10(2*2−2=1/8
.10(2*2−1=1/4
.10(2*20=1/2
.10(2*21=1
.10(2*22= 2
.10(2*23= 4
.11(2*2−2 =3/16
.11(2*2−1= 3/8
.11(2*20= 3/4
.11(2*21= 3/2
.11(2*22 = 3
.11(2*23 = 6
10
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
• “overflow” :
• “underflow” :
» getal te groot voor weergave in deze representatie
» positieve en negatieve overflow
» langs positieve (getal te groot) en negatieve (getal te klein) kant
» getal te klein voor weergave in deze representatie
» positieve en negatieve underflow
» langs positieve en negatieve kant
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
• 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 + 1.000 : resultaat van ≠ 1.000
» Matlab : machine-eps : 2.2 × 10−16
11
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
• geen natuurlijke overeenkomst tussen karakters en binaire getallen
» American Standard Code for Information Interchange
2.4. 2.4. Voorstellen Voorstellen van van karakterskarakters
• karakters : voorstellen als bitpatronen : arbitraire systemen
• Standaard code om karakters voor te stellen : ASCII
» 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 → 90
» kleine letters : binaire getallen met decimale waarden : 97 → 122
Figuur 2.11
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
• opeenvolging van karakters : string : sequenties van bytes
• rangschikking : mogelijkheid om karakterwaarden te vergelijken
vb. Matlab :
c1 = 'a'
c2 = 'b'
c1 < c2
» Resultaat : logische vector 1 (waar)
» vergelijking ASCII codes van c1 en c2
"g"
"e"
"n"
"o"
"o"
"m""
011001110110010101101110011011110110111101101101
12
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
• Vergelijking van strings in Matlab :
Resultaat : logische vector 1 0 0
s1 = 'ann'
s2 = 'ban'
s1 < s2
• 8 bits ASCII code : voldoende voor Nederlandse tekst
• sommige alfabetten : 8 bits : te klein
• steeds toenemende internationalisering : ASCII vervangen door Unicode» 16 bits code
» ondersteuning meeste karaktersets uit vreemde talen
» terugwaarts compatibel met ASCII
ASCII : f : 01100110
Unicode f : 0000000001100110
vb.
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
• efficiënte opslag en manipulatie complexe data : bijkomende technieken en algoritmen
2.5. 2.5. Voorstellen Voorstellen van van andere vormen andere vormen vanvan gegevens gegevens en dataen data
• omzetten data naar binaire getallen
• afkorten binaire data : samendrukken
2.5.1. 2.5.1. GeluidenGeluiden
» voorstelling data analoog aan de werkelijkheid• analoge weergave van data :
• verschil digitaal vs. analoog
» variatie over een oneindige reeks van waarden
» opslag van data met hoge graad van variatie maar niet exactweergegeven dient te worden
13
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
• digitaal :» discrete (eindig aantal) waarden» exacte weergaven
• belang van reproduceerbaarheid
• geluid :
stemvork
viool
fluit
gong
» inherent analoog
» drukgolf met unieke amplitude (Pa)
» trilling trommelvlies
» interpretatie als geluid door hersenen
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
• 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
14
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
• digitale sampling :
200 dPa
100 dPa
0 dPa
−100 dPa
−200 dPa
• Nauwkeurige reproductie geluiden : zeer regelmatig metingen verrichten
• geluid van CD kwaliteit : minimum 44.100 metingen/s
• grote hoeveelheden ruimte voor stockage
• technieken om grootte digitale geluidsbestanden te verminderen, vb. MP3 (factor 10)
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
2.5.2. 2.5.2. BeeldenBeelden
» figuur : grid van punten : Pixels (Picture elements)
• verschillende formats en compressietechnieken voor opslag beelden
• Eenvoudigste manier : bitmap
» pixel → bitpatroon
» zwart-wit figuur : 1 pixel → 1 bit
- 1 pixel → 1 bit- bit-waarde pixel : waarde van de hoofdkleur
1 1 1 1 1 1 1 11 1 0 1 1 0 1 11 1 1 1 1 1 1 11 0 1 1 1 1 1 01 0 1 1 1 1 1 01 0 1 1 1 1 0 11 1 0 0 0 0 0 11 1 1 1 1 1 1 1
15
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
• resolutie : scherpte of duidelijkheid afbeelding
• hogere resolutie :
» bitmaps onderverdeeld in kleinere pixels
» elke bijkomende pixel : benodigde opslagruimte +1 bit
• kleurenplaatje :» meer dan 1 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 0 (min) tot 255 (max)
- 2563 = 16.777.216 verschillende kleurencombinaties
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
Typische HTML kleurenKleur (R,G,B) Kleur (R,G,B) Kleur (R,G,B)
rood (255,0,0) groen (0,128,0) blauw (0,0,255)
donkerrood (139,0,0) donkergroen (0,100,0) donkerblauw (0,0,139)crimson (220,20,60) olijf (128,128,0) lichtblauw (173,216,230)roze (255,192,203) lichtgroen (144,238,144) purper (128,0,128)violet (238,130,238) bruin (165,42,42) grijs (128,128,128)oranje (255,165,0) wit (255,255,255) zwart (0,0,0)
• typische HTML kleuren :
• vb. Microsoft Windows : Bitmap
» extentie .BMP
» voorstellen van iconen & achtergrondfiguren
• Bitmaps :» eenvoudige te beschrijven en begrijpen» vereisen veel geheugen bij opslag complexe beelden
16
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
• GIF
• Toepassing algoritmes om bitpatroon beeld te verkorten
» oorspronkelijke beeld kan gerecupereerd worden
» sterke reductie grootte van uiteindelijke weergave
• Twee andere populaire formats voor opslag beelden : GIF en JPEG
• start vanaf bitmap weergave van beeld
• verschillende methoden om beelden compact te maken
» Graphics Interchange Format
» Herhalende patronen in beeld efficiënt opslaan
» verliesloos formaat : tijdens compressie gaat geen informatie verloren
» beelden met discrete grenzen (vb. lijnen) : noodzakelijke precisie
Hoofdstuk Hoofdstuk 2 : 2 : Weergave Weergave van van gegevensgegevens
• JPEG
» geschikt voor geleidelijke verandering van kleur, vb. kleurenfoto
» Joint Photographics Expert Group
» gebruik van compressietechnieken die niet volledig omkeerbaar zijn
» opoffering precisie voor betere compressie
• Bepaald gegeven : welke soort data ?
vb. 01100110 = ?» gehele getal 97» karakter “a”» exponent van een reeel getal» onderdeel geluid, beeld
• aard gegeven door context en programma dat gegevens gebruikt
17
HOOFDSTUK 3 : HOOFDSTUK 3 : SOFTWARESOFTWARE
3.1. Inleiding
• Software vaak gebruikt door wetenschappers en ingenieurs :
» presentatie van gegevens
» analyse van data
» berekeningen
• Resultaten op logische en verstaanbare manier aan anderen weergeven
• Welke software ? Afhankelijke aard informatie
3.2. Presentatie van informatie
• Strikte Strikte minimum = minimum = tekstverwerkertekstverwerker
+ + rekenbladenrekenbladen, , tekenprogrammatekenprogramma’’s s enengrafische programmagrafische programma’’ss
Hoofdstuk Hoofdstuk 3 : Software3 : Software
18
3.2.1. 3.2.1. TekstverwerkingTekstverwerking
• Microsoft Word Microsoft Word
• Wetenschappelijke wereld Wetenschappelijke wereld : : TeX TeX ((LaTeXLaTeX))
((wiswis- en - en natuurkundingennatuurkundingen, , theoretisch chemicitheoretisch chemici, , ……))
• Word/ Word/Wordperfect Wordperfect : WYSIWIG (: WYSIWIG (““What you see is what you getWhat you see is what you get””) )
• LaTeX LaTeX : : compilatie broncodecompilatie broncode
Resultaat Resultaat = = geformatteerde tekstdocumentgeformatteerde tekstdocument
Voordeel Voordeel : : platformonafhankelijkheid platformonafhankelijkheid + +
gratis compilers gratis compilers voorhandenvoorhanden
Hoofdstuk Hoofdstuk 3 : Software3 : Software
Voorbeeld Voorbeeld : : LaTeX LaTeX code en code en resultaat resultaat : :
Hoofdstuk Hoofdstuk 3 : Software3 : Software
19
Vijfde les :
Hoofdstuk 3 : Software
• Presentatie van informatie
» Chemische vergelijkingen, tekenen van molekulen
» Wiskundige vergelijkingen
» Diagrammen, tabellen en figuren
• Analyse van data
• Berekeningen
• Besturingssystemen