C++ in 24 Stunden

Aus Wikibooks

Wechseln zu: Navigation, Suche

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:

  1. Schritt: Die Bibliothek für die Ein- und Ausgabe muss eingebunden werden.
  2. Schritt: Speicherfreigabe einfügen
  3. Schritt: Variablen deklarien und initialisieren
  4. Schritt: Variable den Wert der Tastatur zuweisen
  5. 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];
};

[Bearbeiten] Stunde:


Persönliche Werkzeuge