C++ in 24 Stunden
Aus Wikibooks
Dieses Buch soll für Studenten der Bachelor-Studiengänge sein, die das Grundsätzliche in C++ lernen wollen.
Inhaltsverzeichnis |
[Bearbeiten] Rechenverfahren
Binär-/Hexadezimal- und Dezimalzahlen
| Binärzahlen | 2^n | 2^3 | 2^2 | 2^1 | 2^0 |
|---|---|---|---|---|---|
| Dezimalzahlen | n | 8 | 4 | 2 | 1 |
| 2^3 | 2^2 | 2^1 | 2^0 | Lösung |
|---|---|---|---|---|
| 1 | 0 | 1 | 0 | 2^3 + 2^1 = 10 |
| 1 | 1 | 1 | 1 | 2^3 + 2^2 + 2^1 + 2^0 = 15 |
| 1 | 0 | 1 | 1 | 2^3 + 2^1 + 2^0 = 11 |
Hexadezimalsystem:
| Dezimalzahlen | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Hexadezimalzahlen | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
Beispiele:
31 wird ins Hexadezimalsystem umgewandelt:
- Teile die Zahl durch 16.
- Der Divisionsrest ist die nächste Ziffer (von rechts nach links).
- Wenn der ganzzahlige Quotient = 0 ist, bist du fertig, andernfalls nimm den (ganzzahligen) Quotienten als neue Zahl und wiederhole den Vorgang ab 1.
31 : 16 = 1 Rest: 15 --> Ziffer: F
1 : 16 = 0 Rest: 1 --> Ziffer: 1
Resultat: 1F
50 wird ins Hexadezimalsystem umgewandelt
50 : 16 = 3 Rest: 2 --> Ziffer: 2
3 : 16 = 0 Rest: 3 --> Ziffer: 3
Resultat: 32
25 wird ins Hexadezimalsystem umgewandelt
25 : 16 = 1 Rest: 9 --> Ziffer: 9
1 : 16 = 0 Rest: 1 --> Ziffer: 1
Resultat: 19
Binärrechnung
| Rechenregeln | Beispiel | |
|---|---|---|
| Addieren |
1 + 1 = 10 0 + 1 = 1 1 + 0 = 1 0 + 0 = 0 |
1111 +1001 ------ 11000 |
| Subtrahieren |
1 - 1 = 0 1 - 0 = 1 0 - 1 = 1 (Übertrag) 0 - 0 = 0 |
1111 -1001 ------ 0110 |
| Multiplizieren |
1 * 1 = 1 1 * = = 0 0 * 1 = 0 0 * 0 = 0 |
1111
*1010
-------
10010110
|
| Dividieren |
1 / 1 = 1 1 / 0 = - 0 / 1 = 0 0 / 0 = - |
1111 :1010 ----- 0001 |
[Bearbeiten] Datentypen, Dateneingabe & Datenausgabe
Datentypen:
| Datentype | Bereiche | Beispiel |
|---|---|---|
| char | -128 bis 127 | 'A' |
| int | -2.147.483.648 bis 2.147.483.647 | 10 |
| long | -2.147.483.648 bis 2.147.483.647 | 1024 |
| float | 1,18*10^-38 bis 3,40*10^38 | 1024,55987 |
| double | 2,23*10^-308 bis 1,79*10^308 | 1024*10^-3 |
| string | - | "Welt" |
Dateneingabe/-ausgabe mit cin/cout:
Eine Dateneingabe über Tastatur programmieren zu können, muss mit dem Befehl cin gearbeitet werden. Um eine Variable auszugeben muss der Befehl cout verwendet werden.
Beispiel Code:
- Schritt: Die Bibliothek für die Ein- und Ausgabe muss eingebunden werden.
- Schritt: Speicherfreigabe einfügen
- Schritt: Variablen deklarien und initialisieren
- Schritt: Variable den Wert der Tastatur zuweisen
- Schritt: Variable ausgeben
# include <iostream>
# include <stdlib>
using namespace std;
int main()
{
char a;
cout<<"Bitte geben Sie ein Zeichen ein";
cin>>a;
cout<<a;
system("Pause")
return 0;
}
| Manipulator | Bedeutung |
|---|---|
| setw (int a) | Festlegung d. Feldbreite |
| setfill (char) | Füllzeichen |
| left | Linksbündig |
| right | Rechtsbündig |
| fixed | Gleitpunktdarstellung |
| showpos | Anzeige des positiven Vorzeichens |
| uppercase | Großbuchstaben |
| setprecision (int a) | Anzahl d. Nachkommastellen |
| dec, hex, oct | Umwandlung in andere Zahlensysteme |
[Bearbeiten] Schleifen:
Erklärungen:
| Vergleichsoperatoren | Bedeutung |
|---|---|
| a < b | kleiner als |
| a <= b | kleiner und gleich |
| a == b | gleich |
| a > b | größer als |
| a >= b | größer und gleich |
| a != b | nicht gleich |
| Index | Zahlen von 0 bis ... |
For-Schleife:
Aufbau der For-Schleifen
for (Datentype Variablenname = Index; Variablenname Vergleichsoperator Laufzeit;
Variablenname Inkrement/Dekrement)
{
Anweisung
}
Beispiel:
for (int a = 1; a <=9; a++)
{
cout<<a;
}
Geschachtelte For-Schleifen
Aufbau der Geschachtelte For-Schleifen
for (Datentype Variablenname = Index; Variablenname Vergleichsoperator Laufzeit;
Variablenname Inkrement/Dekrement)
{
for (Datentype Variablenname2 = Index; Variablenname2 Vergleichsoperator Laufzeit2;
Variablenname2 Inkrement/Dekrement)
{
Anweisung
}
}
Beispiel:
for (int a = 1; a <=9; a++)
{
for (int b = 1; b <=2; b++)
{
cout<<b+1;
}
}
While-Schleife:
Endlosschleife:
while( true )
{
cout<<"Dieser Text wird als Endlosschleife ausgegeben";
}
Schleife mit Anfangsbedingung
Aufbau der Schleife mit Anfangsbedingung
Datentype Variablenname = 0 ;
while (Wiederhole solange bis die Zahl nicht 10 ist)
{
cout<<"Diese Zeile läuft so lange bis "
Variablenwert erhöhen;
}
Beispiel:
int laufzeit = 0;
while( laufzeit != 10 )
{
cout<<"Dieser Text wird als Endlosschleife ausgegeben";
laufzeit ++;
}
Do-While-Schleife:
Endlosschleife:
do
{
cout<<"Dieser Text wird als Endlosschleife ausgegeben";
}
while( true );
Schleife mit Endbedingung
Aufbau der Schleife mit Endbedingung
Datentype Variablenname = 0 ;
do
{
cout<<"Diese Zeile läuft so lange bis "
Variablenwert erhöhen;
}
while (Wiederhole solange bis die Zahl nicht 10 ist);
Beispiel:
int laufzeit = 0;
do
{
cout<<"Dieser Text wird als Endlosschleife ausgegeben";
laufzeit ++;
}
while( laufzeit != 10 );
If-Else-Anweisung:
Aufbau der If-Else-Anweisung
Datentype Variablenname = '0' ;
if ()
{
cout<<"Diese Zeile wird bei 1 ausgegeben."
}
else
{
cout<<"Diese Zeile wird ausgegeben, wenn der Wert der Variable nicht 1 ist."
}
Beispiel:
char zeichen = '0' ;
if ( zeichen == '1' )
{
cout<<"Diese Zeile wird bei 1 ausgegeben."
}
if ( zeichen == '2' )
{
cout<<"Diese Zeile wird bei 2 ausgegeben."
}
[Bearbeiten] Funktionen:
Allgemeineraufbau einer Funktion
Alle Funktionen müssen vor der main programmiert werden.
void funktion()
{
cout<<"Ich bin eine Funktion, die eine Ausgabe macht!"
}
int main()
{
//Funktionsaufruf
funktion();
system("Pause")
return 0;
}
Prototypdeklaration einer Funktion
void funktion ();
int main ()
{
funktion();
system("Pause")
return 0;
}
void funktion()
{
cout<<"Ich bin eine Funktion hinter der main, die eine Ausgabe macht!"
}
Funktion mit Parameterübergabe
void rechnung ( float zahl );
int main ()
{
float zahl;
cout<<"Geben Sie eine Zahl ein:\t"
cin>>zahl;
rechnung(zahl);
}
void rechnung ( float zahl )
{
float ergebnis;
ergebnis=2*zahl;
cout<<"\n\nDas Ergebnis ist:\t"<<ergebnis<<"\n\n";
}
Funktion mit Rückgabewert
float rechnung ( float zahl );
int main ()
{
float zahl;
cout<<"Geben Sie eine Zahl ein:\t"
cin>>zahl;
cout<<"\n\nDas Ergebnis ist:\t"<<rechnung(zahl)<<"\n\n"
}
void rechnung ( float zahl )
{
float ergebnis;
ergebnis=2*zahl;
return ergebnis;
;
}
[Bearbeiten] Array:
1. Allgemeine Schreibweise: Datentype variablenname [Zeilenanzahl] ;
Eindimensional Array: int array[5];
Beispiel:
| Zeile 0 |
|---|
| Zeile 1 |
| Zeile 2 |
| Zeile 3 |
| Zeile 4 |
Beispiel:
int main ()
{
int array[5];
for(int a=0; a<5; a++)
{
cout<<\n"Wir sind in Zeile\t"<<a;
}
system("Pause");
}
2. Allgemeine Schreibweise: Datentype variablenname [Zeilenanzahl] [Spaltenzahl] ;
Zweidimensional Array: int array[5][5];
Beispiel:
| Zeile 0/Spalte 0 | Spalte 1 | Spalte 2 | Spalte 3 | Spalte 4 |
|---|---|---|---|---|
| Zeile 1/Spalte 0 | Spalte 1 | Spalte 2 | Spalte 3 | Spalte 4 |
| Zeile 2/Spalte 0 | Spalte 1 | Spalte 2 | Spalte 3 | Spalte 4 |
| Zeile 3/Spalte 0 | Spalte 1 | Spalte 2 | Spalte 3 | Spalte 4 |
| Zeile 4/Spalte0 | Spalte 1 | Spalte 2 | Spalte 3 | Spalte 4 |
Beispiel:
int main ()
{
int array[5][5];
for(int a=0; a<5; a++)
{
for(int b=0; b<5; b++)
{
cout<<\n"Wir sind in Zeile\t"<<a<<"\t und in Spalte\t"<<b;
}
system("Pause");
}
[Bearbeiten] Zeiger:
[Bearbeiten] Strukturen:
Eine Struktur in C++ kann eine eine Tabelle oder einen Datensatz beschreiben(Siehe Beispiel).
Beispiel: Diese Tabelle wird jetzt in eine Struktur für C++ übersetzt.
| Vorname | Nachname | Stadt |
|---|---|---|
| Max | Musterman | Bielefeld |
| Tom | Muster | Bielefeld |
| Ronja | Muster | Bielefeld |
struct Adresse
{
char vorname[50];
char nachname[50];
char stadt[50];
};