Algorithmen & Datenstrukturen



Ähnliche Dokumente
Beispiele elementarer Datentypen Ganze Zahlen (integer) Unterbereiche Gleitkommazahlen Festkommazahlen

5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?)

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

3. Datentypen, Ausdrücke und Operatoren

1. Erläutern Sie die Aufgaben von Datentypen in der imperativen Programmierung.

Vorkurs Informatik WiSe 16/17

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue

Vorkurs Informatik WiSe 17/18

Schwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Programmierkurs C++ Variablen und Datentypen

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Datentypen: integer, char, string, boolean

Physische Datenstrukturen

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

Algorithmen zur Datenanalyse in C++

1953/54 (USA) PS FORTRAN (FORmula TRANslating system) 1958/60 (Europa) ALGOL (ALGOrithmic Language)

Grundlagen der Informatik 0

11. Übung Informatik II - Operatorfunktionen

Einstieg in die Informatik mit Java

Herzlich willkommen!

Schwerpunkte. 8. Ausdrücke, Operatoren (einfache Typen) Beispiel: Schaltjahr Test. Einführendes Beispiel: Grundprobleme

Beispiel: Temperaturumwandlung. Imperative Programmierung. Schwerpunkte. 3. Grundlegende Sprachkonstruktionen imperativer Programme

2.1 Fundamentale Typen

Einführung in C. EDV1-04C-Einführung 1

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online

Programmiersprachen Einführung in C

Wertebereich und Genauigkeit der Zahlendarstellung

Java I Vorlesung Imperatives Programmieren

Java für Anfänger Teil 5: Basistypen 2. Programmierkurs Manfred Jackel

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Kapitel 3: Variablen

Modul 122 VBA Scribt.docx

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Einführung in die C++ Programmierung für Ingenieure

Programmieren in C / C++ Grundlagen C 2

RO-Tutorien 3 / 6 / 12

Operatoren und Ausdrücke

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

Übungen zur Vorlesung Wissenschaftliches Rechnen I

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

Grundlagen und Konzepte von C Datenstrukturen

Informationsverarbeitung im Bauwesen

3.8 Objekttypen und Arrays. Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen.

Einstieg in die Informatik mit Java

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Rechnen mit Java Ganze Zahlen Gebrochene Zahlen Fazit

Datentypen. Agenda für heute, 4. März, Pascal ist eine streng typisierte Programmiersprache

Die einfachsten Anweisungen

Basiswissen in Informatik

Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Elementare Konzepte von

TURBO PASCAL VERSION 5.5

Angewandte Mathematik und Programmierung

Martin Unold INFORMATIK. Geoinformatik und Vermessung

RO-Tutorien 15 und 16

Informatik Vorkurs - Vorlesung 2

Zusammenfassung des Handzettels für Programmieren in C

Intensivübung zu Algorithmen und Datenstrukturen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable

4. Daten. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

Einleitung Typsystem Typisierung Zusammenfassung Literatur. Typisierung. Effiziente Programmierung. Thomas Schnieders

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r

1. Referenzdatentypen: Felder und Strings

n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen

Transkript:

Algorithmen & Datenstrukturen Dr. Ing.Jiri Spale 2008 Jiri Spale, Algorithmen und Datenstrukturen - Einführung 1 Fundamentale Datenstrukturen 2008 Jiri Spale, Algorithmen und Datenstrukturen - Einführung 2 Ansatz Computer: Aufgabe große Datenmengen zu verarbeiten wichtiger als Aufgabe zu Rechnen Auswahl relevanter Daten (Bsp. Mitarbeiterkartei) Festlegung der Darstellung (Bsp. Menge) 2008 Jiri Spale, Algorithmen und Datenstrukturen - Einführung 3 1

Begriff des Datentyps Grundidee: Klassifikation von Daten hinsichtlich ihrer Wertmenge Mathematik: N, Z, Q, R, C 2008 Jiri Spale, Algorithmen und Datenstrukturen - Einführung 4 Eigenschaften des Begriffs Typ Datentyp -> Wertmenge einer (eines) Konstante Variable Ausdrucks Typ durch Denotation (Vereinbarung) gegeben Operatoren, Funktionen: bestimmte Typen erwartet, geliefert Gemischte Operationen: default rules/casting (L-Value, R-Value) 2008 Jiri Spale, Algorithmen und Datenstrukturen - Einführung 5 Strukturierung #1 Standard-Typen float var1; strukturierte Typen primitive unstrukturierte Typen ->Strukturhierarchien homogene Struktur: Komponenten von gleichem Typ (Grundtyp) Kardinalität = Anzahl der Werte in der Wertemenge Anzahl der Komponenten -> Speicherplatz int numbers[] = new int[count]; 2008 Jiri Spale, Algorithmen und Datenstrukturen - Einführung 6 2

Standard-Typen Strukturierung #2 Zahlen byte, short, int, long; float, double Zeichen char Logische Werte boolean: true / false Strukturierungsmethoden Feld (Reihung, Array) Verbund (struct in C, record in Pascal/Delphi; OO: class) Menge (set in Pascal; C, Java: nicht defininiert) Datei (file) 2008 Jiri Spale, Algorithmen und Datenstrukturen - Einführung 7 Darstellung von Strukturen Reihung = Verbund = Menge File 2008 Jiri Spale, Algorithmen und Datenstrukturen - Einführung 8 Reservierung des Speicherplatzes Statische Typen Speicherbedarf per Definition des Sprachelements gegeben: int: 4 byte Dynamische Typen Reservierung während der Laufzeit des Programms Java: pobject=new ObjectType(); C++: pobject=new(objecttype); delete(pobject); C: pa=(int*) malloc(sizeof(int)); free(pa); 2008 Jiri Spale, Algorithmen und Datenstrukturen - Einführung 9 3

Arithmetische Ops Operatoren Unäre - ++ -- Binäre + - * / % Zuweisungsoperatoren = += -= *= /= Vergleichsoperatoren ==!= < > <= >= Logische Ops &&! Bitmanipulationen << >> & ^ ~ 2008 Jiri Spale, Algorithmen und Datenstrukturen - Einführung 10 Aufzählungstypen Allgemein: Type T is (c 1,c 2,c 3,,c n ); Java (ab Java 5): Vervendung: Vervendung: Pascal: enum Farbe {ROT,GRÜN,BLAU} Farbe meinefarbe = Farbe.GRÜN; enum Farbe {rot, gruen, blau}; enum Farbe meinefarbe = gruen; Type Farbe =(rot, gruen, blau); Kardinalität: card (T) = n Ordnung: c i < c j für i < j 2008 Jiri Spale, Algorithmen und Datenstrukturen - Einführung 11 Einfache Standardtypen Typ (Präz.) Byte Bereich Integer-Typen: 2er Komplement byte 1-128.. 127 short 2-32768.. 32767 int 4-2 147 483 648.. 2 147 483 647 long 8-9 223372 036854 775808.. 9 223372 036854 775807 Floating-Point-Typen: IEEE 754 float 4 1.17E-38F.. 3.4E+38F double 8 2.22E-308.. 1.7E+308 2008 Jiri Spale, Algorithmen und Datenstrukturen - Einführung 12 4

Interne Darstellung der Datentypen short s Größe (2er-Komplement) 15 14 0 15-stellig long s Größe float NE:7Fh 31 30 23 8-stel. (2er- Kompl.) 63 62 0 63-stellig 1, s Exp Mantisse 22 0 23-stellig 1, double s Exp Mantisse NE:3FFh 63 62 52 11-stellig 51 0 52-stellig NE=normalis.Exp Beispiele: Float: -12 = -1,5*2 3 Mant: 1,5 = 2 0 +2-1 Exp: 7Fh+3 = 82h Intern: C1400000h Float: 0,5 = 1*2-1 Mant: 1 = 2 0 Exp: 7Fh-1= 7Eh Intern: 3F000000h 2008 Jiri Spale, Algorithmen und Datenstrukturen - Einführung 13 Interne Darstellung der Datentypen#2 Verwendung - Ablage im Arbeitsspeicher - Ablage in binären Dateien Anordnungen der Bytes - Little-endian little end first LSB an der niedrigsten Adresse (z.b. in C/C++) - Big-endian big end first MSB an der niedrigsten Adresse (z.b. in Java) 2008 Jiri Spale, Algorithmen und Datenstrukturen - Einführung 14 Intervalle Allgemein: Java: Pascal: Unterbereichstypen Type T is c 13 to c n nicht definiert nicht definiert Type Farbe = gruen..weiß; Type Stunde = 0..23; Kardinalität: card (T) = ord(letzter) - ord(erster) + 1 Ordnung: c i < c j für i < j 2008 Jiri Spale, Algorithmen und Datenstrukturen - Einführung 15 5

Feld (Reihung) homogen, wahlfreier Zugriff C: typedef float feld[10]; feld X; int index; X[index]=25.3; Pascal: type feld=array[1..10] of real; var X: feld; index: integer; X[index]:=25.3; Java: float X[]; //oder float[] X; kein Typbezeichner X=new float[10]; //Dekl. und Def. kann zusammengefasst w. int index; X[index]=25.3; Java, C: Addressierung stets ab 0; Pascal beliebig 2008 Jiri Spale, Algorithmen und Datenstrukturen - Einführung 16 Struktur (Verbund) #1 heterogen, Zugriff über Punkt- oder Pfeil-Operator struct Verbund { int element1; Typ2 element2; }; Verbund Z1; Verbund* pz1;//pointer auf Z1.element1=5; //Alter.1 pz1->element1=7;//alter.2 Pascal und Delphi: type Verbund=record element1: integer; element2: Typ2; end; Z1: Verbund; pz1: ^Verbund; Z1.element1=5; 2008 Jiri Spale, Algorithmen und Datenstrukturen - Einführung 17 Struktur (Verbund) #2 In objektorientierten Sprachen: class MeineKl { int element1; Typ2 element2; }; MeineKl Z1; MeineKl* pz1;//pointer auf Z1.element1=5; //Alter.1 pz1->element1=7;//alter.2 Java class MeineKl { int element1; Typ2 element2; } //kein Semikolon MeineKl pz1;//referenzvar. //Alter.1 gibt es nicht pz1.element1=7;//alter.2 2008 Jiri Spale, Algorithmen und Datenstrukturen - Einführung 18 6

Allgemein: Menge (Set) type Menge = set of Basistyp; Pascal: type GrossBuchstaben = ('A'..'Z'); Menge = set of GrossBuchstaben; // Intervall var MySet: Menge; myset:=['a', 'B', 'C' ]; Java, Datentyp Menge nicht definiert 2008 Jiri Spale, Algorithmen und Datenstrukturen - Einführung 19 7