ara.informatik.tu-freiberg.deara.informatik.tu-freiberg.de/vorlesungen/2010/gdi2009_3… · web...
TRANSCRIPT
6. Medien 6.1 Medien und Wahrnehmung
• Nutzlast (Bit/bit)- Information wird in Bit gemessen, bit = Anzahl {0,1}
ASCII-Text 10 byteBitmap 1000 Punkte * 1 byteTelefon 8.000 byteAudio-CD 44.100 Samples * 2 byte * 2Video 25 Bilder * 256 Spalten * 192 Zeilen * 3 byte/Punkt = 3.686.400 byteTV 25 Bilder * 704 Spalten * 625 Zeilen * 3 byte/Punkt = 33.000.000 byte
Konrad Froitzheim: Grundlagen der Informatik 1
Bit
Text Grafik Ton Video
TextText
• Aufnahmevermögen und Bitrate• Dimensionen, räumliche Effekte
- Menschen haben räumliches Empfinden (Sehen, Hören, Gleichgew.)- Raum und Zeit- Dimensionen werden vielfältig ausgewertet
• Diskrete und kontinuierliche Medien- Klassifikation entsprechend Auflösungsvermögen der Wahrnehmung- Im Raum Punkte oder Verläufe: Pixelmaps oder Photographien- In der Zeit Stilleben oder Bewegung
Grafik oder AnimationBilder oder Video
- Audio physikalisch immer kontinuierlich
Psychisch auch diskret: SpracherkennungSprache oder Musik
• Abschattungseffekte- in einem Medium
Konrad Froitzheim: Grundlagen der Informatik 2
Ellipse und Kreise
- zwischen Medien
Konrad Froitzheim: Grundlagen der Informatik 3
Zeichen-Generator
Zeile 3
A
6.2 Computergrafik• Darstellung visueller Objekte
- Buchstaben und Zahlen,- geometrische Objekte (Gerade, Kreis, Rechteck, …)- Attribute (Farbe, Muster, Font, …).
• Bildspeicher- Hauptspeicher oder im Adapter,- eventuell mehrere Ebenen (Farbe, Graustufen, räumliche Position).
• Buchstabenbildschirme- nur Buchstaben darstellbar- oft als Rasterbildschirm, aber Punkte nur in Gruppen ansprechbar- Zeichengenerator: ROM zur Abbildung der Buchstaben auf Raster
• Vektorgrafik …
Konrad Froitzheim: Grundlagen der Informatik 4
• Rasterbildschirm- jeder Punkt einzeln ansprechbar- uneingeschränkt grafikfähig
- Punkteanzahl typisch 1024*768 bis 2560*1600- 72, 80 bis 100 Punkte/Zoll (dpi)- 2560*1600*24 bit für 30" Farbmonitor -> 12.188.000 Byte- Bildänderungsrate (Framerate, >25 Hz) und Bildwiederholrate (>70Hz)
Konrad Froitzheim: Grundlagen der Informatik 5
6.2.1 Text• Zeichensatz
- ASCII: American Standard Code for Information Interchange0 .. 31 Druckersteuerzeichen32 .. 127 druckbare Zeichen128 .. 255 nichtstandardisierte Erweiterungen
- EBCDIC: Extended Binary Coded Decimal Interchange Code- ISO 8859-X
Erweiterung von ASCII um länderspezifische Zeichen1, 2, 3, 4 und 9 für lateinische Zeichensätze5 kyrillisch, 6 arabisch, 7 griechisch und 8 hebräisch
- UnicodeCodes für alle Schriftzeichen der Welt16 Bit/Zeichen28.000 Codes für Ideographen (China, Korea, Japan)mehr Zeichen -> mehr Information/Zeichen: ae -> ä, ss -> ß
• kompaktes Medium
Konrad Froitzheim: Grundlagen der Informatik 6
• Schriftattribute- fett, kursiv, Umriss, schattiertschattiert, …- Zeichengröße und -breite- Kerning und Ligaturen: fl statt fl
• Fontmetrik- beschreibt Laufeigenschaften des Textes- monospace vs. proportional
Konrad Froitzheim: Grundlagen der Informatik 7
base line ascent
descent leading
width width
• Fontomania- tausende verschiedene Zeichensätze- Font-Beschreibungsalgorithmen siehe Kapitel 3- Times-Roman- Helvetica- Palatino- - ,.- (Zapf Dingbats)
• nicht-lateinische Schriften- andere Fonts- Hebräisch, Arabisch, Chinesisch, …- Schreibrichtung rechts -> links, vertikal
Konrad Froitzheim: Grundlagen der Informatik 8
6.2.1.1 Zeichendarstellung• Bitmap-Fonts
- werden entworfen, gezeichnet, gespeichert und fertig verteilt …- in verschiedenen Größen (z.B. 6 Punkte bis 127 Punkte)
Q Q Q Q Q Q4 14 24 72 96 127
• und FormenChicago, Monaco, New York, Geneva
Konrad Froitzheim: Grundlagen der Informatik 9
• Zeichensätze als Raster und Outline im System
Konrad Froitzheim: Grundlagen der Informatik 10
• Werden bei Bedarf in den Speicher geladen.• Größe 24 Punkt (Vergrößerung *8)
Q
• Auflösungsabhängig, schlecht skalierbar• Bitmap-Fonts werden bei zunehmender Zeichengröße Speicherfresser• Bold, Italic, … müssen separat gespeichert werden
Konrad Froitzheim: Grundlagen der Informatik 11
6.2.1.2 Kurven zur Beschreibung von Fonts• Die Umrisse der Zeichen werden als Kurvenzug angegeben• Zur Darstellung wird dieser Kurvenzug ausgefüllt
- unabhängig vom Koordinatensystem- affine Invarianz- möglichst einfach berechenbar
-> Stützpunkte und Interpolation
Konrad Froitzheim: Grundlagen der Informatik 12
• Ähnlich Interpolation und Approximation mit Splines- stückweise linear: fi(x) = ai x + bi
An den Stützpunkten stetig: fi(x) = fi+1(x)
- stückweise kubisch: fi(x) = ai x3 + bi x2 + ci x + di
An den Stützpunkten:a) stetig: fi(xk) = sk, fi(xk+1) = sk+1 => 2n Gleichungenb) 'glatt': f'i(x) = f'i+1(x) => 2(n-1) Gleichungen
=> Gleichungssystem 4n Unbekannte, 2n + 2n - 2 Gleichungenje nach Randbedingungen versch. Approximationseigenschaften
Konrad Froitzheim: Grundlagen der Informatik 13
b 01
b11
b 02
• Bézier-Kurven- Beispiel 2. Ordnung
gegeben b0, b1, b2
(t) = (1 - t) b0 + t b1
(t) = (1 - t) b1 + t b2
(t) = (1 - t) (t) + t (t)
Konrad Froitzheim: Grundlagen der Informatik 14
0 t 1
b0
b1
b2
b11
b02b0
1
b 01 b1
1
b ir (t) =(1−t)i
r−1(t)+ti+1r−1(t)
- Algorithmus von de Casteljaugegeben b0, b1, …, bn
r = 1, …, n; i = 0, …, n-r
- Explizite Darstellung mit Bernsteinpolynomen- Bézier-Kurven 3. Ordnung
Kontrollpolygon durch vier Punkte:Anfangspunkt (b0) und Endpunkt (b3)2 Kontrollpunkte (b1, b2)
Konrad Froitzheim: Grundlagen der Informatik 15
Bin =
ni⎛⎝⎜ ⎞⎠⎟ti (1−t)n−i b0
n = jBjn (t)
j=0
n
∑
• zusammengesetzte Kurve- mehrere Bézier-Splines zur Darstellung einer Kurve- Interpolationseigenschaft- Kontrollpunkte so legen, daß die Kurve glatt wird
Konrad Froitzheim: Grundlagen der Informatik 16
• PostScript Type-1 Fonts- Fontparameter- Zeichenparameter- Bézier Kurven zur Beschreibung des Umrisses- 'Hints' zur Detailverbesserung
• TrueType oder andere Outline-Fonts benutzen ähnliche Kurven6.2.2 Geometrische Objekte => siehe Kap. 5
Konrad Froitzheim: Grundlagen der Informatik 17
6.2.3 3-D Grafik• Modellieren
- Topologie und Geometrie- geometrische Objekte erzeugen und anordnen- Attribute festlegen (Glanz, Farbe, Durchsichtigkeit)- Texturen bestimmen- Lichtquellen anordnen
• Rendering- Kameratyp und -position- Renderer wählen
- Abbild berechnen• Interagieren
- Zeigemittel (Spacemouse, Handschuh, …)- Auswählen (picking)- Navigieren
Konrad Froitzheim: Grundlagen der Informatik 18
• Präsentation meist zweidimensional- Leinwand, Bildschirm, Papier- Projektion von 3-D Szenen auf 2-D Ebene- Tiefenhinweise gehen teilweise verloren
• Ansicht und Aufsicht
• Projektion und Drahtmodell
Konrad Froitzheim: Grundlagen der Informatik 19
• Drahtmodell (wire frame)- (fast) ohne Tiefeneindruck
Konrad Froitzheim: Grundlagen der Informatik 20
• Depth-Cueing- Linien 'vorne' hervorheben
- Animation: Drehen um eine Achse- Entfernen verdeckter Linien
• Verbesserung der Darstellung - Füllen der Flächen
Konrad Froitzheim: Grundlagen der Informatik 21
- Entfernen verdeckter FlächenAlgorithmus von E. CatmullTiefenpufferalgorithmus (z-buffer) Pixel = (R, G, B, Z)
IF newpix.z<pixmap[x,y].z THEN pixmap[x,y]:=
newpix;
- Schattierungen simulieren Lichteinfall- realistische Farben, Detail
Konrad Froitzheim: Grundlagen der Informatik 22
999999999999999999999999999999999999999999999999999999999999999995999999999999999999999955555559999999999999999955555555555999999999999955555555555555599999999955555555555555555559999999999999999999999999999999999999999999999999999999
999999999999999999999999999999999999999999999999999999999999999995929999999999999999999955553359999999999999999955555444555999999999999955555555555555599999999955555555555555555559999999999999777777999999999999999999988888889999999999
• TriGrid: Gruppe von Dreieck-Facetten- vereinfachte Oberflächenbeschreibung
• Splines- stückweise definierte Kurve
- Anpassung an vorgegebene Kurve- viele Spline-Typen mit besonderen Eigenschaften- Bézier, kubische Splines, deBoor- NURB: nonuniform rational B-spline
Konrad Froitzheim: Grundlagen der Informatik 23
0 1 2 3
4 56
7
89
1011
• Spline-Patches- stückweise Beschreibung von Oberflächen (patches)- Flächen als 3-dimensionales Analogon von Splines- Facetten sind Vierecke mit Splines als Kanten- NURB-patches
Konrad Froitzheim: Grundlagen der Informatik 24
• Kamera: Betrachtungsort, Blickwinkel, Öffnungswinkel
• Perspektivische Projektion- Fluchtpunkt(e)
- Maße nicht korrekt ablesbar
Konrad Froitzheim: Grundlagen der Informatik 25
AHFP
AHFPFP
• Parallelprojektion- orthographische Projektion: Grundriß, Aufriß- schiefe (axonometrische) Projektion- isometrische Projektion
• Beleuchtung- Umgebungslicht (ambient), Punkt-Licht- diffuse Reflektion- Objekte werden von Lichtquelle angestrahlt- Licht wird teilweise reflektiert, teilweise durchgelassen
- spiegelnde Reflektion- imitierendes Modell von Bui-Tung Phong, 1975
Konrad Froitzheim: Grundlagen der Informatik 26
• Flat Shading: ein Farbwert pro Oberflächen-Facette• Smooth Shading
- Farbverlauf auf den Facetten- Gouraud-Shading: Interpolation zwischen Farbwerten an Eckpunkten
- Phong-Shading: individuelle Intensitätsberechnung für Flächenpixel
Konrad Froitzheim: Grundlagen der Informatik 27
A
B C
D
EFP
A
B C
D
EFP
• Ray-Tracing- Reflektionen von Reflektionen, mehrfache Spiegelung- Strahlpfad berechnen- vorwärts und rückwärts (vom Auge zum Licht)
- rechenintensiv- Berechnung blickpunktabhängig
Konrad Froitzheim: Grundlagen der Informatik 28
• Radiosity- sichtunabhängige Berechnung- Einteilung der Oberflächen in patches- Emitter und Reflektor- Beleuchtungseinfluß auf alle anderen patches berechnen- Formeln aus der Wärmelehre- Abbrechen der Berechnung unter einem Grenzwert
• Textures- Oberflächenstruktur (Holz: Maserung)- 'Bekleben' der Oberflächen mit Muster- Bilder und Filme als Texturen
• VRML: Virtual Reality Markup Language- textuelle Beschreibung von 3D-Objekten und Szenen- primitive Objekte (cylinder, …)- Transformation, Gruppierung, Oberflächeneigenschaften- Texturen (MPEG-Filme)- Objekte und Hyperlinks- Sensoren erzeugen Events für andere Objekte
Konrad Froitzheim: Grundlagen der Informatik 29
6.3 Standbilder• Kontinuerliche Verläufe
- Film hat höhere Auflösung als Auge- Abzüge, Bücher- Guter Druck typisch 2500 dpi
• Farbe- Lichtquelle (, Reflektion), Auge/Kamera/…:
- Reflektiertes Licht = Licht - absorbiertes Licht = Oberflächenfarbe
Konrad Froitzheim: Grundlagen der Informatik 30
• Spektrum und Empfindlichkeit des menschliche Sehapparates- 120 M Stäbchenzellen für Helligkeit in der Peripherie- 7 M Zapfenzellen für Farbe (570, 535, 455 nm)
• Mensch sieht bis zu 350.000 Farbnuancen
• Abschattung
Konrad Froitzheim: Grundlagen der Informatik 31
570 nm 535 nm 400 nm
f
470 nm
• Farbmischen: additiv subtraktiv
• Farbmodelle RGB CMY
Konrad Froitzheim: Grundlagen der Informatik 32
Weiß
Magenta
Cyan
Schwarz
Gelb
Weiß
Grün
Rot
Blau
SchwarzCMY
⎛
⎝⎜⎜
⎞
⎠⎟⎟=
WeißWeißWeiß
⎛
⎝⎜⎜
⎞
⎠⎟⎟−
RGB
⎛
⎝⎜⎜⎞
⎠⎟⎟
- HSV (Ton, Sättigung, Helligkeit)
Schwarz
Rot
Grün
Weiß
Magenta
Cyan
Gelb
BlauS
V
H
Konrad Froitzheim: Grundlagen der Informatik 33
• Digitalisierung- Horizontale und vertikale Diskretisierung (Zerlegen in Pixel)- Diskretisierungsschritt entspricht Auflösung: 72 bis 6000 dpi- Bild wird angeleuchtet und Licht auf Detektor reflektiert- Quantisierung: 8 oder 12 Bit für Graustufen
8, 16 oder 24 Bit für Farbeeventuell mit Farbpalette
• CCD-Zeile
SiO2SubstratP+InselnElement
Konrad Froitzheim: Grundlagen der Informatik 34
• Digitale Kameras benutzen CCD-Matrix
- ca 3000-4000 ppi- Unterschiede zwischen Zellen- nur 50 - 80% der Chipfläche ist mit aktiven Elementen bedeckt
• Bildkodierung- RGB wird meist bei Computermonitoren verwendet- CMYK (Cyan, Magenta, Yellow, Schwarz) besonders für Druck- HSV für Fernsehen
Konrad Froitzheim: Grundlagen der Informatik 35
horiz.Takt
vert.Takt
• Aufbereitung nach der Digitalisierung- Kalibrierung der Farbwerte - Helligkeitsregelung, Kontrastverstärkung und 'Gamma' pro Farbkanal- Vorsicht: Color-Matching verwendet auch
Helligkeit Kontrast Gamma• Datenmenge kann groß werden
- Auflösung für Weiterverarbeitung wichtig (Druckgewerbe)- (300 * 4 [inch]) * (300 * 6 [inch]) * 3 Bytes = 6.480.000 Bytes
=> Kompression
Konrad Froitzheim: Grundlagen der Informatik 36
Wert Wert Wert
Int. Int. Int.
6.4 Video• S/W Fernsehen (eigentlich Graustufen)• Auflösung wesentlich geringer als bei Standbildern
Zeilen Punkte/Zeile Bilder/sCCIR 601 486 720 30 59,94 Hz
586 720 25 50 HzCIF 288 352 25 Common Intermediate FormatQCIF 144 176 25 Quarter CIFSIF 240 352 30 Standard Intermediate Format
• Fernsehnormen- Halbbilder (Felder, gerade/ungerade Zeilen) mit doppelter Frequenz- Farbfernsehen: PAL, SECAM: 50 Hz
NTSC: 59,94 Hz (in Europa 50 Hz)- Bildwiederholrate = Übertragungsrate
• HDTV: High Definition TV- 1366-1920 * 720-1080; (Bildwiederholrate 50 oder 59,94 Hz)- Bildwiederholrate ≠ Übertragungsrate (24 Hz, 36 Hz, 72 Hz)- MPEG-2/4 zur Übertragung
Konrad Froitzheim: Grundlagen der Informatik 37
• Kameras produzieren RGB- drei Übertragungskanäle- Synchronisation?=> Mischsignal
• Composite- NTSC (National Television Systems Committee, …)- PAL (Phase Alternating Line)- SECAM (Sequentiel Couleur avec Memoire)- Grundidee: SW-Fernsehen + irgendwas = Farbe- Farbraum mit Luminance und Chrominanz- Luminance := SW-Signal
• Farbraum HSV- Chrominanzsignal mit niedrigerer Bandbreite - auf Subcarrier (3,58 MHz)
Konrad Froitzheim: Grundlagen der Informatik 38
f
Bild-Träger
Farb-Träger
Ton-Träger
-1 0 +2 +3 +4 +5+1
• Farbauflösung des Auges schlechter -> Unterabtastungz.B.: 4:1:1 (YUV, PAL), 15:5:2 (YIQ, NTSC)
• Koeffizienten entsprechen Farbempfindlichkeit des Auges• NTSC: YIQ (In-phase and Quadrature, I: 1,3 MHz, Q: 0,45 MHz)
Y = 0,30 R + 0,59 G + 0,11 B;I = 0,60 R - 0,27 G - 0,32 B;Q = 0,21 R - 0,52 G + 0,31 B;
• PAL: YUV (U, V: 1,3 Mhz)Y = 0,30 R + 0,59 G + 0,11 B;U = (B-Y) * 0,493 = -0,15 R - 0,29 G + 0,44 B;V = (R-Y) * 0,877 = 0,61 R - 0,52 G - 0,10 B;
• VHS noch stärker analog komprimiert
Konrad Froitzheim: Grundlagen der Informatik 39
f x( ) 2πxsin 4πxsin+=
6.5 Audio6.5.1 Audio-Eigenschaften• Frequenz und Amplitude
- Amplitude -> Lautstärke (gemessen in dB)- Frequenz (1m/Wellenlänge) -> Tonhöhe
• Fourier: Jede Schwingung kann als Summe von Sinusschwingungen dargestellt werden:
Konrad Froitzheim: Grundlagen der Informatik 40
Zeit
f0 f1
Frequenz
• Typische Frequenzbereiche
- Telefon 300Hz - 3.400 Hz- Heimstereo 20 Hz - 20.000 Hz- UKW (FM) 20 Hz - 15.000 Hz
• Räumliches Hören- Lautstärke- Laufzeitunterschiede zu den Ohren- Spektrale Analyse nach Ohrposition- Filterfunktionen durch Außenohr- Echos
Konrad Froitzheim: Grundlagen der Informatik 41
10 50 200 500 1k 2k 5k 10kHz
20k
OrgelKlavier
TrompeteSprache
• Menschliches Hörvermögen- 20 - 20.000 Hz- hohes zeitliches Auflösungsvermögen- logarithmisch bezüglich Amplitude
• Lautstärkeempfinden nach Fletcher und Munson
Konrad Froitzheim: Grundlagen der Informatik 42
0
20
40
60
80
100
120
100 1.000 10.00020
604020
-50 0 0 150 msecs
• Abschattung- Zeit
- Frequenz
- Phase- zwei gleiche, phasenversetzte Schwingungen können sich auslöschen:
Konrad Froitzheim: Grundlagen der Informatik 43
0
20
40
60
80
100 1.000 10.00020
y xsin x π+( )sin+=
6.5.2 Digitale Repräsentationen (PCM, CD-Audio, DAT, …)• Digitalisierung am Beispiel Telefon
• Allgemein- zeitliche Diskretisierung (Abtasten, Sampling)
Einteilung der Zeitachse in einzelne Stücke- Wert-Diskretisierung (Quantisierung)
digitalen Näherungswert findenReelle Zahl vs. Real/Integer
Konrad Froitzheim: Grundlagen der Informatik 44
Abtasten Quantisieren Codieren
- 128
+ 128
00000000
00010000
00100000
00100000
00001000
11110000
11110000
00000000
11100000
0
Mikrofon
Tiefpaßfilter
Sprache
• Abtasttheorem- Anzahl Abtastwerte pro Zeiteinheit?
- Abtastfrequenz > 2 * (höchste Frequenz) - [Whittaker 1915/1929, Borel 1897]
- Aliasing bei zu niedrigen Abtastraten
Konrad Froitzheim: Grundlagen der Informatik 45
t1 t2 t1 t2 t3 t4
• Tiefpaß-Filter gegen Aliasing (siehe DSP-Kapitel)• Sample-and-Hold
• Quantisierung (ADC)- Wandlung des analogen Wertes in diskreten (digitalen) Wert
- Quantisierungsfehler- 6 dB pro Bit => 96 dB bei 16 bit (CD-A)
Konrad Froitzheim: Grundlagen der Informatik 46
A E
7:3 Encoder
1V 2V 3V 4V 5V 6V 7V
± E x p M a n t
• Diskretisierung und Quantisierung ergeben Treppenfunktion
• Codierung- als Integerzahl (CD: 16 bit)- als Pseudo-Real (A-law, µ-law: 8 bit) - als Differenzen
• typische Verfahren bit samples/sec Kanäle DatenstromCD-Audio 16 44.100 2 ~1.4 Mbit/sA-law (ISDN) 13 -> 8 8.000 1 64 kbit/sADPCM (Telefon) 13 -> 2 8.000 1 16 kbit/s
Konrad Froitzheim: Grundlagen der Informatik 47
U
…001
…010
…011
…100
…101
…000t k t k+1 t k+2 t k+3 t k+4 t k+5 t k+6 t k+7 t k+7 t k+7 t k+8
U(t)
Û(t)
6.5.3 Raumton• Reflexionen von Wänden, Decke, Boden, Gegenständen
• Wahrnehmung der - Signalstärke- Richtung der Quelle- Dämpfung durch Kopf in höheren Frequenzen- Laufzeitunterschiede (650 µsec hörbar)
• Simulation der Reflexionen durch Laufzeitunterschiede
Konrad Froitzheim: Grundlagen der Informatik 48
• Kopfhörer- kontrollierte Umgebung- Bewegungssensor: Kopfdrehung, Ortsveränderung- keine Richtungsortung
• Stereo: zwei Kanäle, links und rechts
• Simulierter Raumklang- Reflektionen durch Verzögerung simulieren (-> Hall)
Konrad Froitzheim: Grundlagen der Informatik 49
• Aufwendige Lautsprecheranordnung- Surround Sound (Dolby, DTS)- Raumaufnahme oder Simulation- Richtungsortung möglich
Konrad Froitzheim: Grundlagen der Informatik 50
7. Theoretische Informatik7.1 Automaten und formale Sprachen• Formale Sprache
- Alphabet - * Menge aller Worte über - Formale Sprache ist Teilmenge von *
• Beispiel EXPR: korrekt geklammerte arithmetische Ausdrücke- = {(,),+,-,*,/,a} ; a kann Variable oder Konstante sein- (a-a)*a+a/(a+a)-a EXPR- ((((a+(a))))) EXPR- ((a+)-a( EXPR- wann ist ein Ausdruck w korrekt geklammert, also w EXPR?
• Grammatik ist 4-Tupel G=(V,, P, S)- V endliche Menge von Variablen- endliche Menge von Symbolen (Terminalsymbole)- V= Ø- P Produktionen (Regeln)- S V ist die Startvariable
Konrad Froitzheim: Grundlagen der Informatik 51
• Produktionen- u, v (V)*- Relation u G v- u = xyz, v = xy'z, ; x,z (V)* - y y' P
• Sprache L(G) = {w * | S *G w}
• Ableitung von wn - Folge (w0, w1, w2, …, wn)- w0 = S, wn *- w0 w1 w2 … wn
- nichtdeterministisch• Ausdruck korrekt geklammert?
- Ableitung existiert für Grammatik G- G = ({E,T,F}, {(,),a,+,*}, P, E)- P = { E T, E E+T,
T F, T T*F,F a, F (E) }
- a*a*(a+a)+a L(G) ?• Grammatik-TypenKonrad Froitzheim: Grundlagen der Informatik 52
alle Sprachen
entscheidbare Sprachen
Typ 1kontextsensitive Sprachen
Typ 2kontextfreie Sprachen
Typ 3reguläre Sprachen
Typ 0rekursiv aufzählbare Sprachen
+ a*
E
T
T
F
F
T
ET
T
E
F F
F
E
a a a a )* +(
T
F
+
*
*+
)(
- Definition: jede Grammatik vom Typ 0- Typ 1 kontextsensitiv:
w1 w2 P gilt |w1| ≤ |w2|- Typ 2 kontexfrei: w1 w2 P gilt w1 V- Typ 3 regulär: Typ 2 und w2 V
(w2 Terminalsymbol(+Variable))• Chomsky-Hierarchie
- Sprache L vom Typ x Grammatik G vom Typ x mit L(G) = L
- kontextsensitiv: uAv uxv- kontextfrei: auch ohne 'passenden' Kontext ersetzen- Syntaxanalyse für Programmiersprachen- Spezialklassen zwischen Typ 2 und 3: LL(k) und LR(k)
• Entscheidbarkeit- Algorithmus, der in endlicher Zeit feststellt, ob w L(G)- Typ 1,2,3 entscheidbar- Es gibt Typ 0 Sprachen, die nicht entscheidbar sind
Konrad Froitzheim: Grundlagen der Informatik 53
• Automaten - akzeptieren ein Wort- Menge aller akzeptierten Wörter: Sprache
• Deterministischer endlicher Automat (DFA)- M = (Z, , ,z0,E)- Z endliche Menge der Zustände- endliches Eingabealphabet, Z = - Überführungsfunktion : Z x Z- z0 Z ist Startzustand, E Z Endzustände
• Darstellung typisch als Graph- gerichtet, beschriftet- Knoten sind Zustände- Pfeil auf Eingangsknoten- akzeptierende Endknoten als Doppelkreis- Kanten von z1 nach z2 mit a beschriftet: (z0,a) = z1
• Durch DFA erkennbare Sprachen sind regulär (Typ 3) • Nichtdeterministischer endlicher Automat (NFA)
- Zustandsübergang in verschiedene Folgezustände bei gleicher Eingabe
Konrad Froitzheim: Grundlagen der Informatik 54
z0 z1 z2+|- 1-9
1-9
z3
0
0
zi
azj
zk
a
• Implementierung von Automaten- Tabelle
- Initialisierung der Tabelle
void tabinit(int tab[4][128]) { int i,j = 0;
for (i=0; i< 4; i++)for (j=0; j< 128; j++) tab [i][j]= -1;
for (i='0'; i<='9'; i++) tab[0][i] = 2;tab[0]['+']= 1; tab[0]['-']= 1; tab[0]['0'] = 3;for (i='1'; i<='9'; i++) tab[1][i] = 2;for (i='0'; i<='9'; i++) tab[2][i] = 2;}
Konrad Froitzheim: Grundlagen der Informatik 55
z '0' '1' '2' '3' '4' '5' '6' '7' '8' '9' '+' '-' …0 3 2 2 2 2 2 2 2 2 2 1 1 -11 -1 2 2 2 2 2 2 2 2 2 -1 -1 -12 2 2 2 2 2 2 2 2 2 2 -1 -1 -13 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
z0 z1 z2+|- 1-9
1-9
z3
0
0
#include <stdio.h>
/* function tabinit einsetzen */
int istEndzustand(int zustand){return zustand ==2 || zustand ==3;}
int main(void){ int zeichen, zustand = 0;
int tabelle[4][128];
tabinit (tabelle);
while (zeichen=getchar()!='\n')if ((zustand = tabelle[zustand][zeichen])<0)break;
if (istEndzustand(zustand)) printf("akzeptiert\n");else printf("nicht akzeptiert\n");
return 0
Konrad Froitzheim: Grundlagen der Informatik 56
}
Konrad Froitzheim: Grundlagen der Informatik 57
• EBNF: erweiterte Backus-Naur-Form (ISO 14977)- kompakte Notation für kontextfrei Grammatiken- Regeln mit derselben linken Seite zusammenfassen
A 1
A 2
…A n
wird zu: A ::= 1 | 2 | … | n
- A ::= [] steht für A ::=
b kann einmal zwischen und eingefügt werden- A ::= {} steht für
A ::= | B B ::= | B
kann beliebig oft eingefügt werden- manchmal Minimum und Maximum durch Index
A ::= {}4
Konrad Froitzheim: Grundlagen der Informatik 58
P = { E T, E E+T, T F, T T*F,F a,
F (E) }
P = { E T | E+T, T F | T*F,F a | (E) }
• Beispiel einfache Programmiersprache [Wikipedia]
program ::= 'PROGRAM' , wsp , ident , wsp,
'BEGIN' , wsp, {assignment,";",wsp} , 'END.' ident ::= alphachar , { alphachar | digit } num ::= [ "-" ] , digit , { digit } string ::= '"' , { anychar } , '"' assignment ::= ident , ":=" , ( num|ident|string ) alphachar ::= "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z" ;digit ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"wsp ::= ? ASCII Character 32 ? anychar ::= ? all visible characters minus " ?
Konrad Froitzheim: Grundlagen der Informatik 59
PROGRAM DEMO1 BEGIN A0:=3; B:=45; C:=A; D123:=B34A; HANS:=WURST; TEXTZEILE:="Moin Moin";END.
• Kontextfreie Sprachen (Typ 2)- werden nicht durch endlichen Automaten akzeptiert- Beispiel Klammerausrücke: Zählen der Klammern- Automat mit mehr 'Gedächtnis' als nur Zustand nötig
• Kellerautomat - M = (Z, , G, ,z0,#) - Z endliche Menge der Zustände- Eingabealphabet- G Kelleralphabet- Überführungsfunktion : Z x ( {e }) x G Pe (Z x G*)
(Pe ist Menge aller endlichen Teilmengen)- z0 Z ist Startzustand- # G das unterste Kellerzeichen
• PDA - Push Down Automaton- Keller ist Zusatzgedächtnis- nichtdeterministisch- akzeptiert genau die kontextfreien Sprachen- können zum Beispiel korrekt geklammerte Ausdrücke erkennen
Konrad Froitzheim: Grundlagen der Informatik 60
[[{(#
( a { b c [ d [ x ] ] y } )
zi
7.2 Berechenbarkeit• Intutive Berechenbarkeit
- formale Definition von 'intuitiv berechenbar' schwer
Eine Funktion f heisst berechenbar, falls ein Algorithmus (Programm) existiert, der (das) ausgehend von der Eingabe (x1, …, xn) in endlich vielen Schritte f(x1, …, xn) berechnet.
• Beispielef(n) = 2*nfπ(n) = 1 falls n Anfang der Dezimalbruchentwicklung von π ist
sonst 0• Gibt es nicht berechenbare Funktionen?
- ist für jede reelle Zahl r fr(n) berechenbar? - Nein: überabzählbar viele r (Cantorsches Diagonalschema …)- nur abzählbar viele Algorithmen- oder das Cantorsche Abzählschema modifizieren
Konrad Froitzheim: Grundlagen der Informatik 61
• Turingmaschine [Alan Turing, 1936]- Automat- unbegrenztes Band mit Zeichen eines Arbeitsalphabets- Schreib/Lesekopf- Bandbewegung ein Feld nach rechts oder links- Zustand, gelesenes Zeichen und Regel- Zustandsübergang, Zeichen schreiben, Band bewegen
Konrad Froitzheim: Grundlagen der Informatik 62
1 2 3##N
#R
#R
# #
#R1#N32#R21
*#
2
Alan Turing1912-1954
• Formale Beschreibung- Z endliche Menge von Zuständen- G Arbeitsalphabet- G Eingabealphabet- Überführungsfunktion
: Z x G Z x Gx {L,R,N} (determinsitische TM): Z x G P(Z x Gx {L,R,N}) (nicht-determinsitische TM)
- zo Startzustand- # G - : Blank- E ZMenge der
Endzustände• Beispiel: Binäre Addition von 1• Turing-Vollständigkeit
- ein Computer, der alle mit Turing-Maschinen berechenbaren Funktionen berechnen kann (Bsp: zellulärer Automat Rule 110)
Konrad Froitzheim: Grundlagen der Informatik 63
1 2##L
11R
00R
300L
11L10L 01L
#1L
4##R
• Turingmaschinen akzeptierten Sprachen- T(M) = {x *| z0x * z; , G*; z E}- allgemeine TM akzeptieren Typ 0 Sprachen
• Linear beschränkte Turing-Maschine: endliches Band - akzeptieren kontextsensitive Sprachen (Typ 1)
• Turing-Berechenbarkeit- f : N -> N Turing-berechenbar falls TM- n1, …, nk, m N gilt- f(n1, …, nk) = m genau dann wenn z0n1bn2b…nkb * #…#zemb###
• Churchsche These [Alonszo Church, 1936]
Die Klasse der Turing-berechenbaren Funktionen ist genau die Klasse der intuitiv berechenbaren Funktionen.
- eine These, von deren Richtigkeit fast alle Informatiker überzeugt sind- wahrscheinlich, hilfreich, 'funktioniert' gut
Konrad Froitzheim: Grundlagen der Informatik 64
• Registermaschinen- RM oder auch RAM- unendlich viele Registerzellen (~Speicher)- Akkumulator und Einadressbefehle- Load, Store, Arithmetik, Sprünge- Adressierung: Konstante, direkt, indirekt- ähnlich MIMA- intuitiv: kann alle intuitiv
berechenbaren Funktionen berechnen- kann Turingmaschinen simulieren
Konrad Froitzheim: Grundlagen der Informatik 65
ADD, SUB,LDV, STV, LDI, STI,LDC,JMP, JMN,HALT
Speicher
ACC
ALU
• While Berechenbarkeit- kann Touringmaschine simulieren und umgekehrtProg::= id := ausdruck
| IF bed THEN Prog ELSE Prog| WHILE bed DO Prog DONE| Prog; Prog
bed::= ausdruck <= ausdruckausdruck::= id| 0 | succ(ausdruck)
• LOOP Berechenbarkeit schwächer
Konrad Froitzheim: Grundlagen der Informatik 66
• Primitiv rekursive Funktionen - konstante Funktionen sind primitiv rekursiv- Identität und Nachfolgerfunktion primitiv rekursiv- f(0, …) = g(…)- f(n+1, …) = h(f(n, …),…)- äquivalent zu LOOP-Berechenbarkeit
• Arithmetik als primitiv rerkursive Funktionen- add(0,x) = x /* Identität */- add(n+1,x) = succ(add(n,x))- mult(0,x) = 0- mult(n+1,x) = add(mult(n,x),x)
• µ-Rekursion- µf(z,x1,…,xk) = z , falls f(z,x1,…,xk) = true- µf(z,x1,…,xk) = µf(z+1,x1,…,xk) , sonst- terminiert evtl. nicht
Die Klasse der µ-rekuriven Funktionen stimmt genau mit der Klasse der While-, RAM- und Touring-berechenbaren Funktionen überein.
Konrad Froitzheim: Grundlagen der Informatik 67
• Ackermann-Funktion- berechenbar, nicht primitiv rekursiv- ack(0,n) = n+1- ack(m,0) = a(m-1,1) ;m>0- ack(m,n) = ack(m-1,a(m,n-1)); m,n>0
• Halteproblem- existiert ein Programm, das für jedes
Paar von TM und Eingabe berechnet, ob die TM auf der Eingabe anhält?- Gegenbeispiel von Turing, 1936 - semi-entscheidbar: TM hält entweder oder läuft endlos
• Gödelscher Unvollständigkeitssatz
Jedes Beweissystem für die Menge der wahren arithmetischen Formeln ist notwendigerweise unvollständig
- es blieben immer wahre arithmetische Formeln, die nicht beweisbar sind- in jedem logischen System existieren Aussagen, die weder bewiesen noch
widerlegt werden können
Konrad Froitzheim: Grundlagen der Informatik 68
m/n 0 1 2 3 4
0 1 2 3 4 51 2 3 4 5 62 3 5 7 9 113 5 13 29 61 125
4 13
65533 265536-3 a(3,
(4,2))a(3,a(4,3)
)
7.3 Komplexitätstheorie• Berechenbar ist nicht unbedingt 'praktisch' lösbar
- Ressourcen-Verbrauch: Rechenzeit, Speicher- stark wachsende Probleme
• Problem der Klasse P- in polynominaler Zeit lösbar- Suchen in Listen mit n Elementen O(n)- Sortieren O(n log n)- Sieb des Erathosthenes O(n2)
• SAT-Problem (Satisfiability)- gegeben boolsche Gleichung g- SAT findet eine Variablenbesetzung x, so daß g(x) = true- O(2n)
• Klasse NP- nichtdeterministisch polynomiale Zeit- polynomial entscheidbar, ob Kandidat Lösung ist- exponentielle Komplexität- jedes Problem in NP lässt sich auf SAT-Problem polynomial zurückführen
Konrad Froitzheim: Grundlagen der Informatik 69
• NP-vollständig (NPComplete)- p ist NPC, falls SAT auf p zurückführbar ist- alle 'gleich schwer'- Tausende NPC-Problem bekannt- P=NP???
• Cliquen-Problem- Clique = Teilmenge von Knoten in Graphen paarweise verbunden- existiert k-Clique in einem Graphen?
• Hamilton-Problem- ein Weg der jeden Knoten genau einmal berührt?- Bsp: Springerproblem im Schach
• TSP - Travelling Salesman Problem- kürzester Hamilton-Kreis?
• Rucksack-Problem• Anwendungen
- Kryptographie, Optimierung- Stundenplanproblem, Verdrahtung in Chips und Platinen
Konrad Froitzheim: Grundlagen der Informatik 70
PNP
NPC
8. Anwendungen8.1 Datenbanken• Datenbanksystem (DBS)
- Datenbank (DB)- Datenbankmanagementsystem (DBMS)
• Datenbank- Datenbestände- Beschreibung- im Jargon: Hardware, Software und Daten
• Datenbankmanagementsystem- Softwaresystem- Verwaltung und Bereitstellung der Daten
• Datenmodell- Diskursbereich- Abbildung Diskursbereich auf Datenbank- Strukturen, Operationen, Integritätsbedingungen
Konrad Froitzheim: Grundlagen der Informatik 71
• Datenbanksprache- Definitionssprache (DDL)- Manipulation und Abfrage (DML)
• Diskursbereich- anwendungsrelevanter Ausschnitt der Realität - Handelsunternehmen: Artikel, Lager, Kunden, Lieferanten, Konten …- Universität: Studenten, Assistenten, Professoren, Lehrveranstaltungen, …
• Entity-Relationsship-Model (ERM)- Ableitung des Diskursbereiches- Gegebenheiten- Beziehungen
• Entwurfsziele ERM- schematisch, zeitunabhängiges Modell- Unterstützung der frühen Entwurfsphasen- Graphische Veranschaulichung von Zusammenhängen- Kommunikation: Anwender, Feldingenieur, Entwickler- Abbildbarkeit in Datenmodelle (insbesondere in das Relationenmodell)
Konrad Froitzheim: Grundlagen der Informatik 72
• Elemente des ERM und graphische Darstellung• Entity
- diskrete Abstraktion - Gegenstandes der Anschauung oder des Denkens
• Entity-Typ- Verallgemeinerung (Klassifikation) gleichartiger Entities- graphisch: Rechteck mit Namen- im Beispiel: Student, Assistant, Professor, Lehrveranstaltung, Prüfung
• Relationships- zwischen je einer Entity von mehreren Entity-Typen- nicht notwendig verschiedene Entity Typen
• Relationship-Typ- Verallgemeinerung (Klassifikation) gleichartiger/ähnlicher Relationen- graphisch: Raute mit Namen- ungerichtete Kanten zu Entity-Typen- im Beispiel: lesen, hören, prüfen, voraussetzen, arbeiten_für
Konrad Froitzheim: Grundlagen der Informatik 73
Entity-Typ
Relationship-Typ
• Attribut- Merkmal zur Beschreibung- Entity, Relationships- Name, Merkmalswertemenge (Domäne)- graphisch: Kreis/Ellipse mit Attributnamen- ungerichtete Kante zum Entity/Relationship-Typ- im Beispiel: Namen, Vorname, Adresse, Fachgebiet, Note, …
• Schlüssel- Teilmenge von Attributen- identifizieren eine Ausprägung von Entity/Relationshiptypen- minimal bzgl. Identifikation- graphisch: Kreis/Ellipse mit unterstrichenem Attributnamen- ungerichtete Kante zum Entity/Relationship-Typ- im Beispiel: Personalnummer, Matrikelnummer, …
• Primärschlüssel- pragmatisch ausgewählter Schlüssel
Konrad Froitzheim: Grundlagen der Informatik 74
Attributname
Attributname
• Art des Relationship-Typs R zwischen Entity-Typen E1 und E21:1 In R kann eine Entity aus E2 nur mit einer Entity aus E1 in Bez. stehen
In R kann eine Entity aus E1 nur mit einer Entity aus E2 in Bez. stehen1:n In R kann eine Entity aus E2 nur mit einer Entity aus E1 in Bez. stehenm:n mehrere Entities aus E1 können zu mehreren in E2 Bez. haben
• Zuordnungscharakteristik- Erweiterung auf mehrstellige Relationship-Typen möglich- grafisch: Beschriftung der Kanten- Beispiel: lesen (1:n), hören (m:n), prüfen (m:n:1)
Konrad Froitzheim: Grundlagen der Informatik 75
Relationship-Typx y
• ERM-Diagramm des Exkursbereichs Universität
Konrad Froitzheim: Grundlagen der Informatik 76
Student
Professor
Vorlesung
Assistent
prüfen
voraussetzen
arbeitenfür
lesen
hören
Matrnr
Name
Sem
Persnr
Name
Gebiet
Vorlnr
SWS
Titel
Persnr
Note
Name
Raum
Rang
N M
11
1
N
N
N
NM
M
• Relationales Datenmodell [Codd, 1970]- Relationenalgebra- Tabellen: Spalten (Attribute), Zeilen (Entities)- Integritätsbedingungen
• Relation R- Wertemengen Vi , Attribute Ai
- Teilmenge des kartesischen Produktes der Vj
- R = R(A1, A2, …, An) | V1 V2 …Vn
- Tupel: r = (v1, v2,…,vn) aus R- Relation: Tabelle
• Im Beispiel- Student(Matne, Name, Semester)- Professor (Persnr, Name, Grad, Raum)- Vorlesung (Vorlnr, Titel, SWS, Leser)
• Integrität- Schlüssel-, Dömänen-, Entity-, referentielle Integrität
Konrad Froitzheim: Grundlagen der Informatik 77
• Operationen auf Relationen• Vereinigung RS• Differenz R-S
- alle Tupel aus R, die nicht in S sind • Durchschnitt RS• Projektion πL
- alle Spalten zu den Attributen aus Liste L• Selektion sB : R R
- alle Tupel, die Bedingung B erfüllen• Produkt RxS
- kartesisches Produkt aus 2 Tabellen- neue Tabelle mit aus Kombination aller Zeilen
• Verbund ><• Division /• Umbenennung r
Konrad Froitzheim: Grundlagen der Informatik 78
• Überführung ERM -> RDM• Entity-Typ
- Relationsschema mit Namen, Attributen, Schlüsseln• Relationship m:n
- Relationschema mit Namen des R-typ- eigenen Attributen- Primärschlüssel der beteiligten Entity-Typen
• Relationship 1:n- Integration des 1-Entity-Typs in Relationschema des n-Entity-Typ- Primärschlüssels des 1-E-Typs als Fremdschlüssel- Aufnahme der Attribute des Relationship-Typs
• Relationship 1:1- Integration des 1-Entity-Typs in RS des anderen 1-Entity-Typ- Primärschlüssels des einen 1-E-Typs als Fremdschlüssel- Aufnahme der Attribute des Relationship-Typs
• Mehrstellige Relationship Typen- analog zu Relationship-Typ m:n
Konrad Froitzheim: Grundlagen der Informatik 79
• Beispielrelationen
Konrad Froitzheim: Grundlagen der Informatik 80
Assistent:
Persnr Name Fachgebiet Boss
3002 Platon Ideenlehre 21253003 Aristoteles Syllogistik 21253004 Wittgenstein Sprachtheorie 21263005 Rhetikus Planetenbewegung 21273006 Newton Keplersche Gesetze 21273007 Spinoza Gott und Natur 2134
Professor:
Persnr Name Rang Raum
2125 Sokrates C4 2262126 Russel C4 2322127 Kopernikus C3 3102133 Popper C3 522134 Augustinus C3 3092136 Curie C4 362137 Kant C4 7
Student:
Matrnr Name Sem
24002 Xenokrates 1825403 Jonas 1226120 Fichte 1026830 Aristoxenos 827550 Schopenhauer 628106 Carnap 329120 Theophrastos 229555 Feuerbach 2
Konrad Froitzheim: Grundlagen der Informatik 81
voraussetzen:
Vorgänger Nachfolger
5001 5041 5001 5043 5001 5049 5041 5216 5043 5052 5041 5052 5052 5259
hören:
Matrnr Vorlnr
26120 500127550 500127550 405228106 504128106 505228106 521628106 525929120 500129120 504129120 504929555 502225403 502229555 5001prüfen:
Matrnr Vorlnr Persnr Note
28106 5001 2126 125403 5041 2125 227550 4630 2137 2
Vorlesung:
Vorlnr Titel SWS Leser
5001 Grundzüge 4 21375041 Ethik 4 21255043 Erkenntnistheorie 3 21265049 Gewäsch 2 21254052 Logik 4 21255052 Wissenschaftstheorie 3 21265216 Bioethik 2 21265259 Der Wiener Kreis 2 21335022 Glaube und Wissen 2 21344630 Die 3 Kritiken 4 2137
• Datenbanksystem
• Beispiele- Microsoft Access, dbase, …- Oracle, Ingres, Informix, Adabas, Sybase- mySQL, PostgreSQL, DB2
Konrad Froitzheim: Grundlagen der Informatik 82
21393Datenbank"Maschine"
Anwendungs-Programm A
Buchungs-system
SQL-DML
OS-Toolboxevtl. Netzwerk
Datenbankentwurf
SQL-DDL
Web-Server: Apache, php, …
Web-Browser
SQL-DML
OS-Toolbox
Server
Klient Klient
Internet
• SQL - eine relationale Datenbanksprache- Datendefinitionssprache DDL- Datenmanipulationssprache DML
- Änderungssprache- Abfragesprache
• Datenmanipulation / AbfrageStandardanfragenselect … Projektionfrom … Relation, Produkt, Joinwhere … Selektion, Differenz, Durchschnittunion … Vereinigungall/any/in/exists … Divison, Quantifizierunggroup by … Aggregationorder by … Sortierung
• Einfache Anfrage- select Spalte(n) from Tabelle(n) where Bedingung
Konrad Froitzheim: Grundlagen der Informatik 83
• Abfrage aus einer Tabelle
• Abfrage über mehrere Tabellen
• Spaltenauswahl- Spaltenname, Konstante- * alle Spalten, distinct Duplikatebeseitigung
• Zeilenauswahl- Spaltenname, Konstante- Vergleichsoperatoren: =, !=, <>, >, >=, <, <=- logische Verknüpfungen and, or, not- Bereichsangaben between … and, Muster like '…%…'- Leertest is null, is not null
Konrad Froitzheim: Grundlagen der Informatik 84
select Name, Titel select Name, Titel select s.Name, v.Titelfrom Professor, Vorlesung from Student, hören, Vorlesung from Student s, hören h, Vorlesung vwhere Persnr = Leser where Student.Matrnr = hören.Matrnr where s.Matrnr = h.Matrnrand Titel = ’Logik’; and hören.Vorlnr = Vorlesung.Vorlnr; and h.Vorlnr = v.Vorlnr;
select Matrnr, Name, Sem select * select distinct Swsfrom Student from Assistent; from Vorlesungwhere Sem < 5; where Leser = 2125 and not Titel = ‘Ethik’;
• Geschachtelte Abfragen
• Mengenoperationen- Vereinigung: union- Durchschnitt: intersect- Differenz: except
• Quantifizierung- all, any, none (für alle, …)- in, not in (Element von)- exists, not exists
Konrad Froitzheim: Grundlagen der Informatik 85
select * from Assistent select * from prüfenwhere Boss = where Note = (select avg (Note) from prüfen); (select Persnr from Professor
where Name = ’Sokrates’);
(select Name from Assistent) (select Vorlnr from Vorlesung) select Vorlnr from Vorlesungunion except where Vorlnr not in(select Name from Professor); (select Vorlnr from hören); (select Vorlnr from hören);
select Name select Name select *from Student from Professor from Vorlesungwhere Sem >= all where not exists where Vorlnr in (select Sem (select * (5001, 5041); from Student); from Vorlesung
where Leser = Persnr);
• Gruppierung (ähnlich Sortieren)- group by Spalte(n) Zusammenfassung in Ergebnistabelle- having Bedingung Kriterium
• Elementfunktionen- arithmetische Funktionen: +, -, *, /, …- Strings: char_length, substring, ||, …- Datum: current_time, current_date, +,-,*,…
• Sortieren- order by Spalte(n)- asc/desc
Konrad Froitzheim: Grundlagen der Informatik 86
select Leser, sum (Sws) select Leser, sum (Sws) select Leser, Name, sum (Sws)from Vorlesung from Vorlesung from Vorlesung, Professorgroup by Leser; group by Leser where Leser = Persnr and Rang = ’C4’
having avg (Sws) > 3; group by Leser, Namehaving avg (Sws) > 3;
select Matrnr, Note - 1 select Rang || ’-Professur’ select Matrnr, Sem, current_datefrom prüfen from Professor; from Student;where Vorlnr = 5001;
select Persnr, Name, Raum select Namefrom Professor from Studentwhere Rang = ’C4’ order by Matrnr;order by Rang desc, Name asc;
• Datenmanipulationssprache• Einfügen
- insert into Tabelle values Tupel;- insert into Tabelle Anfrage;
• Ändern- update Tabelle set Werte where Bedingung;
• Löschen- delete from Tabelle where Bedingung;
Konrad Froitzheim: Grundlagen der Informatik 87
delete from Vorlesung delete from Student delete from voraussetzenwhere Vorlnr = 5001; where Sem >= 15; where Vorgänger in
(select Nachfolgerfrom voraussetzen);
update Vorlesung update Student update Professor update Vorlesungset Sws = 2; set Sem = Sem + 1; set Raum = 213 set Titel = ’Grundlagen’, Sws = 3, Leser = 2125
where name = ’Russel’; where Vorlnr = 5001;
insert into Professor insert into Student (Matrnr, Name) insert into Assistent (Persnr, Name)values (2136, ’Curie’, ’C4’, null) ; values (25000, ’Goethe’); select Matrnr, Name
from Studentwhere Sem > 15;
• Datendefinitionssprache- create, alter, drop- in table, view- mit Rechte Vergabe (grant) und Entzug (revoke)
• Datentypen- char(n), varchar(n)- number (d), number (d,s)- date, long, blob- Namen: alphachar , { alphachar | digit }
• Tabellen- create definiert Tabelle- Spalten und Integritätsbedingungen
Konrad Froitzheim: Grundlagen der Informatik 88
create table Tabellen-Name(Spalten-Name Typ,Spalten-Name Typ not null,Spalten-Name Typ not null unique,. . .)create table Professor create table voraussetzen
(persnr number (5) not null unique primary key, (Vorgänger number (5), Name varchar (20) not null, Nachfolger number (5)); Rang char (2), Raum number (4));
8.2 Bürosoftware• Typische Büroarbeiten
- Briefe schreiben- einfache und mittlere Berechnungen (Angebote, einfache Modelle)- Präsentation (Vorträge)
• Dokumentenverarbeitung- Integration verschiedener Medien- Text, Grafik, Bild, Tabellen- Unterstützungsfunktionen: Rechtschreibung, …- Gruppenarbeit und Versionskontrolle- dynamische Komposition
• Office-Pakete- MS-Office- Staroffice … OpenOffice- WordPerfect Office- …
Konrad Froitzheim: Grundlagen der Informatik 89
8.2.1 Text• vi, WordStar, Edit, Edlin
- konzeptuell eine lange Zeichenkette mit Space zwischen Wörtern- 'File' = Magnetbandkonzept
• Microsoft Word, Star..., WordPerfect, Words …- raffinierte Speicherstrukturen
8.2.1.1 Text• Zeichen
- Buchstaben, Ziffern, Sonderzeichen- A, B, C, D, …, Z, Ä, Ö, Ü- a, b , c, d, ..., z, ä, ö, ü, ß- 0 ... 9- .,#+*!"§$%&/()=?'´`<>^- Steuerzeichen für Ausgabegerät: LF, CR, FF, NL, VT, HT, …
• Tastatur als Eingabegerät- Tasten für die wichtigsten Buchstaben- Umschalttasten- evtl. nicht alle Zeichen eingebbar
Konrad Froitzheim: Grundlagen der Informatik 90
• Zeilen- Einheit des Darstellungsmediums (Papier, Bildschirm)- Breite bestimmt Anzahl Zeichen in der Zeile
Der durchschlagende Erfolg von Internet, WWW und der modernen digitalen Kommunikationstechnologien
hat einen neuen Wirtschaftszweig rund um Kommunikation, Information und elektronischen Handel
(E-Commerce) geschaffen. Diese neue Industrie hat sehr hohen Bedarf an einem neuen Typus
Ingenieur, dessen Spezialität Softwareanwendungen in Netzwerken (Network Computing) sind. Die
starke betriebswirtschaftliche Orientierung eines solchen Fachmanns ist eine weitere unverzichtbare
Qualifikation.
• Absatz- logische Struktur- prinzipiell beliebig lange Zeichenkette- Objekt vieler Funktionen der Verarbeitung
Der durchschlagende Erfolg von Internet, WWW und der modernen digitalen Kommunikationstechnologien hat einen neuen Wirtschaftszweig rund um Kommunikation, Information und elektronischen Handel (E-Commerce) geschaffen. Diese neue Industrie hat sehr hohen Bedarf an einem neuen Typus Ingenieur, dessen Spezialität Softwareanwendungen in Netzwerken (Network Computing) sind. Die starke betriebswirtschaftliche Orientierung eines solchen Fachmanns ist eine weitere unverzichtbare Qualifikation.
Die Fakultät für Mathematik und Informatik der Technischen Universität - Bergakademie Freiberg hat als erste deutsche Universität einen Bachelor-Studiengang, der genau solche Ingenieure schnell und gründlich ausbildet, entwickelt. Wir hoffen, so unseren Studenten einen sicheren und zukunftsorientierten Beruf zu eröffnen.
• Umbruch- Abbildung von Absätzen auf Zeilen- Abbildung der Zeilenmenge auf Seiten
• Zeilenwechsel <> AbsatzwechselKonrad Froitzheim: Grundlagen der Informatik 91
• Editor: einfaches Textverarbeitungsprogramm - Zeichen eintippen- Zeichenkette anzeigen- Cursor: Bearbeitungsposition: einfügen, löschen- Cursor positionieren mit Spezialtasten oder Maus- Speichern, Drucken, …
Editor• Markieren
- Cursor setzen, Umschalttaste + Cursor neu setzen- Markieranfangs-Zeichen, Cursor bewegen, Markierende-Zeichen- z.B. Wordstar Cntl-K + Cntl-B- evtl. mit Maus
Konrad Froitzheim: Grundlagen der Informatik 92
• Kopierpuffer- Text markieren- Kommando: ausschneiden oder kopieren- Zielposition setzen- Kommando: einsetzen- Zwischenablage, Clipboard KopierpufferText
CutText TextPaste
• Einfache Satzmethoden- Tabulator- Leertaste (Space, Blank)- aber Vorsicht!
Konrad Froitzheim: Grundlagen der Informatik 93
8.2.1.2 Formatierung• Satzregeln aus der Buchdruckkunst
- Ziel: optimale Lesbarkeit- "Schönheit"- widows and orphans- unterstreichen ist unschön- kein Fontsalat- …
• Text bekommt AttributeTimesboldnot bold1412, HelveticaTimesitalic,9• Text immer noch sequentiell
- Attribute gelten für alle folgenden Zeichen- bis anderes Attribut der selben Kategorie
Konrad Froitzheim: Grundlagen der Informatik 94
• Buchstabenbild - fett, kursiv, fett+kursiv- unterstrichen, outline, schattiert, …- hochgestellt, subscript
- Farbe, …• Zeichensatz (Font)
- monospace- proportional- Serifen: Times, Antiqua, …- sans-serif: Helvetica, Frutiger, …-
• Markieren- Cursor setzen, Umschalttaste + Cursor neu setzen- Cursor setzen, Maustaste gedrückt lassen+Maus bewegen- Wort: Doppelclick- Absatz: Dreifachclick
Konrad Froitzheim: Grundlagen der Informatik 95
• Zeichenformat bezieht sich auf einzelne Zeichen- Zeichenmenge auswählen (=> markieren)- ohne Auswahl: nächste getippte Zeichen
Der durchschlagende Erfolg von Internet, WWW und der modernen digitalen Kommunikationstech nologien hat einen neuen Wirtschaftszweig rund um Kommunikation, Information und elektronischen Handel (E-Commerce) geschaffen. Diese neue Industrie hat sehr hohen Bedarf an einem neuen Typus Ingenieur, dessen Spezialität Softwareanwendungen in Netzwerken (Network
Computing) sind. Die starke betriebswirtschaftliche Orientierung eines solchen Fachmanns ist eine weitere unverzichtbare Qualifikation.
• Dialogbox Zeichenformat- einstellen und ausprobieren
• Kerning und Ligaturen• Spezialzeichen
- Währungssymbole- Länderbuchstaben, ©®™§¶“”- Dialog im Menü Einfügen
• Tabulatoren: horizontale Marken- stabile Formatierung- Sprung zur Marke- linksbündig, rechtsbündig, zentiert, Zahl, Währung
Konrad Froitzheim: Grundlagen der Informatik 96
• Absatz- inhaltlich eng zusammengehörender Text- semantische Einheit- von anderen Absätzen abgesetzt
• Absatzformat- automatische Absatzformatierung siehe Formatvorlage (Stile)- Dialogbox Absatz
• Form des Absatzes- Flattersatz: linksbündig, rechtbündig, zentriert
- Blocksatz- Absatzzeilen zusammenhalten- Mit nächstem Absatz zusammenhalten
Konrad Froitzheim: Grundlagen der Informatik 97
• Einzug = Abstand vom horizontalen Rand- links, rechts- hängend (= Sonderfall erste Zeile)Seite bedruckbare Fläche
• Zeilenabstand (Durchschuß, leading)• Abstand zu andern Absätzen
- vorher, hinterher- Sonderfall oberer Rand bzw. unterer Rand- Leerzeilen sind "schlechter Stil" bzw. gefährlich
Konrad Froitzheim: Grundlagen der Informatik 98
• Maßeinheiten- 1 Inch = 2,54 Zentimeter - 1 Zeile = 1 Pica = 1/6 Inch- 1 Punkt = 1 pt = 0,035 cm- 12 Punkt = 1 Zeile = 1/6 Inch
• Seitenmaße- bedruckbare Fläche kleiner als
Papier => Satzspiegel- Abstände: links, rechts, oben, unten- Bücher: gespiegelt für gerade und ungerade Seiten- besondere Seitenbereiche: Kopfzeilen, Fußzeilen- Seitennummern
Konrad Froitzheim: Grundlagen der Informatik 99
1514
Text und Markup
WWWAcrobatPapierDruckInternetAssistantDistiller
8.2.1.3 Text und Struktur• Markup
- logische Struktur für Text- Überschrift, normaler Paragraph, Zitat, …- Fußnote, Literaturverweis, Bildunterschrift, …
• Zuordnung der Attribute beim Satz- Autor produziert Inhalt und Struktur- Drucker setzt
• Tex • Formatvorlagen (Stile, Styles)
- Mehr als 2 Seiten => Formatvorlagen- Menge von Attributen für Zeichen- Menge von Attributen für Absatz- Analogie zur Programmiersprache: Prozeduren für Satz
• Besondere Formatvorlagen- Überschriften => automatisches Inhaltsverzeichnis- Abbildungsverzeichnis, …
Konrad Froitzheim: Grundlagen der Informatik 100
8.2.1.4 Spezialfunktionen für Text• Trennung
- manuell mit Sonderzeichen oder am Bindestrich- automatische Silbentrennung- semi-manuell
• Rechtschreibprüfung- manuell oder automatisch- Wörterbücher für Sprachen - neues Textattribut: Sprache- persönliche Wörterbücher
• Grammatik- einfache Regeln- stereotype Ratschläge- funktioniert in Englisch besser
• Thesaurus- Synonyme und Antinyme finden
• Zählfunktionen: Wörter, Buchstaben, …• Tabellen, Listen, grafische Rahmen, …
Konrad Froitzheim: Grundlagen der Informatik 101
8.2.2 Dokumente• Dokumentenverarbeitung
- Word, Wordperfect, (Star|Open)Office- zusätzliche Funktionen zur Integration
• Komponenten - Text- Grafik- Bild- Objekte von anderen Programmen
• Mischen der Komponenten- Textfluß - Objekt läuft mit Text- Objekt fixiert, Text läuft herum
• Spalten• Positionsrahmen
• Dynamisches Einbetten von Obkjekten (OLE)
Konrad Froitzheim: Grundlagen der Informatik 102
• Besondere Programme für Computersatz- InDesign, Quark Xpress- Schnittstelle zu Druckmaschinen (Farbseparation, …)
• Seitenorientiert• Textfluß zentrales Element
- präzise Angabe der Textfläche- Text fließt um Objekte herum
• Objekte- Position auf der Seite fest- beliebige Kontur der Objekte- Text folgt der Kontur
• Viele weitere Eigenschaften- Inhaltsverwaltung, Bearbeitungshilfen- Farbkontrolle- hairlines …
Konrad Froitzheim: Grundlagen der Informatik 103
8.2.3 Tabellenkalkulation• Berechnungen
- Zahlenkolonnen addieren- Angebote: (10 * 1,53 + 12*12,5 +...
+15,73)*1,16- einfache Modelle: Gehalt
berechnen, Steuerformel, …- Kontostand projezieren
• Visicalc [Bricklin, 1978] für Apple II• Lotus 1-2-3 [Kapor, 1982] für IBM-PC• Aktuell: Excel, Lotus, Quattro• Grundidee: Rechenblatt
- Spreadsheet- Zeilen und Spalten- Formeln- Variablen- einfache Programmierkonstrukte
Konrad Froitzheim: Grundlagen der Informatik 104
Debitor Rechnung vom Betrag
Müller 12-Jan-99 1713,12Meier 13-Jan-99 5312,5Schmidt 17-Jan-99 1800,67Hartmann 03-Feb-99 782Meier-Möllendorf 09-Feb-99 1190,78
8.2.2.1 Rechenblatt• Felder
- enhalten ein 'Datum'- Typ- Adresse = (Spalte,Zeile)
• Datentypen- Zeichenketten- Zahlen- Währung- Datum, Zeit- Postleitzahl, Telefonnummer, Social Security Number
• Formatieren- Zeichenattribute ähnlich Textprogramm- Datentyp-Formate (Währung, Zeit, ...)- Dezimalstellen- 0,13 = 13%
• Positionieren mit Maus oder Cursortasten
Konrad Froitzheim: Grundlagen der Informatik 105
• Eingabe- Zelle selektieren + tippen- Eingabezeile- automatische Formatierung
• Eingabe größerer Datenmengen- Return => selbe Spalte, Zeile n+1- Tab => selbe Zeile, Spalte n+1
• Selektion- Zelle- Zellenrechteck mit Maus oder Shift-Klick- Zellmenge mit Cntl-Taste- Spalte- Zeile
• Editieren- Cut, Copy, Paste- Füllen nach links, rechts, oben, unten- Füllen mit Werten oder Datum
Konrad Froitzheim: Grundlagen der Informatik 106
• Einfügen und Löschen- Zelle oder Zellgruppe- Selektion + Einfügen/Löschen- Zellen verrücken- Zeilen/Spalten einfügen -> verschieben- Zeilen/Spalten löschen -> verschieben- Achtung: Bezüge können leiden!
• Drag und Drop• Viele Editiertricks
- Excel 'rät' die gewünschte Aktion• Layout
- Zeilenbreite- Spaltenhöhe- Zellen: Zeichenattribute- Zellen: bedingte Formatierung- Hintergrund, Rand, …- Formatvorlagen
Konrad Froitzheim: Grundlagen der Informatik 107
8.2.2.2 Formeln• Elemente
- Konstante- Zellinhalte- Operatoren- Funktionen
• Arithmetik- +, -, *, /- Punkt-vor-Strich, Klammern- auch mit Datum rechnen
• Bezüge- Tupel (Spalte, Zeile)- ähnlich Adressen in der Programmiersprache- auch Zellbereiche A1:B6 (Rechteck!)
• Konstante- Zahlen, Datum, Prozent- Text
Konrad Froitzheim: Grundlagen der Informatik 108
=Y7+Y11-Z9
• Relative Bezüge- Normalfall, automatisch- (Spalte-n, Zeile-n)- im neuen Excel absolut angezeigt- A1, B17, AA123, ...
• Absolute Bezüge- Ausnahme- Adresse (Spalte, Zeile) fest- Kennzeichen in neueren Excels: $- $A$3 - absolute Zeilenadresse: A$3- absolute Spaltenadresse $A3
• Bezüge und Editieren- automatische Anpassung relativer Bezüge- beim Kopieren, nicht beim Verschieben- auch beim Einfügen/Löschen 'dazwischen' - auch bei Bereich füllen
Konrad Froitzheim: Grundlagen der Informatik 109
• Funktionen- <name>(<argument1>;<argument2>;...;<argumentn>)- Summe(), Max(), Min(), Anzahl(), ...- Zellmenge ist ein Argument: Summe(A3:B10)- Schachtelung möglich
• Funktionsgebiete- Mathematik, Trigonometrie, Statistik- Finanzmathematik (Annuität, ...)- Datum und Zeit, Text- Logische Funktionen, Feldinformation
• WENN(Bedingung;<then-val>;<else-val>)- WENN(B17<>0;B16/B17;0)- Bedingung mit UND(), ODER(), NICHT()
• Funktionsassistent- kennt Funktionsnamen- hilft bei Argumenten
Konrad Froitzheim: Grundlagen der Informatik 110
8.2.2.3 Namen• Tabellenkalkulation ist Programm!
- dokumentieren der Formeln- Sicherheit bei späteren Änderungen
• Zellbezüge unübersichtlich- Bezug auf Prozentsatz etc.?- dokumentiert nicht
• Zellen können benannt werden- einzeln oder Bereich- Namensregeln ähnlich Programmiersprachen- automatischer Namensvorschlag- benannte absolute Bezüge- Indirektion: Name -> Zelle
• Namen in Formeln einsetzen- verändern sich nicht beim Kopieren- Auswahl aus Bereich
Konrad Froitzheim: Grundlagen der Informatik 111
Betrag
12-Jan-99Müller13-Jan-99Meier17-Jan-99Schmidt03-Feb-99Hartmann09-Feb-99Meier-Möllendorf
Betrag
0
10002000
3000
40005000
6000
Betrag
8.2.2.4 Diagramme• Visualisierung einer Tabelle
- Anteile- Trends
• Tabelle selektieren- Achsen- Werte
• Diagramm-Art wählen- Kuchen- Linie, Punkte- Pseudo 3D
• Formatieren
- Achsen, Beschriftung - Legende
Konrad Froitzheim: Grundlagen der Informatik 112
Debitor Rechnung vom Betrag
Müller 12-Jan-99 1713,12Meier 13-Jan-99 5312,5Schmidt 17-Jan-99 1800,67Hartmann 03-Feb-99 782Meier-Möllendorf 09-Feb-99 1190,78
Konrad FroitzheimCESC
Ladbare Module•Klientengesteuerte Stromkonstruktion–Auflösung, …–Dienstegüte–Stromformat•CompressLets–[Bönisch,1998]–im Server ausgeführt–vom Klienten geladen–Java•Kompressions-Toolbox–'hotspots'–'native' MethodenDCTFilter
Quanti-sierung?∆
Huff/RLEJava Virtual MachineQoSCLet∆-GIFCLetRTPCLet
RGBYUVM-JPEGCLetH.261CLetXYZCLet
Diff
8.2.4 Präsentationen und Vorträge• Elektronische Folien
- Text (Punkte)- Grafiken- Animation
• Didaktische Aufbereitung- sequentielle Präsentation- Hauptpunkte - Details- Präsentationskontrolle
• Dramaturgie- Übergänge zwischen Kapiteln- Einzelpunkte animieren- Überblendungen
• Powerpoint, Impact, Keynote, …
Konrad Froitzheim: Grundlagen der Informatik 113
Text mittig verankert• Textformat
- vertikaler Text-Anker- Zeichenformate wie gewohnt
• Zeichenprogramm eingebaut- fertige Elemente - Clip-Art- geometrische Grafik
• Animierte Grafik- Komponenten einblenden lassen- Art der Einblendung wählbar- Anlaß wählbar- Geräusch möglich- Bewegung = ausblenden, verschoben einblenden
Konrad Froitzheim: Grundlagen der Informatik 114
• Entwurfshilfen- Grunddesign mit 'Wizard'- Outline mit Überschriften, Hauptpunkten, Unterpunkten- Einzelfolie- Notiz-Seiten- 'Lichtkasten' zum Sortieren
• Ausgabeoptionen- elektronische (Präsentation, Arbeitsplatz, Kiosk)- Folien- Papier: 'Handouts', Notiz-Seiten- WWW leider nur Bitmap
• Präsentationshilfen- Generalprobe mit Zeitnahme- zeitgesteuerte Präsentation
Konrad Froitzheim: Grundlagen der Informatik 115
8.2.5 Grafik8.2.5.1 Objektgrafik• MacDraw, Corel, Canvas, Illustrator…• Graphische Objekte
- Strecken, Linienzüge- Rechtecke, Polygone- Kreise, Ellipsen
• Attribute- Farbe, Muster, Stiftform, …- Linien, Fläche
• Anordnung der Objekte - zusätzliche geometrische Figuren- Verdecken von Hilfskonstruktionen
• Pseudo-3D- Perspektive- Schattenwurf
Konrad Froitzheim: Grundlagen der Informatik 116
8.2.5.2 Pixelgrafik• MacPaint, PaintShop• Photos und Bilder
- Pixel- 'glatte' Übergänge- Farben
• Werkzeuge- Stift: Punkte setzen- Radiergummi: Punkte entfernen- Farbeimer: ausfüllen- Spraydose
• Attribute- Farbe, Muster, Stiftform, …- Linien, Fläche
Konrad Froitzheim: Grundlagen der Informatik 117
• Photoshop• Bildverbesserung
- Retouching- Kontrast, Helligkeit, Farbsättigung, Histogramm-Equalization- Kanten bearbeiten (Schärfe, …)
• Selektion- Rechteck, Ellipse und Lasso- 'magnetisches' Lasso- Zauberstab- farbgesteuert
• Filter- Störungen entfernen (z.B. Durchschnitt mit Nachbarn)- Effekte
• Zeichenwerkzeuge- Stift, Pinsel, Farbeimer, Radiergummi
Konrad Froitzheim: Grundlagen der Informatik 118
0.01 0.1 0.25 0.1 0.010.1 0.35 0.5 0.35 0.10.25 0.5 1.0 0.5 0.250.1 0.35 0.5 0.35 0.10.01 0.1 0.25 0.1 0.01
• Farbkalibrierung• Digitalisierte Bilder sind verfälscht
- CCD-Rauschen, unterschiedlich stark in den Farbkanälen- Helligkeit und Kontrast- Farben schlecht (Farbtemperatur des Lichtes ...)
• Rauschen entfernen- Lab Farbraum- blauer Kanal besonders verrauscht
• Nachschärfen• Kurven (Helligkeit, Kontrast, Farbkanäle)
- Histogramme- Farbkorrektur
• Effekte- als Filter implementiert- Verwischen (blur, PSF), Kanten schärfen, …
• Kai's Powertools- lokale und globale Transformationen
Konrad Froitzheim: Grundlagen der Informatik 119
• Räumliche Anordnung der Bildelemente - Layer- Organisation des Bildes- wichtige Elemente in Layern- Transparenz- arithmetische Verknüpfung
• Druck-Ausgabe- Farbanpassung an Drucker- Farbseparationen
Konrad Froitzheim: Grundlagen der Informatik 120
8.2.6 Digitaler Videoschnitt• Adobe Premiere, Apple Final Cut Pro• Projekt
- technische Parameter- Menge von Komponenten: Audio, Video, Titel- Digitalisierung- Import
• Medienströme bearbeiten- editieren- Präsentationseigenschaften ändern- Filter- einfache Effekte: Bewegung, Zoom, Drehung
• Produktion des Filmes- Movie-Datei in vielen Formaten- Edit Decision List für Schnittsysteme
Konrad Froitzheim: Grundlagen der Informatik 121
• Mehrere Spuren- zeitliche Anordnung- Übergänge gestalten
Konrad Froitzheim: Grundlagen der Informatik 122
8.3 Kombination (After Effects, Director)8.3.1 After Effects• Bilder lernen Laufen
- Animationen- Zeichnungen, Text
• Filmformat- Quicktime- GIF- …
• Objekte anordnen• Änderungen in der Zeit
- Eigenschaften- Anordnung
• ƒ(Objekt, t)
Konrad Froitzheim: Grundlagen der Informatik 123
• Schichten (Layer) überlagern- Darstellung zeitlich begrenzt (In, Out)- Maske
• Zeitachsen und Keyframes
• Keyframes haben Schichteigenschaften als Attribute- Übergang zwischen Keyframes
=> gradueller Übergang von A1 nach A2- lineare oder komplexe Übergangsfunktion
Konrad Froitzheim: Grundlagen der Informatik 124
• Geometrische Attribute der Schichten in der Zeit- Größe- Bewegung entlang eines Pfades (Gerade, Bezier-Spline)- Rotation, Ankerpunkt- Bewegungsverzerrung- Durchsichtigkeit (Ein- und Ausblenden)
• Farb-Attribute• Filter in der Zeit
- Verschwimmen- Schatten- Textur- Erhebung, 3D, …
• Überblenden zwischen Schichten- Transparenz- Überblendeffekte (Dissolve, Wipe, Vorhang, …)
Konrad Froitzheim: Grundlagen der Informatik 125
• Motion Pack- Identifizieren bewegter Elemente- Bewegungen glätten- Bewegungen 2. Ordnung
• Keying Pack- Wetterbericht
- Teile des Orginalbildes werden 'transparent'- einfache Keys: Farbe, Helligkeit- scharfe Grenzen- Wertebereich der Transparenz
• Verzerrung von Objekten- perspektivisch- wellenförmig, Polarkoordinaten, Wirbel, …
Konrad Froitzheim: Grundlagen der Informatik 126
• La Reine des Neiges
• Film mit Kind und gezeichneter Raum• Chroma-Key, Bewegungsfilter• Komposition
Konrad Froitzheim: Grundlagen der Informatik 127
8.3.2 MacroMedia Director• Präsentationen
- Animationen (nicht extrem anspruchsvoll)- Abspielen von Video und Sound- ShockWave
• Grafische Elemente- Text, Grafik, Video, Sound- 16/32 bit Farben- 1,2,4,8 bit Farben mit verschiedenen Paletten
Konrad Froitzheim: Grundlagen der Informatik 128
• Benutzungsschnittstelle
Konrad Froitzheim: Grundlagen der Informatik 129
Import
Grafik
Script
Cast
Score
Präsentation
Button
SndSndMoov
Medien-editor
- simple Navigation mit Knöpfen• Begriffe
- Darsteller (actors) und Besetzung (cast)- Drehbuch (score)- Programmiersprache Lingo (scripts)- Sprite - Behälter für actor
Konrad Froitzheim: Grundlagen der Informatik 130
• Darsteller (actors) und Besetzung (cast)
• Grafische Objekte (PICT, PICT-Sequenz, Bitmap)• QuickTime Movie• Sound• Button, Menu, …• Script
Konrad Froitzheim: Grundlagen der Informatik 131
• Zeichenwerkzeug integriert- Nachbearbeitung von importierten Bildern- Grafiken können auch Skripts haben
Konrad Froitzheim: Grundlagen der Informatik 132
• Drehbuch (score)
• Zeit horizontal (Frames)• vertikal 'Spuren'• Nummern aus cast
Konrad Froitzheim: Grundlagen der Informatik 133
• Programmiersprache Lingo (scripts)- erweitertes HyperTalk- Objektorientierung als Nachgedanke
• Basis-Lingo- on <Event> … end <Event>- set <Variable> of <Objekt> to <Wert>- set <Variable> = <Wert>- if <condition> then <clause> else <clause> end if- go <Identifier>- repeat with <Variable>=<Wert> to <Wert>
… end repeat- <Identifier> ruft Prozedur- globale Variable
• Handler- mouseUp, mouseDown, startMovie, stopMovie- selbstdefiniert
on mouseUp go to frame "start"
end mouseUp
Konrad Froitzheim: Grundlagen der Informatik 134
• Objektorientierung- Darstellerscript = Klasse- property-variable = Instanzvariable- ancestor-variable = Inheritance- birth ist Konstruktor (on birth)
MECH , 76global gMyPegBoard,gConstrainSprite,gIsRunning,gHandCursor,gSpeedCntrSpriteproperty PEG_columns,PEG_rows,myHPegs ,myVPegs,myAnimator,myButtonson birth me
set PEG_columns = 16 -- we have 16 columns of pegs…
-- build the vert peg list set myVPegs = [] -- empty list set count = 2 setAt myVPegs,1,50 -- set first array elt repeat while count < PEG_rows set pos = 50 + ((count - 1) * 30) setAT myVPegs , count,pos set count = count + 1 end repeat
… return me
end birth
Konrad Froitzheim: Grundlagen der Informatik 135