C++ - Einführung in die Programmiersprache String (Zeichenkette)
|
|
- Benjamin Schulze
- vor 7 Jahren
- Abrufe
Transkript
1 C++ - Einführung in die Programmiersprache String (Zeichenkette) H A L L O \0 Leibniz Universität IT Services Anja Aue
2 Strings Sammlung von Buchstaben, Zahlen, Satzzeichen, Sonderzeichen und mathematischen Symbolen in einem Feld. Array vom Datentyp char[]. Verkettung von beliebig vielen Elementen aus dem ASCII- Zeichensatz. In C++ stellt die Klasse String Attribute für eine Zeichenkette und Methoden zum Bearbeiten bereit. C++ - Einführung Seite 2
3 ASCII-Zeichentabelle C++ - Einführung Seite 3
4 im Internet American_Standard_Code_for_Information_Interchange Tabelle C++ - Einführung Seite 4
5 ... und NetBeans Rechtsklick auf das Projekt. Auswahl des Befehls Properties im Kontextmenü des Projektes. Die Kategorie Sources ist aktiv. Die Liste Encoding am unteren Ende gibt Auskunft über den genutzten Zeichensatz in dem Projekt. Standardmäßig wird UTF-8 genutzt. C++ - Einführung Seite 5
6 ... und in der Microsoft Eingabeaufforderung Die Microsoft Eingabeaufforderung unterstützt standardmäßig nur ASCII-Zeichencode (siehe Der Befehl chcp zeigt die aktuelle genutzte Codepage an. Der Befehl chcp 1252 stellt die aktuelle Codepage auf West European Latin um. C++ - Einführung Seite 6
7 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 7
8 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 Aphostrophs begrenzt. C++ - Einführung Seite 8
9 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 9
10 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 10
11 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 11
12 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 12
13 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 13
14 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 14
15 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 15
16 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 16
17 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 17
18 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 18
19 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 newlinie interpretiert. Das Zeichen wird aus den Buffer gelesen und durch den Null-Character '\0' in der Variablen ersetzt. C++ - Einführung Seite 19
20 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 20
21 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 21
22 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 newlinie 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 22
23 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 23
24 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 24
25 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 25
26 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 26
27 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 27
28 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 28
29 C++-Style - Strings #include <iostream> #include <string> using std::string; int main() { string zitat; Beispiele/_1020_String... } zitat = " To be, or not to be--that is the question: Whether 'tis nobler in the mind to suffer.\n"; return 0; C++ - Einführung Seite 29
30 Erläuterung Strings werden in der Programmiersprache C++ in der Bibliothek <string> definiert. Die Klasse ist ein Container für die Nutzung von Arrays vom Typ char. Mit Hilfe der Anweisung using std::string wird die Klasse zur Nutzung freigegeben. Klassen stellen einen Bauplan für einen bestimmten Typ von Daten bereit. string variable definiert eine Variable von der Klasse string. C++ - Einführung Seite 30
31 Deklaration von String-Variablen string zitat ; string variable ; Definition einer Variablen von der Klasse string. Mit Hilfe des Bauplans string wird ein konkretes Objekt zitat erzeugt. Für das Objekt wird automatisiert genügend Speicher bereitgestellt. C++ - Einführung Seite 31
32 Initialisierungsanweisung string zitat; zitat = " To be, or not to be--that is the question: Whether 'tis nobler in the mind to suffer.\n"; Beispiele/_1020_String... Literale vom Typ string werden immer durch die Anführungszeichen begrenzt. Strings werden mit Hilfe des Gleichheitszeichen einer Variablen vom Typ string zugewiesen. C++ - Einführung Seite 32
33 Definition und Initialisierung Beispiele/_1020_String... string autor = "Skapespeare"; string stueck("hamlet"); Mit Hilfe des Zuweisungsoperators wird dem String ein Wert zugewiesen. Andere Möglichkeit: Direkt im Anschluss an den Namen der Variablen folgt die geöffnete und geschlossene runde Klammer. In den runden Klammern wird der Variablen der Intialisierungswert übergeben. In beiden Fällen wird ein Konstruktor zur Erzeugung des konrekten Objekts aufgerufen. C++ - Einführung Seite 33
34 Literale als Initialisierungsstring Beispiele/_1020_String... string autor = "Skapespeare"; string stueck("hamlet"); string angabe = autor + " " + stueck; Als Initialisierungsstring wird ein Literal genutzt. Literale Strings werden durch die Anfürhungszeichen begrenzt. C++ - Einführung Seite 34
35 Variablen als Initialisierungsstring nutzen Beispiele/_1020_String... string autor = "Skapespeare"; string stueck("hamlet"); string angabe = autor + " " + stueck; string schriftsteller(autor); string dichter(angabe,0,11); string schreiber(angabe,0,autor.length()); In den runden Klammern kann dem Konstruktur auch eine deklarierte String-Variable übergeben werden. Der String kann den Wert einer String-Variablen vollständig oder nur ein Teilwort nutzen. C++ - Einführung Seite 35
36 Nutzung von Teilworten aus einem String Beispiele/_1020_String... string autor = "Skapespeare"; string stueck("hamlet"); string angabe = autor + " " + stueck; string dichter(angabe,0,11); string schreiber(angabe,0,autor.length()); Als erster Parameter wird eine Variable vom Typ String oder ein Literal übergeben. Aus diesen String werden ab der Start-Position (zweiter Parameter) x Zeichen (dritter Parameter) gelesen und in dem String schreiber und dichter gespeichert. Das erste Zeichen in einem String hat den Index 0. C++ - Einführung Seite 36
37 Weitere Möglichkeit Beispiele/_1020_String... string dna(3, 'T'); Dem Konstruktur wird die Anzahl der Zeichen und ein Zeichen übergeben. Der zweite Parameter muss ein Zeichen vom Datentyp char sein. Das Zeichen wird durch das Aphostroph begrenzt. Das angegebene Zeichen wird x mal dupliziert. Die Anzahl wird mit Hilfe des ersten Zeichens angegeben. C++ - Einführung Seite 37
38 Array von Strings const int maxteilnehmer = 5; string teilnehmer[maxteilnehmer]; Beispiele/_1021_String... Array vom Typ string werden genauso deklarariert und initialisiert wie Arrays vom Datentyp char, int etc. Die Elemente haben einen Index von 0 bis n. C++ - Einführung Seite 38
39 Ausgabe von Strings for(int index = 0; index < maxteilnehmer; index++) { cout << index << ". Teilnehmer: " << teilnehmer[index] << '\n'; } Beispiele/_1021_String... C++ - Einführung Seite 39
40 Einlesen von Strings for(int index = 0; index < maxteilnehmer; index++) { cout << "Bitte geben Sie den Namen des Teilnehmers ein: "; cin >> teilnehmer[index]; cin.clear(); cin.ignore(10000,'\n'); } Beispiele/_1021_String... C++ - Einführung Seite 40
41 Zeilenweises Einlesen #include <iostream> #include <string> using std::getline; int main() { const int maxteilnehmer = 5; const int maxzeichen = 100; string teilnehmer[maxteilnehmer]; Beispiele/_1021_String... for(int index = 0; index < maxteilnehmer; index++) { cout << "Bitte geben Sie den Namen des Teilnehmers ein:\n "; getline(cin, teilnehmer[index]); } C++ - Einführung Seite 41
42 Hinweise Als erster Parameter wird der Funktion getline() die Quelle übergeben. Von welchem Medium soll eingelesen werden? In diesem Beispiel wird von der Standardeingabe eingelesen. Als zweiter Parameter wird der Funktion getline() der Speicherort der Zeile übergeben. In diesem Beispiel wird die Zeile in einem Array-Element gespeichert. C++ - Einführung Seite 42
43 Länge eines Strings string buchstaben = "abcdefg"; cout << "Anzahl der Zeichen: " << buchstaben.size(); Beispiele/_1022_String... Die Methode size() gibt die Anzahl von Zeichen in einem String zurück. Methoden für Objekte vom Datentyp string sind in der Klasse <string> definiert. C++ - Einführung Seite 43
44 Methoden size ( ) ; methode ( Parameterliste ) ; Funktionen, die in der Klasse string definiert sind. Der Aufruf der Methode erfolgt über den Namen der Methode. Der Aufruf beachtet die Groß- und Kleinschreibung in Bezeichnungen. C++ - Einführung Seite 44
45 Parameterliste und Rückgabewert size ( ) ; methode ( Parameterliste ) ; Methoden können einen Rückgabewert haben, müssen aber nicht. Zum Beispiel die Methode size() liefert die Anzahl der Zeichen zurück. Dem Namen der Methode folgen die runden Klammern. In den Klammern kann eine Parameterliste für die Methode definiert sein. Wenn die Klammer leer ist, werden der Methode keine Parameter übergeben. C++ - Einführung Seite 45
46 Objekte und der Methoden buchstaben. size ( ) ; objekt. methode ( Parameterliste ) ; Objekte und deren Methoden werden durch einen Punkt verbunden. Die Methode bezieht sich immer auf das Objekt links vom Punkt. Eine Methode kann in Abhängigkeit des Objekts einen Wert zurückgeben. Die Parameterliste beeinflusst das Objekt links vom Punkt. C++ - Einführung Seite 46
47 Informationen zu einer Methode in Netbeans C++ - Einführung Seite 47
48 und im Web C++ - Einführung Seite 48
49 Zeichen in einem String cout << "\nerstes Zeichen: " << buchstaben[0]; cout << "\nerstes Zeichen: " << buchstaben.at(0); Beispiele/_1022_String... Eine Variable vom Datentyp string entspricht einem Array von char. Durch die Angabe eines Indizes kann ein einzelnes Zeichen aus einem String ausgegeben oder in einer Variablen gespeichert werden. Das erste Zeichen hat den Index 0. C++ - Einführung Seite 49
50 Methode nutzen cout << "\nerstes Zeichen: " << buchstaben[0]; cout << "\nerstes Zeichen: " << buchstaben.at(0); Beispiele/_1022_String... Die Methode.at() gibt ein einzelnes Zeichen zurück. In den runden Klammern wird der Methode die Position des Zeichens in dem String übergeben. Das erste Zeichen hat die Position 0. Vorteil: Die Methode wirft ein Fehler, wenn die Unter- oder Obergrenze des Strings überschritten wird. C++ - Einführung Seite 50
51 Vergleich von Strings string kleinbuchstaben = "abcdefg"; string grossbuchstaben = "ABCDEFG"; bool ergebnis; ergebnis = (kleinbuchstaben == grossbuchstaben); Beispiele/_1022_String... Die Zeichen werden aufgrund ihrer ASCII-Codierung verglichen. Der Rückgabewert ist vom Datentyp bool. C++ - Einführung Seite 51
52 Methode nutzen string kleinbuchstaben = "abcdefg"; string grossbuchstaben = "ABCDEFG"; int result; result = (kleinbuchstaben.compare(grossbuchstaben)); cout << "\nist gleich? " << result << '\n'; Beispiele/_1022_String... Die Zeichen werden aufgrund ihrer ASCII-Codierung verglichen. Der Rückgabewert ist vom Datentyp int. C++ - Einführung Seite 52
53 Rückgabeparameter der Methode = 0. Der String ist gleich. < 0. Einer der Buchstaben ist kleiner als der andere an der Position. > 0. Einer der Buchstaben ist größer als der andere an der Position. Die Kleinbuchstaben liegen in der ASCII-Tabelle nach den Großbuchstaben. Kleinbuchstaben werden mit einer größeren Zahl als Großbuchstaben codiert. C++ - Einführung Seite 53
54 Umwandlung von Groß- in Kleinbuchstaben for(int index = 0; index < grossbuchstaben.size(); index++) { kleinzeichen += std::tolower(grossbuchstaben[index]); } Beispiele/_1022_String... Die Funktion tolower() wandelt einzelne Zeichen in Kleinbuchstaben um. Zeichen, die keine Buchstaben sind, werden ignoriert. Die Funktion ist in der Bibliothek <locale> definiert. C++ - Einführung Seite 54
55 Umwandlung von Klein- in Großbuchstaben for(int index = 0; index < kleinbuchstaben.size(); index++) { grosszeichen += (std::toupper(kleinbuchstaben[index])); } Beispiele/_1022_String... Die Funktion toupper() wandelt einzelne Zeichen in Großbuchstaben um. Zeichen, die keine Buchstaben sind, werden ignoriert. Die Funktion ist in der Bibliothek <locale> definiert. C++ - Einführung Seite 55
56 Verknüpfung von Strings string kleinbuchstaben = "abcdefg"; string grossbuchstaben = "ABCDEFG"; string buchstaben; buchstaben = kleinbuchstaben + grossbuchstaben;; Beispiele/_1022_String... Mit Hilfe des Pluszeichen können einzelne Zeichen oder Strings zu einem anderen String verknüpft werden. C++ - Einführung Seite 56
57 Zeichen an das Ende eines Strings anhängen grosszeichen += (std::toupper(kleinbuchstaben[index])); Beispiele/_1022_String... Mit Hilfe des zusammengesetzten Operators =+ können einzelne Zeichen oder Strings an das Ende eines anderen Strings angehängt werden. C++ - Einführung Seite 57
58 Erläuterung Zusammengesetzte Operatoren führen zuerst die Rechenoperation aus. In diesem Beispiel wird grossbuchstaben mit einem Zeichen aus dem String kleinbuchstaben verknüpft. Das Ergebnis der Operation wird in der Variablen links vom zusammengesetzten Operator gespeichert. C++ - Einführung Seite 58
59 Mit Hilfe einer Methode buchstaben.append(kleinbuchstaben); Beispiele/_1022_String... Der Methode append() wird der String übergeben, der an das Ende eines Strings angehängt werden soll. Der übergebene Parameter wird an den String links vom Punkt angehängt. Die Methode verändert das dazugehörige Objekt. C++ - Einführung Seite 59
60 Teilstrings anhängen buchstaben.append(grossbuchstaben, 0, 3); Beispiele/_1022_String... Der Methode append() wird als ersten Parameter, der String übergeben. Aus diesen String soll ein Teilstring an das, zu der Methode gehörende Objekt angehängt werden. Als zweite Parameter wird die Start-Position übergeben. Hier beginnt der Teilstring an der ersten Position des Strings grossbuchstaben. Als dritter Parameter wird die Länge des Teilstrings übergeben. In diesem Beispiel hat der Teilstring eine Länge von 3 Zeichen. C++ - Einführung Seite 60
61 Überladung von Methoden Methoden, die überladen wurden, haben wie Funktionen den gleichen Namen. Überladene Methoden unterscheiden sich aber in der Parameterliste. Die Anzahl der Parameter und / oder die Datentypen der Parameter sind unterschiedlich. Der Rückgabewert kann bei Methoden desselben Namens gleich sein, muss aber nicht. Der Compiler ruft entsprechend der Parameterliste die Methoden auf. Viele Methoden in der Bibliothek <string> sind überladen. C++ - Einführung Seite 61
62 Einfügung von Strings buchstaben.insert(3, grossbuchstaben); Beispiele/_1022_String... An der Position x (erster Parameter) wird ein String (zweiter Parameter) eingefügt. Der Text ab der Position x + 1 wird automatisch verschoben. C++ - Einführung Seite 62
63 Ersetzung von Strings buchstaben.replace(2,strlen("xyz"),"xyz", strlen("xyz")); Beispiele/_1022_String... An der Position x (erster Parameter) werden x Zeichen (zweiter Parameter) ersetzt. Als dritter Parameter wird der Ersetzungsstring an die Methode übergeben. Der vierte Parameter gibt die Länge des Ersetzungsstrings an. In diesem Beispiel werden ab der Position zwei drei Zeichen durch die ersten drei Zeichen aus dem String XYz ersetzt. Der String hat eine Länge von drei Zeichen. C++ - Einführung Seite 63
64 Löschen von Zeichen aus einem String buchstaben.erase(2, 2); Beispiele/_1022_String... Ab der Position x (erster Parameter) werden x Zeichen (zweiter Parameter) gelöscht. C++ - Einführung Seite 64
65 Löschen des Strings buchstaben.clear(); Beispiele/_1022_String... Der String wird vollständig gelöscht. C++ - Einführung Seite 65
66 Löschen des Strings if (!(buchstaben.empty())) { buchstaben.clear(); } Beispiele/_1022_String... Das Ausrufezeichen negiert einen boolschen Wert. Mit Hilfe der Methode.empty() wird abgefragt, ob der String leer ist. Wenn der String nicht leer ist, lösche diesen. C++ - Einführung Seite 66
67 Suchen in Strings string zitat = " To be, or not to be--that is the question: Whether 'tis nobler in the mind to suffer.\n"; int zaehler = -1; int pos = zitat.size() + 1; Beispiele/_1023_String... do { pos--; zaehler++; pos = zitat.rfind("b", pos); }while(pos!= string::npos); C++ - Einführung Seite 67
68 Erläuterung Die Methode rfind(string, pos) beginnt am Ende (right side) des Strings mit der Suche. Die Methode find(string, pos) beginnt am Anfang des Strings mit der Suche. Beiden Methoden wird als erster Parameter der String übergeben, nach dem gesucht werden soll. In diesem Beispiel wird nach dem Buchstaben b gesucht. Als zweiter Parameter wird der Beginn der Suche übergeben. Wo soll in dem Objekt mit der Suche begonnen werden? Der zweite Parameter ist optional. C++ - Einführung Seite 68
69 Suchen in Strings string waehrung = " 123, , ,456.78"; std::size_t gefundenan = waehrung.find_first_of(",."); while (gefundenan!=std::string::npos){ switch(waehrung[gefundenan]){ case '.': waehrung[gefundenan] = ','; break; Beispiele/_1024_String... } } case ',': waehrung[gefundenan] = '.'; break; gefundenan= waehrung.find_first_of(",.",gefundenan+1); C++ - Einführung Seite 69
70 Erläuterung Die Methode find_first_of(string) beginnt am Anfang des Strings mit der Suche. Die Methode find_last_of(string) beginnt am Ende des Strings mit der Suche. Der zu übergebende Suchstring enthält alle Zeichen, nach denen in dem dazugehörigen Objekt gesucht werden soll. C++ - Einführung Seite 70
71 Typ size_t std::size_t gefundenan = waehrung.find_first_of(",."); size_t ist ein vorzeichenloser Integer-Typ. Rückgabewert von sizeof(datentyp). Der Typ ist in der Bibliothek <cstring> und vielen anderen Bibliotheken definiert. Speicherung eines Indizies. Angabe der Größe eines Objekts in Bytes. Implementierungsabhängig. C++ - Einführung Seite 71
72 Teilstrings aktuellepos = waehrung.find(" "); Beispiele/_1024_String... while(aktuellepos!= string::npos) { strtemp = waehrung.substr(vorherigepos, aktuellepos - vorherigepos); vorherigepos = aktuellepos + 1; aktuellepos = waehrung.find(" ", vorherigepos + 1); } C++ - Einführung Seite 72
73 Erläuterung Die Methode substring(start, anzahl) gibt einen String, beginnend an der Start-Position (erster Parameter) mit x Zeichen (zweiter Parameter) zurück. Der zweite Parameter ist optional. Wenn keine Angaben zur Anzahl gemacht werden, wird der String ab der Start-Position bis zum letzten Zeichen zurückgegeben. C++ - Einführung Seite 73
74 String-Streams Leitung nach außen für Strings. Konvertierung von unterschiedlichen Datenformaten untereinander. Konvertierung von Strings in numerische Werte und umgekehrt. C++ - Einführung Seite 74
75 Beispiel #include <sstream> #include <iomanip> using std::string; using std::stringstream; Beispiele/_1030_Stringstream... int main() { stringstream ausgabetext; string strtemperatur; stringstream streamtemperatur; double dbltemperatur; ausgabetext.str("bitte geben Sie die durchschnittliche Temperatur ein:\n "); std::cout << ausgabetext.str(); std::cin >> strtemperatur; streamtemperatur.str(strtemperatur); streamtemperatur >> std::setprecision(9) >> dbltemperatur; C++ - Einführung Seite 75
76 Erläuterung Stringsstreams werden in der Bibliothek <sstream> definiert. Mit Hilfe der Anweisung using std::stringstream wird die Klasse zur Nutzung freigegeben. Klassen stellen einen Bauplan für einen bestimmten Typ von Daten bereit. stringstream variable definiert eine Variable von der Klasse stringstream. C++ - Einführung Seite 76
77 Deklaration von String-Variablen stringstream streamtemperatur ; stringstream variable ; Definition einer Variablen von der Klasse stringstream. Mit Hilfe des Bauplans stringstream wird ein konkretes Objekt streamtemperatur erzeugt. Mit Hilfe der Deklaration wird eine Leitung zu einem x- beliebigen String-Objekt gelegt. C++ - Einführung Seite 77
78 Leitung legen stringstream ausgabetext; string strtemperatur; stringstream streamtemperatur; ausgabetext.str("text\n"); streamtemperatur.str(strtemperatur); Beispiele/_1030_Stringstream... Mit Hilfe der Methode.str(string) wird ein String in ein Stringstream kopiert. C++ - Einführung Seite 78
79 Konvertierung in ein String cout << ausgabetext.str(); Beispiele/_1030_Stringstream... Mit Hilfe der Methode.str() wird aus dem Inhalt im Stream ein String erzeugt. Hinweis: Die Methode gibt ein temporäres String-Objekt zurück. Es wird der aktuelle Zustand des Stringstreams zurück gegeben. C++ - Einführung Seite 79
80 Konvertierung in eine Gleitkommazahl stringstream streamtemperatur; double dbltemperatur; streamtemperatur >> std::setprecision(9) >> dbltemperatur; Beispiele/_1030_Stringstream... Durch die Umleitungsoperatoren wird der Stream auf eine Variable vom Datentyp double umgeleitet. Durch die Umleitung wird der Stringstream in den entsprechenden Datentyp umgeleitet. C++ - Einführung Seite 80
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
MehrC++ - Einführung in die Programmiersprache Arrays
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 Array (Felder, Vektoren) Zusammenfassung von Variablen gleichen Datentyps Gruppierung
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29
Kapitel 12 Strings Seite 1 von 29 Konstante Zeichenfolgen - Zeichenfolgen, die in char-arrays abgelegt werden, werden C- String genannt. - Dies ist in der Programmiersprache C die einzige Möglichkeit Zeichenfolgen
MehrC++ - 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
MehrDie Klasse string Verfasser: Christian Bartl
Die Klasse string Verfasser: Index 1. Allgemein... 3 2. Eingabe von Strings... 3 3. Ausgabe von Strings... 4 4. Länge eines Strings... 4 5. Durchlaufen aller Zeichen eines Strings... 4 6. Kopieren von
MehrC++ - 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
MehrWintersemester 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
MehrC++ - 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
MehrElementare 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
MehrC++ - 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
MehrC++ - 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
MehrJava - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue
Java - Zahlen, Wahrheitswerte und Zeichen Leibniz Universität Anja Aue Kommentare Hilfe für den Entwickler. Wer hat wann welche Änderung vorgenommen? Warum werden diese Anweisungen hier ausgeführt? Bei
MehrProjekt 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.
MehrC++ - 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.
MehrAssoziative 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...
MehrGI 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
Mehr9. 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
MehrVorlesungsprüfung Programmiersprache 1
Vorlesungsprüfung Programmiersprache 1 Termin der Prüfung: 1) Di 20.03.2018 16:15 17:00 HSB 3 2) Di 15.05.2018 16:15 17:00 HSB 3 3) Di 12.06.2018 16:15 17:00 HSB 3 Stoffgebiete: 1) Ganzzahltypen: char,
MehrJava - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue
Java - Zahlen, Wahrheitswerte und Zeichen Leibniz Universität IT Services Anja Aue Kommentare Hilfe für den Entwickler. Wer hat wann welche Änderung vorgenommen? Warum werden diese Anweisungen hier ausgeführt?
MehrArrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3
Programmieren mit Java Modul 3 Arrays Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Eindimensionale Arrays 3 2.1 Arrays deklarieren.............................. 3 2.2 Arrays erzeugen................................
MehrC# - 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
MehrHochschule 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
MehrHerzlich willkommen!
Programmiertechnik 1 Herzlich willkommen! Dozent: Dipl.-Ing. Jürgen Wemheuer Teil 6: Zusammenfassung und Beispiele Mail: wemheuer@ewla.de Online: http://cpp.ewla.de/ Zusammenfassung (1) 2 1. Programm in
MehrVererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz
Einführung in C++ Vererbung I Durch Vererbung können aus bereits bestehenden Klassen neue Klassen konstruiert werden. Die neue abgeleitete Klasse erbt dabei die Daten und Methoden der sog. Basisklasse.
MehrJava - 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
MehrVariablen, 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
MehrDAP2 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
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29
Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente
MehrGrundlagen 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
MehrVerwenden Sie für jede Aufgabe die C++ IDE von Eclipse (pro Aufgabe ein Projekt).
3 Erste Programme 3.1 Übungsaufgabe Verwenden Sie für jede Aufgabe die C++ IDE von Eclipse (pro Aufgabe ein Projekt). 3.1.1 Aufgabe 1 Schreiben Sie ein C++ Programm, das einen String einliest und testet,
MehrProgrammiertechnik. 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
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2014, 16. Juli 2014 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:
MehrProgrammier-Befehle - Woche 10
Funktionen Rekursion Selbstaufruf einer Funktion Jeder rekursive Funktionsaufruf hat seine eigenen, unabhängigen Variablen und Argumente. Dies kann man sich sehr gut anhand des in der Vorlesung gezeigten
Mehr1. Definition. 2. Interne Speicherung der Zeichenketten. 3. Vereinbarung von Zeichenketten
1. Definition Eine Zeichenkette (String) ist eine Aufeinanderfolge von darstellbaren Zeichen, die sequentiell im Speicher angeordnet sind und gemeinsam angesprochen werden. Jedes einzelne Zeichen wird
MehrC++ 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
MehrPython Variablen und Anweisungen
Python Variablen und Anweisungen Ausdruck... besteht aus Operanden und Operatoren, die nach bestimmten Regeln zusammengesetzt werden. formuliert einzelne Schritte des Programms. ist eine Verarbeitungsvorschrift,
MehrZeichenketten sind uns bisher nur als konstante Texte begegnet, welche in "" angegeben waren; z.b. als Formatstring in der printf()-funktion:
Zeichenketten (Strings) Seite 1 von 11 Zeichenketten(Strings) sind wichtige Bestandteile fast eines jeden Programms. Beispiele sind Eingabe von Namen oder Adressen, Ausgabe von Meldetexten oder Bearbeitung
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Zusammenfassung Was ist eine Programmiersprache? Eine Sprache, die Formal eindeutig in Maschinenbefehle übersetzbar ist Für Menschen einfacher verständlich ist als Bytecode Zur Formulierung von Datenstrukturen
MehrEntwickeln 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:
MehrEinfü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
MehrGrundlagen der Programmierung in C++ Arrays und Strings, Teil 1
Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1 Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Das C++ Typsystem simple structured integral enum
MehrC++ - 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
MehrC++ Teil 5. Sven Groß. 12. Nov IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 16
C++ Teil 5 Sven Groß IGPM, RWTH Aachen 12. Nov 2014 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 12. Nov 2014 1 / 16 Themen der letzten Vorlesung Eingabestrom, Verhalten von cin Namensräume Live Programming
MehrProgrammieren 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
MehrEinführung in die Programmierung Wintersemester 2008/09
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Funktionen Inhalt Funktionen - mit / ohne Parameter
MehrProgrammiersprache 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
Mehr15. Die Klasse string
15. Die Klasse string Notwendige Funktionen Erzeugen Zuweisen, Anhängen,Einfügen Löschen, Entfernen, Ersetzen Ermitteln der Größe indizierter Zugriff auf Zeichen Vergleich Suchen von Zeichen und Teil-Strings
MehrZeichendarstellung. 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
MehrProgrammierkurs C++ Lösungen zum Übungsblatt 3. Nils Eissfeldt und Jürgen Gräfe. 2. November Aufgabe 5
Zentrum für Angewandte Informatik Köln Arbeitsgruppe Faigle / Schrader Universität zu Köln Lösungen zum Übungsblatt 3 Programmierkurs C++ Nils Eissfeldt und Jürgen Gräfe. November 001 Aufgabe 5 Innerhalb
MehrHochschule 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
MehrC++ - 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.
MehrUnterlagen. CPP-Uebungen-08/
Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen
MehrProgrammierkurs 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
MehrKlausur Informatik WS 2012/13
Klausur Informatik WS 2012/13 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweies: Voraussetzung für die Teilnahme ist das Bestehen
MehrDer Datentyp String. Stringvariable und -vergleiche
Informatik 12 mit Java: Gierhardt Zeichenketten bzw. Strings Der Datentyp String Zeichenketten bzw. Strings sind eine häufig benutzte Datenstruktur. Man könnte auch mit Arrays aus Zeichen arbeiten. Da
MehrC# - 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
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der
MehrÜBUNGS-BLOCK 7 LÖSUNGEN
ÜBUNGS-BLOCK 7 LÖSUNGEN Aufgabe 1: Gegeben ist folgender Code: Auto[] array = new Auto[3]; // Alle Autos im Array tunen: for (int i = 1; i
Mehr4 ZEICHEN UND ZEICHENKETTEN
4 ZEICHEN UND ZEICHENKETTEN Leitideen: Jedes Zeichen aus dem Basiszeichensatz wird mittels einer kleinen ganzen Zahl (Länge 1 Byte = 8 Bit) gespeichert, die seiner Position im Zeichensatz entspricht. C-Zeichenketten
Mehrint 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
MehrC# - 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
MehrJAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert
MehrÜ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
MehrKurze 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
MehrQuiz 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
MehrC++ 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
MehrC++ - 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.
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Funktionen Rückblick Operatoren logische Verknüpfungen Zusammengesetzte Operatoren ( Zuweisungsoperatoren ) Kontrollstrukturen Bedingte Anweisungen (if-abfrage, switch-konstrukt)
Mehreinlesen 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
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine
MehrGrundlagen 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
MehrHydroinformatik I: Strings
Hydroinformatik I: Strings Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 10. November 2017 1/20 Prof.
MehrHochschule Darmstadt Informatik-Praktikum SS 2017 EIT Bachelor 5. Aufgabenblatt Datenstruktur, Dateieingabe und -ausgabe
Aufgabe 5: Bücher verwalten Für das Literaturverzeichnis einer Abschlussarbeit soll ein Programm zur Verwaltung von Bücherlisten geschrieben werden. Das Programm soll in der Lage sein, zu einem Buch die
MehrC++ - 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
MehrProgrammierung 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
MehrAnregungen zu Übung 2
Anregungen zu Übung 2 Allgemeine Informatik II - SS 2007 Was sind Arrays und wie kann man sie verwenden? Ein Array ist ein spezieller Datentyp, der mehrere Werte zu einer Einheit zusammenfasst. Er ist
MehrPolymorphismus 179. Function.h. #include <string>
Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function
MehrPraktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3
Michael Jugovac Dominik Kopczynski Jan Quadflieg Till Schäfer Stephan Windmüller Dortmund, den 30. Oktober 2014 Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3 Es können 12 (+5
MehrProgrammieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Christof Beyer Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 7-1 Bisher eingeführt war für Namen nur der Datentyp char. Dieser erlaubt das Speichern
MehrJAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage
MehrAbend 4 Übung : Erweitern von Klassen durch Vererbung
Abend 4 Übung : Erweitern von Klassen durch Vererbung Ziel, Inhalt Wir erweitern die Klassen, die wir zum Zeichnen mit TsuZeichnen verwenden. Dabei wenden wir die Vererbung an um die Klassen zu spezialisieren
MehrC++ Teil 5. Sven Groß. 16. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 16
C++ Teil 5 Sven Groß 16. Nov 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 16. Nov 2015 1 / 16 Themen der letzten Vorlesung Namensräume Live Programming zu A2 Gleitkommazahlen Rundungsfehler Auswirkung
MehrHochschule Darmstadt Informatik-Praktikum WS 2017/2018 EIT Bachelor 5. Aufgabenblatt Datenstruktur, Dateieingabe und -ausgabe
Aufgabe 5: Häuser verwalten Für ein Schneeräumungsunternehmen soll ein Programm zur Verwaltung von Häuserlisten geschrieben werden. Das Programm soll in der Lage sein, zu einem Haus die wichtigsten Informationen
Mehr6. 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.
MehrPolymorphismus 44. Function.hpp. #include <string>
Polymorphismus 44 #include Function.hpp class Function { public: virtual ~Function() {}; virtual const std::string& get_name() const = 0; virtual double execute(double x) const = 0; }; // class
MehrProgrammierkurs 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
MehrHochschule Darmstadt Informatik-Praktikum WS 2017/2018 WIng Bachelor 6. Aufgabenblatt Zeiger, verkettete Liste, Dateieingabe und -ausgabe
Aufgabe 6: Häuser verwalten - dynamisch Für ein Schneeräumungsunternehmen soll ein Programm zur Verwaltung von Häuserlisten geschrieben werden. Das Programm soll in der Lage sein, zu einem Haus die wichtigsten
MehrEinführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin
Fakutltät IV Technische Universität Berlin 5. Mai 2014 Inhaltsverzeichnis 1 2 3 4 5 6 7 Überblick Beispielprogramm in Java Beispielprogramm in C 1 2 3 4 5 6 7 Beispielprogramm in Java Beispielprogramm
MehrKlausur: 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
MehrObjektorientierte Programmierung mit C++ SS 2007
Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string
MehrIm Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung.
Dateioperationen Seite 1 von 12 Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung. z.b.: c:\testdateien\text.dat //Datendatei
Mehr8. 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
MehrE-/A-Funktionalität nicht Teil der Programmiersprache
C Ein-/Ausgabe C Ein-/Ausgabe C.1 Überblick E-/A-Funktionalität nicht Teil der Programmiersprache Realisisierung durch "normale" Funktionen Bestandteil der Standard-Funktionsbibliothek einfache Programmierschnittstelle
MehrZeiger. 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
MehrKapitel 2. Einfache Beispielprogramme
Kapitel 2 Einfache Beispielprogramme 2.1 Ausgabe auf dem Bildschirm 2.2 Lokale Variablen, Ausdrücke und Schleifen 2.3 Zahlen von der Tastatur einlesen 2.4 Formatierung bei der Ausgabe 2.5 Zusammenfassung
MehrInformatik I. Matthias Geel Büro: IFW A Blog:
Informatik I Matthias Geel Büro: IFW A45.2 E-Mail: geel@inf.ethz.ch Blog: http://blogs.ethz.ch/infitet09/ Übersicht 1. Nachbesprechung Übung 5 2. Theorie: Ein- und Ausgabe 3. Vorbesprechung Übung 7 09.11.2009
Mehr10.4 Konstante Objekte
10.4 Konstante Objekte Genau wie bei einfachen Datentypen (int,double,...) kann man auch Objekte als const deklarieren. Eine solche Deklaration bedeutet, daß alle Attribute so behandelt werden, als wären
MehrInformatik I (D-ITET)
Informatik I (D-ITET) Übungsstunde 2, 5.10.2009 ETH Zürich? Übungsgruppenwechsel? Abgabe der Übungen... Bis Mo, 24:00 Theorie: Programme: per mail oder auf Papier.cpp Datei per mail Bin euch noch Demos
Mehr