Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 1 V3
|
|
- Siegfried Lichtenberg
- vor 7 Jahren
- Abrufe
Transkript
1 Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 1 V3 Variablen Datentypen Objekte Professur für Graphische Datenverarbeitung Institut für Informatik Fachbereich Informatik und Mathematik (12) Rückblick Wir haben bisher 6 zentrale Grundbegriffe kennen gelernt: Daten Information Wissen Computer und ihre Leistungsfähigkeit; Algorithmen und erste Beschreibungsmöglichkeiten und schließlich der Unterschied zum Programm. 2 1
2 Unser heutiges Lernziel Daten und Informationen in Programmiersprachen Begriffe wie Variable, Konstante, Literale; Datentyp, abstrakter Datentyp, Objekte kennen lernen Zuweisung kennen lernen Typing und Typwandlung: casting und coercion 3 Übersicht Daten und Informationen in Programmiersprachen Variablen Datentypen Objekte Typisierung 4 2
3 Daten und Informationen in Programmiersprachen In einem Programm stehen Anweisungen, die auf Daten operieren. Wir benötigen in den Programmiersprachen also Sprachkonstrukte, die es uns erlauben, auf Daten zuzugreifen: sie festzulegen (zu definieren), sie zu lesen und wieder zu ändern. Ziele: für den Programmierer möglichst einfach und bequem sein, quasi so, wie wir es aus der Mathematik oder in der Schriftsprache gewöhnt sind. Fehler (insbesondere Tippfehler und manche Denkfehler) möglichst frühzeitig vom Compiler/Interpreter erkennen Diese Forderungen sind gegenläufig und können streng nicht beide gleichzeitig erfüllt werden. 5 Rückblick auf V1: Daten und Informationen Daten sind (maschinen-) lesbare und bearbeitbare Repräsentationen von Informationen D α I α 1 X α 2 88 D: Daten I: Information α: Zuordnung: Interpretationsvorschrift (muss keine Funktion/Relation sein) Buchstabe Dezimalzahl 6 3
4 Variablen Datentypen Objekte Bis in die fünfziger Jahre hinein, wurden Computer in Maschinensprache programmiert Befehle nahmen direkten Bezug auf Speicherstellen: Adressen Namen (Bezeichner, Symbole) für einzelne Speicherzellen Hierfür wurde alsbald der Begriff Variable üblich. In Programmiersprachen bezeichnet "Variable" also einen Bezug (Referenz) auf einen (Daten-)Behälter, also eine Speicherzelle. 7 Variable Achtung: In der Mathematik ist eine "Variable" eine Bezeichnung, die in einem Term oder einer Formel vorkommt, z.b. 3u + 2: Platzhalter für einen Wert, oder in einem funktionalen Zusammenhang der Art y = f(x) x als unabhängige und y als abhängige Variable. In der Physik bezeichnet man mit "Variable" eine Größe, deren Wert von der Zeit oder einer anderen Größe abhängt. 8 4
5 Ausdrücke und Zuweisung (Beispiel) Anweisungsfolge wie 1. Y = 5 2. X = 4 3. X = X/2 + 3*Y Diese Form (diesen Operator) nennt man Zuweisung (assignment). Das Gleichheitszeichen hat hier eine besondere Bedeutung Semantik in einer Programmiersprache: Führe die Anweisungen in der Reihenfolge 1. bis 3. aus, im Einzelnen 1. Weise der Variablen (also der Speicherzelle mit der Bezeichnung X) den Wert 4 zu. 2. Weise der Variablen (also der Speicherzelle mit der Bezeichnung Y) den Wert 5 zu. 3. Berechne den Term (Ausdruck) auf der Rechten Seite, also 4/2 + 3*5 gleich 17 und weise den errechneten Wert 17 der Variablen (also der Speicherzelle mit der Bezeichnung X) zu. 9 Beispiel (2) 1. Y = 5 2. X = 4 3. X = X/2 + 3*Y In der Mathematik: diese Schreibweisen als Gleichung auffassen Die 3. Anweisung als Gleichung aufgefasst würde man auflösen zu X = 6Y, mit Gleichung 2. also Y=1, als Gleichungssystem aufgefasst wäre widersprüchlich und die Lösungsmenge für X = {}, die leere Menge. 10 5
6 Zuweisungsoperator Um diese Verwechslungen zu vermeiden, werden in manchen Programmiersprachen als Zuweisungsoperator andere Symbole benutzt, z.b. = in Python, Java, C, C++ := in Pascal, Ada in APL 11 Typisierung Beispiel: X = ANTON Y = & Z = BERTA. U = X + Y + Z arithmetisch interpretiert macht das keinen Sinn, erst recht nicht dieses auf Datenebene plump zu errechnen. Vielmehr könnte der Operator + bei Zeichenketten eine Aneinanderreihung bedeuten, also etwa U = ANTON & BERTA 12 6
7 Datentypen Die Bedeutung von Operatoren in Ausdrücken hängt von der Art (=dem Typ, engl. type) der Daten ab Gleiche Operatorenzeichen (z.b, +) können abhängig vom Datentyp durchaus Verschiedenes bedeuten (In der OOP nennt man das Polymorphie) Ein Datentyp in der Informatik ist die Zusammenfassung von Objektmengen mit den darauf definierten Operationen. Dabei werden durch den Datentyp unter Verwendung einer so genannten Signatur ausschließlich die Namen dieser Objekt- und Operationsmengen spezifiziert. Ein so spezifizierter Datentyp besitzt jedoch noch keine Semantik. 13 Abstrakter Datentyp Ein Abstrakter Datentyp (ADT) ist im wesentlichen durch eine formale Beschreibung seiner Schnittstelle zur Umwelt charakterisiert. Ein ADT ist nur eine Erweiterung des Begriffs Datentyp : Die Defnition des ADT hält sich dabei an folgendes Muster: Typ/Wertebereich (welche Werte nimmt der ADT an bzw. mit welchen Datentypen geht er um) Methoden - die Syntax wie mit dem Datentyp gearbeitet wird Axiome - die die Semantik des Datentypen definieren Man kann auf diese Weise einen Datentyp beschreiben ohne sich um die Details der Implementierung zu kümmern, daher abstrakt. 14 7
8 Eigenschaften eines ADTs (1) Präzise Beschreibung (precise specification): Die Schnittstelle (Interface) muss eindeutig und vollständig beschrieben sein. Einfachheit (simplicity): Der Anwender muss sich nicht um die innere Realisation des ADT kümmern, da der ADT seine Repräsentation und Verwaltung im Speicher selbst übernimmt. Kapselung (encapsulation): Das Interface soll als eine hermetische Grenze aufgefasst werden. Der Anwender soll sehr genau wissen, was ein ADT tut, aber keinesfalls, wie er es tut. 15 Eigenschaften eines ADTs (2) Geschütztheit (integrity): Der Anwender kann in die interne Struktur der Daten nicht eingreifen. Die Gefahr, Daten ungewollt zu löschen bzw. zu verändern sowie Programmierfehler zu begehen, ist dadurch deutlich herabgesetzt. Modularität (modularity): Das modulare Prinzip erlaubt übersichtliches und damit sicheres Programmieren und leichten Austausch von Programmteilen. Bei der Fehlersuche können einzelne Module sehr isoliert betrachtet werden. Viele Verbesserungen können über ADTs nachträglich ohne die geringste Änderung in sämtlichen Umgebungsbzw. Anwendungsprogrammen übernommen werden. 16 8
9 Beispiel (1) Eine Signatur ist ein Paar (Sorten, Operationen), wobei Sorten Namen für Objektmengen und Operationen Namen für Operationen auf diesen Mengen repräsentieren. Eine vereinfachte Version des Datentyps Ganzzahl (Integer), der hier Simple Integer heiße: Simple Integer Sorten int Operationen empty: -> int + : int x int -> int - : int x int -> int End Simple Integer bisher keine Semantik 17 Beispiel (2) Was ein int ist, wird bisher nirgendwo definiert. Hierzu müsste noch eine Zuordnung des Sortennamens zu einer Menge erfolgen. zum Beispiel: die Menge der natürlichen Zahlen. Dann wären auch + und - definiert (semantisch) definiert. Derartige Zuordnungen fallen in den Bereich der Semantik. Diese Spezifikation würde man in der Mathematik als Algebra bezeichnen. In der Informatik als abstrakten Datebtyp. 18 9
10 Datentypen in Programmiersprachen Programmiersprachen bieten eine jeweils spezifische Menge an vordefinierten Datentypen an, wie Ganze Zahlen, Fließkommazahlen oder Zeichenketten Die Namen dieser Datentypen und die genauen Definitionen der Wertebereiche und der dazugehörigen Operationen unterscheiden sich jedoch zum Teil stark. Datentypen werden also in der Programmierung verwendet, um Speicherbereichen eine konkrete Syntax und (Teil-)Semantik zuzuweisen. 19 Variablen - Konstanten - Literale Wenn diese Speicherbereiche veränderlich (mutable) sein sollen nennt man sie Variablen oder die nicht veränderlich Konstanten (constants, unmutable). Direkt in der Programmiersprache angegebene Werte für Operatoren nennt man Literale, z.b. 42, 3.14, Anton, usw. Man unterscheidet zusätzlich elementare (nicht weiter zerlegbare) und zusammengesetzte (zerlegbar in elementare) Datentypen
11 Objekte Der Begriff Objekt im Kontext der Objektorientierten Programmierung (Abkürzung OOP). Aus der Blickrichtung der Datentypen ist OOP eine Variante, bei der zusammengehörige Daten (Attribute) und die darauf arbeitende Programmlogik (Metoden) zu Einheiten zusammengefasst werden, den so genannten Objekten. 21 Prozedurales Programmieren Objektorientiertes Programmieren 22 11
12 Die Konzeption der Objekte erfolgt auf Basis der folgender Paradigmen (1) Abstraktion: Jedes Objekt im System kann als ein abstraktes Modell eines Akteurs betrachtet werden, der Aufträge erledigen, seinen Zustand berichten und ändern und mit den anderen Objekten im System kommunizieren kann, ohne offen legen zu müssen, wie diese Fähigkeiten implementiert sind (vgl. abstrakter Datentyp (ADT)). Kapselung: Objekte können den internen Zustand anderer Objekte nicht in unerwarteter Weise lesen oder ändern. Ein Objekt hat eine Schnittstelle, die darüber bestimmt, auf welche Weise mit dem Objekt interagiert werden kann. Polymorphie: Verschiedene Objekte können auf die gleiche Nachricht unterschiedlich reagieren. Wird die Zuordnung einer Nachricht zur Reaktion auf die Nachricht erst zur Laufzeit aufgelöst, dann wird dies auch späte Bindung (oder dynamische Bindung) genannt. 23 Die Konzeption der Objekte erfolgt auf Basis der folgender Paradigmen (2) Vererbung: Neue Arten von Objekten können auf der Basis bereits vorhandener Objekt-Definitionen festgelegt werden. Es können neue Bestandteile hinzugenommen werden oder vorhandene überlagert werden. (ohne Vererbung objektbasierter Programmierung). Klassen: Klassen sind Vorlagen, aus denen Objekte (Instanzen) zur Laufzeit erzeugt werden. Im Programm werden dann nicht einzelne Objekte, sondern eine Klasse gleichartiger Objekte definiert
13 Klassen sind die Konstruktionspläne für Objekte. Die Klasse entspricht in etwa einem Datentyp wie in der prozeduralen Programmierung, geht aber darüber hinaus: sie definiert zudem die Algorithmen, die auf diesen Daten operieren. Ähnlich zum abstrakten Datentyp (aber realisiert, d.h. konkret!) Zur Laufzeit eines Programms interagieren einzelne Objekte miteinander: wird als Grundmuster durch die Definition der einzelnen Klassen festgelegt. 25 Die Konzeption der Objekte erfolgt auf Basis der folgender Paradigmen (3) Methoden: Die einer Klasse von Objekten zugeordneten Algorithmen bezeichnet man auch als Methoden. Häufig wird der Begriff Methode synonym zu Funktion oder Prozedur oder Routine gebraucht, obwohl eine Funktion, Routine oder Prozedur eher als Implementierung einer Methode zu betrachten ist. Im täglichen Sprachgebrauch sagt man "Objekt A ruft Methode m von Objekt B auf." Spezielle Methoden zur Erzeugung bzw. "Zerstörung" von Objekten heißen Konstruktoren und Destruktoren
14 Objektorientierte Programmiersprachen wie Smalltalk und auch in Python arbeiten nach dem Prinzip alles ist ein Objekt: auch elementare Typen wie Ganzzahlen (Integer) werden durch Objekte repräsentiert. Viele Sprachen, unter anderem C++ und Java folgen allerdings nicht der reinen Lehre der Objektorientierung; daher sind dort elementare Typen keine vollwertigen Objekte, sondern müssen auf Methoden und Struktur verzichten. So wie die prozeduralen Programmierung durch Verfahren wie die strukturierte Programmierung verfeinert wurden auch Verfeinerungen der objektorientierten Programmierung: Entwurfsmuster (englisch design patterns), Design by Contract (DBC) und grafische Modellierungssprachen wie UML Extreme Programming aspektorientierte Programmierung 27 Zusammenfassung der Ideen und Konzepte Daten Adressen Variablen Datentypen abstrakte Datentypen Konstanten (Theorie) Literale Objekte (Praxis) (Bezeichner Syntax Semantik Namen, Polymorphie Abstraktion Symbole) Kapselung Klassen Vererbung 28 14
15 Zusammenfassung der Ideen und Konzepte Kontrollstrukturen (Vorgriff) imperativ strukturiertes / modulares objektorientiertes prozedural Programmieren Programmieren (Sub-)Routinen kein goto (Sprung) Methoden Module Nachrichten 29 Typisierung (1) Eine Typisierung (engl. typing) dient dazu, dass die Elemente und Einheiten der Programmiersprachen, wie z.b. Variablen, Funktionen oder Objekte (im Sinne der objektorientierten Programmierung) nur korrekt verwendet werden können. Ziel ist es, Programmierfehler der Art 5 + Anna so früh wie möglich zu erkennen, z.b. schon beim Eintippen in einem Syntax-gesteuerten Editor oder im Compiler/Interpreter oder durch das Laufzeitsystem abzufangen, insbesondere um eine Verschleppung von Laufzeitfehlern zu vermeiden. Diese verschleppten Fehler sind oft sehr schwer zu finden. Ein umgangssprachliches Beispiel für die dahinter liegende Problematik ist, dass man nicht Äpfel mit Birnen vergleichen soll
16 Typisierung (2) Typen liefern Bedingungen, deren Einhaltung bzw. Verletzung bei der Übersetzung oder späteren Ausführung vom Typsystem kontrolliert werden kann und somit eine Maßnahme gegen Programmierfehler darstellt. Man unterscheidet: starke Typisierung - schwache Typisierung (strong typing) (weak typing) dynamische Typisierung - statische Typisierung (dynamic typing) (static typing) 31 Starke - schwache Typisierung (1) Bei der starken Typisierung (oder strengen Typisierung) bleibt eine einmal durchgeführte Bindung zwischen Variable und Datentyp bestehen, es wird auch (möglichst) keine implizite Typkonvertierung vorgenommen. Eine nicht stark typisierte Sprache bezeichnet man als schwach typisiert. Leider ist das Konzept des strong typing alles andere als eindeutig. In der Literatur finden sich diverse Regeln, die sich teilweise gar widersprechen
17 Regeln fürs strong typing Typüberprüfungen zur Compile-Zeit; Typkonvertierungen generell verboten; Typkonvertierungen müssen explizit durchgeführt werden; die Sprache hat keine Mechanismen, um das Typ-System zu entgehen, wie etwa type casts (Typumwandlungen) in C; ein komplexes, fein abgestuftes System an Typen mit Sub-Typen; das Typ-System muss das Laufzeitverhalten eines Programmes garantieren. Versucht man alle bisher in der Literatur aufgestellten Regeln für strong typing auf bekannte Programmiersprachen anzuwenden, hält keine Sprache dieser Überprüfung stand: 33 Vorteile - Nachteile der statischen Typisierung Vorteile : Der Compiler kennt zu jeder Zeit den Typ eines Wertes (Datums) im Speicher, d.h. (1) Typfehler können zur Compilezeit, spätestens beim Binden erkannt werden, (2) Compiler erzeugt performanteren Code, weil Typprüfungen zur Laufzeit nicht nötig sind! Nachteile: (1) Variablen müssen vom Programmierer vor der Benutzung deklariert werden (insbesondere auch die Größe eines zusammengesetzten Datentyps), (2) die Übersetzer sind aufwendiger, weil dort mehr Aufwand für die Analyse anfällt und (3) viele effiziente Programmiertricks auf Datenebene (z.b. ändere einen kleinen Buchstaben a in einen großen A, durch Subtraktion von 20 (16) sind nicht möglich
18 Dynamische - statische Typisierung Bei der dynamischen Typisierung (engl. dynamic typing) erfolgt die Typzuweisung der Variablen zur Laufzeit eines Programmes durch das Laufzeitsystem, z.b. einer virtuellen Maschine. Dies erspart es dem Entwickler, die Typisierung von Hand vorzunehmen, bringt aber gewisse Nachteile für die Performance und bei der Fehlersuche mit sich. Bei der statischen Typisierung muss zur Übersetzungszeit der Datentyp von Variablen bekannt sein. Dies erfolgt in der Regel (vor der Benutzung) durch : die Deklaration (Bekanntmachung) der Variable beim Compiler oder Interpreter: Es ist damit zulässig, diese an anderen Stellen im selben Quelltext zu verwenden. 35 Vorteile - Nachteile Dynamische Typisierung Vorteile der dynamischen Typisierung: (1) Auswahl des Operators wird zur Laufzeit entschieden, einfaches Operator overloading und einfacheres "Generic Programming", (2) Wesentlich kürzere Compile-Zeiten, weil viele Überprüfungen entfallen; (3) Variablen müssen nicht deklariert werden (4) Variable muss nicht an festen Speicherbereich gebunden werden Nachteile: (1) Typ von Variable/Wert wird zur Laufzeit (jedesmal) überprüft Werte im Speicher müssen (unveränderlichen) Type-Tag haben, also geringere Performance (langsamer!) und mehr Speicherplatz (2) Debugger benötigt wesentlich höhere Funktionalität 36 18
19 Zusammenfassung static vs. dynamic typing und strong vs. weak typing sind orthogonal zueinander 37 WARNUNG Leider findet man häufig einen falscher Sprachgebrauch oder vielleicht auch Unverständnis über diese Konzepte: FALSCH ist: "strong" = "static und strong", oder gar: "strong" = "static", "C = strongly typed"
20 Typkonvertierung Wir unterscheiden in Programmiersprachen grundsätzlich zwei Arten von Typkonvertierungen: (1) implizite Typkonvertierung oder coercion (engl. Nötigung, Zwang) (2) explizite Typkonvertierung oder cast(ing) (engl eingießen, formen, werfen, ) 39 Implizite Typkonvertierung (1) finden wir sehr häufig bei Zahlen, Dabei ist eine Regel unterlegt, dass wenn zwei nichtgleiche Zahlentypen miteinander verknüpft werden sollen, zunächst zum allgemeineren (höheren) Typ gewandelt wird, also z.b. eine natürliche Zahl ganze Zahl reelle Zahl komplexe Zahl Das kann implizit geschehen, weil Verwechslungen kaum möglich sind und auch keine Informationen verloren gehen 40 20
21 Implizite Typkonvertierung (2) Fraglich wäre dies aber ggf. in folgendem Fall a ist eine ganze Zahl (integer), z.b. 4 b ist eine Zeichenkette (string), z.b. 22 Welchen Typ hat dann a + b? für ganze Zahlen wäre a + b die Addition und das Ergebnis eine ganze Zahl für Zeichenketten wäre a + b die Konkatenation und das Ergebnis 422 In diesen Fällen ist die Typwandlung nicht mehr durch allgemein übliche Konventionen gedeckt und in der Regel auch in Programmiersprachen nicht realisiert. 41 Expliziten Typwandlungen (1) Man unterscheidet prinzipiell drei Arten: checked: es wird zur Laufzeit überprüft, ob der Zieltyp mächtiger ist als der Quelltyp unchecked: keine Typüberprüfung zur Laufzeit, ggf. generiert die Hardware eine Fehlermeldung bit pattern: Daten werden in keiner Weise überprüft, das Bitmuster wird uminterpretiert
22 Expliziten Typwandlungen (2) Jede Programmiersprache hat dabei ihren eigenen Regelsatz: In Ada: werden die drei o.g. Arten unterstützt In C/C++: Ein cast ist entweder unchecked oder bitpattern, Informationen gehen ggf. verloren 1,3 wird zu 1 Gerade C++ hat diesbezüglich mehrere verschiedene Cast Operatoren: static_cast<type>(value_to_cast) dynamic_cast<type>(value_to_cast) const_cast<type>(value_to_cast) reinterpret_cast<type>(value_to_cast) 43 Typwandlung Wir sehen hieraus, das Typkonvertierung ein mächtiges aber durchaus nicht unproblematische Verfahren ist. Wir werden das Problem der Typkonvertierung insbesondere an unserer Beispielsprache Python noch mehrfach diskutieren
23 Zusammenfassung Daten und Informationen in Programmiersprachen Begriffe wie Variable, Konstante, Literale; Datentyp, abstrakter Datentyp, Objekte kennen gelernt und ganz nebenbei Basiskonzepte des OO-Programmierens kennen gelernt Typing und Typwandlung: casting und coercion 45 Fragen und (hoffentlich) Antworten 46 23
24 Ausblick Numerische Datentypen: allgemein und in Python Zeichenketten allgemein und in Python Danke für Ihre Aufmerksamkeit 47 24
Variablen. Datentypen. Objekte. Vorlesung
Vorlesung 3 Inhalt 1 Variablen Datentypen Objekte 2 1.1 Variablen 2 1.2 Zuweisungen 2 1.3 Datentyp und Abstrakter Datentyp (ADT) 4 1.4 Objekte 7 2 Typisierung 10 2.1 Starke / schwache Typisierung und statische
MehrEinleitung Typsystem Typisierung Zusammenfassung Literatur. Typisierung. Effiziente Programmierung. Thomas Schnieders
Typisierung Effiziente Programmierung Thomas Schnieders Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg 2018-04-26 Thomas Schnieders Typisierung 1
MehrObjektorientierte Programmierung (OOP)
orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,
MehrGliederung der Folien
1 Gliederung der Folien 1. Einführung 1.1. Gliederung 1.2. Literatur 1.3. Einstieg in Java 1.3.1. Geschichte von Java 1.3.2. Hello World 1.3.3. Übersetzen eines Java-Programms 1.4. Die Entwicklungsumgebung
Mehrn 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -
n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik n "Informatik" = Kunstwort aus Information
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
MehrProgrammiersprachen: Klassifizierung und Methoden. Programmier-Paradigmen. Grundlagen der Programmierung 2 (1.C) - 1 -
Programmiersprachen: Klassifizierung und Methoden Programmier-Paradigmen Grundlagen der Programmierung 2 (1.C) - 1 - Programmiersprachen: Begriffe Syntax Beschreibung der Programme als Texte let xyz =
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrInformatik I Das Typsystem (am Bsp. Python vs. C++)
Wozu Typen? Informatik I Das Typsystem (am Bsp. Python vs. C++) Sicherheit der Software (Internet, Atomanlagen, etc.) Wird die Platte formatiert, wenn man sich eine Webseite mit einem JPEG-Bild im Browser
MehrInformatik I Das Typsystem (am Bsp. Python vs. C++)
Informatik I Das Typsystem (am Bsp. Python vs. C++) G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Wozu Typen? Sicherheit der Software (Internet, Atomanlagen, etc.) Wird die Platte formatiert,
MehrIII.1 Prinzipien der funktionalen Programmierung - 1 -
1. Prinzipien der funktionalen Programmierung 2. Deklarationen 3. Ausdrücke 4. Muster (Patterns) 5. Typen und Datenstrukturen 6. Funktionale Programmiertechniken III.1 Prinzipien der funktionalen Programmierung
MehrGliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung
Gliederung n Teil I: Einleitung und Grundbegriffe l 1. Organisatorisches l 2. Grundlagen von Programmiersprachen n Teil II: Imperative und objektorientierte Programmierung l 1. Grundelemente der Programmierung
MehrProgrammierparadigmen
Programmierparadigmen Paradigma = Denkweise oder Art der Weltanschauung klassische Einteilung: Programmiersprache imperativ deklarativ prozedural objektorientiert funktional logisch Zusammenhänge tatsächlich
MehrProgrammierparadigmen A01 OOP. Programmierparadigmen
2013-10-09 Programmierparadigmen 1 185.A01 OOP Programmierparadigmen 2013-10-09 Programmierparadigmen 2 OOP Klassische Programmierparadigmen Paradigma = Denkweise oder Art der Weltanschauung klassische
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 2. Teil 18. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrDefinitionen/Vorarbeit zum Thema Java
Definitionen/Vorarbeit zum Thema Java Programmiersprachen: System von Wörtern und Symbolen, die zur Formulierung von Programmen für die elektronische Datenverarbeitung verwendet werden. Arten: z.b. Javascript
MehrBegleittext: Einführung in das Programmieren in Java für Nichtinformatiker
Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker Andreas Keese Institut f. Wissenschaftliches Rechnen TU Braunschweig 8. September 2014 Der Text, die Abbildungen und Programme
MehrProjekt 3 Variablen und Operatoren
Projekt 3 Variablen und Operatoren Praktisch jedes Programm verarbeitet Daten. Um mit Daten programmieren zu können, muss es Möglichkeiten geben, die Daten in einem Programm zu verwalten und zu manipulieren.
MehrEinführung in die Objektorientierung (OO)
Einführung in die Objektorientierung (OO) I) Warum OO? II) Grundbegriffe der OO III) IV) Darstellung von Klassen und Objekten Kapselung I) Warum OO? 1) Früher: Prozedurale / strukturierte Programmierung
MehrObjektorientierte Programmierung
Objektorientierte Programmierung Objektorientierte Programmierung Ronja Düffel WS2018/19 09. Oktober 2018 Objektorientierte Programmierung Überblick 1 Was ist das? 2 Wie geht das? 3 Warum gibt es das?
MehrEinführung in die Informatik I (autip)
Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis
MehrKapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08
Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für
Mehr3. Java - Sprachkonstrukte I
Lernziele 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken, Typkonversionen Sie kennen die grundlegensten Bausteine
MehrKlassen als Objekte. Smalltalk vs. Objective-C. Self-Nachrichten an Klassen in Objective-C. Klassen als Objekte. Smalltalk: Everything is an object
Smalltalk vs. Objective-C Klassen als Objekte Klassendeklarationen Selektoren als first-class values Objekt-Erzeugung Implementierung: Eigene VM vs. Einbettung in C Smalltalk: Everything is an object Klassen
MehrEinführung in die Programmierung
Einführung in die Programmierung by André Karge Übung - Operatoren, Methoden, Primitives 25. Oktober 2018 Einführung in die Programmierung WS18/19 André Karge 1/29 Notizen Standard Linux Befehle: http://images.linoxide.com/linux-cheat-sheet.pdf
Mehr1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r
1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen
Mehr1. Referenzdatentypen: Felder und Strings
1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen
MehrKapitel 2: Python: Ausdrücke und Typen. Grundlagen der Programmierung 1. Holger Karl. Wintersemester 2016/2017. Inhaltsverzeichnis 1
Kapitel 2: Python: Ausdrücke und Typen Grundlagen der Programmierung 1 Holger Karl Wintersemester 2016/2017 Inhaltsverzeichnis Inhaltsverzeichnis 1 Abbildungsverzeichnis 2 Liste von Definitionen u.ä. 2
MehrPraxisbuch Objektorientierung
Bernhard Lahres, Gregor Rayman Praxisbuch Objektorientierung Von den Grundlagen zur Umsetzung Galileo Press 1.1 Was ist Objektorientierung? 11 1.2 Hallo liebe Zielgruppe 12 1.3 Was bietet dieses Buch (und
Mehr1 Bindung. 2 Typen. Prof. Dr. Dr. h.c. Gerhard Goos (IPD) Höhere Programmiersprachen Wintersemester 2005/ / 89
1 Bindung 2 Typen Prof. Dr. Dr. h.c. Gerhard Goos (IPD) Höhere Programmiersprachen Wintersemester 2005/2006 31 / 89 Bindung Zwei Formen der Bindung Bedeutung Zuordnung (freie) Variable (Bezeichner) zu
MehrDas diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen
Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser
Mehr13 Abstrakte Datentypen
13 Abstrakte Datentypen Bisher: Konkrete Datentypen Menge von Elementen Operationen auf den Elementen (Konstruktoren, Selektoren, Typprädikate) Eigenschaften abgeleitet Jetzt: Abstrakte Datentypen (ADT)
MehrAuf einen Blick. 1 Einleitung Die Basis der Objektorientierung Die Prinzipien des objektorientierten Entwurfs...
Auf einen Blick Auf einen Blick 1 Einleitung... 15 2 Die Basis der Objektorientierung... 29 3 Die Prinzipien des objektorientierten Entwurfs... 41 4 Die Struktur objektorientierter Software... 67 5 Vererbung
MehrEntwurfsmuster (Design Patterns)
Entwurfsmuster (Design Patterns) SEP 303 Entwurfsmuster (Design Patterns) In der alltäglichen Programmierarbeit tauchen viele Probleme auf, die man schon einmal gelöst hat und die man in der Zukunft wieder
MehrProgrammiersprachen und Übersetzer
Programmiersprachen und Übersetzer Sommersemester 2009 5. April 2009 Vorteile bei der Verwendung höherer Programmiersprachen Vorteile bei der Verwendung höherer Programmiersprachen 1. Einfache Notation
MehrObjektorientierte Programmierung II
Objektorientierte Programmierung II OOP I Erlaubt Entwicklers, im Problemraum zu denken und zu arbeiten. Das Problem wird in eine Menge von Objekten zerlegt. Objekte wirken aufeinander, um das Problem
MehrObjektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
MehrKapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp
Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp ZAIK Universität zu Köln WS 07/08 1 / 6 Datentypen Arten von Datentypen
Mehr3. Java - Sprachkonstrukte I
84 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken, Typkonversionen Namen und Bezeichner 85 Ein Programm (also Klasse)
Mehr3. Java - Sprachkonstrukte I
Namen und Bezeichner Ein Programm (also Klasse) braucht einen Namen 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken,
MehrFunktionale Programmiersprachen
Funktionale Programmiersprachen An den Beispielen Haskell und Erlang Übersicht Programmiersprachen λ-kalkül Syntax, Definitionen Besonderheiten von funktionalen Programmiersprache, bzw. Haskell Objektorientierte
MehrC++ - Objektorientierte Programmierung Konstante und statische Elemente
C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja
MehrEinführung in die Programmierung
Einführung in die Programmierung Teil 3: Daten und Algorithmen Prof. Dr. Peer Kröger, Florian Richter, Michael Fromm Wintersemester 2018/2019 Übersicht 1. Datendarstellung durch Zeichenreihen 2. Syntaxdefinitionen
MehrEinstieg in die Informatik mit Java
1 / 25 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 25 1 Die Philosophie 2 Definition
MehrEinführung in die Programmiersprache Java II
Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden
MehrJava I Vorlesung Imperatives Programmieren
Java I Vorlesung 2 Imperatives Programmieren 3.5.2004 Variablen -- Datentypen -- Werte Operatoren und Ausdrücke Kontrollstrukturen: if Imperatives Programmieren Im Kern ist Java eine imperative Programmiersprache.
MehrJava Datentypen und Variablen
Informatik 1 für Nebenfachstudierende Grundmodul Java Datentypen und Variablen Kai-Steffen Hielscher Folienversion: 24. Januar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht
MehrÜberblick. 6. Konstruktor und Destruktor - obligatorische Elementfunktionen einer Klasse
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen
MehrOperatoren in C/C++ und Java:
Operatoren in C/C++ und Java: C/C++/Java hat eine riesige Anzahl von Operatoren (im Vergleich zu anderen Programmiersprachen). Außer den üblichen arithmetischen Operatoren +, -, *, / (und % für Ganzzahlen)
MehrPROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy
PROCESSING EINE ZUSAMMENFASSUNG Created by Michael Kirsch & Beat Rossmy INHALT 1. Typen und Operatoren 1. Datentypen 3. Klassen und Objekte 1. Klassen und Objekte 2. Operatoren 2. Konstruktor 3. Typkonversion
MehrProgrammiersprache. Emily & rica
Programmiersprache Emily & rica inhaltsangabe Programmiersprache Def inition/funktion Arten Gängige Algorithmus/Syntax Compiler, Interpreter Def inition Unterscheidung Vor- und Nachteile Compiler/ Interpreter
MehrSpezifikation von Kommunikationssystemen
1 / 25 Spezifikation von Kommunikationssystemen 8. Abstrakte Datentypen und Objektorientiertes SDL Prof. Jochen Seitz Fachgebiet Kommunikationsnetze 23. Mai 2018 2 / 25 Übersicht 1 Abstrakte Datentypen
MehrObjektorientierte Programmierung
Bernhard Lahres, Gregor Rayman Objektorientierte Programmierung Das umfassende Handbuch Galileo Press 1.1 Was ist Objektorientierung? 13 1.2 Hallo liebe Zielgruppe 14 1.3 Was bietet dieses Buch (und was
MehrOOP. Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten.
Polymorphismus OOP Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Vererbung: Erlaubt Code zwischen verwandten Typen wiederverwendet sein.
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel Alina Stürck WS2016/17 11. Oktober 2016 Objektorientierte Programmierung OOP 1 Was ist das? 2 Wie geht das? 3 Warum
MehrALGOL 68 im Aspekt einer modernen Programmiersprache???
ALGOL 68 im Aspekt einer modernen Programmiersprache??? General-purpose-Programmiersprache: Ein sehr wichtiges Kriterium ist die Möglichkeit, alle Algorithmen (=Lösungsverfahren) in einer Programmiersprache
MehrDatentypen. strukturierte. elementare. skalare reelle statische dynamische int. list. real float. set. record. inhomogen. homogen
Datentypen elementare strukturierte skalare reelle statische dynamische int real float list homogen set inhomogen record Der elementare Datentyp nat bestehend aus einer Objektmenge und den darauf definierten
Mehr3. Klassen Statische Komponenten einer Klasse. Klassenvariablen
Klassenvariablen Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit aller Studentenobjekte.
MehrÜbersicht. Vorstellung des OO-Paradigmas
Java, OO und UML Vorstellung des OO-Paradigmas Übersicht Umsetzung des OO-Paradigmas in Java Einführung (seeeeeehr rudimenter) in UML zur graphischen Darstellung von OO Grammatik und Semantik von Java
MehrAbstrakte Syntax von Prolog (1)
3. Prolog Syntax 3-1 Abstrakte Syntax von Prolog (1) Abstrakte und konkrete Syntax: Abstrakte Syntax: Nur Datenstrukturen, die der Parser anlegt (z.b. Operatorbaum). Konkrete Syntax: Zeichenketten, die
MehrInhaltsverzeichnis. 4.9 Aufgaben... 63
Inhaltsverzeichnis 1 Einleitung 1 1.1 Programmierung... 1 1.2 Objektorientierte Programmierung... 2 1.3 Voraussetzungen und Ziele dieses Buches... 3 1.4 Aufbau dieses Buches... 4 2 Das imperative Hamster-Modell
MehrEinstieg in die Informatik mit Java
1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren
MehrÜbungen zur Vorlesung Wissenschaftliches Rechnen I
Übungen zur Vorlesung Wissenschaftliches Rechnen I Nicolas Gauger, René Lamour, Hella Rabus Wintersemester 2007/2008 Programmierung - Einführung Programmierung - Einführung Berechnung einer Formel y =
MehrKapitel 2: Python: Ausdrücke und Typen. Grundlagen der Programmierung 1. Holger Karl. Wintersemester 2018/2018. Inhaltsverzeichnis 1
Kapitel 2: Python: Ausdrücke und Typen Grundlagen der Programmierung 1 Holger Karl Wintersemester 2018/2018 Inhaltsverzeichnis Inhaltsverzeichnis 1 Abbildungsverzeichnis 2 Liste von Definitionen u.ä. 2
MehrEinstieg in die Informatik mit Java
1 / 16 Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Einführung 2 Element-Klassen 3 Lokale Klassen 4 Anonyme Klassen
MehrProgrammieren in Java
Einführung in die (imperative) Programmierung 2 Wiederholung: Allgemein Hohe Programmiersprache Compiler Interpreter Maschinensprache Zielsystem 3 Wiederholung: Java Java Compiler Bytecode JRE Just-In-Time
MehrAbschnitt 5: Grundlagen der funktionalen und imperativen Programmierung
Abschnitt 5: Grundlagen der funktionalen und imperativen Programmierung 5. Grundlagen der funktionalen und imperativen Programmierung 5.1 Sorten und abstrakte Datentypen 5.2 5.3 in Java 5.4 EXKURS: Funktionale
MehrAbschnitt 2: Daten und Algorithmen
Abschnitt 2: Daten und Algorithmen 2. Daten und Algorithmen 2.1 Zeichenreihen 2.2 Datendarstellung durch Zeichenreihen 2.3 Syntaxdefinitionen 2.4 Algorithmen 2 Daten und Algorithmen Einf. Progr. (WS 08/09)
MehrProgrammiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen
Organisation und Einführung Studiengang Informatik Universität Bremen Sommersemester 2010 (Vorlesung am Montag, der 12. April 2010) (Montag, der 12. April 2008) 1 Vorstellung 2 Organisation 3 Einführung
MehrObjektorientierte Programmierung und Klassen
Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 16.5.07 G. Bohlender (IANM UNI Karlsruhe) OOP
Mehr8 Typwandlungen. 8.1 Automatische Typkonvertierungen
8 Typwandlungen Hier geben wir Ihnen weitere Informationen zu Goto Java 2, die Sie ergänzend zu Hausaufgabe 3 lesen sollten. Sie sollten für die weiteren Ausführungen zunächst in Go To Java Kapitel 4.6
Mehr1 Programmiersprachen 1.1 1
1 Programmiersprachen 1.1 1 Meilensteine imperativer Programmiersprachen (teilweise objektorientiert) Fortran 1960 Cobol Algol 60 PL/I Algol W Simula 67 Algol 68 1970 Pascal C Smalltalk Modula 1980 Ada
MehrEinführung in die Programmierung mit VBA
Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen
MehrCompilerbau für die Common Language Run-Time
Compilerbau für die Common Language Run-Time Syntax und Semantik von Programmiersprachen 2 Compilerbau Sprachbeschreibung vs. Implementierung Beschreibung: formale oder informale (engl.) Lexik, Syntax,
MehrInformatik I: Einführung in die Programmierung 3. Werte, Typen, Variablen und Ausdrücke
Informatik I: Einführung in die Programmierung 3. Werte,, n und Albert-Ludwigs-Universität Freiburg Peter Thiemann 30. Oktober 2018 1 30. Oktober 2018 P. Thiemann Info I 3 / 39 Bits Der Computer repräsentiert
MehrAbstrakte Datentypen. Daten und Operationen Mögliche Implementierungen Veränderbare Typen, Ergebnistypen
Abstrakte Datentypen Daten und Operationen Mögliche Implementierungen Veränderbare Typen, Ergebnistypen Einheit von Daten und Operationen Daten und Operationen auf Daten gehören zusammen Konto: Daten:
MehrDas Interface-Konzept am Beispiel der Sprache Java
Das Interface-Konzept am Beispiel der Sprache Java Klaus Kusche, November 2013 Inhalt Motivation: Wozu braucht man Interfaces? Interfaces in Java Was spricht gegen die große Lösung? Voraussetzungen Kenntnisse
MehrAbschnitt 5: Grundlagen der funktionalen Programmierung
Abschnitt 5: Grundlagen der funktionalen Programmierung 5. Grundlagen der funktionalen Programmierung 5.1 Sorten und abstrakte Datentypen 5.2 5.3 in Java 5.4 Funktionale Algorithmen Peer Kröger (LMU München)
MehrÜberblick. R.Grossmann / P. Sobe 1
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 3. Grundlagen des Typkonzepts von C++ 4. Ziele der Objektorientierung 5. Objekt und Klasse, Elementfunktionen
MehrSchwerpunkte. 8. Ausdrücke, Operatoren (einfache Typen) Beispiel: Schaltjahr Test. Einführendes Beispiel: Grundprobleme
Schwerpunkte Vollständige und unvollständige Auswertung 8. Ausdrücke, Operatoren (einfache Typen) Teil 1 Seiteneffekte Overloading: Überladung von Operatoren Implizite und explizite (cast) Typumwandlung
MehrInnere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java
Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Innere Klassen 13.06.07 1 / 11
MehrInhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2
iii Inhaltsverzeichnis Kurseinheit 1 1 Von der Aufgabenstellung zum Programm... 1 1.1 Motivation... 1 1.2 Softwareentwicklung... 2 1.3 EXKURS: Unified Modeling Language (UML)... 4 2 Anforderungsanalyse...
MehrEinstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4
MehrAlgorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c 2009 D.Rösner
MehrInhaltsverzeichnis. Vorwort
Inhaltsverzeichnis Vorwort XI 1 C/C++-Grundlagen 1 1.1 Einführung................................ 1 1.1.1 Entwicklungsgeschichte: Von K&R-C nach C++........ 1 1.1.2 Beispielprogramme.......................
MehrEIGENSCHAFTEN VON SPRACHEN
Vorlesung und Übung Universität Paderborn Wintersemester 2016/2017 Dr. Peter Pfahler EIGENSCHAFTEN VON SPRACHEN EWS, WS 2016/17, Pfahler C-1 Einführung Sprachen in der Informatik werden für bestimmte Zwecke
MehrKlassenmethoden. Klassenvariablen. Für das Auslesen des Studentenzählers definieren wir eine öffentliche Klassenmethode:
Klassenvariablen Klassenmethoden Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare
MehrGliederung. Algorithmen und Datenstrukturen II. Java: Objektorientierung. Java: Objektorientierung. Objektorientierung in JAVA. D.
Gliederung Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c
MehrObjektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein
Objektorientierung Klassen und Objekte Dr. Beatrice Amrhein Überblick Konzepte der Objektorientierten Programmierung Klassen und Objekte o Implementierung von Klassen o Verwendung von Objekten 2 Konzepte
MehrKapitel 15: Von dynamischen zu statischen Typen. Grundlagen der Programmierung 1. Holger Karl. Wintersemester 2018/2018. Inhaltsverzeichnis 1
Kapitel 15: Von dynamischen zu statischen Typen Grundlagen der Programmierung 1 Holger Karl Wintersemester 2018/2018 Inhaltsverzeichnis Inhaltsverzeichnis 1 Abbildungsverzeichnis 2 Liste von Definitionen
Mehr2. JAVA-Programmierung. Informatik II für Verkehrsingenieure
2. JAVA-Programmierung Informatik II für Verkehrsingenieure Problem-Algorithmus-Umsetzung Problemstellung Algorithmus Umsetzung 2 Beispiele für Algorithmen 3 Definitionsversuch Algorithmus Anleitung, wie
MehrAbschnitt 10: Typisierte Klassen
Abschnitt 10: Typisierte Klassen 10. Typisierte Klassen 10.1 Einführung: Grenzen der Typ-Polymorphie durch Vererbung 10.2 Grundlagen 10.3 Vererbung bei typisierten Klassen 10.4 Wildcards, obere und untere
MehrSPARK95. Ingmar Wirths. 12. Juli 2007
SPARK95 Ingmar Wirths 12. Juli 2007 Motivation Ada wurde zur Programmierung von Mikroprozessoren entwickelt. Motivation Ada wurde zur Programmierung von Mikroprozessoren entwickelt. Ein Systemversagen
MehrProgrammierung in C/C++
Programmierung in C/C++ Mit einer grundlegenden Einführung in die Objektorientierung Univ.-Prof. Hon.-Prof. Dr. Dieter Roller Mit 134 Bildern Kontakt & Studium Band 682 Herausgeber: Prof. Dr. Birgit Baum
MehrOOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik
MehrInterdisziplinäre fachdidaktische Übung: Modelle für Sprachen in der Informatik. SS 2016: Grossmann, Jenko
Interdisziplinäre fachdidaktische Übung: Modelle für Sprachen in der SS 2016: Grossmann, Jenko Die Beschreibung orientiert sich am Begriffssystem der Beschreibung natürlicher Sprachen Sprache in der steht
Mehr