43
INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen Präprozessoranweisungen Libraries Funktionen und Klassen

Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

  • Upload
    dodieu

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.108.05.2011

Dr.-Ing. habil. Jörg Wollnack

Inhalte

Informatik IInformatik I

Einführung

Algorithmus, Programmiersprache, Compiler und Linker

Datentypen

Kontrollstrukturen

Präprozessoranweisungen

Libraries

Funktionen und Klassen

Page 2: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.208.05.2011

Dr.-Ing. habil. Jörg Wollnack

Bits, Bytes und Softwaresysteme

0 | 1 wahr | falschSchalter ein | Schalter ausSpannung ein | Spannung aus

Duale messbare Zustände, die sich gegenseitig ausschließen.

Elementare InformationMit Bits lässtsich alles end-liche codieren

(Zahlen, Texte,Musik, Bilder,usw.)

Page 3: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.308.05.2011

Dr.-Ing. habil. Jörg Wollnack

1 2 2 1 0 1 2{0,1} { }, 2n nn n Mx x x x x M E E E M− − ∈ ↔ ∈ =� �

Codierung von Daten durch Bits

Der Menge der Bitmuster in einer Stellenschreib-weise mit n Ziffern können eineindeutig M = 2n

Elemente einer Menge M zugeordnet werden. Diese Zuordnungstabelle definiert die Codierung der Dualzahlen.

dual <lat.> (eine Zweiheit bildend); ein duales System

kodieren, in der Technik meist codieren (durch einen Kode verschlüsseln)

Page 4: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.408.05.2011

Dr.-Ing. habil. Jörg Wollnack

1 2 2 1 0

1 2

0 0 0 0 0 0

1 0 0 0 0 1

2 0 0 0 1 0

3 0 0 0 1 1

4 0 0 1 0 0 { }, 2

5 0 0 1 0 1

6 0 0 1 1 0

7 0 0 1 1 1

2 1 1 1 1 1

n n

nM

n

i x x x x x

E E E M

− −

↔ =

� �

� � � � �

Codierung von Daten durch Bits

Page 5: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.508.05.2011

Dr.-Ing. habil. Jörg Wollnack

Steuerzeichen

Wiki

Page 6: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.608.05.2011

Dr.-Ing. habil. Jörg Wollnack

Druckzeichen

Wiki

Page 7: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.708.05.2011

Dr.-Ing. habil. Jörg Wollnack

Literatur

Kirch, U.; Prinz, P.: C++ Lernen und professionell anwenden,5. aktualisierte Auflage 2010, ISBN 978-3-8266-9143-0

Louis, D.: C/C++ Das komplette Programmierwissen für Studium und Job, ISBN 978-3-8722-4582-3

oder jedes andere Lehrbuch, das Ihnen gefällt.

Page 8: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.808.05.2011

Dr.-Ing. habil. Jörg Wollnack

Blume

Absolute positioning accuracy requires teaching

Separation of plant business and programming

Roboter Offline Programmierung

Page 9: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.908.05.2011

Dr.-Ing. habil. Jörg Wollnack

Vektor<double> MessPointsIst(iDEF_DIMHomogeneKoodinaten),XYZ1Pos(iDEF_DIMHomogeneKoodinaten);

HMatrix<double> HT_RA;

::::::::::::::::::::::::::::::::

HT_RA.RPY(m_XYZAktuator.GetPoseRA());PosErrorA = XYZ1Pos - HT_RA * MessPointsIst;

Objektorientierter Programmentwurf

MS Visual C++MS Visual C++

Page 10: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.1008.05.2011

Dr.-Ing. habil. Jörg Wollnack

Algorithmus

Page 11: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.1108.05.2011

Dr.-Ing. habil. Jörg Wollnack

Intuitive Algorithmus-Definition

Ein Algorithmus definiert eine präzise, eindeutige und endliche Beschreibung elementarer ausführbarer Verarbeitungsschritte.

Dies benötigt eine Sprache mit Wörtern (Tokens) und eine Syntax mit der sich Sätze beschreiben lassen.

Eine Syntax ist ein System von Regeln nach denen wohlge-formte und erlaubte Sätze bzw. Aussagen aus den Wörtern gebildet werden.

Wörter der Sprache werden aus einem Alphabet von Zeichen gebildet.

Aussagen können wahr oder falsch sein.

Page 12: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.1208.05.2011

Dr.-Ing. habil. Jörg Wollnack

Formale- oder Programmiersprachen

Programmiersprachen in der Informatik, Kalküle oder logische Beschreibungen sind durch formale Sprachen gekennzeichnet.

Kennen Sie Beispiele?

Page 13: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.1308.05.2011

Dr.-Ing. habil. Jörg Wollnack

1 2y x x= +

1

2

12456

45789

111

____________

58245

x

x

y

Ist dies der Algorithmus?

Wer ist der Prozessor/Ausführende?

Was ist alles festzulegen?

Algorithmus 1

Page 14: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.1408.05.2011

Dr.-Ing. habil. Jörg Wollnack

1 2y x x= + Die Variablen x1, x2 und y könnten

natürliche Zahlen,reelle Zahlen, komplexe Zahlen,boolsche/logische Ausdrücke,Zeichenfolgen usw.

sein.

Sie könnten auch Vektoren oder Matrizen mit obigen Elementen sein.

Algorithmus 2

Page 15: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.1508.05.2011

Dr.-Ing. habil. Jörg Wollnack

1 2y x x= + Der zweistellige Additionsoperator + und der Äquivalenz-Operator = haben im Allgemeinen für die unterschiedlichen Objekte/Variablen andere Bedeutungen.

Diese sind eindeutig zu beschreiben.

Die interpretierende oder zu übersetzende Instanz muss diese Kenntnisse oder Informationen besitzen, damit der richtige Algorithmus zur Ausführung der Operatoren generiert werden kann.

Algorithmus 3

Page 16: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.1608.05.2011

Dr.-Ing. habil. Jörg Wollnack

Eine Programmiersprache benötigt Datentypen und Operatoren auf den Datentypen.

Wir Menschen entwickeln motiviert sowohl durch experimentelle (messende) Untersuchungen der Welt als auch theoretische Überlegungen neue Objekte und Operatoren.

Die hierbei entstehenden Algebren können konstruktive Erweiterungen oder Teilmengen anderer sein (komplexe Zahlen, Vektoren, Matrizen usw.).

Algorithmus 4

Page 17: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.1708.05.2011

Dr.-Ing. habil. Jörg Wollnack

Wir Menschen entwickeln motoviert sowohl durch experimentelle (messende) Untersuchungen der Welt als auch theoretische Überlegungen neue Objekte und Operatoren.

Die hierbei entstehenden Algebren können konstruktive Erweiterungen oder Teilmengen anderer sein (komplexe Zahlen, Vektoren, Matrizen usw.).

Objektorientierte Programmiersprachen I

Page 18: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.1808.05.2011

Dr.-Ing. habil. Jörg Wollnack

Entwicklung neuer Datenobjekte mit spezifischen Memberfunktionen und Operatoren.

Entwicklung neuer Datenobjekte als Erweiterung oder Restriktion bestehender Datenobjekte im Sinne von Ober- und Untermengen.

Beispiel: Die Algebra der reellen und komplexen Zahlen soll nicht nur in der Mathematik eine gleiche Schreibweise ermöglichen. Gilt analog auch für die Matrix- und Vektoralgebra.

Objektorientierte Programmiersprachen II

Member := Mitglied des Objekts/der Klasse

Page 19: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.1908.05.2011

Dr.-Ing. habil. Jörg Wollnack

Vorteile objektorientierte Programmiersprachen I

Menschliche Schreibweisen und Codierungen weisen hinsichtlich der Muster eine höhere Verwandtschaft auf. Dies erleichtert dem Menschen die Assoziation und das Verständnis.

Die kompakte Schreibweise kann erheblich umfangreichen Code bei der Compilierung generieren.

Eine höhere Wiederverwertbarkeit des Codes ist möglich.

Potenziell wirtschaftlichere und sicherere Programmer-stellung

Potenziell geringere Wartungskosten

usw.

Page 20: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.2008.05.2011

Dr.-Ing. habil. Jörg Wollnack

Vorteile objektorientierte Programmiersprachen II

Klasse: Die Klasse wird durch die Attribute/Eigenschaften in der Klassendefinition festgelegt. Das Verhalten des Objekt wird durch die Methoden (Memberfunktionen und Operatoren) festgelegt.

Datenkapselung: Die Programmierung kann Implemen-tierungsdetails verbergen. Ein direkter Zugriff auf interne Daten kann unterbunden werden, so dass ein wohldefiniertes Interface besteht, dass nicht umgangen werden kann.

Polymorphie: Verschiedene Objekte können auf die Gleiche Information unterschiedlich reagieren. Reaktion wird erst zur Laufzeit festgelegt.

Page 21: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.2108.05.2011

Dr.-Ing. habil. Jörg Wollnack

Vererbung: Eine abgeleitete Klasse kann die Attribute und Methoden der Basisklasse besitzen. Neue Attribute und Methoden können hinzugenommen werden. Vorhandene Methoden können überlagert werden.

Weitere Eigenschaften, die später erklärt werden.

Vorteile objektorientierte Programmiersprachen III

Page 22: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.2208.05.2011

Dr.-Ing. habil. Jörg Wollnack

Compiler und Linker

Page 23: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.2308.05.2011

Dr.-Ing. habil. Jörg Wollnack

Compiler

Linker

#include#include

<DateiName1.h> “DateiName2.h”

SourceCode_1.cpp :SourceCode_n.cpp

Code_1.obj :Code_n.obj

*.obj

prog.exe

*.lib

Compiler und Linker

Der Compiler übersetzt Hochsprachenprogrammein Maschinenprogramme

Der Linker bindet mehrere Objektdateien zu einem Programm und löst externeReferenzen über *.obj und *.lib auf.

Page 24: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.2408.05.2011

Dr.-Ing. habil. Jörg Wollnack

Compiler

PräprozessorParserCode-GeneratorOptimiererAssembler

Der Präprozessor ersetzt Zeichenketten durch andere Zeichenketten, entfernt Kommentare und redundante Trennzeichen

Der Parser analysiert und zerlegt den Text.

Der Code-Generator erzeugt den Assembler- bzw. Maschinencode

Der Optimierer optimiert hinsichtlich Programmgröße und –geschwindigkeit

Der Assembler erzeugt den echten ausführbaren Maschinencode

Compiler-Schritte

Page 25: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.2508.05.2011

Dr.-Ing. habil. Jörg Wollnack

Entwicklungsumgebung

Integrated Development Environment (IDE)

Page 26: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.2608.05.2011

Dr.-Ing. habil. Jörg Wollnack

Editor Programmeingabe

Projektverwaltung Projektdefinition, Compilierung usw.

Debugger Programmstopp und schrittweise Ausführung

Profiler Analyse des Laufzeitverhaltens

Visuelle Unterstützung des Menschen durch Syntax Highlighting

Visuelle Unterstützung von Klassenbibliotheken Klassen-Hierarchie-Grafik

Visueller Entwurf von Menüs und Dialogen mit automatischer Programmgenerierung

Aufgaben der Entwicklungsumgebung

Wird am Compiler erläutert!

Page 27: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.2708.05.2011

Dr.-Ing. habil. Jörg Wollnack

// Main-Programm int main(int argc, TCHAR* argv[], TCHAR* envp[]) { try { int iRetCode; if(iRetCode = WinInit() != 0) throw(iRetCode); //-----------------------------------------------------------------------------------------------------

Hier steht Ihr Programm!!!!! //----------------------------------------------------------------------------------------------------- _getch(); // warte auf Tastatureingabe return(0); } catch(int iErrorCode) { _getch(); // warte auf Tastatureingabe return iErrorCode; } }

Syntax Highlighting

Page 28: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.2808.05.2011

Dr.-Ing. habil. Jörg Wollnack

Programmiersprachen

Page 29: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.2908.05.2011

Dr.-Ing. habil. Jörg Wollnack

Allgemeine Syntax C++

// Kommentarzeile (mit C++ eingeführt)

/* keine /* Verschachtelungen */ erlaubt */

Page 30: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.3008.05.2011

Dr.-Ing. habil. Jörg Wollnack

Namensgebung Programmiersprachen

Reservierte Worte sind nicht zulässig!

Page 31: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.3108.05.2011

Dr.-Ing. habil. Jörg Wollnack

Ausgewählte reservierte Worte C++

Page 32: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.3208.05.2011

Dr.-Ing. habil. Jörg Wollnack

Schlüsselwort Beschreibung

asm Schlüsselwort, das die Integration von Assembler-Befehlen in den Quelltext erlaubt.

auto Die automatische Speicherklasse.

break Befehl, mit dem for-, while, switch- und do...while-Schleifen direkt verlassen werden.

case Befehl, der innerhalb der switch-Anweisung verwendet wird.

char Der einfachste Datentyp von C.

const Datenmodifizierer, der verhindert, dass eine Variable geändert wird. Siehe volatile.

continue Befehl, der den aktuellen Durchlauf einer for-, while oder do...while-Schleife beendet und den nächsten Schleifendurchlauf einleitet.

default Befehl, der innerhalb von switch-Anweisungen verwendet wird, um die Fälle abzufangen, die nicht von den case-Blöcken bearbeitet werden.

do Schleifenbefehl, der zusammen mit der while-Anweisung verwendet wird. Die Schleife wird immer mindestens einmal ausgeführt.

double Datentyp, der Fließkommawerte doppelter Präzision aufnehmen kann.

else Anweisung, die einen alternativen Anweisungsblock einleitet, der ausgeführt wird, wenn eine if-Anweisung als FALSCH ausgewertet wird.

enum Datentyp, der die Deklaration von Variablen erlaubt, die nur bestimmte Werte übernehmen.

extern Datenmodifizierer, der darauf hinweist, dass eine Variable an anderer Stelle im Programm deklariert wird.

float Datentyp, der für Fließkommazahlen verwendet wird.

for Schleifenbefehl, der aus Initialisierungs-, Inkrementierungs- und Bedingungsabschnitten besteht.

goto Befehl, mit dem an eine vordefinierte Marke im Programm gesprungen werden kann.

if Befehl, der den Programmfluss auf der Basis von Wahr/Falsch-Entscheidungen steuert.

int Datentyp, der Integer-Werte aufnimmt.

long Datentyp, der größere Integer-Werte als int aufnehmen kann.

register Speichermodifizierer, der angibt, dass eine Variable, wenn möglich, im Register abgelegt werden soll.

return Befehl, mit dem die aktuelle Funktion beendet und die Programmausführung an die aufrufende Funktion zurückgegeben wird. Der Befehl kann gleichzeitig dazu verwendet werden, einen einzelnen Wert zurückzugeben.

short Datentyp, in dem Integer-Werte gespeichert werden. Er wird eher selten verwendet und hat auf den meisten Computern die gleiche Größe wie int.

signed Modifizierer, der anzeigt, dass eine Variable sowohl positive als auch negative Werte annehmen kann. Siehe unsigned.

sizeof Operator, der die Größe eines Elements in Byte zurückgibt.

static Modifizierer, der anzeigt, dass der Compiler den Wert einer Variablen beibehalten soll.

struct Schlüsselwort, mit dem C-Variablen beliebiger Datentypen zu einer Gruppe zusammengefasst werden können.

switch Befehl, mit dem der Programmfluss in eine Vielzahl von Richtungen verzweigen kann. Wird zusammen mit der case-Anweisung verwendet.

Reservierte Worte C

Page 33: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.3308.05.2011

Dr.-Ing. habil. Jörg Wollnack

catch Fehlerbehandlung (fangen)inline Code direkt einsetzentemplate Typenvariable Vorlage einer Klasse class Klassenobjektnew Speicher anlegenthis Pointer auf Klassenobjekt delete Speicher frei gebenoperator Operator einer Klasse definierenthrow Fehlerbehandlung (werfen)except Fehlerbehandlungprivate Private Objekte einer Klassetry Fehlerbehandlungfinally Fehlerbehandlungprotected Geschützte Objekte einer Klassevirtual Virtuelle Member einer Klassefriend Freund einer Klassepublic Objekte Sichtbar in einer Klasse

Auszug reservierter Worte / Tokens

Page 34: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.3408.05.2011

Dr.-Ing. habil. Jörg Wollnack

Headerund

Includes

Page 35: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.3508.05.2011

Dr.-Ing. habil. Jörg Wollnack

Verwendung von Header-Dateien I

Includes, wenn möglich, am Anfang von Programmen.

#include-Direktive verweist nur auf eine Datei (keine Liste erlaubt)

#include <DateiName.ext>In spitzen Klammern wird Suchliste abgearbeitet. Suchliste ist im Environment des Compilers definiert.

#include “..\..\Dir\Datei.ext“In Apostroph-Zeichen stehende PfadDateiNameExtension bezieht sich auf Directory des Source. Relative Pfade sind zulässig.

?

Page 36: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.3608.05.2011

Dr.-Ing. habil. Jörg Wollnack

Verwendung von Header-Dateien II

Includes von Moduln können notwendige Header mit übernehmen.

Dies führt zu einer Verein-fachung für den Anwender.

Hat gegebenenfalls mehr-fach Einbettungen zur Folge und kann so ver-hindert werden (Ansonsten Compilerfehler).

Page 37: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.3708.05.2011

Dr.-Ing. habil. Jörg Wollnack

Type Name Bytes Other Names

int *signed, signed int

System dependent

unsigned int * unsigned System dependent

__int8 1char, signed char

–128 to 127

__int16 2short,

short int, signed short int

–32.768 to 32.767

__int32 4signed, signed int

–2.147.483.648 to 2.147.483.647

__int64 8 None–9.223.372.036.854.775.808 to 9.223.372.036.854.775.807

char 1 signed char –128 to 127

unsigned char 1 None 0 to 255

short 2short int, signed short int

–32.768 to 32.767

unsigned short 2 unsigned short int 0 to 65.535

long 4long int, signed long int

–2.147.483.648 to 2.147.483.647

unsigned long 4 unsigned long int 0 to 4.294.967.295

enum * none Same as int

float 4 none 3.4E +/- 38 (7 digits)

double 8 none 1.7E +/- 308 (15 digits)

long double 10 none 1.2E +/- 4932 (19 digits)

Elementare Datentypen

Page 38: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.3808.05.2011

Dr.-Ing. habil. Jörg Wollnack

Einstelliger/unärer Operator Einstelliger/unärer Operator (op)

Zweistelliger/binärer OperatorZweistelliger/binärer Operator

Operatoren

opy x=

opy u v=

op:= Operator auf dem Objekt

( ) ( / )vy a c u b d e g= + + ⋅ + +

Hierarchie/Rangordnung

Page 39: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.3908.05.2011

Dr.-Ing. habil. Jörg Wollnack

ASCII-Zeichensatz I

32 040 20 Space Leerzeichen

Steuerzeichen Druckbare Zeichen

Page 40: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.4008.05.2011

Dr.-Ing. habil. Jörg Wollnack

ASCII-Zeichensatz II

Page 41: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.4108.05.2011

Dr.-Ing. habil. Jörg Wollnack

Mit der Einführung des IBM-PCs 1981 wurde ein 8 Bit breiter Zeichensatz etabliert. Die Zeichen 128 bis 255 (dezimal)dienen für Steuer- und Sonderzeichen (ä, ö, ü, ... ) sowie Grafiksymbole (Π, α, ...). Die Darstellung hängt vom verwendeten Zeichensatz ab (ANSI, IBM-PC, usw.) .

Mit der jüngsten Einführung eines 16 Bit breiten Unicodes können 65.536 unterschiedliche Zeichen dargestellt werden (z.B. chinesische Schriftzeichen).

Weitere Zeichensätze

Page 42: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.4208.05.2011

Dr.-Ing. habil. Jörg Wollnack

Escape Sequence Represents

\a Bell (alert)

\b Backspace

\f Formfeed

\n New line

\r Carriage return

\t Horizontal tab

\v Vertical tab

\' Single quotation mark

\" Double quotation mark

\\ Backslash

\? Literal question mark

\ooo ASCII character in octal notation

\xhhh ASCII character in hexadecimal notation

Text und Escape-Sequenzen

„Hallo\n“ Hallo\n\0

SpeicheranordnungVektor vom Typ char

Page 43: Informatik I - TUHH · INF.1 08.05.2011 Dr.-Ing. habil. Jörg Wollnack Inhalte Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen

INF.4308.05.2011

Dr.-Ing. habil. Jörg Wollnack

����

������

�� ��

��������� � � � � � �� ��

��� � � � � � �

Speicherbild und Index von Texten

1 Byte / 8 Bit pro Zeichen <=> 256 Zeichen codierbar

“Hallo\n“