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

Slides:



Advertisements
Ähnliche Präsentationen
ALP II: Objektorientierte Programmierung Sommersemester 2006
Advertisements

der Universität Oldenburg
Vorlesung Compilertechnik Sommersemester 2008
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Hochschule Fulda – FB ET Sommersemester 2010
Variablen und Datentypen
Kapitel 5. Stacks und Queues
10. Grundlagen imperativer Programmiersprachen
Synonyme: Stapel, Keller, LIFO-Liste usw.
Es sei SPEC = (, E) eine Spezifikation mit einer
Finale Semantik und beobachtbares Verhalten
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 4 / 1 Termalgebren Definition "Freie Algebra" Die -Algebra A = [A, F ] heißt.
Kapitel 4 Datenstrukturen
Gliederung Motivation / Grundlagen Sortierverfahren
Java: Grundlagen der Sprache
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 10 Claudio Moraga; Gisbert Dittrich FBI Unido
Datentyp  Zusammenfassung von Mengen von "Werten" mit auf
? Grammatik  Orthographie ?
d.h. für alle  mit () = (s1,s2 ,...,sn,s) gilt: wenn
Beispiele für Ausdrucksalgebren
Eine (Gleichungs-)Spezifikation ist ein Paar SPEC = (, E),
Gleichungskalkül und Induktion
Boolesche Ausdrücke Ist der Rückgabewert eines Ausdrucks vom Typ boolean, so wird dieser als Boolescher Ausdruck bezeichnet (nach dem Mathematiker George.
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
boolean Datentyp und Operator
Stacks Referat im Fach Basisinformationstechnologien von Venelina Koleva.
FH-Hof Algorithmen und Datenstrukturen - Einführung Richard Göbel.
Verknüpfen von Grundschaltungen zu komplexen Schaltungen
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
Grundlagen der Programmierung
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Programmierung
Willkommen... Studentinnen und Studenten der Studiengänge Umweltnaturwissenschaften Erdwissenschaften Agrarwissenschaften zur.
Informatik 1 Letzte Übung.
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
Datenbanken Datenstrukturen.
Programmiersprachen Proseminar Grundlagen wissenschaftlichen Arbeitens
Informatik II Grundlagen der Programmierung Programmieren in C Programmstrukturen / Kontrollstrukturen Hochschule Fulda – FB ET Sommersemester 2014.
Grundlagen Wissenschaftlichen Arbeitens Hilal Tekoglu
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 1: Wiederholung (Vor allem Folien von Priv.-Doz. Dr. Kindler vom WS 2001/02.
Agenda für heute, 14. April, 2005 Wiederholte ProgrammausführungWiederholte Programmausführung Algorithmische Grundlagen Bedingungen zum Abbruch von Programmschleifen.
Kapitel 5: Von Datenstrukturen zu Abstrakten Datentypen
Datentypen Überblick Datentypen Einfache / fundamentale Datentypen
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Boolesche Algebra Einführung in die Boolesche Algebra George Boole
Vordefinierte Datentypen (1)
Algorithmen und Datenstrukturen 1 SS 2002
Kapitel 5Strukturen Information aus der realen Welt werden in einem informationsverarbeitenden System als Daten abgelegt. Diese stellen also eine (vereinfachte)
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig 0 / 1 Syntax, Semantik, Spezifikation Grundlagen der Informatik R. Hartwig.
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 3 / 1 Algebraische Hülle und Homomorphie A = [A, F ] sei  -Algebra. Eine.
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 10 / 1 Kapitel 10 Initialität Eine beliebige gleichungsdefinierbare Klasse.
? definierende Gleichungen  gültige Gleichungen ?
 Sortigkeit oder Arität
Variablen und Datentypen
Programmiersprachen II Graph_Algorithmen Einführung Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Variablen und Operatoren. C++ Teil 2: Grundstrukturen Variablen Operatoren Kontrollstrukturen Funktionen Header-Dateien Pointer und Referenzen.
Strukturierte Variablen: Records
Datentypen: integer, char, string, boolean
Programmieren und Problemlösen
Datentypen: integer, char, string, boolean
1. Die rekursive Datenstruktur Liste 1.6 Die Datenstruktur Stapel
The Programming Language Pascal
 Präsentation transkript:

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?

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

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

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

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

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

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 - “ -

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

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

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

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

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

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

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