Donnerstag, 2026-08-20, 5:10 PM | Willkommen Besucher

TUT4ALL.DO.AM

TuTz-Kategorien

Hauptseite » Daten » Schrieftliche Tuts

C++ Programmierung TUT für anfänger doc. Dokument
[ ] 2008-05-29, 0:55 AM
C++Programmierung ( Programmierung für Anfänger)
1:44 Am
 Allgemeines, Aufbau und Variablen

Teil: (1/?)
Thema: Allgemeines, Aufbau und Variablen
Version: 2.00
Datum: 10.02.2000
Hinweis: Dieses Tutorial über C++-Programmierung dient nur dazu euch die Grundlagen der
Programmiersprache C++ beizubringen. Ihr werdet durch dieses Tutorial sicherlich nicht zu
einem Meisterprogrammierer. Leute die schon C++ beherschen können sich das lesen
sparen!!!

Allgemeines:
Compiler:
Um überhaupt Programme in C++ schreiben zu können benötigt ihr zunächst einmal einen
Compiler(ladet euch am besten eine Shareware herunter, die reicht auf alle fälle für den
Anfang). Dieser sorgt dafür, dass aus eurem Code eine ausführbares Programm wird(eine exe
Datei). Die exe Datei wird in mehreren schritten erstellt:
Der Compiler überprüft erst einmal euren Quellcode auf Fehler. Wenn er keine Fehler finden
kann, dann erstellt er eine Objekt Datei(*.obj). Nun ist der sogenannte Linker an der Reihe. Er
macht aus der vorher erstellten Objekt Datei eine ausführbare exe.
Wie ihr den Compiler bedient entnehmt ihr bitte der dazugehörigen Anleitung.
Was man noch wissen sollte:
In der Programmiersprache C++ wird zwischen groß und klein Schreibung unterschieden.
D.h. wenn ich innerhalb einer Funktion(was das ist werdet ihr später erfahren) zwei Variablen
erzeugen könnt die den selben Namen haben. Sie müssen sich aber trotzdem unterscheiden:
variable
Variable
vAriable
Alle Variablen die ich oben aufgeführt habe sind verschieden, da sie sich in groß und klein
Schreibung unterscheiden. Man sollte sich aber angewöhnen innerhalb eines Programms
niemals den selben Namen für Variablen, Funktionen und Strukturen(etc.) zu verwenden, da
dies zu unübersichtlich sein würde.
In Namen sind keine Sonderzeichen zulässig außer '_' (Beispiel: _variable (sie unterscheidet
sich auch von den anderen, die oben stehen).
C++ ist eine Formatfreie Programmiersprache. D.h. man kann so viele abstände zwischen
Zeilen, Wörtern(außer innerhalb der 'cout' Anweisung) und Anweisungen machen wie man
will. Man kann Anweisungen auch in einer Reihe schreiben, nur das dies sehr unübersichtlich
wäre.
Dies sollte fürs erste genügen. Ich werde an stellen, wo man auf bestimmte Dinge achten muß
daraufhin weisen.
Kommentare:
Kommentare dienen dazu ein Programm übersichtlicher zu gestalten. Mit ihnen ist es möglich
irgendwo im Programm etwas reinzuschreiben, ohne das der Compiler meckert. Diese Text
Teile werden dann einfach ignoriert.
Beispiel:
........
cout << "Hallo wie geht es dir?" // Ausgabe des Satzes auf den Bildschirm
.......
Hinter der 'cout' Anweisung finden wir zwei '/'. Diese sagen dem Compiler: Ignoriere alles
was in der Zeile hinter den strichen steht.
Kommentare sollten regelmäßig benutzt werden, da ihr nach einen Monat bestimmt nicht mehr genau wißt was
das eigentlich macht, was da steht

Aufbau:
Um den Aufbau eines Programmes zu erklären führe ich an dieser Stelle ein kleines
Programm auf(Hinweis: Die Zahlen gehören nicht zum Programmcode, sie diene
ausschließlich der besseren Orientierung):
1: #include<iostream.h>
2:
3: void main(void)
4: {
5: cout << "Hello World";
6: return 0;
7: }
In Zeile 1 wird die header Datei 'iostream' in das Programm eingebunden. In der Header
Datei stehen die Information, was z.B. 'cout' machen soll(ich werde mich in einen späteren
Teil genauer mit header Dateien beschäftigen). Tatsache ist, dass der Compiler eine
Fehlermeldung ausspuckt, wenn wir keine header einbinden würden.
In Zeile 3 beginnt das eigentliche Programm mit der Main Funktion. Ein jedes C++
Programm verfügt über eine Main Funktion. Sie wird immer als erstes aufgerufen und ist
somit der Ausgangspunkt für alle weiteren Operationen. Die Main Funktion(wie auch jede
andere) wird durch eine öffnende geschweifte Klammer eingeleitet(Zeile 4) und durch eine
schließende geschweifte Klammer beendet(Zeile 7).
In Zeile 5 steht die Anweisung 'cout << " " '. Sie sorgt dafür, dass die Meldung "Hello
World" auf den Bildschirm ausgegeben wird. Der auszugebende Text muß dabei in
Anführungszeichen stehen. Das Semikolon am Ende der Zeile signalisiert das Ende der
Anweisung. Hinter jeder Anweisung muß ein Semikolon stehen. Zeile 6 interessiert uns
zunächst noch nicht.
Variablen:
Variablen kennt ihr mit Sicherheit aus dem Matheunterricht aus der Schule(Bsp: x = 5+4y). In
C++ übernehmen Variablen im Prinzip die gleiche Aufgabe. Im Prinzip deshalb, weil es doch
ein bißchen anders aussieht. Es gibt mehrere Arten von Variablen in C++. Zur verdeutlichung
schauen wir uns nun ein kleines Programm an, indem der User aufgefordert wird zwei Zahlen
einzugeben, die dann addiert werden und anschließend das Ergebnis ausgegeben wird:
1: #include<iostream.h>
2:
3: void main(void)
4: {
5: int zahl1;
6: int zahl2;
7: int ergebnis:
8:
9: cout << "Bitte geben Sie die erste Zahl ein:";
10: cin >> zahl1;
11: cout << "\nBitte geben Sie die zweite Zahl ein:";
12: cin >> zahl2;
13:
14: ergebnis = zahl1 + zahl2;
15: cout << "\n Die Summe der beiden Zahlen ist:" << ergebnis;
16:
17: return 0;
18: }
Erläuterung:
Was die Zeilen 1-4 bedeuten entnehmt ihr bitte dem oberen Teil. In der Zeile 5 wird eine
Variable vom Typ integer(int) erzeugt, die den Namen 'zahl1' hat(das ist im Prinzip das selbe
wie das 'x' aus dem Mathe untericht, nur das sie anders heißt und das sie "Eigenschaften"
hat). Ihr fragt euch bestimmt jetzt was eine integer Variable ist: Eine integer Variable ist ein
Variablen Typ, der Werte im Bereich von -32.768 bis 32767 aufnehmen. Wenn man einen
größeren(oder kleineren) Wert in der Variable speichern wollen, muß diese dementsprechend
deklariert(erzeugt) werden.
Eine Auflistung aller möglichen Variablentypen steht weiter unten.
In den Zeilen 6/7 werden zwei weitere Variablen vom Typ integer erzeugt.
In Zeile 9 wird der User dazu aufgefordert einen Wert einzugeben.
In Zeile 10 wird der eben eingegebene Wert(nach der Eingabe muß die Enter Taste gedrückt
werden und es dürfen keine Punkte wie man sie sonst schon mal schreibt benutzt werden) in
die Variable 'zahl1' eingelesen. Da in dieser Variblen nun der Wert gespeichert, den der User
eingegeben hat, können wir jederzeit, zur Laufzeit des Programmes, auf den Wert der
Variablen zugreifen. Der Inhalt einer Variablen(der Wert) wird dabei im Arbeitsspeicher
zwischengespeichert. Jede Variable bekommt eine Adresse im Speicher zugewiesen.
In Zeile 11 wird der User wieder aufgefordert einen Wert einzugeben. In dieser Zeile gibt es
aber auch noch etwas neues: Hinter den >>"<< steht ein '\n'. Das bedeutet, dass hier ein
Zeilenumbruch stattfindet(eine neue Zeile wird angefangen). Diese Anweisung kann
irgendwo innerhalb der Gänsefüßchen stehen. Würden wir das '\n' an dieser Stelle weglassen,
so würde die Aufforderung direkt hinter der ersten stehen –und das wäre sehr unübersichtlich.
In Zeile 12 wird der eingegebene Wert in die Variable 'zahl2' eingelesen.
In Zeile 14 werden die beiden Werte der Variablen der Variablen ergebnis zugewiesen. Hier
kann man auch sehen, dass C++ Anweisungen immer von rechts nach links abarbeitet.
In Zeile 15 wird schließlich die Varible 'ergebnis' ausgegeben. Erst wird hierbei der Text
ausgegeben, der in Anführungszeichen steht, anschließend wird der Wert der Variablen
ausgegeben.
Variablentypen:
Typ
Wertebereich
unsigned short int
0 bis 65.535
short int
-32.768 bis 32.767
unsigned long int
0 bis 4.294.967.295
long int
-2.147.483.648 bis 2.147.483.647
float*
1,2e-38 bis 3,4e38
double*
2,2e-308 bis 1,8e308
char
256 Zeichenwerte
* Diese Typen können Kommazahlen darstellen(aufnehmen)
Um eine Variable als einen anderen Typ zu Deklarieren wie oben(int), so muß man nur das
Schlüsselwort umändern. Man setzt anstatt des 'int' im oberen Beispiel einfach einen
Schlüsselwort aus der Tabelle(je nachdem was für Werte man benötigt). Die sieht dann wie
folgt aus:
int kleinerWertebereich;
float größererWertebereich;
Mit dem Typ 'char' kann man bis zu 256 Zeichenwerte aufnehmen(Buchstaben etc.). Die
kann man gut bei ja/nein auswertungen gebrauchen(und bei vielen anderen Dingen).


 Operatoren und Auswertungen
Teil: (2/?)
Thema: Operatoren und Auswertungen
Version: 2.00
Datum: 12.02.2000

Operatoren:
Zuerst einmal möchte ich kurz erklären, was Operatoren überhaupt sind:
Einfach gesagt sind Operatoren Symbole, die den Compiler eine bestimmte Aktion ausführen
lassen. Im ersten Teil dieses Tutorials haben wir bereits Operatoren kennengelernt:
Wir haben zwei Werte addiert und die Summe im gleichen schritt einer Variablen
zugewiesen:
ergebnis = zahl1 + zahl2;
Dabei ist zu beachten, dass der Compiler von rechts nach links arbeitet. Er addiert zuerst die
beiden werte und weißt die Summe anschließend der Variablen ergebnis zu. Hier hätten wir
dann auch schon einen weiteren Operator: den Zuweisungsoperator.
Es ist bei diesem Operator zu beachten, dass er nicht 'ist das selbe wie(ist gleich)' bedeutet,
wie es in der Mathematik ist. Er bedeutet viel mehr: Weise den rechten Wert dem linken
Operanden zu. Wenn man zwei Werte auf Gleichheit überprüfen will, muß man den
'Vergleichsoperator' verwenden( = = ).
Mathematische Operatoren:
Wir haben auch schon Mathematische Operatoren kennengelernt. Diese sind in ihrer Funktion
wohl selbst erklärend. Lediglich die Schreibweise in C++ ist anders als in der Mathematik:
Mathematik
C++
Bedeutung
+
+
Addition
-
-
Subtraktion

*
Multiplikation
:
/
Division
?
%
Modulo*
*Dieser Operator liefert den Rest einer Ganzzahldivision: 31 : 6 = 5 mit einem Rest von 1.
Vergleichsoperatoren:
Prüft zwei Werte auf folgende Fälle:
Bezeichnung
Zeichen
Gleich
= =
Ungleich
!=
kleiner
<
größer
>
kleiner oder gleich
<=
größer oder gleich
>=
Inkrementierung:
Wenn man einen Wert nur um eins erhöhen bzw. um 1 erniedrigen will kann man das
folgendermaßen schreiben:
int zahl=0;
zahl = zahl +1;
zahl = zahl - 1
Da dies aber umständlich ist, bietet C++ eine andere Möglichkeit die weniger Arbeit macht,
aber das selbe bewirkt. Mit Hilfe des Inkrements kann man den Wert einer Variablen um eins
erhöhen. Mit Hilfe des Dekrements kann man den Wert einer Variablen um 1 erniedrigen.
In der Praxis sieht das wie folgt aus:
int zahl=0;
zahl++;
zahl--;
Erst wird die Variable 'zahl' erzeugt und ihr der Wert '0' zugewiesen. Anschließend wird der
Wert um eins erhöht. Folglich hat die Variable nun den Wert '1'.
Nach der Erhöhung um 1 wird der Wert wieder um '1' erniedrigt. Nun hat die Variable
wieder ihren ürsprünglichen Wert '0'.
Nun stellt sich die Frage, ob man das Inkrement bzw. das Dekrement nicht auch vor die
Variable schreiben kann: Die Antwort lautet JA. Das sieht dann wie folgt aus:
++zahl;
--zahl;
Man muß allerdings bei Inkrementireung bzw. Dekrementierung auf eine Sache achten:
Es gibt ein sog. 'Präfix' und ein 'Postfix'. Beim Präfix wird der Wert der Variablen erst
erhöht und anschließend(siehe Beispiel) einer Variablen zugewiesen. Beim Postfix wird der
Wert erst einer Variablen zugewiesen und anschließend erst erhöht:
....
int x=6;
int y=6;
int ergebnis=0;
ergebnis = ++x;
ergebnis = y++;
...
Erst werden drei Variablen erzeugt und ihnen Werte zugewiesen. Im ersten Fall haben wir ein
Präfix. Der Wert der Variablen 'x' wird als erstes um eins erhöht und dann der Variablen
'ergebnis' zugewiesen. 'x' hat jetzt einen Wert von 7. Die Variable 'ergebnis' hat einen Wert
von 7.
Im zweiten Fall haben wir ein Postfix. Der Wert von 'y' wird erst der Variablen 'ergebnis'
zugewiesen und anschließen erst um eins erhöht. Die Variable 'y ' hat nun einen Wert von 7
und die Variable 'ergebnis' hat einen Wert von 6.


Die if-Anweisung:
Nun werden wir eine Möglichkeit kennenlernen, wie man Eingaben eines Users auswerten
kann. Dies mache wir mit Hilfe der if-Anweisung. Dabei wird eine Aktion ausgeführt, wenn
eine bestimmte Bedingung erfüllt wird. Schauen wir uns das mal in der Praxis an:

1: #include<iostream.h>
2:
3: void main(void)
4: {
5: int auswahl, zahl1, zahl2, ergebnis;
6:
7: cout << "Bitte waehlen Sie aus den folgenden moeglichkeiten ein aus:\n";
8: cout << "1) Zwei Zahlen addieren\n";
9: cout << "2) Zwei Zahlen Multiplizieren\n";
10: cout << "Bitte waehlen Sie(1/2):";
11: cin >> auswahl;
12:
13: cout << "\nBitte geben Sie die erste Zahl ein:";
14: cin >> zahl1;
15: cout << "\nBitte geben Sie die zweite Zahl ein:";
16: cin >> zahl2;
17:
18: if(auswahl == 1)
19: ergebnis = zahl1 + zahl2;
20: if(auswahl == 2)
21: ergebnis = zahl1*zahl2;
22: if(auswahl != 1 && auswahl != 2)
23: cout << "\nSie haben eine falsche auswahl getroffen!!!";
24: cout << "\nDas Ergebnis ist:" << ergebnis;
25: }

Erläuterung:
Zu den Zeilen 1-6 muß ich wohl kein Kommentar mehr abgeben. In den Zeilen 7-10 wird der
User dazu aufgefordert eine der Optionen auszuwählen. In Zeile 11 wird die Wahl des
Users(1/2) in die Variable 'auswahl' eingelesen. Die Zeilen 13-16 sollten klar sein.
In Zeile 18 beginnt die Auswertung. Hierbei wird überprüft, welche Option der User gewählt
hat. Man kann diese Zeilen(18/19) wie folgt ausdrücken: Wenn der Wert der Variablen
'auswahl' gleich '1' ist, dann weise die Summe der beiden Zahlen der Variablen 'ergebnis'
zu. Genauso verhält es sich mit den Zeilen 20/21. In Zeile 22 gibt es jedoch etwas neues: Hier
wird die Anweisung erst ausgeführt, wenn zwei Bedingungen erfüllt werden. Wir verknüpfen
an dieser Stelle zwei Bedingungen mit einem logischen AND(und). Man würde es wie folgt
übersetzen: Wenn Ausdruck eins UND Ausdruck zwei gleich TRUE(= wahr: Wenn auswahl
!= '1' UND auswahl != '2'), dann führe die Anweisung aus.
In Zeile 24 wird schließlich das Ergebnis ausgegeben.


Um weitere Möglichkeiten, die man in der if-Anweisung verwenden kann, zu zeigen, werde
ich direkt noch ein Beispiel aufführen. Dabei erweitere ich das oben stehende Programm um
ein paar Dinge:

1: #include<iostream.h>
2:
3: void main(void)
4: {
5: int auswahl, zahl1, zahl2, ergebnis;
6:
7: cout << "Bitte waehlen Sie aus den folgenden moeglichkeiten ein aus:\n";
8: cout << "1) Zwei Zahlen addieren\n";
9: cout << "2) Zwei Zahlen Multiplizieren\n";
10: cout << "Bitte waehlen Sie(1/2):";
11: cin >> auswahl;
12:
13: cout << "\nBitte geben Sie die erste Zahl ein:";
14: cin >> zahl1;
15: cout << "\nBitte geben Sie die zweite Zahl ein:";
16: cin >> zahl2;
17:
18: if(auswahl != '1')
19: {
20: if(auswahl == '2')
21: ergebnis = zahl1 * zahl2;
22: cout << "\nDas Ergebnis ist:" << ergebnis;
23: else
24: cout << "\nSie haben eine Ungueltige Option gewaehlt!!!";
25: }
26: else
27: {
28: ergebnis = zahl1 + zahl2;
29: cout << "\nDas Ergebnis ist:" << ergebnis;
30: }
31: }
Erläuterung:
Dieses Programm macht genau das selbe, wie das Programm zuvor. Es hat sich lediglich die
Schreibweise der Auswertung verändert. Deswegen setze ich auch direkt in Zeile 18 an:
Zuerst wird die Bedingung gestellt: Wenn die Variable ungleich '1' ist, dann führe die
Anweisungen innerhalb der geschweiften Klammern aus. Wenn die Variable aber gleich(also
nicht ungleich 1) ist dann führe die Anweisung aus, die nach dem 'else' folgt.
Das 'else' bedeutet nämlich 'andernfalls'. Man könnte das wie folgt sagen: Wenn die
Bedingung so und so erfüllt ist, dann mache dies ANDERNFALLS(else) mache dies.
Wenn die Variable aber ungleich 1 ist, so werden, wie schon gesagt, die Anweisungen
innerhalb der geschweiften Klammern ausgeführt. In diesem Fall würde dann wieder eine
Auswertung statt finden. Wenn die Bedingung nicht erfüllt wird, so wird eine Fehlermeldung
ausgegeben und das Programm fährt hinter der else Anweisung in Zeile 25 fort(also in Zeile
30).

 Auswertungen II, Funktionen I
Teil: (3/?)
Thema: Auswertungen II, Funktionen I
Version: 1.00
Datum: 02.03.2000

Auswertungen II:
Im zweiten Teil haben wir bereits eine Möglichkeit kennengelernt, um Dinge auszuwerten.
Dies war die 'if-else' Anweisung. In diesem Teil werde ich noch eine Möglichkeit zeigen, mit
der es möglich ist Dinge auf Gleichheit zu prüfen: Die 'switch-case' Anweisung.
Ich will jetzt auch nicht länger reden, äh schreiben und direkt ein Beispiel heranführen:
1: #include<iostream.h>
2:
3: void main(void)
4: {
5: int zahl;
6:
7: cout << "Bitte geben Sie eine Zahl im Bereich von 1-4 ein:";
8: cin >> zahl;
9:
10 switch(zahl)
11: {
12: case 0: cout << "\nSie sollten eine Zahl zwischen 1-4 eingeben und nicht 0 !!!\n";
13: Break;
14: Kasse 1: Cut << "\nSie gaben die Zahl 1 ein";
15: break;
16: case 2: cout << "\nSie gaben die Zahl 2 ein";
17: break;
18: case 3: cout << "\nSie gaben die Zahl 3 ein";
19: break;
20: case 4: cout << "\nSie gaben die Zahl 4 ein";
21: break;
22: default: cout << "\nKoennen Sie denn nicht das tun was man Ihnen sagt?";
23: break;
24: }
25: }
Erläuterung:
Ich setze direkt in Zeile 10 an, da der Rest klar sein müsste:
In besagter Zeile wird die switch Anweisung aufgerufen. In der Klammer dahinter steht der
Auszuwertende Ausdruck. Dieser Ausdruck kann ein beliebiger C++ Ausdruck sein.
Die Auswertung beginnt mit einer öffnenden geschweiften Klammer. In Zeile 12 beginnt die
Auswertung. Hinter der 'case' Anweisung folgt ein Wert, der mit dem Ausdruck aus der
Klammer hinter dem switch, verglichen wird. Wenn der Wert gleich dem Ausdruck ist, wir
die Anweisung hinter dem Doppelpunkt ausgeführt. Nachdem die Anweisung ausgeführt
wurde, springt das Programm aus der switch Konstruktion. Wenn der Wert ungleich dem des
Ausdrucks ist, fährt das Programm beim nächsten case fort und prüft wie zuvor auf
Gleichheit. Wenn es keine Übereinstimmung gibt, landet das Programm bei der 'default'
Anweisung. Diese wird(sofern sie angegeben ist) dann aber auf jedem Fall bearbeitet.

Funktionen:
Zunächst möchte ich mal klären, was Funktionen sind:
Funktionen sind eigentlich Unterprogramme, die bestimmte Anweisungen durchführen und
dann einen Wert an die Main Funktion zurückgeben. Die Main Funktion ist die Hauptfunktion
in einem C++ Programm. Sie muss immer vorhanden sein und wird beim starten des
Programms automatisch aufgerufen. Eine Funktion kann praktisch an jedem Punkt der Main
Funktion aufgerufen werden. Bevor man jedoch eine Funktion benutzen kann, muss man
diese Deklarieren. Die Deklaration einer Funktion nennt man Prototyp. Diesen schreibt man
vor die Main Funktion:
1: #include<iostream.h>
2:
3: int addieren(int zahl1, zahl2);
4:
5: void main(void)
6: {
7: int zahl1, zahl2, ergebnis;
8:
9: cout << "Bitte geben Sie die erste Zahl ein:";
10: cin >> zahl1;
11: cout << "\nBitte geben Sie die zweite Zahl ein:";
12: cin >> zahl2;
13:
14: ergebnis = addieren(zahl1, zahl2);
15:
16: cout << "\n\nDie Summe der beiden Zahlen ist:" << ergebnis;
17:
18: return 0;
19: }
20:
21:
22:
23: int addieren(zahl1, zahl2)
24: {
25: return zahl1 + zahl2;
26: }


Erläuterung: Die Funktion 'addieren' wird in Zeile 3 deklariert. Es ist der Prototyp der
Funktion. Der erste Teil(int) des Prototyps ist der Rückgabetyp. Der darauffolgende
Teil(addieren) ist der Name der Funktion. In der Klammer stehen schließlich die
Parametertypen und die Parameternamen. Da die Prototypen Deklaration eine Anweisung ist,
schließt sie mit einem Semikolon.
Der darauf folgende Teil ist alt gebacken. Erst in Zeile 14 wird es wieder interessant.
Dort wird die Funktion 'addieren' aufgerufen, die wir oben deklariert haben. In der Klammer
stehen die Namen der Zwei Variablen, die wir in der Main Funktion erstellt haben. Diese
beiden Variablen geben wir mit auf den Weg zur Funktion 'addieren', die nach der Main
Funktion Definiert ist. Nun befinden wir uns also in Zeile 23.
Diese Funktion unterscheidet sich in zwei Punkten von der Main Funktion:
1) Anstatt eines 'void', wie in der Main F. finden wir hier ein 'int'. Dies heißt, dass diese
Funktion ein 'int' zurückgibt(und zwar an die Main F.). Dies ist identisch mit dem
Prototypen.
2) In der Klammer finden wir auch kein 'void' wie in der Main F. sondern zwei Namen.
Und zwar sind dies Variablen, die wir hier Deklarieren. Ihr denkt bestimmt jetzt, dass hier
etwas fehlt: Ja! Da fehlt wirklich etwas. Und zwar der Typ der Variablen(int, float etc.).
Wir müssen keinen Typ mehr angeben, weil wir das schon im Prototypen gemacht haben(wir
haben dem Compiler gesagt, dass wir zwei Variablen vom Typ 'int' in der Funktion addieren
benutzen möchten. Also weiß der Compiler, dass die Variablen vom Typ int sein müssen.
Dabei spielt die Wahl des Namens keine Rolle. Das will heißen, dass ich in der
Funktion(Zeile 23) einen beliebigen anderen Namen eingeben könnte. Es geht eigentlich nur
darum, dem Compiler mitzuteilen, vom welchen Typ die Variablen sein sollen.
Nun wird eine weitere Frage aufgeworfen: Wir haben doch gelernt, dass man einen
Variablennamen nur einmal verwenden darf, oder?
Nun, innerhalb einer Funktion kann man einen Variablennamen nur einmal verwenden. Das
heißt nicht, dass wir einen Namen nicht mehrmals innerhalb eines Programmes benutzen
können. In C++ ist es möglich einen Variablennamen mehrmals, aber in verschiedenen
Funktionen zu verwenden.
Dies ist aber nicht ratsam, da nur die Übersicht leidet. Ich habe es nur zur Veranschaulichung
so gemacht.
Das sollte fürs erste zum Thema Funktionen reichen. Jetzt möchte ich noch einen Nachtrag
machen, der eigentlich im ersten Teil erscheinen sollte. SORRY!
Kommentare:
Kommentare dienen dazu ein Programm übersichtlicher zu gestalten. Mit ihnen ist es möglich
irgendwo im Programm etwas reinzuschreiben, ohne das der Compiler meckert. Diese Text
Teile werden dann einfach ignoriert.
Beispiel:
........
cout << "Hallo wie geht es dir?" // Ausgabe des Satzes auf den Bildschirm
.......
Hinter der 'cout' Anweisung finden wir zwei '/'. Diese sagen dem Compiler: Ignoriere alles
was in der Zeile hinter den strichen steht.
Kommentare sollten regelmäßig benutzt werden, da ihr nach einen Monat bestimmt nicht
mehr genau wisst was das eigentlich macht, was da steht.

 Funktionen II, Schleifen I
Teil: (4/?)
Thema: Funktionen II, Schleifen I
Version: 1.00
Datum: 15.03.2000

Funktionen II:
Hier werde ich nochmals auf Rückgabewerte eingehen, wie ich es im Tutorial 3 auch schon
gemacht habe. Ich denke aber, dass es für Anfänger nicht leicht ist dies 100%ig
nachzuvollziehen. Also noch mal.
Im folgenden Beispiel werde ich ein kleines Rechenprogramm erstellen, was mehrere
Funktionen enthalten wird. Also dann:
1: #include <iostream.h>
2:
3: float f_addieren(float);
4: float f_weiterleitung(float);
5:
6: void main(void)
7: {
8: float ergebnis, zahl1;
9:
10: cout << "Bitte geben sie eine Zahl ein:";
11: cin >> zahl1;
12:
13: f_weiterleitung(zahl1);
14:
15: ergebnis = zahl1 * zahl1;
16: cout << "\n\n" << zahl1 << " * " << zahl1 << " = " << ergebnis;
17: }
18:
19: float f_weiterleitung(float zahl)
20:{
21: zahl = f_addieren(zahl);
22: return (zahl);
23: }
24:
25:
26: float f_addieren(float zahl)
27:{
28: float ergebnis = zahl + zahl;
29: cout << "\n\n" << zahl << " + " << zahl << " = " << ergebnis;
30: return (zahl);
31: }
Erläuterung:
In den Zeilen 3 und 4 werden die Funktionen f_addieren() und f_weiterleitung() definiert(dies
sind die Prototypen der Funktionen). Vor den Namen der Funktionen(f_addieren() ....) steht
der Rückgabetyp(float), also der Typ von dem die Variablen sind, die von der Funktion an
eine andere zurückgegeben werden. In der Klammer finden wir die Parameter. Die im
Prototypen stehenden Parameter müssen nicht identisch sein mit denen der eigentlichen
Funktion. Wir teilen dem Compiler lediglich mit, von welchem Typ diese sein sollen.
In Zeile 13 wird die Funktion 'f_weiterleitung()' aufgerufen. In der Klammer steht die
Variable 'zahl1'. Dies bedeutet, dass wir den Wert der Variablen(den haben wir ja vorher
vom User abgefragt) an die Funktion 'f_weiterleitung' übergeben. Bzw. an die Variable, die
wir in der Klammer erzeugt haben(Zeile 19). Variablen, die in der Klammer erzeugt werden,
verhalten sich wie "normale" Variablen die in der Funktion selber deklariert werden.
In Zeile 21 sagen wir dem Compiler: "Weise der Variablen 'zahl' den Wert zu, den die
Funktion 'f_addieren()' zurückgibt."
In die Klammer setzen wir die Variable 'zahl', und übergeben sie somit an die Funktion
f_addieren() bzw. an die Variable 'zahl'. An dieser Stelle möchte ich noch einmal daran
erinnern, dass man Variablen mit dem selben Namen in Verschiedenen Funktionen
verwenden darf.
Nun befinden wir uns also in Zeile 26. Wir erzeugen eine Variable 'ergebnis' und weisen ihr
den Wert von 'zahl + zahl' zu. Dann wird die Summe auf dem Bildschirm ausgegeben.
In Zeile 30 geben wir den Wert der Variablen 'zahl' an die Funktion 'f_weiterleitung()'
zurück. Dort wird der Wert dann der Variablen 'zahl' zugewiesen(Zeile 21).
In Zeile 22 wird der Wert der Variablen 'zahl' an die 'main' Funktion zurückgegeben.
Anschließend wird multipliziert und dann wird das Ergebnis ausgegeben.

Die while Schleife:
Ich werde mal kurz erläutern, was Schleifen sind(nicht die Teile die man beim Schuhe zu
machen macht!): Einfach gesagt sind
das Programm Teile die etwas immer wiederholen, bis eine bestimmte Bedingung eintritt.
Fertig(Das hat jetzt eh keiner gepeilt,
aber das kriegen wir gleich noch hin)!
Ich will jetzt nicht umständlich viel schreiben und schreib mal ein Beispiel:
1: #include <iostream.h>
2:
3: void main(void)
4: {
5: int i, j=1;
6:
7: cout << "Wie oft soll der Schleifenkörper ausgeführt werden:";
8: cin >> i;
9:
10: while(i > 0)
11: {
12: cout << "\nDurchgang: " << j;
13: i--; j++;
14: }
15:
16: cout << "\n\nEnde der Schleife!!!";
17: }
Erläuterung:
In Zeile 5 erzeugen wir die Variablen 'i' und 'j'. Sie werden oft als zählervariable verwendet.
In Zeile 7 wird gefragt, wie oft
der Schleifenkörper durchgelaufen werden soll.
In Zeile 10 beginnt die Schleife: In der Klammer steht die Laufbedingung(also unter welchen
Umständen der Körper ausgeführt
werden soll). In diesem Fall soll der Körper durchlaufen werden, solange wie 'i' größer ist als
0. Der Schleifenkörper wird in
Zeile 11 durch eine öffnende geschweifte eingeleitet(und dementsprechend durch eine
geschlossene Klammer beendet). In Zeile
13 wird der Zähler 'i' um eins erniedrigt, so dass die Abbruchbedingung auch irgendwann
mal eintritt. 'j' wird um eins erhöht,
damit man sehen kann, wie oft der Schleifenkörper schon durchlaufe wurde(dies wird in Zeile
12 ausgegeben).
Wenn 'i' dann bis 0 erniedrigt wird, wird der Körper nicht mehr durchlaufen, weil die
Laufbedingung nicht mehr erfüllt wird. Das
Programm fährt wie gewohnt fort.
Kategorie: Schrieftliche Tuts | Eingetragen von: tut4all
Views: 1230 | Downloads: 0 | Rating: 0.0/0 |
Kommentare insgesamt: 0
Vorname *:
Email *:
Code *:

Menü

Katalogkategorien

Schrieftliche Tuts [3]
Stream TuTz (online Videos) [2]
Downloads TUTz [0]
ungeprüfte TuTz [0]
Nützliche Programm( Legalle ) [1]

Einloggen

Suche

Freunde

Statistik


Insgesamt online: 1
Gäste: 1
Benutzer: 0

Unsere Umfrage

Wie findet ihr das NEUE Design
Antworten insgesamt: 28

Mini-Chat