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

Größe: px
Ab Seite anzeigen:

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

Transkript

1 Ü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 (Beispiel) 9.7 Zuweisung kompletter Strukturen 9.8 Strukturen als Funktionsparameter (by value) 9.9 Strukturen als Funktionsparameter (by value), Zugriff auf Komponenten 9.10 Strukturen als Funktionskomponenten (by reference) 9.11 Der Strukturoperator 9.12 Strukturen als Funktionsparameter (by reference) Beispiel Strukturen als Funktionsparameter (by reference) Beispiel Strukturen als Funktionsparameter (by reference) Beispiel Strukturen als Funktionsparameter (by reference) Beispiel Strukturen als Funktionsparameter (by reference) Beispiel Enumerationen (Aufzählungstyp) 9.18 Unions Prof. Martin Trauth Folie 1 / 19

2 9.1 Strukturen (Verwendung) Die Dinge des täglichen Lebens haben eine Vielzahl von Eigenschaften. Ein Mensch beispielsweise hat (meistens) einen Namen, ein Körpergewicht, eine Körpergröße und in den meisten Staaten auch eine Ausweisnummer. Waren haben Verkaufspreise, ein Gewicht, eine Bezeichnung, einen Lieferanten (und der hat auch wieder einen Namen, eine Adresse usw.) und noch viele andere Eigenschaften. Einfache Datentypen, wie char, int, float oder double, eignen sich nur zur Beschreibung einer einzigen Eigenschaft. Ein Gewicht kann man gut in einer float-variablen speichern, einen Namen in einem char-feld. Aber man hätte gerne eine Möglichkeit alle Eigenschaften eines Dings, mit denen man in einem Programm arbeiten möchte, in einem einzigen Datentyp zusammen zu fassen. Dazu benötigt man einen so genannten benutzerdefinierten Datentyp: eine Struktur. Strukturen setzen sich aus Komponenten zusammen. Das können einfache Datentypen sein oder andere Strukturen. Prof. Martin Trauth Folie 2 / 19

3 9.2 Strukturen (Typdeklaration) Syntax einer Strukturdeklaration: struct <Name der Struktur> { <Liste der Strukturvariablen, durch Semikolon getrennt> ; struct student { ; int matrikelnr; char vorname [30]; char nachnahme [30]; struct adresse heimatadresse; struct adresse semesteradresse; int immatrikulationsjahr; Die Struktur struct adresse wird in der Struktur struct student als Variablentyp verwendet. struct adresse { ; char strasse [30]; int hausnr; char wohnort [30]; In blau sind Typenbezeichnungen markiert. Namen von Variablen bzw. Komponenten sind schwarz geschrieben. Die Strukturkomponenten (Strukturvariable) werden nur in der Strukturdeklaration deklariert, nirgends sonst. Wenn man Strukturen als Komponenten in anderen Strukturen verwendet müssen sie vorher im Programm deklariert werden. In unserem Beispiel müsste struct adresse vor struct student deklariert werden. Meist werden Strukturen (ähnlich wie externe Variable) vor allen Funktionen und außerhalb davon deklariert. Sie gelten dann in allen Funktionen. Prof. Martin Trauth Folie 3 / 19

4 9.3 Strukturen (Variablendeklaration) Durch die Deklaration eines Strukturtyps ist noch keine Variable dieses Typs deklariert! In unserem Beispiel ist struct student ein Datentyp wie int aber es gibt noch keine Variable dieses Typs. Das macht man durch eine Typdeklaration (wie bei einfachen Typen auch). Syntax: < Typ > < Liste der Variablennamen >; struct adresse meine_adresse, deine_adresse; Oder man macht Typ- und Variablendeklaration gleich zusammen: struct adresse { char strasse [30]; int hausnr; char wohnort [30]; meine_adresse; Variablenname Bei dieser Art der Variablendeklaration kann man den Strukturnamen auch ganz weglassen! Wird oft aus Bequemlichkeit gemacht, hat aber einen Nachteil: man kann die Strukturdeklaration dann für keine weiteren Variablendeklarationen verwenden und nicht als Typbezeichnung in Funktionsparametern. Prof. Martin Trauth Folie 4 / 19

5 9.4 Felder aus Strukturen Meist macht man sich nicht die Mühe einen Strukturtyp zu deklarieren, wenn man nur eine Variable davon haben möchte. Viel öfter werden Struktur-Felder verwendet. Das funktioniert genau so wie bei den einfachen Datentypen. Man schreibt in eckigen Klammern hinter dem Variablennamen die Feldgröße. struct student fh-student[20000]; Damit könnte man nun die Daten von Studenten abspeichern. In der Struktur struct student sind auch die Adressen der Studenten deklariert. Man muss aber kein Feld mit Adressen anlegen, denn die Variablen semesteradresse und heimatadresse sind Bestandteile der Struktur struct student und werden daher automatisch verzwanzigtausendfacht. Prof. Martin Trauth Folie 5 / 198

6 9.5 Zugriff auf Strukturkomponenten Beim Zugriff auf Strukturkomponenten schreibt man den Strukturnamen, dann einen Punkt ( Punktoperator genannt) und dann den Komponentennamen. meine_adresse.hausnr = 10; Sind es verschachtelte Strukturen, dann schreibt man eine hierarchische Folge von Komponentennamen, durch Punkte getrennt. fh_student[387].semesteradresse.hausnummer = 95; An dem Beispiel ist auch zu erkennen, dass man Strukturfelder im Grunde genau so indiziert wie Felder einfacher Datentypen: Index als Ganzzahl in die eckigen Klammer nach dem Namen der Strukturvariablen schreiben. Falls als Strukturkomponenten wiederum Felder verwendet wurden, kann man auf deren einzelne Elemente auch wieder durch Indizierung zugreifen. In dem Fall stehen die eckigen Klammern mit dem Index hinter dem Namen der betreffenden Komponente. c = fh_student[5].heimatadresse.wohnort[0]; In der Variablen c (die natürlich als char deklariert sein muss) steht dann das erste Zeichen des char-felds wohnort. Prof. Martin Trauth Folie 6 / 19

7 9.6 Zugriff auf Strukturkomponenten (Programmbeispiel) #include <stdio.h> #include <string.h> main() { int i; struct waren { char bezeichnung[40]; double preis; lagerware[500] ; strcpy(lagerware[0].bezeichnung, "Kaffetasse blau"); lagerware[0].preis = 17.50; strcpy(lagerware[1].bezeichnung, "Untertasse blau"); lagerware[1].preis = 3.55; for (i = 0; i <= 1; i++) { printf("ware: %s\n", lagerware[i].bezeichnung); printf("preis: %.2lf Euro\n\n", lagerware[i].preis); Ausgabe: Verwendung von strcpy(), weil keine Zuweisung von Zeichenketten durch = möglich! Zugriff über den Feldindex Prof. Martin Trauth Folie 7 / 19

8 9.7 Initialisierung von Strukturkomponenten, Zuweisung kompletter Strukturen Man kann natürlich, wie im vorangegangenen Beispiel gezeigt, jede einzelne Strukturkomponente durch Zuweisungen mit Werten versehen. Will man sie gleich bei der Deklaration der Struktur initialisieren, dann kann man das mit einer Liste tun. struct adresse { char strasse [30]; int hausnr; char wohnort [30]; meine_adresse = { auf dem Berg, 3, Lummerland ; Das Verfahren wird selten angewendet und ist nur für einfache Struktur-Variable (keine Felder) brauchbar. Wesentlich wichtiger ist, dass man Strukturvariable direkt zuweisen kann und zwar jederzeit im Programm und auch dann wenn Datenfelder als Komponenten vorhanden sind! Dieses Beispiel wäre also gültig: deine_adresse = meine_adresse; Die Werte aller Struktur-Komponenten (falls vorhanden), werden von meine_adresse in deine_adresse kopiert. Prof. Martin Trauth Folie 8 / 19

9 9.8 Strukturen als Funktionsparameter (by value) Wie Variable einfacher Typen kann man auch Strukturen als Funktionsparameter verwenden. Und natürlich können Strukturkomponenten wie Variable des jeweiligen Typs übergeben werden. Die Syntax bei Übergabe kompletter Strukturen ist auch die gleiche wie bei einfachen Typen (sowohl in Funktionskopf als auch bei Prototypen). Beispiele für Übergabe von Strukturkomponenten: int myfunction (double wert1) Funktionskopf für die Übergabe eines double-parameterwerts int myfunction (double); Prototyp für diese Funktion i1 = myfunction (messung.akt_wert); Aufruf dieser Funktion. Der double-wert stammt von einer double Komponente wert der Strukturvariablen messung Beispiele für die Übergabe ganzer Strukturen (es werden die Werte der Strukturkomponten übergeben): void show_all(struct adresse para_adresse) Funktionskopf für die Übergabe einer Struktur. Wieder ist struct adresse der Typ! void show_all(struct adresse); show_all(meine_adresse); Der Prototyp. Die Typangabe ist notwendig, der Variablenname nicht. Der Funktionsaufruf erfolgt ganz einfach mit dem Namen der Strukturvariablen in der aufrufenden Funktion. Alle Werte der Strukturkomponenten von meine_adresse werden dabei in die der Struktur para_adresse kopiert. Prof. Martin Trauth Folie 9 / 19

10 9.9 Strukturen als Funktionsparameter (by value), Zugriff auf Komponenten Die aufgerufene Funktion kann nun auf alle Komponenten der Parameter-Struktur zugreifen. Beispiel (wir gehen davon aus, dass es eine Programmzeile in der Funktion show_all ist): printf( Zuhause in: %s, para_adresse.wohnort); Aber Achtung: es handelte sich um eine Parameterübergabe by value, d.h. es wurden nur die Werte der Strukturkomponenten an die aufgerufene Funktion übergeben. Nun stehen sie in einer Strukturvariablen (im Beispiel ist es para_adresse), die nur in der aufgerufenen Funktion bekannt ist. Werden die Werte ihrer Komponenten geändert, dann merkt die aufrufende Funktion nichts davon. In diesem Beispiel bleiben die Werte der Strukturkomponenten von meine_adresse unverändert (wir gehen wieder davon aus, dass es eine Programmzeile in der Funktion show_all ist): strcpy(para_adresse.wohnort, Neustadt ) ; Die Komponente wohnort wird nur in der Struktur-Variablen para_adresse geändert. Das hätte (bei Verwendung dieser Komponente) Auswirkungen in der Funktion show_all( ), aber nicht in der aufrufenden Funktion (z.b. main( ) ). Prof. Martin Trauth Folie 10 / 19

11 9.10 Strukturen als Funktionsparameter (by reference) Will man Strukturen der aufrufenden Funktion in der aufgerufenen Funktion verändern, dann erreicht man das (wie bei einfachen Datentypen) dadurch, dass man nicht die Werte der Strukturkomponenten als Parameter übergibt, sondern die Adresse der Struktur. Die Syntax ist auch fast die gleiche wie beim call by reference einfacher Datentypen. Man verwendet also Pointervariable als Funktionsparameter. Aber der Zieltyp dieses Pointers ist eine Struktur. void func10(struct adresse *padresse) Funktionskopf für die Übergabe einer Struktur by reference. struct adresse ist der Zieltyp des Pointers padresse. void func10(struct adresse *); Der Prototyp. func10(&meine_adresse); Der Funktionsaufruf. Hier muss nun die (Anfangs)-Adresse der Struktur übergeben werden Prof. Martin Trauth Folie 11 / 19

12 9.11 Der Strukturoperator Wenn Strukturen by reference als Funktionsparameter verwendet wurden, kann man in der aufgerufenen Funktion auf die Werte der Strukturkomponenten so zugreifen: <Wert> = (* <Name des Pointers auf Strukturvariable>).<Komponentenname>; Beispiel. nr = (* padresse).hausnr; Die Klammern sind hier notwendig, da der Punktoperator eine höhere Priorität als der Inhaltsoperator (*) hat. Da diese Schreibweise etwas umständlich ist, wird der sog. Strukturoperator (Schreibweise ->) verwendet. Syntax: <Wert> = <Name des Pointers auf Strukturvariable> -> <Komponentenname>; Beispiel. nr = padresse -> hausnr; Der Pfeil tritt an Stelle des Punktes, wenn nicht die Strukturvariable selbst, sondern ein Pointer auf diese Strukturvariable eingesetzt wird. Prof. Martin Trauth Folie 12 / 19

13 9.12 Strukturen als Funktionsparameter (by reference) Beispiel 1 Dieses Beispiel verdeutlicht den Umgang mit dem Strukturoperator #include <stdio.h> struct vector { double x; double y; ; main() { void tauschen(struct vector *); // Prototyp struct vector vec1 = {15.1, 8.3; printf("\nvorher: %f %f", vec1.x, vec1.y); tauschen(&vec1); printf("\nnachher: %f %f\n", vec1.x, vec1.y); void tauschen(struct vector * vec) { double cach; cach = vec->x; vec->x = vec->y; vec->y = cach; Prof. Martin Trauth Folie 13 / 19

14 9.13 Strukturen als Funktionsparameter (by reference) Beispiel 2-1 Dieses Beispiel ist komplexer. Es zeigt, wie mit Strukturfeldern umgegangen wird. Zuerst mit einem Feldelement als Parameter. #include <stdio.h> #include <string.h> struct waren { char bezeichnung[40]; double preis; lagerware[500] ; int read_it(struct waren *); // Prototyp, hier außerhalb von main() main() { int i = 0, j; printf("\nbitte Warendaten eingeben! Leerzeile bricht Eingabe ab"); while (read_it(&lagerware[i])) i++; if (i > 0) { for (j = 0; j < i; j++) { printf("ware: %s\n", lagerware[j].bezeichnung); printf("preis: %.2lf Euro\n\n", lagerware[j].preis); Prof. Martin Trauth Folie 14 / 19

15 9.14 Strukturen als Funktionsparameter (by reference) Beispiel 2-2 Die Funktion read_it (): int read_it(struct waren *eingang) { double preis1; char string1[80]; fflush(stdin); printf("\nbezeichung:"); gets(string1); if (strlen(string1)!= 0) { strcpy(eingang->bezeichnung, string1); printf("\npreis:"); scanf("%lf", &preis1); eingang->preis = preis1; return 1; else return 0; Prof. Martin Trauth Folie 15 / 19

16 9.15 Strukturen als Funktionsparameter (by reference) Beispiel 3-1 Dieses Beispiel wurde modifiziert. Nun wird das gesamte Strukturfeld by reference übergeben. #include <stdio.h> #include <string.h> struct waren { char bezeichnung[40]; double preis; lagerware[500] ; int read_it(struct waren *, int); main() { int i = 0, j; printf("\nbitte Warendaten eingeben! Leerzeile bricht Eingabe ab"); while (read_it(lagerware, i)) i++; // in der Schleife gibt es nur i++ if (i > 0) { for (j = 0; j < i; j++) { printf("ware: %s\n", lagerware[j].bezeichnung); printf("preis: %.2lf Euro\n\n", lagerware[j].preis); Kein Adressoperator vor lagerware, weil es ein komplettes Feld ist! Prof. Martin Trauth Folie 16 / 19

17 9.16 Strukturen als Funktionsparameter (by reference) Beispiel 3-2 Die Funktion read_it () für den Zugriff auf das gesamte Feld (benötigt daher in unserem Beispiel den Feldindex als Parameter): int read_it(struct waren *eingang, int n) { double preis1; char string1[80]; fflush(stdin); printf("\nbezeichung:"); gets(string1); if (strlen(string1)!= 0) { strcpy(eingang[n].bezeichnung, string1); printf("\npreis:"); scanf("%lf", &preis1); eingang[n].preis = preis1; return 1; else return 0; Kein Strukturoperator bei den Komponenten von Struktur-Feldern. Durch den Feldindex wird bereits der Zugriff auf den Inhalt des indizierten Feldelements (bzw seiner Strukturkomponente) bewirkt. Prof. Martin Trauth Folie 17 / 19

18 9.17 Enumerationen (Aufzählungstyp) Enumerationen sind eigentlich Listen von Bezeichnungen, denen Zahlenwerte zugewiesen werden. Ein Beispiel (bitte geschweifte Klammern beachten): enum noten {sehr_gut = 1, gut, befriedigend, ausreichend, mangelhaft, ungenuegend; Den Bezeichnungen in der Liste werden natürliche Zahlenwerte in aufsteigender Folge zugewiesen. Eigentlich würde mit 0 begonnen werden. Durch das Gleichheitszeichen kann man aber den Wert jedes Listenelements erzwingen, Dadurch ist es auch möglich zwei Bzeichnungen mit gleichem Zahlenwert zu erhalten. enum bool {false, falsch = 0, true, wahr = 1, richtig = 1; Wie bei Strukturen wird der Enumerationstyp Variablen zugewiesen. enum bool logikwert; Alternative: wie bei Strukturen den Variablennamen hinter die Liste schreiben. Wird der Variablen nun im Programm eine Bezeichnung aus der Liste zugewiesen, dann nimmt sie den entsprechenden Zahlenwert an. Das ist oft übersichtlicher als die Zuweisung einer reinen Zahl. logikwert = false; Die Variable logikwert hat dann den Wert 0. Prof. Martin Trauth Folie 18 / 19

19 9.18 Unions Unions werden auch Verbunde oder Varianten genannt. Ihr Hauptzweck ist das Einsparen von Speicherplatz. Sie können aber auch trickreich für die Umformung gespeicherter Werte benutzt werden. union saveit {double zahl; char zeichen[10]; mysafe; Die Syntax entspricht der von Strukturen (Unions können übrigens auch Strukturkomponenten sein). Wie bei Strukturen ist es auch bei Unions möglich, die zu deklarierende Variable gleich hinter die Liste zu schreiben. Im Beispiel wurde das so gemacht. Unions speichern allerdings alle Komponenten unter der gleichen Speicheradresse (bzw Startadresse). Im Beispiel benötigt die double-variable zahl 8 Byte. Das char-feld nimmt 10 Byte in Anspruch. Speicherplatzbedarf ist daher 10 Byte. Immer wenn eine Komponente zugewiesen wird, werden die entsprechenden Bytes der anderen Komponente überschrieben. strcpy(mysafe.zeichen, "Hans"); mysafe.zahl = Wenn man danach die Zeichenkette in mysafe.zeichen ausgeben wollte, käme mit Sicherheit irgendwas heraus, aber nicht Hans. Es gibt Datensätze, in denen entweder die eine oder die andere Komponente benötigt wird, aber niemals beide. In diesen Fällen sind Unions nützlich. Aber das kommt nicht so häufig vor, weshalb Unions wesentlich seltener verwendet werden als z.b. Strukturen. Prof. Martin Trauth Folie 19 / 19

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

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

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

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

Mehr

Strukturierte Datentypen

Strukturierte Datentypen Kapitel 10 Strukturierte Datentypen Über die normalen Datentypen hinaus gibt es in C weitere, komplexere Typen, die sich aus den einfacheren zusammensetzen. Außerdem besteht die Möglichkeit, eigene Synonyme

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

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

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

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

4.2 Programmiersprache C

4.2 Programmiersprache C 4.2.1. Elementare Datentypen (signed) int, unsigned int, (signed) short (int), unsigned short (int), (signed) long (int), unsigned long (int) Elementare Datentypen für ganze Zahlen mit oder ohne Vorzeichen.

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

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter}); S. d. I.: Programieren in C Folie 7-1 7 Funktionen 7.1 Definition Prototyp-Syntax: Speicherklasse Typ Name (formale Parameter); der Funktions-Prototyp deklariert eine Funktion, d.h. er enthält noch nicht

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

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

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

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

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

Einführung in die Programmierung II. 5. Zeiger

Einführung in die Programmierung II. 5. Zeiger Einführung in die Programmierung II 5. Zeiger Thomas Huckle, Stefan Zimmer 16. 5. 2007-1- Bezüge als Objekte Bisher kennen wir als Bezüge (Lvalues) nur Variablennamen Jetzt kommt eine neue Sorte dazu,

Mehr

Typ : void* aktuelle Parameter Pointer von beliebigem Typ

Typ : void* aktuelle Parameter Pointer von beliebigem Typ 2. Funktionen - Prototypvereinbarung typangabe funktionsname(parameterliste); - Funktionsdefinition typ funktionsname(parameterliste){ Anweisung - Funktionstyp -> Typ der Funktionswertes zulaessige Typangaben

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

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 7. Funktionen Einleitung Nach dem Prinzip Divide and Conquer bietet es sich an, größere Aufgaben in kleinere Teile zu unterteilen. Anweisungsblöcke,

Mehr

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

5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?) 5.1 Mehr Basistypen Außer int, stellt Java weitere Basistypen zur Verfügung. Zu jedem Basistyp gibt es eine Menge möglicher Werte. Jeder Wert eines Basistyps benötigt die gleiche Menge Platz, um ihn im

Mehr

Felder (1) Felder (Arrays) speichern viele Datenelemente des gleichen Typs. Auf einzelne Elemente kann über einen Index zugegriffen werden

Felder (1) Felder (Arrays) speichern viele Datenelemente des gleichen Typs. Auf einzelne Elemente kann über einen Index zugegriffen werden Felder (1) Felder (Arrays) speichern viele Datenelemente des gleichen Typs. Auf einzelne Elemente kann über einen Index zugegriffen werden Dim arrayname (dim1,dim2, ) As Typ Bei eindimensionalen Feldern

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

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

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

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Funktionen Rückblick Operatoren logische Verknüpfungen Zusammengesetzte Operatoren ( Zuweisungsoperatoren ) Kontrollstrukturen Bedingte Anweisungen (if-abfrage, switch-konstrukt)

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

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

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek Proseminar C-Programmierung Strukturen Von Marcel Lebek Index 1. Was sind Strukturen?...3 2. Padding 5 3. Vor- und Nachteile von Padding..8 4. Padding gering halten 9 5. Anwendungsgebiete von Strukturen.11

Mehr

Programmieren in C. Funktionen mit Zeigern und Adressen. Prof. Dr. Nikolaus Wulff

Programmieren in C. Funktionen mit Zeigern und Adressen. Prof. Dr. Nikolaus Wulff Programmieren in C Funktionen mit Zeigern und Adressen Prof. Dr. Nikolaus Wulff ByValue versus byreferenz C übergibt immer Kopien der Variablen an Funktionen. Es ist nur dann möglich die Werte von Variablen

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

Zusammengehörige Daten struct. Strukturierte Datentypen und Funktionszeiger. Zugriff auf struct-elemente. Variablendeklarationen mit struct

Zusammengehörige Daten struct. Strukturierte Datentypen und Funktionszeiger. Zugriff auf struct-elemente. Variablendeklarationen mit struct Zusammengehörige Daten Anstatt logisch zusammengehörende Daten in mehreren unabhängigen Variablen zu speichern, kann man für sie einen eigenen Datentyp ( Verbund, Record ) definieren, der diesen Zusammenhang

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

Grundlagen der OO- Programmierung in C#

Grundlagen der OO- Programmierung in C# Grundlagen der OO- Programmierung in C# Technische Grundlagen 1 Dr. Beatrice Amrhein Überblick Visual Studio: Editor und Debugging Die Datentypen Methoden in C# Die Speicherverwaltung 2 Visual Studio 3

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Ausgabe:

Ausgabe: Aufgabe 2.10: Schreiben Sie ein Programm, das zunächst die Quadratzahlen zu den Zahlen 1-10 mit Hilfe einer While- Schleife und danach die Quadratzahlen zu den Zahlen 3, 6, 9,.., 30 mit Hilfe einer For-Schleife

Mehr

Kapitel 3: Variablen

Kapitel 3: Variablen Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber

Mehr

Advanced Programming in C

Advanced Programming in C Advanced Programming in C Pointer und Listen Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Variablen vs. Pointer - Statischer und dynamischer

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

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

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

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

Kapitel 2/3: Darstellung von Information / Kontrollstrukturen. Inhalt. Zusammengesetzte Datentypen Wiederholungen (in Programmen)

Kapitel 2/3: Darstellung von Information / Kontrollstrukturen. Inhalt. Zusammengesetzte Datentypen Wiederholungen (in Programmen) Kapitel 2/3: / Kontrollstrukturen Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Inhalt Zusammengesetzte

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

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

6. Bearbeitung von Strings in C Bearbeitung von Strings in C

6. Bearbeitung von Strings in C Bearbeitung von Strings in C Bearbeitung von Strings in C 6-1 Definition des String: 6. Bearbeitung von Strings in C Zeichenstrings werden als Felder von Zeichen abgespeichert: char [ ] ; Wie die Daten (Zeichenfolge)

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

Zusammenfassung des Handzettels für Programmieren in C

Zusammenfassung des Handzettels für Programmieren in C Zusammenfassung des Handzettels für Programmieren in C In der handschriftlichen Kopie werden mehr Abkürzungen verwendet. Alles Grün markierte dient zum lernen und wird nicht auf den Handzettel übertragen.

Mehr

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch darstellung Arbeiten mit darstellung werden im Computer durch (kleine) Zahlen dargestellt in C können im Datentyp char gespeichert werden, dieser umfasst ein Byte und gilt als Ganzzahltyp darstellung Arbeiten

Mehr

Viel Erfolg bei der Bearbeitung der Aufgaben!

Viel Erfolg bei der Bearbeitung der Aufgaben! Musterlösung Name:... 1 2 3 4 5 Gesamt Note 12 8 10 15 11 56 Bitte tragen Sie auf dem Deckblatt Ihr Namen und Ihre Matrikelnummer ein und auf allen weiteren Seiten nur noch Ihre Matrikelnummer. Lösungen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

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

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

Zusammengesetzte Datentypen -- Arrays und Strukturen

Zusammengesetzte Datentypen -- Arrays und Strukturen Zusammengesetzte Datentypen -- und Strukturen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14

Mehr

Programmierung mit C Strukturen

Programmierung mit C Strukturen Programmierung mit C Strukturen Strukturen Variablen mit unterschiedlichen Datentypen werden zusammengefasst. Variablen zu einem Thema werden zusammengefasst. Beispiele für Strukturen: Personendaten (Name,

Mehr

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Textausgabe per printf Die Funktion printf ist kein Bestandteil der C Sprache sondern gehört zur C Bibliothek. printf

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Arrays,Strings&Pointer in C/C++

Arrays,Strings&Pointer in C/C++ Arrays,Strings&Pointer in C/C++ Vortrag Mathias Reich Am 21.5.2002 Pointer Da zur Zeit der Compelierung des Programms nicht immer der Umfang der zu bearbeitenden Daten feststeht muss man sich - in manchen

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 008/09 Zusammengesetzte Datentypen - Feld (array) - Verbund (struct) - Aufzählung (enum) Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten

Mehr

Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben!

Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben! Projekt: Artikelverwaltung Seite 1 von 5 Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben! Legen Sie global einen benutzerdefinierten Datentyp artikel an:

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Variablen Übersicht 1 Variablendeklaration 2 Initialisierung von Variablen 3 Symbolische Konstanten Variablendeklaration Die Deklaration der Variablen erfolgt durch eine Typangabe

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens mit C++ und Matlab SS2013 Inhalt Bis jetzt: Heute: Entwicklungsumgebung

Mehr

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C Übersicht Funktionen Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion Sinn von Funktionen Wiederverwendung häufig verwendeter nicht banaler Programmteile Wiederverwendung

Mehr

6. Zeiger Allgemeines Definition eines Zeigers

6. Zeiger Allgemeines Definition eines Zeigers 6. Zeiger www.c-programme.de Stefan Thiemert Kapitel 6 - Seite 1 von 6 6. 1. Allgemeines Zeiger spielen in der Programmierung eine wichtige Rolle. Sie sind wichtig, bei der Arbeit mit Arrays und Funktionen.

Mehr

+ C - Array (Vektoren, Felder)

+ C - Array (Vektoren, Felder) + C - Array (Vektoren, Felder) Eindimensionale Arrays Beim Programmieren steht man oft vor dem Problem, ähnliche, zusammengehörige Daten (vom gleichen Datentyp) zu speichern. Wenn man zum Beispiel ein

Mehr

Projekt 3 Variablen und Operatoren

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

Mehr

int i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben

int i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben Datenfelder (Array) Seite 1 von 7 Bei den bisherigen Programmen wurde für jede verwendete Variable (oder für jedes Objekt) ein eigener Typ und Name vergeben. Die Initialisierung, d.h. die Belegung mit

Mehr

C- Kurs 08 Zeiger. Dipl.- Inf. Jörn Hoffmann leipzig.de. Universität Leipzig Ins?tut für Informa?k Technische Informa?

C- Kurs 08 Zeiger. Dipl.- Inf. Jörn Hoffmann leipzig.de. Universität Leipzig Ins?tut für Informa?k Technische Informa? C- Kurs 08 Dipl.- Inf. Jörn Hoffmann jhoffmann@informa?k.uni- leipzig.de Universität Leipzig Ins?tut für Informa?k Technische Informa?k Überblick Datentyp zur Verwaltung von Adressen (auf Speicherplätze)

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {

Mehr

9. Vektoren. (auch Felder/array)

9. Vektoren. (auch Felder/array) 9. Vektoren (auch Felder/array) Motivation Hat man mehrere Objekte gleichen Datentyps, so kann man sie explizit deklarieren, wenn die Anzahl bekannt ist double x1,x2,x3,x4; Nachteile: versagt, -wenn die

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

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon

Mehr

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert

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

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 2006/07 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

Kurze Einführung in die Programmiersprache C++ und in Root

Kurze Einführung in die Programmiersprache C++ und in Root Kurze Einführung in die Programmiersprache C++ und in Root Statistik, Datenanalyse und Simulation; 31.10.2006 Inhalt 1 Einführung in die Programmiersprache C++ Allgemeines Variablen Funktionen 2 1 Einführung

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

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl Funktionen Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung erlaubt

Mehr

Informationsverarbeitung im Bauwesen

Informationsverarbeitung im Bauwesen 1/24 Informationsverarbeitung im Bauwesen Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2010/2011 Vorlesung 7

Mehr

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften

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

C-Pointer (Zeiger, Adressen) vs. C++ Referenzen

C-Pointer (Zeiger, Adressen) vs. C++ Referenzen C-Pointer (Zeiger, Adressen) vs. C++ Referenzen Der Pointer (C/C++): In C/C++ ist der Pointer ein eigener Datentyp, der auf Variablen/Objekte zeigen kann. Indem man den Pointer dereferenziert, gewinnt

Mehr

C-Propädeutikum Höhere Datentypen

C-Propädeutikum Höhere Datentypen C-Propädeutikum Höhere Datentypen Dipl.-Inf. Stefan Freitag freitag@uni-leipzig.de Universitätsrechenzentrum Universitätsbibliothek Universität Leipzig basiert auf den Originalfolien von Jörn Hoffmann

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

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

C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue

C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections Leibniz Universität IT Services Anja Aue Arrays... speichern mehrere Werte vom gleichen Datentyp. fassen zusammenhängende Werte

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

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

Mehr

Datei: svn/ckurs/trunk/c_texte/c_arrptr.txt, Datum: 30. Juni Felder und Zeiger

Datei: svn/ckurs/trunk/c_texte/c_arrptr.txt, Datum: 30. Juni Felder und Zeiger Datei: svn/ckurs/trunk/c_texte/c_arrptr.txt, Datum: 30. Juni 2015 Felder und Zeiger 1. Felder 1. Felder werden deklariert und definiert durch die Angabe der Elementanzahl nach dem Feldnamen mit dem Feldoperator

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

structure-type-specifier struct [ identifier ] { struct-declaration-list } struct identifier struct-declaration-list struct-declaration

structure-type-specifier struct [ identifier ] { struct-declaration-list } struct identifier struct-declaration-list struct-declaration Verbundtypen structure-type-specifier struct [ identifier ] { struct-declaration-list } struct identifier struct-declaration-list struct-declaration struct-declaration-list struct-declaration struct-declaration

Mehr

Programmiervorkurs Einführung in Java Tag 1

Programmiervorkurs Einführung in Java Tag 1 Programmiervorkurs Einführung in Java Tag 1 Sebastian Glutsch SS 2018 namen Inhaltsübersicht Vorkurs Tag 1:,, en,, Einführung Tag 2: Boolesche Ausdrücke,, If-Abfragen, Switch-Case Tag 3: Arrays, (Do-)While-Schleife,

Mehr

Java Übung. Übung 2. Werner Gaulke. 19. April Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

Java Übung. Übung 2. Werner Gaulke. 19. April Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung. Java Übung Übung 2 Universität Duisburg-Essen Kommedia, Übung EinPro SS06, 19. April 2006 (UniDUE) 19. April 2006 1 / 13 Java Programme Java Programme bestehen aus (meist mehreren) Klassen. In den Klassen

Mehr

Tag 4 Repetitorium Informatik (Java)

Tag 4 Repetitorium Informatik (Java) Tag 4 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Arrays (Reihungen)

Mehr

Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert

Mehr