C++ - Einführung in die Programmiersprache Arrays

Größe: px
Ab Seite anzeigen:

Download "C++ - Einführung in die Programmiersprache Arrays"

Transkript

1 C++ - Einführung in die Programmiersprache Arrays Array Array a A b B c C a b c Leibniz Universität IT Services Anja Aue

2 Array (Felder, Vektoren) Zusammenfassung von Variablen gleichen Datentyps Gruppierung von Elementen gleichen Datentyps aus einer Kategorie. Speicherung einer festen Anzahl von Werten gleichen Datentyps. C++ - Einführung Seite 2

3 Eindimensionale Arrays Folge von Werten gleichen Datentyps. Sammlung von Werten zu dem gleichen Thema, wie zum Beispiel durchschnittliche Temperaturen pro Monat. Der Monat wird durch die Position im Array symbolisiert. Der Wert an der Position bildet die Temperatur an C++ - Einführung Seite 3

4 deklarieren int main() { const int maxtage = 31; int monat[12]; int inttage[maxtage]; }; return 0; Beispiele/_0911_Array... C++ - Einführung Seite 4

5 Deklaration int monat [ 12 ] ; datentyp name [ anzahl ] ; Der Name eines Arrays ist frei wählbar. Direkt im Anschluss an den Namen folgt, in eckigen Klammern, die Anzahl der Elemente. Die Elemente sind vom Datentyp... C++ - Einführung Seite 5

6 Angabe der Anzahl der Elemente int monat[12]; int inttage[31]; Die Anzahl der Elemente wird durch eine Ganzzahl angegeben. Die Anzahl der Elemente ist konstant und kann nicht verändert werden. C++ - Einführung Seite 6

7 durch eine Konstante const int maxtage = 31; int inttage[maxtage]; Im ersten Schritt wird eine Konstante deklariert und gleichzeitig initialisiert. Im zweiten Schritt wird ein Array deklariert. In den eckigen Klammern wird der Name der deklarierten Konstanten gesetzt. Der Wert der Konstanten legt die Anzahl der Elemente in dem Array fest. Hinweis: Die Nutzung einer Variablen zur Angabe der Anzahl der Elemente ist nicht möglich. C++ - Einführung Seite 7

8 deklarieren und initialisieren int main() { double dblmesswerte[12] = {0}; char chroperator[] = {'+', '-', '*', '/'}; }; return 0; Beispiele/_0911_Array... C++ - Einführung Seite 8

9 Initialisierung von Arrays bei der Deklaration char operator [ ] = { '+', '-' } datentyp name [ ] = { wert,... } Mit Hilfe des Gleichheitszeichens wird dem Array eine Liste von Werten zu gewiesen. Die sogenannte Initialisierungsliste beginnt und endet mit den geschweiften Klammern. Die eckigen Klammern zur Angabe der Anzahl der Elemente ist leer. Die Anzahl wird automatisiert durch die Anzahl der Elemente in der Intialisierungsliste festgelegt. C++ - Einführung Seite 9

10 Initialisierungsliste char chroperator [ ] = { '+', '-' } datentyp name [ ] = { wert,... } Die Initialisierungsliste beginnt und endet mit den geschweiften Klammern. Die einzelnen Werte werden in der Liste durch Kommata getrennt. C++ - Einführung Seite 10

11 Werte in der Initialisierungsliste char chroperator [ ] = { '+', '-' } datentyp name [ ] = { wert,... } Die Werte entsprechend dem Datentyp des Arrays. Für jeden Wert wird entsprechend des angegebenen Datentyps automatisiert Speicher bereitgestellt. Die Werte werden wie Perlen auf der Schnur im Speicher abgelegt. Die Anzahl der Werte in der Initialisierungsliste legt die Anzahl der Elemente des Arrays fest. C++ - Einführung Seite 11

12 Initialisierung von Ganz- oder Gleitkommazahlen int monat [ 12 ] = { 0 } datentyp name [ anzahl ] = { 0 } Voraussetzung: Das Array speichert Elemente vom Datentyp Ganzzahlen (zum Beispiel int) oder Gleitkommazahlen (zum Beispiel double). Die Anzahl der Elemente des Arrays wird in den eckigen Klammern angegeben. Die Initialisierungsliste enthält nur den Wert 0. Alle Elemente des Arrays werden mit diesen Wert initialisiert. C++ - Einführung Seite 12

13 C++11: Initialisierung const int maxtage = 31; int monat[12]; int inttage[maxtage]; double dblmesswerte[12] = {0}; char chroperator[] = {'+', '-', '*', '/'}; double dbltemperatur[12]{}; char word[6]{'h', 'e', 'l', 108, 'o', '\0'}; Beispiele/_0911_Array... C++ - Einführung Seite 13

14 Initialisierung int monat [ 12 ] { } datentyp name [ anzahl ] { } C++11 benötigt zwischen der Deklaration und der Initialisierungsliste kein Gleichheitszeichen. Die Initialisierungsliste beginnt und endet mit den geschweiften Klammern. In der Liste werden die Werte für die verschiedenen Elemente durch ein Kommata getrennt. Die leere Liste initialisiert jedes Array-Element mit 0. C++ - Einführung Seite 14

15 Informationen zu einem eindimensionalen Array int main() { int monat[12]; }; cout << "Speichergröße eines Elements: " << sizeof(int) << '\n'; cout << "Speichergröße des Arrays: " << sizeof(monat) << '\n'; cout << "Anzahl: " << (sizeof(monat) / sizeof(int)) << '\n'; Beispiele/_0911_Array... C++ - Einführung Seite 15

16 Speicherbedarf Das Schlüsselwort sizeof() gibt den Speicherbedarf eines Elementes in Bytes zurück. Die Angabe sizeof(datentyp) gibt den Speicherbedarf des angegebenen Datentyps zurück. Das Element eines Arrays hat einen Speicherbedarf in Abhängigkeit des Datentyps. Die Angabe sizeof(arrayname) gibt den Speicherbedarf aller Elemente eines Arrays zurück. C++ - Einführung Seite 16

17 Anzahl der Elemente in einem Array In der Programmiersprache C++ kann die Anzahl der Elemente berechnet werden. Eine Funktion zur automatischen Berechnung ist nicht vorhanden. Mit Hilfe von sizeof(arrayname) / sizeof(datentyp) kann die Anzahl der Elemente ermittelt werden. C++ - Einführung Seite 17

18 Grafische Darstellung + - Aufeinandergestapelte Container. Jeder Container hat die gleiche Größe in Abhängigkeit des Datentyp. Aber der Inhalt des Containers ist unterschiedlich. C++ - Einführung Seite 18

19 und im Speicher + chroperator[0] - chroperator[1] Die Elemente des Arrays werden wie Perlen auf der Schnur im Speicher abgelegt. Der Name des Arrays symbolisiert den Anfang des Speicherbereichs und den Beginn ersten Elemente eines Arrays. C++ - Einführung Seite 19

20 Elemente des Arrays nutzen int main() { const int anzahlmonat = 12; int monat[anzahlmonat]; int index = 0; }; Beispiele/_0912_Array... monat[index] = index + 1; cout << *monat << '\n'; cout << monat[index] << '\n'; monat[anzahlmonat - 1] = anzahlmonat; cout << monat[anzahlmonat - 1] << '\n'; C++ - Einführung Seite 20

21 Index eines Elements monat [ 0 ] = 1 arrayname [ index ] = wert ; ; Der Index symbolisiert die Position eines Wertes in einem Array. Der Index identifiziert exakt ein Element in einem Array. Das erste Element hat den Index 0. Das letzte Element hat den Index (Anzahl 1). C++ - Einführung Seite 21

22 Angabe eines Index monat [ 0 ] = 1 arrayname [ index ] = wert ; ; Der Index wird in in eckigen Klammern, direkt im Anschluss an den Array-Namen angegeben. Der Index ist immer vom Datentyp Ganzzahl. C++ - Einführung Seite 22

23 Nutzung des Array-Namens const int anzahlmonat = 12; int monat[anzahlmonat]; cout << *monat << '\n' Mit Hilfe von *arrayname wird der Wert des ersten Elements ausgegeben. Der Array-Name symbolisiert einen Zeiger auf das erste Element im Array. Der Array-Name hat als Wert den Beginn des Arrays im Speicher. C++ - Einführung Seite 23

24 Hinweise Die Nutzung einer negativen Ganzzahl verweist auf einen beliebigen Speicherbereich. Die unterste Grenze des Index wird überschritten. Die Nutzung einer Ganzzahl größer als die maximale Anzahl der Elemente verweist auf einen beliebigen Speicherbereich. Die oberste Grenze des Index wird überschritten. Ein Fehler wird beim Unterschreiten oder Überschreiten der Grenzen nicht gemeldet. C++ - Einführung Seite 24

25 Arbeiten mit dem Array-Element monat [ 0 ] = 1 arrayname [ index ] = wert ; ; Das Element eines Arrays ist vom Datentyp des Arrays. Mit Hilfe des Gleichheitszeichen kann dem Element ein Array zugewiesen werden. Entsprechend des Datentyps kann ein Element wie eine Variable in einem Ausdruck genutzt werden C++ - Einführung Seite 25

26 Durchlauf vom ersten bis zum letzten Element int main() { const int anzahlmonat = 12; int monat[anzahlmonat]; int index = 0; }; for(index = 0; index < anzahlmonat; index++) { monat[index] = index + 1; } Beispiele/_0912_Array... C++ - Einführung Seite 26

27 Durchlauf vom letzten bis zum ersten Element int main() { const int anzahlmonat = 12; int monat[anzahlmonat]; int index = 0; }; for(index = (anzahlmonat - 1); index >= 0; index--) { cout << index << ": " << monat[index] << '\n'; } Beispiele/_0912_Array... C++ - Einführung Seite 27

28 Kopieren von Elementen Beispiele/_0913_Array... const int maxmonat= 12; double temperatur01[maxmonat]; double temperatur02[maxmonat]; temperatur01[0] = -1.3; temperatur01[1] = -1.4; temperatur01[0] = 1.1; for(int index = 0; index < maxmonat; index++) { temperatur02[0] = temperatur01[index]; } C++ - Einführung Seite 28

29 Erläuterung Die Anweisung temperatur02 = temperatur01 erzeugt einen Fehler. Die Elemente eines Arrays müssen in ein anderes Array kopiert werden. Die Quelle und das Ziel sollten vom gleichen Datentyp sein. C++ - Einführung Seite 29

30 Vergleich von Arrays int main() { const int anzahlzeichen = 4; char buchstabengross[anzahlzeichen] = {'A', 'B', 'C', 'D'}; char buchstabenklein[anzahlzeichen] = {'a', 'b', 'c', 'd'}; int index = 0; bool gleich = false; }; gleich = (buchstabengross == buchstabenklein); cout << "Speicheradresse gleich: " << gleich; Beispiele/_0914_Array... C++ - Einführung Seite 30

31 Hinweise Mit Hilfe der Namen von Arrays werden die Speicheradressen des jeweiligen ersten Elements verglichen. Speicheradressen von zwei Arrays sind niemals gleich. Eine automatischer Vergleich aller Elemente in einem Array mit einem anderen ist nicht möglich. C++ - Einführung Seite 31

32 Vergleich von Elementen im Array int main() { const int anzahlzeichen = 4; char buchstabengross[anzahlzeichen] = {'A', 'B', 'C', 'D'}; char buchstabenklein[anzahlzeichen] = {'a', 'b', 'c', 'd'}; int index = 0; bool gleich = false; }; for(index = 0; index < anzahlzeichen; index++) { gleich = (buchstabengross[index] == buchstabenklein[index] ); gleich = (buchstabengross[index] == (buchstabenklein[index] - 32)); } Beispiele/_0914_Array... C++ - Einführung Seite 32

33 C++11: for each Beispiele/_0915_Array... const int anzahlzeichen = 4; char suchenach[anzahlzeichen] = {'a', 'b', 'c', 'd'}; int vorkommen[anzahlzeichen] = {0}; char suchein[7] = {'a', 'b', 'a', 'e', 'e', 'g', 'c'}; int index = -1; for(char buchstabe : suchenach){ index++; for(char quelle : suchein) { if (buchstabe == quelle){ vorkommen[index] = vorkommen[index] + 1; } } } C++ - Einführung Seite 33

34 Aufbau der for each -Schleife for(char buchstabe : suchenach) Schleifenkopf { } index++; Schleifenrumpf C++ - Einführung Seite 34

35 Schleifenkopf for ( char buchstabe : suchenach ) for ( datentyp element : arrayname ) Der Schleifenkopf beginnt mit dem Schlüsselwort for. Dem Schlüsselwort folgt die Anweisung Für jedes Element in dem Array in runden Klammern. Das Element links bezieht sich auf das Array rechts vom Doppelpunkt. Das Element und das Array sollten den gleichen Datentyp besitzen. C++ - Einführung Seite 35

36 Hinweise Das Array wird vollständig vom ersten bis zum letzten Element durchlaufen. Die Array-Elemente können nicht verändert werden. Die Werte des Array-Elements werden an die Variable call by value automatisiert übergeben. C++ - Einführung Seite 36

37 Mehrdimensionale Arrays Darstellung von mehreren Dimensionen. Zwei Dimensionen: x-, y-koordinatensystem; Schachbrett; Matrizen. Drei Dimensionen: x-, y-, z-koordinatensystem C++ - Einführung Seite 37

38 Hinweise Die maximal mögliche Dimension ist abhängig vom verwendeten Compiler. Der benötigte Speicherplatz steigt exponentiell mit der Anzahl der Dimensionen. C++ - Einführung Seite 38

39 deklarieren int main() { const int anzahlmonat = 12; const int anzahltage = 31; int tagimmonat[anzahlmonat][anzahltage]; int Koordinaten[10][10][10]; }; return 0; Beispiele/_0921_Array... C++ - Einführung Seite 39

40 Deklaration int tagimmonat [12] [12] ; datentyp name dimension dimension ; Für jede Dimension wird die Anzahl der Elemente in eckigen Klammern angegeben. In diesem Beispiel wird ein zweidimensionales Array genutzt. C++ - Einführung Seite 40

41 initialisieren int main() { int spielplan[][10] = { {0,1,0,0,0,0,0,0,0,0}, {0,1,0,0,0,0,0,1,1,1}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,1,1,1,1}, }; }; return 0; Beispiele/_0921_Array... C++ - Einführung Seite 41

42 Aufbau Deklaration int spielplan[][10] = { 1. Dimension {0,1,0,0,0,0,0,0,0,0}, {0,1,0,0,0,0,0,1,1,1}, Dimension } C++ - Einführung Seite 42

43 Erläuterung Bei einer gleichzeitigen Deklaration und Initialisierung muss die Anzahl der Elemente für die erste Dimension nicht angegeben werden. Die Anzahl der Elemente wird mit Hilfe der angegebenen Initialisierungslisten für die erste Dimension ermittelt. Die Initialisierungslisten für die verschiedenen Dimensionen werden durch die geschweiften Klammern begrenzt. Die Elemente in der Initialisierungsliste werden durch Kommata getrennt. Die Elemente der ersten bis zur (n 1)-Dimension bestehen jeweils aus einer Initialisierungsliste. C++ - Einführung Seite 43

44 Ermittlung der Speichergröße int achsenpunkte[][3][5] = { {{11,12,13}, {14, 15}}, {{21,22,23}, {24, 25, 26}, {27}} }; Beispiele/_0921_Array... cout << "Speichergröße eines Elements: " << sizeof(int) << '\n'; cout << "Speichergröße des Arrays (2 * 3 * 5 * int): " << sizeof(achsenpunkte) << '\n'; cout << "Speichergröße der 2. Dimension (1 * 3 * 5 int): " << sizeof(achsenpunkte[0]) << '\n'; cout << "Speichergröße der 3. Dimension (5 * int): " << sizeof(achsenpunkte[0][0]) << '\n'; cout << "Speichergröße eines Elements (1 * int): " << sizeof(achsenpunkte[0][0][0]) << '\n'; C++ - Einführung Seite 44

45 Speicherbedarf Das Schlüsselwort sizeof() gibt den Speicherbedarf eines Elements in Bytes zurück. Die Angabe sizeof(datentyp) gibt den Speicherbedarf des angegebenen Datentyps zurück. Das Element eines Arrays hat einen Speicherbedarf in Abhängigkeit des Datentyps. Die Angabe sizeof(arrayname) gibt den Speicherbedarf aller Elemente eines Arrays zurück. Die Angabe sizeof(arrayname[x][x]...) gibt den Speicherbedarf entsprechend der Angaben der Dimensionen für ein mehrdimensionales Array an. Der Speicherbedarf ist abhängig von den angegebenen Dimensionen und den darin enthaltenen Elementen. C++ - Einführung Seite 45

46 Grafische Darstellung C++ - Einführung Seite 46

47 und im Speicher spielplan[0][1] spielplan[0][2] C++ - Einführung Seite 47

48 Anzahl der Elemente int achsenpunkte[][3][5] = { {{11,12,13}, {14, 15}}, {{21,22,23}, {24, 25, 26}, {27}} }; Beispiele/_0921_Array... cout << "Anzahl der Elemente (gesamt): " << (sizeof(achsenpunkte) / sizeof(int)) << '\n'; cout << "Anzahl der Elemente in der 1. Dimension: " << (sizeof(achsenpunkte) / sizeof(achsenpunkte[0])) << '\n'; cout << "Anzahl der Elemente in der 2. Dimension: " << (sizeof(achsenpunkte[0]) / sizeof(achsenpunkte[0][0])) << '\n'; cout << "Anzahl der Elemente in der 3. Dimension: " << (sizeof(achsenpunkte[0][0]) / sizeof(achsenpunkte[0][0][0])) << '\n'; C++ - Einführung Seite 48

49 Anzahl der Elemente (sizeof(arrayname) / sizeof(int)) berechnet die Anzahl der Elemente in dem gesamten Array. (sizeof(arrayname) / sizeof(int)) berechnet die Anzahl der Elemente in dem gesamten Array. (sizeof(arrayname[x]...) / sizeof(arrayname[x][x]...)) berechnet die Anzahl der Elemente in Abhängigkeit der angegebenen Dimension. C++ - Einführung Seite 49

50 Elemente des Arrays nutzen int main() { int spielplan[][10] = { {0,1,0,0,0,0,0,0,0,0}, {0,1,0,0,0,0,0,1,1,1}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,1,1,1,1}, }; }; cout << "1,2: " << spielplan[0][1] << '\n'; spielplan[1][1] = 1; Beispiele/_0922_Array... C++ - Einführung Seite 50

51 Angabe des Index int spielplan[][10]; cout << "1,2: " << spielplan[0][1] << '\n'; spielplan[1][1] = 1; Im Anschluss an den Namen des Arrays wird der Index für jede Dimension angegeben. Der Index wird wie bei eindimensionalen Arrays in eckigen Klammern angegeben. Das erste Element einer Dimension hat den Index 0. Das letzte Element einer Dimension hat den Index (Anzahl 1). C++ - Einführung Seite 51

52 Array-Namen als Index nutzen Mit Hilfe von *array[0] wird in einem zweidimensionalen Array das Element mit dem Index [0][0] zurückgegeben. Bei einem dreidimensionalen Array würde die Adresse des ersten Elements mit dem Index [0][0] zurückgegeben. Mit Hilfe von *array wird in einem mehrdimensionalen Array die Adresse des Elements mit dem Index [0] zurückgegeben. C++ - Einführung Seite 52

53 Aufbau int spielplan[][10] = *spielplan Adresse des Elements { {0,1,0,0,0,0,0,0,0,0}, {0,1,0,0,0,0,0,1,1,1}, *spielplan[0] Wert des erstenelements... } C++ - Einführung Seite 53

54 Durchlauf vom ersten zum letzten Element int tagimmonat[anzahlmonat][anzahltage]; int indexdim01 = 0; int indexdim02 = 0; for(indexdim01 = 0; indexdim01 < anzahlmonat; indexdim01++) { for(indexdim02 = 0; indexdim02 < anzahltage; indexdim02++) { tagimmonat[indexdim01][indexdim02] = 0; } } Beispiele/_0923_Array... C++ - Einführung Seite 54

55 Durchlauf vom letzten zum ersten Element int tagimmonat[anzahlmonat][anzahltage]; int indexdim01 = 0; int indexdim02 = 0; for(indexdim01 = 0; indexdim01 < anzahlmonat; indexdim01++) { } for(indexdim02 = 0; indexdim02 < anzahltage; indexdim02++) { tagimmonat[indexdim01][indexdim02] = indexdim02 + 1; } Beispiele/_0923_Array... C++ - Einführung Seite 55

56 Schleife vorzeitig abbrechen for(indexdim01 = 0; indexdim01 < anzahlmonat; indexdim01++){ for(indexdim02 = 0; indexdim02 < anzahltage; indexdim02++) { if (((indexdim01 + 1) == 2) && ((indexdim02 + 1) > 29)){ break; } else if ((((indexdim01 + 1) == 4) ((indexdim01 + 1) == 6) ((indexdim01 +1) == 9) ((indexdim01 + 1) == 11) ) && ((indexdim02 + 1) > 30)){ break; } } } tagimmonat[indexdim01][indexdim02] = indexdim02 + 1; Beispiele/_0923_Array... C++ - Einführung Seite 56

57 Hinweise Es wird nur die Schleife vorzeitig abgebrochen, in der das Schlüsselwort break positioniert ist. In diesem Beispiel wird die innere Schleife abgebrochen, aber nicht die äußere Schleife. C++ - Einführung Seite 57

58 Array vom Typ char char buchstaben[] = {'h', 'e', 'l', 'l', 'o'}; cout << "Ausgabe des Strings: " << buchstaben << '\n'; Beispiele/_1010_String_... for(int index = 0; index < (sizeof(buchstaben) / sizeof(char)); index++) { cout << "Element " << index << ": " << buchstaben[index] << '\t'; } C++ - Einführung Seite 58

59 Erläuterung h e l l o Die Elemente des Arrays speichern einen beliebigen Wert vom Datentyp char. Jedes Element hat die Größe, die zum Speichern eines Datentyps char benötigt wird. Werte vom Datentyp char werden durch Apostrophs begrenzt. C++ - Einführung Seite 59

60 C-Style - Strings char zeichenkette[] = {'h', 'e', 'l', 'l', 'o', '\0'}; char zeichen[] = "hello"; cout << '\n' << "Ausgabe des Strings zeichenkette: " << zeichenkette << '\n'; Beispiele/_1010_String_.. cout << '\n' << "Ausgabe des Strings zeichen: " << zeichen << '\n'; C++ - Einführung Seite 60

61 Erläuterung h e l l o \0 Strings bestehen aus beliebigen Werten vom Datentyp char. Strings enden immer mit dem Null-Character \0, egal an welcher Position das Zeichen im Array steht. Durch die Kurzschreibweise "string" wird ein Array vom Datentyp char erzeugt. Das letzte Element in dem Array hat den Wert \0. String als Literale werden immer durch die Anführungszeichen begrenzt. C++ - Einführung Seite 61

62 Länge eines Strings #include <iostream> #include <cstring> using std::cout; int main() { char zitat[] = " To be, or not to be--that is the question: Whether 'tis nobler in the mind to suffer.\n"; } cout << "Länge des Strings: " << strlen(zitat); return 0; Beispiele/_1011_String_.. C++ - Einführung Seite 62

63 Erläuterung Die C-Standardbibliothek <cstring> definiert verschiedene Methoden für die Bearbeitung von Strings. Die Methode strlen(array) gibt die Anzahl der sichtbaren Zeichen eines Strings zurück. Der Null-Character wird nicht als sichtbares Zeichen gezählt. Die Anzahl der Elemente in dem Array kann mit Hilfe der Formel Anzahl (strlen(array) + 1) berechnet werden. C++ - Einführung Seite 63

64 String-Literale im Code cout << " To be, or not to be--that is the question: Whether 'tis nobler in the mind to suffer.\n"; cout << " To be, or not to be--that is the question:" " Whether 'tis nobler in the mind to suffer.\n"; cout << " To be, or not to be--that is the question:" " Whether 'tis nobler in the mind to suffer.\n"; Beispiele/_1011_String_.. Die Strings werden miteinander verbunden. Ein Leerzeichen zwischen den beiden Strings wird nicht automatisch eingefügt, sondern muss im String als Zeichen gesetzt werden. C++ - Einführung Seite 64

65 Aus- und Eingabestream char antwort[200]; char zitat[] = " To be, or not to be--that is the question: Whether 'tis nobler in the mind to suffer.\n"; cout << "\naus welchen Stück stammt das Zitat? Wer ist der Autor?\n"; cin >> antwort; cout << "Folgende Antwort wurde gegeben: " << antwort << '\n'; Beispiele/_1011_String_.. To be, or not to be--that is the question: Whether 'tis nobler in the mind to suffer. Aus welchen Stück stammt das Zitat? Wer ist der Autor? Hamlet Skapesheare Folgende Antwort wurde gegeben: Hamlet C++ - Einführung Seite 65

66 Ausgabestream cout << "\naus welchen Stück stammt das Zitat? Wer ist der Autor?\n"; cout ist in der Bibliothek <iostream> definiert. Mit Hilfe Hilfe der using-anweisung std::cout wird der Ausgabestream für die Nutzung freigegeben. Als Standardausgabe wird der Bildschirm genutzt. Die Spitze des Kleiner-Zeichens zeigt die Richtung an, in die der Stream umgeleitet wird. In diesem Beispiel wird der Stream von Bytes auf die Standardausgabe umgeleitet. C++ - Einführung Seite 66

67 Eingabestream cin >> antwort; cin ist in der Bibliothek <iostream> definiert. Mit Hilfe Hilfe der using-anweisung std::cin wird der Eingabestream für die Nutzung freigegeben. Die Zeichen werden standardmäßig mit der Tastatur eingegeben. Die Spitze des Größer-Zeichens zeigt die Richtung an, in die der Stream umgeleitet wird. In diesem Beispiel wird der Stream von Bytes in die Variable antwort umgeleitet. C++ - Einführung Seite 67

68 Speicherung in einem Array von char cin >> antwort; Es werden alle Zeichen bis zum ersten Leerzeichen, Tabulator oder der Eingabetaste eingelesen. Alle nach einem Leerzeichen, Tabulator oder der Eingabetaste folgenden Zeichen verbleiben im Stream. Die Obergrenze des Arrays kann beim Lesen von Zeichen überschritten werden, ohne das ein Fehler ausgegeben wird. C++ - Einführung Seite 68

69 Zeilenweise einlesen: getline() char antwort[200]; char antwort[200]; char zitat[] To be, or not to be--that is the question: char zitat[] = " To be, or not to be--that is the question: Whether 'tis nobler in the mind to suffer.\n"; Whether 'tis nobler in the mind to suffer.\n"; cout << "\naus welchen Stück stammt das Zitat? Wer ist der Autor?\n"; cout << "\naus welchen Stück stammt das Zitat? Wer ist der Autor?\n"; cin.getline(antwort, 200); cin >> antwort; cout << "Folgende Antwort wurde gegeben " << antwort << '\n'; cout << "Folgende Antwort wurde gegeben << antwort << '\n'; Beispiele/_1011_String_.. To be, or not to be--that is the question: Whether 'tis nobler in the mind to suffer. Aus welchen Stück stammt das Zitat? Wer ist der Autor? Hamlet Skapesheare Folgende Antwort wurde gegeben: Hamlet Skapesheare C++ - Einführung Seite 69

70 Arbeitsweise Es werden maximal x Zeichen (zweiter Parameter) zeilenweise in eine Variable gelesen. Falls weniger Zeichen als die maximale Anzahl von Zeichen eingegeben wurden, liest die Methode alle Zeichen bis zum Drücken der Eingabetaste (Return-Taste) ein. Die Eingabetaste wird als newline interpretiert. Das Zeichen wird aus den Buffer gelesen und durch den Null-Character '\0' in der Variablen ersetzt. C++ - Einführung Seite 70

71 Parameter Als erster Parameter wird der Methode der Name des Zielspeicherortes übergeben. In welcher Variablen wird die eingelesene Zeile gespeichert? Als zweiter Parameter wird die maximale Anzahl von Zeichen, die eingelesen werden sollen, übergeben. In diesem Beispiel ist das Limit auf 200 Zeichen festgesetzt. Es werden 199 Zeichen eingelesen. Das letzte Zeichen ist für den Null-Character reserviert. C++ - Einführung Seite 71

72 Zeilenweise einlesen: get() char antwort[200]; char antwort[200]; char zitat[] To be, or not to be--that is the question: char zitat[] = " To be, or not to be--that is the question: Whether 'tis nobler in the mind to suffer.\n"; Whether 'tis nobler in the mind to suffer.\n"; cout << "\naus welchen Stück stammt das Zitat? Wer ist der Autor?\n"; cout << "\naus welchen Stück stammt das Zitat? Wer ist der Autor?\n"; cin.get(antwort, maxzeichen); cin >> antwort; cout << "Folgende Antwort wurde gegeben " << antwort << '\n'; cout << "Folgende Antwort wurde gegeben << antwort << '\n'; Beispiele/_1011_String_... To be, or not to be--that is the question: Whether 'tis nobler in the mind to suffer. Aus welchen Stück stammt das Zitat? Wer ist der Autor? Hamlet Skapesheare Folgende Antwort wurde gegeben: Hamlet Skapesheare C++ - Einführung Seite 72

73 Arbeitsweise Mit Hilfe der Methode cin.get() werden maximal x Zeichen zeichenweise in eine Variable gelesen. Falls weniger Zeichen als die maximale Anzahl von Zeichen eingegeben wurden, liest die Methode alle Zeichen bis zum Drücken der Eingabetaste (Return-Taste) ein. Die Eingabetaste wird standardmäßig als newline interpretiert. Jedes andere Trennzeichen ist aber auch möglich. Das Zeichen verbleibt im Buffer. Die Methode gibt es in verschiedenen Varianten. Die Methode ist überladen. C++ - Einführung Seite 73

74 Parameter Als erster Parameter wird der Methode der Name des Zielspeicherortes übergeben. In welcher Variablen wird die eingelesene Zeile gespeichert? Als zweiter Parameter wird die maximale Anzahl von Zeichen, die eingelesen werden sollen, übergeben. Diese Variante entspricht der Methode.getline(). C++ - Einführung Seite 74

75 Zeilenweise einlesen: get() char antwort[200]; char antwort[200]; char zitat[] To be, or not to be--that is the question: char zitat[] = " To be, or not to be--that is the question: Whether 'tis nobler in the mind to suffer.\n"; Whether 'tis nobler in the mind to suffer.\n"; cout << "\naus welchen Stück stammt das Zitat? Wer ist der Autor?\n"; cout << "\naus welchen Stück stammt das Zitat? Wer ist der Autor?\n"; cin.get(antwort, maxzeichen, ' '); cin >> antwort; cout << "Folgende Antwort wurde gegeben " << antwort << '\n'; cout << "Folgende Antwort wurde gegeben << antwort << '\n'; Beispiele/_1011_String_... To be, or not to be--that is the question: Whether 'tis nobler in the mind to suffer. Aus welchen Stück stammt das Zitat? Wer ist der Autor? Hamlet Skapesheare Folgende Antwort wurde gegeben: Hamlet C++ - Einführung Seite 75

76 Parameter Als erster Parameter wird der Methode der Name des Zielspeicherortes übergeben. In welcher Variablen wird die eingelesene Zeile gespeichert? Als zweiter Parameter wird die maximale Anzahl von Zeichen, die eingelesen werden sollen, übergeben. Als dritter Parameter kann der Methode ein Trennzeichen für die Zeilen übergeben werden. Standardmäßig wird '\n' genutzt. In diesem Beispiel wird eine wortweise Trennung mit Hilfe des Leerzeichens genutzt. C++ - Einführung Seite 76

77 Lesen des nächsten Zeichens cin.get(); Beispiele/_1011_String_... Diese Variante liest das nächste Zeichen aus dem Buffer. Wenn das Ende der Datei (EOF) erreicht ist, liefert die Methode die symbolische Konstante EOF. Die Konstante ist in der Bibliothek <iostream> definiert. C++ - Einführung Seite 77

78 Löschen des failbits char antwort[200]; char antwort[200]; char zitat[] To be, or not to be--that is the question: char zitat[] = " To be, or not to be--that is the question: Whether 'tis nobler in the mind to suffer.\n"; Whether 'tis nobler in the mind to suffer.\n"; cout << "\naus welchen Stück stammt das Zitat? Wer ist der Autor?\n"; cout << "\naus welchen Stück stammt das Zitat? Wer ist der Autor?\n"; cin >> antwort; cin.clear(); cout << "Folgende Antwort wurde gegeben " << antwort << '\n'; Beispiele/_1011_String_.. C++ - Einführung Seite 78

79 Leeren des Buffers char antwort[200]; char antwort[200]; char zitat[] To be, or not to be--that is the question: char zitat[] = " To be, or not to be--that is the question: Whether 'tis nobler in the mind to suffer.\n"; Whether 'tis nobler in the mind to suffer.\n"; cout << "\naus welchen Stück stammt das Zitat? Wer ist der Autor?\n"; cout << "\naus welchen Stück stammt das Zitat? Wer ist der Autor?\n"; cin >> antwort; cin.ignore(10000,'\n'); cout << "Folgende Antwort wurde gegeben " << antwort << '\n'; Beispiele/_1011_String_.. Im Buffer vorhandene Zeichen werden entfernt. Es werden x Zeichen (erster Parameter) bis zum angegebenen Zeichen (zweiter Parameter) entfernt. C++ - Einführung Seite 79

80 Array und Strukturen struct umfrage { char geschlecht; int alter; double gewicht; double groesse; }; umfrage probanden[12]; probanden[0].geschlecht = 'm'; probanden[0].alter = 50; probanden[0].groesse = 1.90; probanden[0].gewicht = 90; Beispiele/_0931_Array... C++ - Einführung Seite 80

81 Deklaration umfrage probanden [ 12 ] ; structname arryname [ anzahl ] ; Der Name eines Arrays ist frei wählbar. Direkt im Anschluss an den Namen folgt die Anzahl der Elemente, in eckigen Klammern. Die Elemente sind vom Datentyp der Struktur. Die Struktur muss vor der Nutzung deklariert sein. C++ - Einführung Seite 81

82 Elemente des Arrays arrayname [ index ]... structelement structelement structelement Dem Namen des Arrays folgt, in eckigen Klammern, der Index des Elements. Das Array-Element wird mit Hilfe des Punktoperators mit dem Strukturelement verbunden. Das Strukturelement ist in dem Datentyp Struktur des Arrays definiert. C++ - Einführung Seite 82

83 Initialisierung umfrage stichprobe[12] = { {'m', 18, 2.03, 98}, {'w', 0, 1.65, 56} }; In der Initialisierungsliste wird für jedes Array-Element eine Liste für die Initialisierung der Strukturelemente angelegt. Die einzelnen Listen werden durch Kommata getrennt. C++ - Einführung Seite 83

84 Initialisierungsliste für die Strukturelement Die Initialisierungsliste beginnt und endet mit den geschweiften Klammern. Die Werte der einzelnen Strukturelemente werden durch Kommata getrennt. Die Auflistung der Werte in der Initialisierungselemente entspricht der Reihenfolge der Strukturelemente in der Deklaration der Struktur. C++ - Einführung Seite 84

85 Arbeiten mit Zeigern const int anzahlzeichen = 4; char buchstaben[anzahlzeichen] = {'A', 'B', 'C', 'D'}; char *ptrarray; int index = 0; ptrarray = buchstaben; *ptrarray = 'a'; ptrarray++; *ptrarray = 'b'; ptrarray = buchstaben; ptrarray = (ptrarray + (anzahlzeichen - 1)); Beispiele/_0941_Array... C++ - Einführung Seite 85

86 Name des Arrays const int anzahlzeichen = 4; char buchstaben[anzahlzeichen] = {'A', 'B', 'C', 'D'}; char *ptrarray; ptrarray = buchstaben; Der Name des Arrays ist ein Synonym für die Speicheradresse des ersten Elements in einem ein- oder mehrdimensionalen Array. Der Name des Arrays ist ein Platzhalter für den Beginn des Arrays im Speicher. C++ - Einführung Seite 86

87 Zeiger auf das erste Element const int anzahlzeichen = 4; char buchstaben[anzahlzeichen]; char *ptrarray; ptrarray = buchstaben; const int anzahlzeichen = 4; char buchstaben[anzahlzeichen]; char *ptrarray; ptrarray = &buchstaben[0]; Die, im Namens des Arrays gespeicherte, Adresse wird mit Hilfe des Gleichheitszeichens dem Zeiger zugewiesen. Der Zeiger auf die Elemente des Arrays und das dazugehörige Array haben den gleichen Datentyp. Der Adressoperator wird bei der Nutzung des Array-Namens nicht benötigt. C++ - Einführung Seite 87

88 Nutzung des Dekrement- und Inkrement-Operator ptrarray++; ptrarray--; Der Inkrement-Operator verschiebt den Zeiger auf das nächste Element. Der Dekrement-Operator verschiebt den Zeiger auf das vorherige Element. Der Zeiger wird um sizeof(datentyp) verschoben. C++ - Einführung Seite 88

89 Berechnung des nächsten Elements ptrarray = (ptrarray + (anzahlzeichen - 1)); Der Zeiger wird um (x * sizeof(datentyp)) verschoben. Die neue Adresse wird mit Hilfe der Speichergröße des angegebenen Datentyps berechnet. C++ - Einführung Seite 89

90 Wert des nächsten Elements cout << *(ptrarray - index) << '\n'; Der Zeiger wird um (x * sizeof(datentyp)) verschoben. Die Verschiebung muss geklammert werden. Mit Hilfe des Dereferenzierungsoperators * wird der Wert an der angegeben Position im Speicher ausgegeben. C++ - Einführung Seite 90

91 Anforderung von Speicher const int maxanzahl = 10; int index; double *ptrstart; double *tmpdouble; ptrstart = new double[maxanzahl]; tmpdouble = ptrstart; delete [] ptrstart; ptrstart = 0; Beispiele/_0942_Array... C++ - Einführung Seite 91

92 Anforderung des Speichers const int maxanzahl = 10; double *ptrstart; ptrstart = new double[maxanzahl]; Mit Hilfe des Schlüsselwortes new wird Speicher angefordert. Der Speicher wird im Heap des Rechners bereitgestellt. Dem Schlüsselwort folgt die benötigte Größe des Speicherbereichs. In diesem Beispiel wird Speicher für Elemente vom Typ double angefordert. In eckigen Klammern folgt dem Datentyp die Anzahl der Elemente. In diesem Beispiel wird ein Array von 10 Elementen vom Datentyp double erzeugt. C++ - Einführung Seite 92

93 Temporäre Speicherung der Anfangsadresse const int maxanzahl = 10; double *ptrstart; double *tmpdouble; ptrstart = new double[maxanzahl]; tmpdouble = ptrstart; Die Anfangsadresse des angeforderten Speicherbereichs wird in einem Zeiger gespeichert. Der Wert dieses Zeigers sollte nicht verändert werden. Andernfalls kann der Speicherbereich nicht mehr freigegeben werden. C++ - Einführung Seite 93

94 Temporäre Speicherung der Anfangsadresse const int maxanzahl = 10; double *ptrstart; double *tmpdouble; ptrstart = new double[maxanzahl]; tmpdouble = ptrstart; Die Anfangsadresse des angeforderten Speicherbereichs wird in einem Zeiger gespeichert. Der Wert dieses Zeigers sollte nicht verändert werden. Andernfalls kann der Speicherbereich nicht mehr freigegeben werden. C++ - Einführung Seite 94

95 Arbeiten mit Array-Elementen double *tmpdouble; ptrstart = new double[maxanzahl]; tmpdouble = ptrstart; for (index = 0; index < maxanzahl; index++){ tmpdouble[index] = index; } Im Anschluss des Namens des Zeigers wird in eckigen Klammern der Index angegeben. Der Dereferenzierungsoperator wird bei dieser Schreibweise nicht benötigt. C++ - Einführung Seite 95

96 Andere Möglichkeit double *tmpdouble; ptrstart = new double[maxanzahl]; tmpdouble = ptrstart; for (index = 0; index < maxanzahl; index++){ cout << *(tmpdouble + index) << '\n'; } Im Zeiger ist die Speicheradresse gespeichert. Diese Adresse wird um (x * Speichergröße des Datentyps) verschoben. Der Wert an der neuen Adresse wird mit Hilfe des Dereferenzierungsoperator angesprochen. C++ - Einführung Seite 96

97 Freigabe des Speichers delete [] ptrstart; ptrstart = 0; Mit Hilfe des Schlüsselwortes delete wird der angeforderte Speicher freigegeben. Zwischen dem Schlüsselwort delete und dem Namen des Zeigers stehen die eckigen Klammern. Mit Hilfe der eckigen Klammern wird dem Programm mitgeteilt, dass der Speicher für das gesamte Array freigegeben werden soll und nicht nur für das Element auf welches, aktuell verwiesen wird. C++ - Einführung Seite 97

98 Hinweise new datentyp [] wird mit der Anweisung delete [] freigegeben. new datentyp wird mit der Anweisung delete freigegeben. Wenn der Speicher nicht mit new angefordert wurde, wird der Speicher auch nicht mit delete frei gegeben. C++ - Einführung Seite 98

99 Zeiger auf Null setzen delete [] ptrstart; ptrstart = 0; Sobald der Speicher freigegeben ist, sollte der Zeiger auf Null gesetzt werden. Der Zeiger zeigt auf einen undefinierten Speicherbereich. C++ - Einführung Seite 99

100 Array und Funktionen void initialarray(int array[], int anzahlelement){ int maxanzahl = anzahlelement; } for(int index = 0; index < maxanzahl; index++) { array[index] = (index + 1) * (index + 1); } int main() { const int maxanzahl = 10; int wert[maxanzahl]; initialarray(wert, maxanzahl); Beispiele/_0951_Array... C++ - Einführung Seite 100

101 Parameter Array im Funktionskopf void initialarray(int array[], int anzahlelement) void initialarray(int *array, int anzahlelement) Der Datentyp des Arrays wird angegeben. Von welchen Typ sind die Array-Elemente? array[] übergibt die Anfangsadresse des Arrays im Speicher. Ein Zeiger, der auf ein bestimmtes Array verweist, wird übergeben. Der Funktion muss mitgeteilt werden, wie viele Elemente das Array hat. C++ - Einführung Seite 101

102 Schreibschutz void showarray(const int array[], int anzahlelement) void showarray(const int *array, int anzahlelement) Es wird ein Zeiger auf konstante Werte als Parameter definiert. C++ - Einführung Seite 102

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

C++ - Einführung in die Programmiersprache String (Zeichenkette)

C++ - Einführung in die Programmiersprache String (Zeichenkette) C++ - Einführung in die Programmiersprache String (Zeichenkette) H A L L O \0 Leibniz Universität IT Services Anja Aue Strings Sammlung von Buchstaben, Zahlen, Satzzeichen, Sonderzeichen und mathematischen

Mehr

C++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Funktionen Leibniz Universität IT Services Anja Aue Subroutine (Unterprogramm) Lösung von Teilen einer Gesamtaufgabe. Kapselung von Anweisungen, die zu einer

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

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

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

C++ - Einführung in die Programmiersprache Ein- und Ausgabe in die Konsole. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Ein- und Ausgabe in die Konsole. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Ein- und Ausgabe in die Konsole Leibniz Universität IT Services Anja Aue Eingabe (input) und Ausgabe (output) In diesem Kapitel wird nur das Lesen von und das

Mehr

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue Java - Schleifen Bedingung wiederhole ja Anweisung Anweisung Anweisung Leibniz Universität IT Services Anja Aue Anweisung int zahl; zahl = 2; zahl = zahl * 10; int zahl; ; Jede Anweisung endet mit einem

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

C++ - Objektorientierte Programmierung Vererbung

C++ - Objektorientierte Programmierung Vererbung C++ - Objektorientierte Programmierung Vererbung Personen Kunden Mitarbeiter Verwaltung Verkäufer Leibniz Universität IT Services Anja Aue Vererbung Definition von Klassen auf Basis von bestehenden Klassen.

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

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

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

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

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

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

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

+ 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

C++ - Einführung in die Programmiersprache Schleifen

C++ - Einführung in die Programmiersprache Schleifen C++ - Einführung in die Programmiersprache Schleifen Bedingung wiederhole ja Anweisung Anweisung Anweisung Leibniz Universität IT Services Anja Aue Schleifen Iterationsanweisungen. Wiederholung von Anweisungsblöcken.

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

Zeiger: Der Adressoperator &

Zeiger: Der Adressoperator & Zeiger: Der Adressoperator & Variablen werden im Computer im Speicher abgelegt. Nach der Deklaration int a,b,c; double x,y,z; Sieht die Speicherbelegung etwa wie folgt aus: a b c x y z Jede Variable hat

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

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

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

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

Programmierung mit C Felder; Array

Programmierung mit C Felder; Array Programmierung mit C Felder; Array Arrays (Felder, Vektoren)... sind zusammengesetzte Datenstrukturen.... bestehen aus mehreren Elementen, die vom selben Datentyp sind.... bestehen aus mehreren Elementen,

Mehr

C++ - Einführung in die Programmiersprache Standard Templates. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Standard Templates. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Standard Templates Leibniz Universität IT Services Anja Aue C++ - Standardbibliothek Standardisierte Sammlung von häufig vorkommenden Funktionen und Klassen.

Mehr

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen Leibniz Universität IT Services Anja Aue Modularisierung Logische Gliederung von Programmteilen mit Hilfe von Namensräumen. Aufteilung

Mehr

Zeiger und dynamischer Speicher

Zeiger und dynamischer Speicher Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Zuletzt aktualisiert: 09.12.2013, 07:49 Uhr

Mehr

Variablen in C++ Einfache Variablen Strukturen Arrays und Zeichenketten Zeiger und Referenzen Parameter Dynamische Speicherverwaltung

Variablen in C++ Einfache Variablen Strukturen Arrays und Zeichenketten Zeiger und Referenzen Parameter Dynamische Speicherverwaltung Variablen in C++ Einfache Variablen Strukturen Arrays und Zeichenketten Zeiger und Referenzen Parameter Dynamische Speicherverwaltung Einfache Variablen Typen int, long, short, unsigned bool char float,

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

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 5-1 Übung Schreiben Sie ein Programm, das die Zahl π durch π = 4 4 4 4 4 4 + + +... 3 5 7 9 11

Mehr

Die Programmiersprache C99: Zusammenfassung

Die Programmiersprache C99: Zusammenfassung Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach

Mehr

C Objektorientierte Programmierung Standard-Library am Beispiel von Strings. Leibniz Universität IT Services Anja Aue

C Objektorientierte Programmierung Standard-Library am Beispiel von Strings. Leibniz Universität IT Services Anja Aue C++ - - Objektorientierte Programmierung Standard-Library am Beispiel von Strings Leibniz Universität IT Services Anja Aue C++ - Standardbibliothek Standardisierte Sammlung von häufig vorkommenden Funktionen

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

Abgeleitete Datentypen

Abgeleitete Datentypen Abgeleitete Datentypen Prof. Dr. Markus Gross Informatik I für D-MAVT (FS 2014) Felder (Arrays) Zeichenketten (Strings) Strukturen (Structs) union, enum & typedef Arrays Ein Array ist ein Datentyp, der

Mehr

C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen

C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen Gehe nach links oder rechts Gehe solange geradeaus... Leibniz Universität IT Services Anja Aue Programmabläufe grafisch abbilden

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

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

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 23 Kapitel 16 Datei Aus- und Eingabe Seite 1 von 23 Datei Aus- und Eingabe - Für die Ausgabe auf Dateien und die Eingabe von Dateien werden die Streams ofstream und ifstream verwendet. - Sie sind in der Bibliothek

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

C++ - Einführung in die Programmiersprache Variablen und Konstanten. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Variablen und Konstanten. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Variablen und Konstanten Leibniz Universität IT Services Anja Aue Kommentare Hilfe für den Entwickler. Wer hat wann welche Änderung vorgenommen? Warum werden

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

Excel VBA Arrays, Enumeration und benutzerdefinierte Typen

Excel VBA Arrays, Enumeration und benutzerdefinierte Typen Excel VBA Arrays, Enumeration und benutzerdefinierte Typen Array (Feld)... ist aus vielen Variablen, die den gleichen Datentyp besitzen, zusammengesetzt.... fasst Elemente vom gleichen Datentyp zusammen....

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

Grundlagen der Informatik 2. Typen

Grundlagen der Informatik 2. Typen Grundlagen der Informatik 2. Typen Speicher, Speicherbedarf Ein-/Ausgabe Grundlagen der Informatik (Alex Rempel) 1 Wiederholung // root calculation #include #include using namespace

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

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)

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

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22 C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven

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

Grundlagen der Informatik 11. Zeiger

Grundlagen der Informatik 11. Zeiger 11. Zeiger Motivation Zeiger und Adressen Zeiger und Funktionen Zeiger und Arrays Dynamische Objekte Grundlagen der Informatik (Alex Rempel) 1 Motivation Dynamische Speicherverwaltung Oft müssen große

Mehr

Bereits behandelt: Einfache Datentypen / Variablen. Schleifen und Verzweigungen. Funktionen. Heute: Felder, Zeiger, Referenzen. Freispeicherverwaltung

Bereits behandelt: Einfache Datentypen / Variablen. Schleifen und Verzweigungen. Funktionen. Heute: Felder, Zeiger, Referenzen. Freispeicherverwaltung Kompaktkurs C++ Themen C 1 Bereits behandelt: Einfache Datentypen / Variablen Schleifen und Verzweigungen Funktionen Heute: Felder, Zeiger, Referenzen Freispeicherverwaltung Zeichenketten Kommandozeilenargumente

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

5. Abgeleitete Datentypen

5. Abgeleitete Datentypen 5. Abgeleitete Datentypen Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Felder (Arrays)!Zeichenketten (Strings)!Strukturen (Structs) Copyright: M. Gross, ETHZ, 2003 2 Arrays! Ein Array ist

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

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

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

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

3.2 Datentypen und Methoden

3.2 Datentypen und Methoden Kap03.fm Seite 217 Dienstag, 7. September 2010 1:48 13 3.2 Datentypen und Methoden 217 3.2 Datentypen und Methoden Wie bei vielen höheren Programmiersprachen gibt es auch in Java einfache und strukturierte

Mehr

Grundlagen der Informatik 6. Arrays I

Grundlagen der Informatik 6. Arrays I 6. Arrays I Motivation Array (konstante Länge) Speicherbereich Eingabe von Arrays Grundlagen der Informatik (Alex Rempel) 1 Motivation Beispiel: Bildschirmpixel zeichnen Auflösung 800x600, d.h. insgesamt

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++ - Einführung in die Programmiersprache Fehler abfangen. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Fehler abfangen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Fehler abfangen Leibniz Universität IT Services Anja Aue Warnungen Hinweise auf riskanten Code. Eine Kompilierung wird nicht verhindert. Um größere Fehler zu

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

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

Einführung in die Programmierung zusammengesetzte Datentypen, dynamischer Speicher

Einführung in die Programmierung zusammengesetzte Datentypen, dynamischer Speicher Einführung in die Programmierung zusammengesetzte Datentypen, dynamischer Speicher Arvid Terzibaschian 1 Zusammengesetzte Datentypen 2 Wozu zusammengesetzte Datentypen? Anforderung: Sie sollen ein Kundenverzeichnis

Mehr

Felder (Arrays) und Zeiger (Pointers) - Teil I

Felder (Arrays) und Zeiger (Pointers) - Teil I Felder (Arrays) und Zeiger (Pointers) - Teil I Feldtypen, Sieb des Eratosthenes, Iteration, Zeigertypen, Zeigerarithmetik, dynamische Speicherverwaltung Felder: Motivation n Wir können jetzt über Zahlen

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

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

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

Wertebereich und Genauigkeit der Zahlendarstellung

Wertebereich und Genauigkeit der Zahlendarstellung Wertebereich und Genauigkeit der Zahlendarstellung Sowohl F als auch C kennen bei ganzen und Floating Point-Zahlen Datentypen verschiedener Genauigkeit. Bei ganzen Zahlen, die stets exakt dargestellt werden

Mehr

Quiz und Übungen. C++ Übung am 19. Mai 2016

Quiz und Übungen. C++ Übung am 19. Mai 2016 Quiz und Übungen C++ Übung am 19. Mai 2016 Was ist der Unterschied zwischen kompilierenden und interpretierenden Programmiersprachen? Was ist der Unterschied zwischen kompilierenden und interpretierenden

Mehr

Dynamische Datentypen

Dynamische Datentypen Dynamische Datentypen Tupel und Folgen o Wertebereich eines Structs / einer Klasse: T1 T2... Tk Werte sind k-tupel Tupel und Folgen o Wertebereich eines Structs / einer Klasse: T1 T2... Tk Werte sind k-tupel

Mehr

Zeiger, Arrays und Strings in C und C++

Zeiger, Arrays und Strings in C und C++ Zeiger, Arrays und Strings in C und C++ 1 Zeiger in Java und C/C++ Zeigervariable (kurz: Zeiger, engl.: pointer): eine Variable, die als Wert eine Speicheradresse enthält Java: Zeiger werden implizit für

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

Intensivkurs C++ Tag 2: Grundlagen++ Marc Tschentscher Institut für Neuroinformatik

Intensivkurs C++ Tag 2: Grundlagen++ Marc Tschentscher Institut für Neuroinformatik Intensivkurs C++ Tag 2: Grundlagen++ Marc Tschentscher Institut für Neuroinformatik www.ini.rub.de/rtcv 19.09.2017 Intensivkurs C++ 19.09.2017 Marc Tschentscher 1 Themen 1 Gültigkeitsbereiche und Namensräume

Mehr

Assoziative Container in C++ Christian Poulter

Assoziative Container in C++ Christian Poulter Assoziative Container in C++ Christian Poulter Seminar: Die Sprache C++ Mat-Nr.: 53 03 129 EMail: inf@poulter.de Christian Poulter Assoziative Container in C++ Seite 1/10 Inhalt 1. Einleitung: Container...

Mehr

C-Programmierung: Ausdrücke und Operatoren#Division.2F

C-Programmierung: Ausdrücke und Operatoren#Division.2F C-Programmierung: Ausdrücke und Operatoren#Division.2F http://de.wikibooks.org/wiki/c-programmierung:_ausdrücke_und_operatoren#division_.2f This Book Is Generated By Wb2PDF using RenderX XEP, XML to PDF

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

Felder (Arrays) und Zeiger (Pointers) - Teil I

Felder (Arrays) und Zeiger (Pointers) - Teil I Felder (Arrays) und Zeiger (Pointers) - Teil I Felder: Motivation Wir können jetzt über Zahlen iterieren: for (int i=0; i

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Speicherverwaltung und Parameterübergabe Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Gültigkeitsbereich von

Mehr

Algorithmen zur Datenanalyse in C++

Algorithmen zur Datenanalyse in C++ Algorithmen zur Datenanalyse in C++ Hartmut Stadie 16.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 39 Einführung Datentypen Operatoren Anweisungssyntax Algorithmen zur Datenanalyse in

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 5 Referenzdatentypen - Felder... 5-2 5.1 Eindimensionale Felder - Vektoren... 5-3 5.1.1 Vereinbarung... 5-3 5.1.2 Referenzen sind keine Felder... 5-4 5.1.3 Kopieren eindimensionaler Felder... 5-6

Mehr

Bereits behandelt: Einfache Datentypen / Variablen. Schleifen und Verzweigungen. Funktionen. Heute: Felder, Zeiger, Referenzen. Freispeicherverwaltung

Bereits behandelt: Einfache Datentypen / Variablen. Schleifen und Verzweigungen. Funktionen. Heute: Felder, Zeiger, Referenzen. Freispeicherverwaltung Kompaktkurs C++ Themen C 1 Bereits behandelt: Einfache Datentypen / Variablen Schleifen und Verzweigungen Funktionen Heute: Felder, Zeiger, Referenzen Freispeicherverwaltung Zeichenketten Kommandozeilenargumente

Mehr

10 Die Programmiersprache C99: Zusammenfassung

10 Die Programmiersprache C99: Zusammenfassung 10 Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 25. September 2014, 18:40 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html

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

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

Übungspaket 23 Mehrdimensionale Arrays

Übungspaket 23 Mehrdimensionale Arrays Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:

Mehr

Informatik 1 ( ) D-MAVT F2010. Schleifen, Felder. Yves Brise Übungsstunde 5

Informatik 1 ( ) D-MAVT F2010. Schleifen, Felder. Yves Brise Übungsstunde 5 Informatik 1 (251-0832-00) D-MAVT F2010 Schleifen, Felder Nachbesprechung Blatt 3 Aufgabe 1 ASCII... A > a Vorsicht: Lösen Sie sich von intuitiven Schlussfolgerungen. A ist nicht grösser als a, denn in

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++ Teil 6. Sven Groß. 27. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 14

C++ Teil 6. Sven Groß. 27. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 14 C++ Teil 6 Sven Groß 27. Mai 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 6 27. Mai 2016 1 / 14 Themen der letzten Vorlesung Musterlösung A2 Wdh.: Zeiger und Felder Kopieren von Feldern Dynamische Speicherverwaltung

Mehr

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!!

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!! !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!! Erste Zeile eines PERL-Scripts: #! /usr/bin/perl Variablen in PERL: Normale Variablen beginnen mit einem $-Zeichen Array-Variablen beginnen mit

Mehr

C++ Teil 7. Sven Groß. 3. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 3. Juni / 16

C++ Teil 7. Sven Groß. 3. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 3. Juni / 16 C++ Teil 7 Sven Groß 3. Juni 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 3. Juni 2016 1 / 16 Themen der letzten Vorlesung dynamische Speicherverwaltung (Wdh.) Cast bei Zeigern STL-Vektoren + Live Programming

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

Themen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente

Themen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente Themen Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente Formatierte Eingabe mit cin Die Formatierung der Eingabe ist der Ausgabe sehr ähnlich: Die Flags werden

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

Hydroinformatik I: Referenzen und Zeiger

Hydroinformatik I: Referenzen und Zeiger Hydroinformatik I: Referenzen und Zeiger Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 06. Januar

Mehr

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i

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

DAP2 Praktikum Blatt 1

DAP2 Praktikum Blatt 1 Fakultät für Informatik Lehrstuhl 11 / Algorithm Engineering Prof. Dr. Petra Mutzel, Carsten Gutwenger Sommersemester 2009 DAP2 Praktikum Blatt 1 Ausgabe: 21. April Abgabe: 22. 24. April Kurzaufgabe 1.1

Mehr