Abgeleitete Datentypen (1) Richtlinien

Größe: px
Ab Seite anzeigen:

Download "Abgeleitete Datentypen (1) Richtlinien"

Transkript

1 Abgeleitete Datentypen (1) Richtlinien Verbunddatentypen erlauben durch Kombination und Verschachteln beliebige komplexe Datenstrukturen Entwurf von Datenstrukturen hat wesentlichen Einfluss auf Art und Weise, wie Algorithmen darauf zugreifen können Entwurf auf Hinblick verwendeter Algorithmen Verwendung von struct und union Möglichst einfach und verständlich aufbauen Vermeidung von zu tiefen Verschachtelungsebenen Vermeidung hoher Anzahl von Attributen, besser kleinere, problemorientierte Datentypen Definition von Funktionen, die darauf zugreifen (interface functions) Vermeidung von redundanten Strukturen

2 Abgeleitete Datentypen (2) Strukturen Mit struct-vereinbarung kann ein neuer Datentyp aus vorhandenen zusammengesetzt werden struct Strukturname { Typ Attributname; //... Beispiel für Struktur Punkt_s, die Koordinaten eines Punktes speichert struct Punkt_s { double x, y;

3 Abgeleitete Datentypen (3) Strukturen Erzeugen von Variablen folgt nach dem Muster: struct Strukturname Variablenliste; Beispiel für struct-variablen, die auf der vorherigen Folie definiert wurden: struct Punkt_s p1, p2; In C kann man auch Strukturdefinition und Variablendefinition in einem Rutsch zu erledigen: struct Strukturname { Typ Attributname; //... } Variablenliste Beispiel mit den Koordinaten: struct Punkt_s { double x, y; } p1, p2; Besser ist, Definition und Initialisierung zu trennen (übersichtlicher)

4 Abgeleitete Datentypen (4) Strukturen Typdefinitionen möglichst in Header-Dateien sammeln Verfügbarkeit für mehrere Module Trennung von Datentypdefinition und Programmtext // Datei grafik.h struct Punkt_s { double x, y; //... // Datei grafik.c #include "grafik.h" //... struct Punkt_s p1, p2; //...

5 Abgeleitete Datentypen (5) Strukturen Initialisierung von Struktur-Variablen: struct Punkt_s p1 = { 4, 3 }, p2; Im Beispiel werden Variablen p1 und p2 definiert, p1 wird auch initialisieret, p2 hingegen nicht Initialwerte werden durch Kommas voneinander getrennt Auf Attribute der Struktur-Variablen kann mittels Punkt-Operator zugegriffen werden p2.x = 4; p2.y = 3;

6 Abgeleitete Datentypen (6) Strukturen Beispiel zur Berechnung des Euklidischen Abstands zweier Punkte: #include <math.h> //... double dist, dx, dy; //... dx = p2.x - p1.x; dy = p2.y - p1.y; dist = sqrt(dx * dx + dy * dy);

7 Abgeleitete Datentypen (7) Strukturen Beispiel zur Verschachtelung von Strukturen: struct Rechteck_s { struct Punkt_s pmin, pmax; Auch verschachtelte Strukturen lassen sich initialisieren: struct Rechteck_s r = { { 4, 3}, {15, 8}, Zugriff auf Elemente erfolgt wieder mittels.-operator: double flaeche; //... flaeche = (r.pmax.x - r.pmin.x) * (r.pmax.y - r.pmin.y);

8 Abgeleitete Datentypen (8) Strukturen Kopieren von Strukturen wird über den Zuweisungsoperator realisiert p2 = p1; // Kopiert die komplette Struktur p1 nach p2

9 Abgeleitete Datentypen (9) Funktionen und Strukturen Struktur-Variablen können ähnlich verwendet werden wie Variablen eingebauter Typen: struct Rechteck_s NeuesRechteck(const struct Punkt_s p1, const struct Punkt_s p2) { struct Rechteck_s rect; rect.pmin = p1; rect.pmax = p2; return rect; } Zwei Punkte werden übergeben und als Rechteck wieder zurückgegeben const bewirkt, dass die Daten nur gelesen werden

10 Abgeleitete Datentypen (10) Funktionen und Strukturen Folgende Erweiterung des Beispiels bewirkt, dass das Attribut pmin in der linken unteren Ecke und pmax in der rechten oberen Ecke landet struct Rechteck_s NeuesRechteck(const struct Punkt_s p1, { struct Rechteck_s rect; } const struct Punkt_s p2) rect.pmin.x = MIN(p1.x, p2.x); // früher vorgestellte MIN- und rect.pmin.y = MIN(p1.y, p2.y); // MAX-Makros rect.pmax.x = MAX(p1.x, p2.x); rect.pmax.y = MAX(p1.y, p2.y); return rect; Zur Übergabe der Funktionswerte werden Kopien der Parameter angelegt und zurückgegeben Problem, wenn große Datenmengen bei Datenmengen > 8 Byte besser Zeiger verwenden

11 Abgeleitete Datentypen (11) Zeiger auf Strukturen Wie gezeigt, ist es vorteilhaft, Zeiger zu verwenden, statt Kopien größerer Strukturen anzulegen struct Punkt_s p1 = {4, 3 struct Punkt_s *pp = &p1; Adresse der Strukturvariablen wird mit dem Adressoperator ermittelt Um auf Element x zuzugreifen, könnte man schreiben (*pp).x Klammerung ist notwendig, da der Punkt-Operator eine höhere Priorität hat Umständliche Schreibweise, stattdessen Verwendung des Selektionsoperators pp->x Hole das Attribut x aus dem Objekt, auf das pp zeigt. (korrekte Interpretation) pp zeigt auf x. (übliche Interpretation, aber nicht korrekt, da Zeiger pp auf p1 zeigt und nicht auf x)

12 Abgeleitete Datentypen (12) Zeiger auf Strukturen Modifikation des Rechteckbeispiels mit Zeigern: void NeuesRechteck( struct Rechteck_s * const rectp, const struct Punkt_s * const pp1, const struct Punkt_s * const pp2) { rectp->pmin.x = MIN(pp1->x, pp2->x); rectp->pmin.y = MIN(pp1->y, pp2->y); rectp->pmax.x = MAX(pp1->x, pp2->x); rectp->pmax.y = MAX(pp1->y, pp2->y); } // end NeuesRechteck Interpretation von rectp->pmin.x: rectp zeigt auf pmin Punkt x. Die Originaldaten werden per Zeiger an die Funktion übergeben Konstante Zeiger (Adressen können also nicht verändert werden) Übergebene Inhalte können nicht verändert werden const struct Punkt_s Rückgabewert muss beschreibbar sein (const fehlt hier)

13 Abgeleitete Datentypen (13) Zeiger auf Strukturen Abwägen, wann besser Kopien übergeben werden sollten und wann Zeiger Zeiger: Arbeiten an Originaldaten, performante Datenübergabe Kopien: sicher, da eine Originaldaten, Parameterübergabe nicht performant, da Kopien

14 Abgeleitete Datentypen (14) Felder von Strukturen Exemplarisches Beispiel: #define ADRESSE_NAME_LEN 30 #define ADRESSE_ORT_LEN 20 #define ADRESSE_STRASSE_LEN 50 struct Adresse_s { char name[adresse_name_len]; // Name der Person long plz; // Postleitzahl char ort[adresse_ort_len]; // Wohnort char strasse[adresse_strasse_len]; // Strasse long nummer; // Hausnummer #define ADRESSBUCH_LEN 100 struct Adresse_s Adressbuch[ADRESSBUCH_LEN];

15 Abgeleitete Datentypen (15) Felder von Strukturen Initialisierung wie bei Feldern ebenfalls möglich: struct Adresse_s KleinesAdressBuch[3] = { { "Joseph Haydn", 2471, "Rohrau", "Obere Hauptstraße", 25 }, { "Franz Schubert", { "Wolfgang Amadeus Mozart", 1090, 5020, "Wien", "Salzburg", "Nußdorfer Straße", "Getreidegasse", 54 9 } }, Statische und globale Variablen werden mit 0 initialisiert Bei unvollständigen Initialisierungen wird Rest mit 0 initialisiert

16 Abgeleitete Datentypen (16) Felder von Strukturen Zugriff auf Feldelemente: Auswahl an der Stelle, wo das Feld definiert ist: KleinesAdressBuch[0].nummer = 23; Die einzelnen Attribute werden wie die zugehörigen Basisvariablen behandelt, beispielsweise Kopieren von Zeichenketten: strcpy(kleinesadressbuch[0].name, "Johannes Brahms"); Adressierung eines einzelnen Zeichens aus der Zeichenkette erfolgt mittels KleinesAdressBuch[0].name[0] = J ;

17 Abgeleitete Datentypen (17) Bitfelder Für speicherkritische Anwendungen Wahrheitswerte struct Bitfelder_s { unsigned int a : 1; // Bitfeld der Länge 1 unsigned int b : 2; // Bitfeld der Länge 2 unsigned int c : 3; // Bitfeld der Länge 3 unsigned int d : 5; // Bitfeld der Länge 5 Nur Typ int erlaubt, Angabe von unsigned oder signed aus Portabilitätsgründen Bitfeld mit den Attributen a, b, c, d enthält 1, 2, 3, 5 Bits

18 Abgeleitete Datentypen (18) Bitfelder Anonyme Bitfelder struct Bitfelder_s { unsigned int a : 10; // Bitfeld der Länge 10 unsigned int : 6; // Anonymes Bitfeld unsigned int b : 10; // Bitfeld der Länge 10 unsigned int : 0; // Anonymes Bitfeld signed int c : 2; // Bitfeld der Länge 2 Wird kein Attributname angegeben, wird hier eine Lücke von n Bits eingefügt

19 Abgeleitete Datentypen (19) Bitfelder Zugriff auf Bitfelder wie bei allen anderen Variablen auch: struct Bitfeld_s bf; //... bf.a = 36; bf.b = 29; bf.c = -1;

20 Abgeleitete Datentypen (20) Unions Bei regulären Strukturen (structs, Bitfelder) haben die Datenelemente im Speicher aufeinanderfolgende Adressen Bei varianten Strukturen (unions) haben die Datenelemente die gleiche Adresse Resultierender Effekt bei Beschreiben eines Attributes: alle Attribute werden beschrieben, da sie an gleicher Stelle im Speicher stehen Unions werden eingesetzt, wenn Verschiedene Attribute zusammengefasst werden sollen, die nicht gleichzeitig auftreten können (z.b. geometrische Struktur ist Kreis oder Rechteck, kann aber nicht beides sein) Auf komplexe Datenstrukturen auf unterschiedliche Art und Weise zugegriffen werden soll )z.b. Datentelegramme) Definition mit dem Schlüsselwort union Nutzung äquivalent zu struct (unter Beachtung der unterschiedlichen Eigenschaften)

21 Abgeleitete Datentypen (21) Unions Definition einer varianten Struktur: union Unionname_u { Typ Attributname; //... Beispiel: ganzezahl union punktoderganzezahl { double punktzahl; long ganzezahl; punktzahl double belegt 64 Bit und long belegt auf 32-Bit-Rechnern nur 32 Bit Länge entspricht der des längsten Elementes

22 Abgeleitete Datentypen (22) Unions Definition einer union-variable: union Unionname_u Variablenliste; Beispiel: union Zahl_u punktoderganzezahl; Union-Definition und Variablen-Definition in einem Rutsch (nicht empfohlen): union Zahl_u { double punktzahl; long ganzezahl; } punktoderganzezahl; Zugriff auf Elemente a.ganzezahl = 5; // a.ganzezahl ist gültig, a.punktzahl ist ungültig // a.ganzezahl kann verwendet werden a.punktzahl = 1.3; // a.punktzahl ist gültig, a.ganzezahl ist ungültig // a.punktzahl kann verwendet werden

23 Abgeleitete Datentypen (23) Unions Beispiel struct Kreis_s { double x, y; // Position des // Mittelpunktes double r; // Radius struct Rechteck_s { double x, y; // Position des linken // unteren Punktes double b, h; // Breite, Höhe union GeoObjekt_u // Definition einer // varianten Struktur { struct Kreis_s kreis; struct Rechteck_s rechteck; enum GeoObjektTyp_e { GEOTYP_KREIS, GEOTYP_RECHTECK struct GeoObjekt_s { enum GeoObjektTyp_e typ; union GeoObjekt_u geoobjekt;

24 Abgeleitete Datentypen (24) Unions Im Beispiel kann typ einen von zwei angegebenen Möglichkeiten annehmen Ist typ gleich GEOTYP_KREIS, dann enthält die variante Struktur GeoObjekt_u einen Kreis, ist er GEOTYP_RECHTECK, ein Rechteck Beispiel zur Anwendung: struct GeoObjekt_s g; //... // Setzen der Daten für einen Kreis g.typ = GEOTYP_KREIS; g.geoobjekt.kreis.x = 2.3; g.geoobjekt.kreis.y = 4.5; g.geoobjekt.kreis.r = 8; Verwendung verschachtelter Datenstrukturen führt oft zu langen Namen

25 Abgeleitete Datentypen (25) Unions Zur Vermeidung langer Namen kann man eine union anonym (also ohne eigenen Typbezeichner) definieren, was innerhalb einer Strukturdefinition möglich ist: struct GeoObjekt_s { enum GeoObjektTyp_e typ; // GEOTYP_KREIS... Kreis // GEOTYP_RECHTECK... Rechteck union { struct Kreis_s kreis; struct GeoObjekt_s g; struct Rechteck_s rechteck; //... g.typ = GEOTYP_KREIS; g.kreis.x = 2.3; // Der "Name" der anonymen // varianten Struktur entfällt g.kreis.y = 4.5; g.kreis.r = 8; Achtung: es wird vorgetäuscht, dass die Union-Attribute Teil der äußeren Struktur sind

26 Abgeleitete Datentypen (26) Unions Beispiel für Anwendung alternativer Zugriffsmethoden zum Senden eines Datenpaketes union datentelegramm { struct // Struktur und Byte-Array im Speicher überlagert { int telegrammtyp; // Definition des Pakettyps zwecks Identifikation int laenge; // Anzahl der folgenden Bytes int[20]; // eigentliche Daten int crc; // Prüfsumme char[46] byte; // alternativ kann man über das Byte-Array zugreifen union datentelegramm datenfeld; //... for (i = 0; i < sizeof(datentelegramm); i++) sendebyte(datenfeld.byte[i]);

27 Abgeleitete Datentypen (27) Rekursive Strukturen Strukturen, die Verweise auf dieselben Strukturen verweisen Sinnvoll für dynamische Speicherverwaltung, z.b. Aufbau von Listen Beispiel: struct Eintrag_s { struct Eintrag_s *naechster; // Zeiger auf weitere Struktur long wert; // Inhalt des Elementes Es muss ein Zeiger verwendet werden, da innerhalb der Struktur diese nicht noch einmal verwendet werden kann Das Ende einer solchen Rekursion kann man als Nullzeiger angeben

28 Abgeleitete Datentypen (28) Deklaration von abgeleiteten Datentypen Abgeleitete Datentypen können in verschiedenen Programmmodulen verwendet werden (wie z.b. Funktionen) Sind diese an anderer Stelle im Projekt definiert, muss man dem Compiler nur bekannt machen, dass es diesen Datentyp gibt Beispiel: // Deklarationen von abgeleiteten Datentypen struct Punkt_s; union Zahl_u; enum Boolean_e; Erfolgt keine Definition an anderer Stelle, gibt es einen Compilerfehler, da dieser dann nicht weiß, wie groß die Variable ist. Es kann auch keine Adresse für einen Zeiger zugewiesen werden. Wichtig: Unterscheidung zwischen Deklaration und Definition Verwendung von Header-dateien für Typ-Definitionen

29 Abgeleitete Datentypen (29) Typdefinition mit Typedef Typedef definiert einen neuen Namen für einen Variablentyp. Beispiel: typedef char *string; Das Aussehen erinnert an eine Variablendefinition Wird eine Variable vom Typ string definiert, so wird sie effektiv so definiert, wie die scheinbare Variable in der Typdefinition Folgende Zeilen sind daher gleichwertig: char *text1 = "Hallo"; string text2 = "Welt"; Beispiel für eine Zeichenkette mit der Länge 20: typedef char namensfeld[20]; namensfeld name;

30 Abgeleitete Datentypen (30) Typdefinition mit Typedef Verfahren wird gern genutzt, um Programmcode lesbarer zu machen Beispielsweise kann man so die Angabe von struct wegdefinieren: typedef struct Adresse_s { char name[30]; // Name der Person long plz; char ort[20]; // Postleitzahl // Wohnort char strasse[50]; // Straße long nummer; } Adresse_t; // Hausnummer Für die Definition eines Adressbuches kann jetzt folgendes benutzt werden: Adresse_t Adressbuch[100]; Postfix t wird gern verwendet, um einen definierten Variablentypen anzuzeigen Mit typedef wird kein neuer Variablentyp erzeugt sondern nur ein weiterer Name für einen bestehenden Typ geschaffen

INE1 Arrays, Zeiger, Datenstrukturen

INE1 Arrays, Zeiger, Datenstrukturen INE1 Arrays, Zeiger, Datenstrukturen Arrays Felder von Elementen gleichen Typs Verwenden von Adressen: Zeiger Datenstrukturen mit struct Zeiger auf Datenstrukturen Spezielle Zeiger und komplexe Deklarationen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung

Mehr

Zeiger (1) Allgemeines

Zeiger (1) Allgemeines Zeiger (1) Allgemeines In C häufig verwendet zur Realisierung mancher Programmierkonzepte Sehr enge Verknüpfung von Zeigern und Feldern Vielseitiges Hilfsmittel, birgt allerdings auch Gefahren für Programmierfehler

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

Klassen als Datenstrukturen

Klassen als Datenstrukturen Einstieg in die Informatik mit Java, Vorlesung vom 27.11.07 Übersicht 1 Klassen als Datenstruktur 2 Vereinbarung von Klassen 3 Erzeugen von Objekten - Instanzen einer Klasse 4 Zugriff auf Attribute 5 Initialisierung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 24 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 24 1 Klassen als Datenstruktur 2 Vereinbarung von

Mehr

C++ Notnagel. Ziel, Inhalt. Programmieren in C++

C++ Notnagel. Ziel, Inhalt. Programmieren in C++ C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 12 Strukturierte Datentpen - Strukturen... 12-2 12.1 Definition und Deklaration von Strukturtpen und Strukturen... 12-2 12.2 Strukturen als Funktionsparameter und Funktionswert... 12-4 12.3 Felder

Mehr

Inhalt. 4.5 Arbeit mit Zeigern (engl. Pointer)

Inhalt. 4.5 Arbeit mit Zeigern (engl. Pointer) Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Steuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Zeigern

Mehr

RO-Tutorien 3 / 6 / 12

RO-Tutorien 3 / 6 / 12 RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Felder, Zeiger und Adreßrechnung

Felder, Zeiger und Adreßrechnung Felder, Zeiger und Adreßrechnung Felder bestehen aus Variablen eines einzigen Datentyps. Bisher kennen wir eindimensionale Felder. In C sind Felder mit beliebigen Dimensionen möglich. Unsere räumliche

Mehr

RO-Tutorien 15 und 16

RO-Tutorien 15 und 16 Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 2 am 04.05.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Strukturen in C. Strukturen stellen eine Zusammenfassung von Datenelementen unterschiedlichen Typs unter einem Namen dar.

Strukturen in C. Strukturen stellen eine Zusammenfassung von Datenelementen unterschiedlichen Typs unter einem Namen dar. Strukturen in C Strukturen stellen eine Zusammenfassung von Datenelementen unterschiedlichen Typs unter einem Namen dar. Dadurch sind sie vergleichbar mit Feldern, die eine Zusammenfassung (Reihung) von

Mehr

Programmierkurs C++ Variablen und Datentypen

Programmierkurs C++ Variablen und Datentypen Programmierkurs C++ Variablen und Datentypen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Überblick Welche Datentypen gibt es in

Mehr

Praxis der Programmierung

Praxis der Programmierung Arrays, Pointerarithmetik, Konstanten, Makros Institut für Informatik und Computational Science Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Arrays (Felder/Vektoren) 2 Arrays: Motivation

Mehr

Informatik. Strukturen und Aufzählungstypen. Vorlesung

Informatik. Strukturen und Aufzählungstypen. Vorlesung Informatik Vorlesung 06 Strukturen und Aufzählungstypen 03. Dezember 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Datentypen Die bisher benutzten Datentypen waren

Mehr

F Zeiger, Felder und Strukturen in C

F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C F.1 Zeiger(-Variablen) 1 Einordnung Konstante: Bezeichnung für einen Wert a 0110 0001 Variable: Bezeichnung eines Datenobjekts

Mehr

Zeiger (engl. Pointer)

Zeiger (engl. Pointer) Zeiger (engl. Pointer) Zeiger Ein Zeiger (engl. Pointer) speichert eine Adresse, unter der ein Wert im Speicher des Computers gespeichert werden kann. Eine Variable im Gegensatz speichert einen Wert. Der

Mehr

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. ) Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine

Mehr

Programmieren in C. Speicher anfordern, Unions und Bitfelder. Prof. Dr. Nikolaus Wulff

Programmieren in C. Speicher anfordern, Unions und Bitfelder. Prof. Dr. Nikolaus Wulff Programmieren in C Speicher anfordern, Unions und Bitfelder Prof. Dr. Nikolaus Wulff Vergleich: Felder und Strukturen Felder müssen Elemente vom selben Typ enthalten. Strukturen können Elemente unterschiedlichen

Mehr

Informatik. Pointer (Dynamisch) Vorlesung. 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1

Informatik. Pointer (Dynamisch) Vorlesung. 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Informatik Vorlesung 08 Pointer (Dynamisch) 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Pointer (Zeiger) Dynam. Speicher Bisher: Speicherbedarf muss

Mehr

C++ Teil 5. Sven Groß. 8. Mai IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 8. Mai / 16

C++ Teil 5. Sven Groß. 8. Mai IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 8. Mai / 16 C++ Teil 5 Sven Groß IGPM, RWTH Aachen 8. Mai 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 8. Mai 2015 1 / 16 Themen der letzten Vorlesung Live Programming zu A2 Gleitkommazahlen Rundungsfehler Auswirkung

Mehr

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15 Vorwort... 15 1 Einstieg in die Welt von C 17 1.1 Die Sprache C... 17 1.2 Die C-Standardbibliothek... 18 1.3 Die nötigen Werkzeuge für C... 21 1.4 Übersetzen mit der Entwicklungsumgebung... 23 1.5 Übersetzen

Mehr

RO-Tutorien 17 und 18

RO-Tutorien 17 und 18 RO-Tutorien 17 und 18 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery TUTORIENWOCHE 2 AM 10.05.2012 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der

Mehr

Grundlagen und Konzepte von C Datenstrukturen

Grundlagen und Konzepte von C Datenstrukturen Grundlagen und Konzepte von C Datenstrukturen Ausarbeitung von Andreas Gadelmaier Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik,

Mehr

Datenstrukturen. InE1 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert

Datenstrukturen. InE1 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert Datenstrukturen InE1 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was gehtes? Rangliste Winti-Marathon benötigte Information pro Teilnehmer Variable Typ Daten Name String Vorname

Mehr

Kapitel 10. Verweise und Referenzen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 10. Verweise und Referenzen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 10 Verweise und Referenzen Inhalt von Kapitel 10 Verweise und Referenzen 10.1 Das Schlüsselwort this Definition Verwendungszweck Klassenmethoden EINSCHUB: Musterlösung zu Übung 4.1 10.2 Objektreferenzen

Mehr

Objekte werden eindeutig beschrieben durch ihren Typ und einen beliebig wählbaren Bezeichner.

Objekte werden eindeutig beschrieben durch ihren Typ und einen beliebig wählbaren Bezeichner. Grundlegende Deklarationen Seite 1 von 6 Jedes Programm benötigt Objekte. Ein Objekt ist ein reservierter Bereich im Systemspeicher in welchem Informationen abgelegt werden. Informationen sind z.b. Zahlen,

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 9. Zeiger Arbeitsspeicher / Adressen Der Arbeitsspeicher des Computers (RAM) besteht aus einem Feld von Speicherzellen, beginnend bei Adresse

Mehr

Speicherklassen (1) Lokale Variablen

Speicherklassen (1) Lokale Variablen Speicherklassen (1) Lokale Variablen Lokale Variablen beschränken sich auf die Funktionen, in denen sie definiert werden Sind in der Funktion gekapselt können also nur in der Funktion verändert werden

Mehr

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3 Programmieren mit Java Modul 5 Objekte Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Klassen und Objekte 3 2.1 Klassen.................................... 4 2.2 Objektvariablen und Methoden.......................

Mehr

einlesen n > 0? Ausgabe Negative Zahl

einlesen n > 0? Ausgabe Negative Zahl 1 Lösungen Kapitel 1 Aufgabe 1.1: Nassi-Shneiderman-Diagramm quadratzahlen Vervollständigen Sie das unten angegebene Nassi-Shneiderman-Diagramm für ein Programm, welches in einer (äußeren) Schleife Integer-Zahlen

Mehr

Programmierung mit C Zeiger

Programmierung mit C Zeiger Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch

Mehr

Einführung in die Programmierung für NF MI. Übung 07

Einführung in die Programmierung für NF MI. Übung 07 Einführung in die Programmierung für NF MI Übung 07 Inhalt Wiederholung Kommentare Wiederholung Arrays Einführung in Objekte Einführung in die Programmierung für NF Übung 07 2 Wiederholung Kommentare Kommentare

Mehr

Variablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes

Variablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes Variablen Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes v ist Stück im Speicher, der 4 Bytes lang ist Speicherzugriff? Über Adressen!

Mehr

6 ZEIGER UND REFERENZEN - ALLGEMEINES

6 ZEIGER UND REFERENZEN - ALLGEMEINES 6 ZEIGER UND REFERENZEN - ALLGEMEINES Leitideen: Zeiger sind Adressen mit zusätzlicher Typinformation über das dort gespeicherte Objekt. Die Vereinbarungssyntax soll der Ausdruckssyntax entsprechen und

Mehr

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue

Mehr

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

C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen Leibniz Universität IT Services Anja Aue Zeiger (Pointer) Verweis auf eine Speicherstelle. Speicherung einer Speicheradresse.

Mehr

10.4 Konstante Objekte

10.4 Konstante Objekte 10.4 Konstante Objekte Genau wie bei einfachen Datentypen (int,double,...) kann man auch Objekte als const deklarieren. Eine solche Deklaration bedeutet, daß alle Attribute so behandelt werden, als wären

Mehr

Teil 6: Strukturen und Unionen Gliederung

Teil 6: Strukturen und Unionen Gliederung Teil 6: Strukturen und Unionen Gliederung Strukturen Typdefinitionen Unionen Dynamische Speicherverwaltung Strukturen 6.2 Strukturen Ursprung in Pascal als Datentyp record, Verbunddatentyp Strukturtyp

Mehr

C++ Teil 5. Sven Groß. 13. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 18

C++ Teil 5. Sven Groß. 13. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 18 C++ Teil 5 Sven Groß 13. Mai 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 13. Mai 2016 1 / 18 Themen der letzten Vorlesung Funktionen Funktionsüberladung, Signatur Rekursion const-deklaration Referenzen

Mehr

Teil 6: Strukturen und Unionen Gliederung

Teil 6: Strukturen und Unionen Gliederung Teil 6: Strukturen und Unionen Gliederung Strukturen Typdefinitionen Unionen Dynamische Speicherverwaltung Strukturen Typdefinitionen Unionen Dynamische Speicherverwaltung Strukturen 6.2 Strukturen Typdefinitionen

Mehr

C++ Teil 5. Sven Groß. 16. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 16

C++ Teil 5. Sven Groß. 16. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 16 C++ Teil 5 Sven Groß 16. Nov 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 16. Nov 2015 1 / 16 Themen der letzten Vorlesung Namensräume Live Programming zu A2 Gleitkommazahlen Rundungsfehler Auswirkung

Mehr

Programmierung und Angewandte Mathematik

Programmierung und Angewandte Mathematik Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ablauf Was sind Funktionen/Methoden

Mehr

Probeklausur Name: (c)

Probeklausur Name: (c) Einführung in die Praktische Informatik 30.1.2013 Probeklausur Name: Teil I: Datentypen (20 Punkte) Lösen sie die Probleme, indem sie die korrekten Lösungen ankreuzen bzw. in die vorgesehenen Freiräume

Mehr

Variablen, Konstanten und Datentypen

Variablen, Konstanten und Datentypen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Variablen, Konstanten und Datentypen Überblick

Mehr

Klausur. 2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben.

Klausur. 2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben. Programmieren bei Dr. Robert Heß TM&M1, IST1 und ET1 Anfang SS 2003 Klausur 1. Aufgabe (2 Punkte) Kodieren Sie folgende Dezimalzahlen in Binärzahlen um. Zeigen Sie den Rechenweg, die negative Zahl soll

Mehr

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C Teil 8: Felder und Zeichenketten Prof. Dr. Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen 3. Variable und Datentypen

Mehr

Arrays. Einleitung. Deklarieren einer Array Variablen

Arrays. Einleitung. Deklarieren einer Array Variablen Arrays Einleitung bisher jede Variable einzeln deklariert: 12 3 14 12 32 32 3 32 5 3 double sum; int count; ÿ Sie können Zweck und Aufbau von Array-Datentypen erklären ÿ Sie können einen Array korrekt

Mehr

Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung

Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung Felder (Arrays) Mehrdimensionale Felder Zeiger und Adressen Zeigerarithmetik Felder Mehrdimensionale Felder Zeiger und Adressen Zeigerarithmetik Felder

Mehr

C- Kurs 07 Höhere Datentypen

C- Kurs 07 Höhere Datentypen C- Kurs 07 Höhere Datentypen Dipl.- Inf. Jörn Hoffmann jhoffmann@informa?k.uni- leipzig.de Universität Leipzig Ins?tut für Informa?k Technische Informa?k Höhere Datentypen Überblick Höhere Datentypen Werden

Mehr

Arrays (Felder/Vektoren)

Arrays (Felder/Vektoren) Arrays (Felder/Vektoren) Zusammenfassung mehrerer Variablen des gleichen Typs unter einem Namen im Speicher direkt hintereinander abgelegt Definition: Typname Arrayname [Größe]; Beispiel: int ar [5]; Zugriff

Mehr

Kapitel 4: Zeiger. Inhalt. Zeiger Zeigerarithmetik

Kapitel 4: Zeiger. Inhalt. Zeiger Zeigerarithmetik Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

Mehr

EEPROM Strukturen speichern über SPI-Bus

EEPROM Strukturen speichern über SPI-Bus EEPROM Strukturen speichern über SPI-Bus Experiment EEPROMstruct 7 A.Schultze / DK4AQ 18.06.2013 Es soll eine Tabelle aus verschiedenartigen Informationen im EEPROM abgelegt und wieder gelesen werden.

Mehr

2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben.

2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben. Programmieren bei Dr. Robert Heß TM&M1, IST1 und ET1 Ende SS 2003 Klausur 1. Aufgabe (2 Punkte) Kodieren Sie folgende Dezimalzahlen in Binärzahlen um. Zeigen Sie den Rechenweg, die negative Zahl soll im

Mehr

Einführung in die Programmierung Konstanten, dynamische Datenstrukturen. Arvid Terzibaschian

Einführung in die Programmierung Konstanten, dynamische Datenstrukturen. Arvid Terzibaschian Einführung in die Programmierung Arvid Terzibaschian 1 Konstanten 2 Motivation Unveränderliche, wichtige Werte mathematische Konstanten z.b. PI String-Konstanten wie z.b. häufige statische Meldungen mögliche

Mehr

8. Referenzen und Zeiger

8. Referenzen und Zeiger 8. Referenzen und Zeiger Motivation Variable werden in C++ an speziellen Positionen im Speicher abgelegt. An jeder Position befindet sich 1 Byte. Sie sind durchnummeriert beginnend bei 0. Diese Positionen

Mehr

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3 Programmieren mit Java Modul 3 Arrays Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Eindimensionale Arrays 3 2.1 Arrays deklarieren.............................. 3 2.2 Arrays erzeugen................................

Mehr

Operatoren in C. Gastvorlesung Andreas Textor

Operatoren in C. Gastvorlesung Andreas Textor Operatoren in C Gastvorlesung - 11.01.10 Andreas Textor andreas.textor@hs-rm.de Terminologie Operand 4 + 2 Operand Operator Unterscheidung nach Anzahl Operanden Unäre, Binäre und Ternäre Operatoren Z.B.:!x;

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 29 Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente

Mehr

Elementare Datentypen in C++

Elementare Datentypen in C++ Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Welche Arten von Anweisungen gibt es? Anweisungen

Mehr

C++ Teil 6. Sven Groß. 23. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 15

C++ Teil 6. Sven Groß. 23. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 15 C++ Teil 6 Sven Groß 23. Nov 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 6 23. Nov 2015 1 / 15 Themen der letzten Vorlesung const-deklaration Referenzen Zeiger Felder Sven Groß (IGPM, RWTH Aachen) C++

Mehr

Übersicht. Informatik 1 Teil 9: komplexe Datentypen (Strukturen, Enumerationen, Unions)

Übersicht. Informatik 1 Teil 9: komplexe Datentypen (Strukturen, Enumerationen, Unions) Übersicht 9.1 Strukturen (Verwendung) 9.2 Strukturen (Typdeklaration) 9.3 Strukturen (Variablendeklaration) 9.4 Felder aus Strukturen 9.5 Zugriff auf Strukturkomponenten 9.6 Zugriff auf Strukturkomponenten

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Zusammenfassung Was ist eine Programmiersprache? Eine Sprache, die Formal eindeutig in Maschinenbefehle übersetzbar ist Für Menschen einfacher verständlich ist als Bytecode Zur Formulierung von Datenstrukturen

Mehr

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach 10.

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach  10. Zeiger C-Kurs 2012, 2. Vorlesung Tino Kutschbach tino.kutschbach@campus.tu-berlin.de http://wiki.freitagsrunde.org 10. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

Einführung in die Programmierung Wintersemester 2018/19

Einführung in die Programmierung Wintersemester 2018/19 Einführung in die Programmierung Wintersemester 2018/19 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Inhalt Einführung in das konzept Attribute / Methoden

Mehr

Integer Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen

Integer Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen 1 C-Schlüsselwörter Schlüsselwörter sind in allen Programmiersprachen reservierte Wörter. In C sind auch alle Namen _[A-Z]... und... reserviert, auch _... bereichsweise. Weiterhin durch die Standard-

Mehr

Betriebssysteme, Rechnernetze und verteilte Systeme 1. Crashkurs C (2)

Betriebssysteme, Rechnernetze und verteilte Systeme 1. Crashkurs C (2) Betriebssysteme, Rechnernetze und verteilte Systeme 1 Crashkurs C (2) Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/teaching/ss2008/bsrvs1/

Mehr

Praxis der Programmierung

Praxis der Programmierung Arrays, Pointer, Parameterbergabe Institut für Informatik und Computational Science Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Arrays (Felder/Vectoren) 2 Arrays: Motivation Gegeben:

Mehr

7.2 Dynamischer Speicher in Objekten/Kopierkonstruktor

7.2 Dynamischer Speicher in Objekten/Kopierkonstruktor 7.2 Dynamischer Speicher in Objekten/Kopierkonstruktor Das Programmbeispiel aus dem letzten Abschnitt läßt sich bisher nicht zufriedenstellend zu Ende bringen. Unerklärliche Abstürze und Fehlverhalten

Mehr

Repetitorium Informatik (Java)

Repetitorium 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

Mehr

Repetitorium Programmieren I + II

Repetitorium Programmieren I + II Repetitorium Programmieren I + II Stephan Gimbel Johanna Mensik Michael Roth 6. März 2012 Agenda 1 Operatoren 2 Datentypen Gleitpunkt Zahl Typkonvertierung 3 Strommanipulatoren 4 Bedingungen if-else switch-case

Mehr

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

1. 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

Mehr

1. Referenzdatentypen: Felder und Strings

1. 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

Mehr

C++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11

C++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11 C++ Teil 12 Sven Groß 18. Jan 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 12 18. Jan 2016 1 / 11 Themen der letzten Vorlesung Wiederholung aller bisherigen Themen: Datentypen und Variablen Operatoren Kontrollstrukturen

Mehr

C++ - Objektorientierte Programmierung Konstante und statische Elemente

C++ - 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

Mehr

Erste Schritte der Programmierung in C

Erste Schritte der Programmierung in C Erste Schritte der Programmierung in C C versus C++ Anatomie von C-Programmen für AVR- Mikrocontroller Unterschiede zwischen C++ und C 1 Grundlegende Unterschiede File-Extensions (Header und Quellcode)

Mehr

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C Teil 11: Strukturen, Aufzählungstypen Prof. Dr. Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen 3. Variable und Datentypen

Mehr

Teil 5: Zeiger, Felder, Zeichenketten Gliederung

Teil 5: Zeiger, Felder, Zeichenketten Gliederung Teil 5: Zeiger, Felder, Zeichenketten Gliederung Zeiger und Adressen Felder (Arrays) Zeichenketten (Strings) Zeigerarithmetik Mehrdimensionale Felder Zeiger und Adressen Felder Zeichenketten Zeigerarithmetik

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 21 Einstieg in die Informatik mit Java Felder, eindimensional Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 21 1 Überblick: Was sind Felder? 2 Vereinbarung von Feldern

Mehr

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Teil 8: Benutzerdefinierte Datentypen Martin Nolte Abteilung für Angewandte Mathematik Universität Freiburg i. Br. Vorlesung

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

Physische Datenstrukturen

Physische Datenstrukturen Elementare Datentypen Strukturierte Datentypen Zeiger Seite 1 Einfache Datentypen Datentyp char Verwendung: ASCII-Zeichen Wertebereich: alle darstellbaren Zeichen, 8 bit lange Ganzzahlen im Intervall -128

Mehr

Strukturierte Datentypen (struct) 2006 Pearson Education, Inc. All rights reserved.

Strukturierte Datentypen (struct) 2006 Pearson Education, Inc. All rights reserved. 1 8 Strukturierte Datentypen (struct) 2 8.1 Einführung 8.2 Definition von Strukturen 8.2.1 Selbstbezügliche Strukturen 8.2.2 Definition von Variablen strukturierter Datentypen 8.2.3 Bezeichner für Strukturen

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

Mehr

Übungspaket 14 Eindimensionale Arrays

Übungspaket 14 Eindimensionale Arrays Übungspaket 14 Eindimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung eindimensionaler Arrays Kapitel: 33 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:

Mehr

Programmierkurs C++ Datenstrukturen Seite 1

Programmierkurs C++ Datenstrukturen Seite 1 Programmierkurs C++ Datenstrukturen Seite 1 3 Datenstrukturen 3.1 Arrays Zur Wiederholung als Strukturelement der Programmierung gehört auf der Seite der Datenstrukturen die Liste. Eine Liste kann auf

Mehr

Felder (1) Allgemeines

Felder (1) Allgemeines Felder (1) Allgemeines Gleichartige Daten, wie Tabelle von Zahlen, Datumswerten, Namen etc. Felder (engl. Array) stellen einen Verbundtyp dar, in dem mehrere Daten desselben Typs gespeichert werden Oft

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Was sind Felder? 2 Vereinbarung von Feldern 3 Erzeugen von Feldern

Mehr

Kontrollfragen Mikrocontroller Programmiersprache C H1203 Felix Rohrer

Kontrollfragen Mikrocontroller Programmiersprache C H1203 Felix Rohrer Block 1 1. Welcher Wert hat w? int w = 034; 28 (Dezimal) 034 wird als Octal interpretiert 34oct = 28dec 2. Wie lauten die Ergebnisse? unsigned int a = 3, b = 5, c = 7; unsigned int x, y, z; x = a == 3;

Mehr

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz Patrick Schulz patrick.schulz@paec-media.de 29.04.2013 1 Einführung Einführung 2 3 4 Quellen 1 Einführung Einführung 2 3 4 Quellen Hello World in Java Einführung 1 public class hello_ world 2 { 3 public

Mehr

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

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin Fakutltät IV Technische Universität Berlin 5. Mai 2014 Inhaltsverzeichnis 1 2 3 4 5 6 7 Überblick Beispielprogramm in Java Beispielprogramm in C 1 2 3 4 5 6 7 Beispielprogramm in Java Beispielprogramm

Mehr