Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Einführung Wat jibt´s denn? Mit Computa kenn´ ick mir aus! Guten Tag,

Ähnliche Präsentationen


Präsentation zum Thema: "Einführung Wat jibt´s denn? Mit Computa kenn´ ick mir aus! Guten Tag,"—  Präsentation transkript:

1 Einführung Wat jibt´s denn? Mit Computa kenn´ ick mir aus! Guten Tag,
Kapitel 1 Einführung Wat jibt´s denn? Mit Computa kenn´ ick mir aus! Guten Tag, darf ich Ihnen mal eine Frage stellen?

2 Was ist ein „Datentyp“? reals, arrays, records, stacks,
integers, reals, arrays, records, stacks, files, characters, ... Was ist ein „Datentyp“?

3 Definition erforderlich!
„Ein Datentyp legt die Menge der Werte fest, die eine Variable annehmen kann.“ ( Pascal User Manual) Definition erforderlich! Beachte: Nutzerdefinierte Datentypen in vielen Programmiersprachen

4 Zugriffsmechanismen:
Na ja, na ja, ... Zugriffsmechanismen: filo vs. fifo ? stacks = queues alles sequences

5 ! = Algebra Datentypen sind Algebren ? Menge von Objekten Datentyp:
Operationen über diesen Objekten = Algebra

6 Algebra und Informatik
Mathematik Algebra = universelle Algebra = algebraische Struktur Trägermenge Operationenfamilie Informatik z.B.: real array benötigt real, array, integer Algebra => Begriff erweitern ! mehrere Trägermengen Operationenfamilie

7 Algebra und Informatik
Homogene oder einsortige Algebra Gruppe Monoid Ring Boolesche Algebra Verband Heterogene oder mehrsortige Algebra Datentyp Vektorraum endlicher Automat Syntax einer Programmiersprache Semantik “ -

8 Algebra und Informatik
Problem: Partialität vieler Operationen: Selektion, Division, Überlauf/Unterlauf, Lesen aus leerem Keller, Aufruf nichtdeklarierter Prozedur mehrsortige, partielle Algebren Theorie kompliziert partielle Operation totale Operation error

9 vier Operationen zweckmäßig
Beispiel Datentyp „Zeichenkeller“ (stacks of characters): (mindestens) drei Trägermengen Char = {a, b, c, ..., z} Stack = Char * Bool = {true, false} vier Operationen zweckmäßig push : Char  Stack  Stack top : Stack  Char pop : Stack  Stack empty? : Stack  Bool

10 Beispiel (Forts.) Definition der Operationen: Sei  - leerer Keller
sx - Füllung (Verkettung) des Kellers s mit Zeichen x push(x,s) = sx top(sx) = x pop(sx) = s  true , falls s =  empty?(s) =   false , falls s   top() = ? pop() = ?  Einführung von error-Elementen

11 Beispiel (Forts.) Definition der Operationen: Sei  - leerer Keller
sx - Füllung (Verkettung) des Kellers s mit Zeichen x push(x,s) = sx top(sx) = x pop(sx) = s top() = char-err pop() = stack-err  true , falls s =  empty?(s) =  bool-err, falls s = stack-err  false , sonst

12 Char = Charp  {char-err} Stack = Charp *  {stack-err}
Beispiel (Forts.) Trägermengen erweitern: Charp = {a, b, c, ..., z} Char = Charp  {char-err} Stack = Charp *  {stack-err} Bool = {true, false}  {bool-err} Operationen - „strikt“ vervollständigen push : Char  Stack  Stack top : Stack  Char pop : Stack  Stack empty? : Stack  Bool

13 Algebra mit vier Trägermengen und Operationen zwischen ihnen
Beispiel (Forts.) Erweiterung um Boolesche Operationen oft nützlich: vel : Bool  Bool  Bool et : Bool  Bool  Bool non : Bool  Bool (alle strikt vervollständigt) Ergänzung des Datentyps „Zeichenkeller“ um neue Sorte Int möglich, um z.B. die „Kellertiefe“ zu erfassen: depth : Stack  Int Dann evtl. zweckmäßig, Rechnen über Int hinzuzunehmen: arithmetische ( +, - ) und Vergleichsoperationen < usw. Algebra mit vier Trägermengen und Operationen zwischen ihnen

14 - + Char Stack Bool < Int Beispiel (Forts.) Zeichenkeller non
empty? top vel Char Stack Bool pop push depth et < - Int + Zeichenkeller Signatur


Herunterladen ppt "Einführung Wat jibt´s denn? Mit Computa kenn´ ick mir aus! Guten Tag,"

Ähnliche Präsentationen


Google-Anzeigen