Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Erna Stommel Geändert vor über 11 Jahren
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
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.