Modul 404
Objektbasiert programmieren nach Vorgabe
Arrays
Kurzfassung
Speichert mehrere Einträge
Einträge werden hintereinander gespeichert
Beginnen bei Position 0
Grundlagen
// Zahlen Array deklarieren mit Wertzuweisung
int name[] = {Wert, Wert, Wert, ..};
// Zahlen Array deklarieren mit maximal 5 Einträge
int name[5] = {};
using namespace std;
int main ()
{
int numbers[] = {1, 2, 3, 4, 5};
cout << numbers[0];
// Ausgabe
// 1
}
Schleifen
Kurzfassung
While Schleife
For Schleife
For each Schleife
do ... while
While Schleife
using namespace std;
int main (int argc, const char * argv[])
{
int age = 1;
while (age < 20)
{
cout << age << endl;
age++;
}
/* Ausgabe
1
2
3
4
5
...
19
*/
For Schleife
for (int number = 1; number < 20; number++)
{
cout << number << endl;
}
/* Ausgabe
1
2
3
4
5
...
19
*/
For each Schleife
int arr[] = { 10, 20, 30, 40 ,50 };
int x = 0;
for (x : arr)
{
cout << x << endl;
}
/* Ausgabe
10
20
30
40
50
*/
Do ... while
do
{
cout << "\n" << endl;
cout << age << endl;
age++;
}while (age < 20);
/* Ausgabe
1
2
3
4
5
...
19
*/
Break vs Continue
continue = überspringt den aktuellen Durchlauf (Iteration).
break = bricht die ganze Schleife ab.
Continue
for (int age = 20; age >= 1; age--)
{
if (age == 19)
{
continue;
}
cout << age << endl;
}
/* Ausgabe
20
18
17
16
15
...
1
*/
Break
for (int age = 20; age >= 1; age--)
{
if (age == 16)
{
break;
}
cout << age << endl;
}
/* Ausgabe
20
19
18
17
*/
Klassen und Objekte
Klassenaufbau
void
Da der Rückgabetyp nicht einfach weggelassen werden kann, muss stattdessen void verwendet werden.
Void bedeutet so viel wie leer.
using namespace std;
int main (int argc, const char * argv[])
{
string name = "Jane Doe";
Klasse erstellen
class myClass { // the class
public: // Access specifier
int myNum: // Attribute (int variable)
string myString; // Attribute (string variable)
};
Objekt erstellen
class myClass { // the class
public: // Access specifier
int myNum; // Attribute (int variable)
string myString; // Attribute (string variable)
};
int main() {
myClass myObj; // Create an object of MyClass
// Access attributes and set values
myObj.myNum = 15;
myObj.myString = "Some random text";
// Print attribute values
cout << myObj.myNum << endl;
cout << myObj.myString;
}
/* Ausgabe
15
Some random text
*/
Funktionen
Kurzfassung
Derselbe Code kann mehrfach verwendet werden
Unterprogramme = Funktionen
Bessere Strukturierung
Funktionsaufbau
String Funktionen
using namespace std;
int main ()
{
string name = "Jane Doe";
Texteingabe einlesen
getline(cin, string);
string userInput;
cout << "Bitte Name eingeben: ";
getline(cin, userInput);
cout << userInput << endl;
/* Ausgabe
Name eingeben: John Doe
John Doe */
Zwei Methoden umd Die Länge des Strings zu ermitteln
cout << name.length() << endl;
cout << name.size() << endl;
Auf ein einzelnes Zeichen zugreifen
Die Zahl in der eckigen Klammer ist die Position, auf das man zugreifen möchte.
Wichtig: Die Ausgabe ist vom Datentyp char!
string[Position]; // [] für Array - erste Position ist 0
Auf ein Teilstring zugreifen
// Syntax
substr(Anfangsposition, AnzahlZeichen ausgeben);
// Beispiel
string name = "Jane Doe";
cout << name.substr(5, 3) << endl;
// Ausgabe = Doe
In einem String ein Zeichen suchen
In Diesem Beispiel ein Leerzeichen.
Sucht man nach einem Zeichen, welches nicht vorhanden ist, so wird die no position zahl (npos) ausgegeben
// Beispiel
string name = "Jane Doe";
cout << name.find(" ") << endl;
// Ausgabe = 4
Überprüfen ob ein Zeichen nicht im String vorhanden ist
if (name.find("X") == string::npos)
{
cout << "Im String taucht der Buchstabe X nicht auf" << endl;
}
Zeichen am Ende hinzufügen
string name = "Jane Doe";
name.append("!!!!"); // name = name + "!!!!"; - andere schreibweise
cout << name << endl;
// Ausgabe = Jane Doe!!!!
Zeichen in der Mitte einfügen
name.insert(4, " X");
cout << name << endl;
// Ausgabe = Jane X Doe
Zeichen entfernen
name.erase(5, 3);
cout << name << endl;
// Ausgabe = Jane
Zusammenfassung
Ist man sich sicher, dass das Zeichen existiert, kann man
string[Position];
verwenden. Ist man sich jedoch nicht sicher, sollte man besser
string.at(Position);
Verwenden. Somit wird ein Fehler produziert welcher behoben werden kann.