2. Funktionen
2. Funktionen
Funktionen
Funktionen werden eingesetzt damit man mehr Übersicht im Programm code erlangt.
Eine Funktion wird außerhalb der main-Funktion geschrieben, meistens schreibt man alle Funktionen über die main Funktion.
eine Funktion kann alle Datentypen zurückgeben oder auch nichts.
So wird eine Funktion deklariert :
wie bei jeder deklaration schreibt man am Anfang den Dateitypen und dann den Name der Funktion.
Rückgabe einer Funktion :
Eine Funktion kann alle Datentypen zurückgeben.
Eine Funktion mit Rückgabewert wird so geschrieben:
In der Funktion "rechnung" werden zwei Variablen vom Typ INTEGER deklariert.
Der Rückgabewert der Funktion "rechnung" ist eine Integer Variable, weil vor der Namenszuweisung "int" steht.
In der main Funktion steht "ergebnis = rechnung(c, d);" das heißt das die Funktion aufgerufen wird und der Wert von c und d wird den Variablen a und b zugwiesen.
Die Funktion Rechnung gibt "a+b" zurück und dieser Wert wird der Variable ergebnis zugewiesen.
Zahlen beispiel :
Angenommen c und d in der main Fuktion haben den Wert 1 und 2.
Dann wird die Funktion "rechnung" aufgerufen und c und d werden a und b zugewiesen
In deisem Fall könnte man genauso gut schreiben :
Die Ausgabe des Pragramms wäre : 3
Wer das noch nicht verstanden hat:
Die Funktion "rechnung" kann man sich als Maschine vorstellen die 2 Zahlen addiert.
Man wirft 2 Zahlen rein und es kommt eine Zahl heraus.
Das Praxisbeispiel :
Das untere Programm simuliert einen Rechner.
by Mathias Fröhlich
Funktionen werden eingesetzt damit man mehr Übersicht im Programm code erlangt.
Eine Funktion wird außerhalb der main-Funktion geschrieben, meistens schreibt man alle Funktionen über die main Funktion.
eine Funktion kann alle Datentypen zurückgeben oder auch nichts.
So wird eine Funktion deklariert :
wie bei jeder deklaration schreibt man am Anfang den Dateitypen und dann den Name der Funktion.
- Code:
void ausgabe() { //diese Funktion gibt nichts zurück wegen dem Dateityp : void
Rückgabe einer Funktion :
Eine Funktion kann alle Datentypen zurückgeben.
Eine Funktion mit Rückgabewert wird so geschrieben:
- Code:
int rechnung(int a, int b) {
return a+b;
}
int main() {
int c, d, ergebnis;
ergebnis = rechnung(c, d);
cout << ergebnis;
}
In der Funktion "rechnung" werden zwei Variablen vom Typ INTEGER deklariert.
Der Rückgabewert der Funktion "rechnung" ist eine Integer Variable, weil vor der Namenszuweisung "int" steht.
In der main Funktion steht "ergebnis = rechnung(c, d);" das heißt das die Funktion aufgerufen wird und der Wert von c und d wird den Variablen a und b zugwiesen.
Die Funktion Rechnung gibt "a+b" zurück und dieser Wert wird der Variable ergebnis zugewiesen.
Zahlen beispiel :
Angenommen c und d in der main Fuktion haben den Wert 1 und 2.
Dann wird die Funktion "rechnung" aufgerufen und c und d werden a und b zugewiesen
In deisem Fall könnte man genauso gut schreiben :
- Code:
ergebnis = rechnung(1, 2);
Die Ausgabe des Pragramms wäre : 3
Wer das noch nicht verstanden hat:
Die Funktion "rechnung" kann man sich als Maschine vorstellen die 2 Zahlen addiert.
Man wirft 2 Zahlen rein und es kommt eine Zahl heraus.
Das Praxisbeispiel :
Das untere Programm simuliert einen Rechner.
- Code:
#include
int rechner (int a, int b, char operation) {
switch(operation) {
case '*': return a*b;break;
case '/': return a/b;break;
case '-': return a-b;break;
case '+': return a+b;break;
}
}
int main() {
int zahl1, zahl2;
char operation;
while(1) {
system("cls");
cin >> zahl1 >> operation >> zahl2;
cout << "= " << rechner(zahl1, zahl2, operation);
system("echo.");
system("pause");
}
return 0;
}
by Mathias Fröhlich
Admin- Rang : Administrator
- Number of posts : 141
Age : 33
Registration date : 2007-03-16
Re: 2. Funktionen
2. Praxisbeispiel
Mit diesem Programm könnt ihr in einem Bereich von 20x40C
"zeichnen", indem ihr einen Cursor mit w,a,s,d steuert
Mit diesem Programm könnt ihr in einem Bereich von 20x40C
"zeichnen", indem ihr einen Cursor mit w,a,s,d steuert
- Code:
#include <iostream.h>
#include <fstream.h>
#include <conio.h>
const int X = 20;
const int Y = 40;
char matrix[X][Y];
int hoverX = 5, hoverY = 5;
void initWorld() {
matrix[0][0] = char(201); // linkes oberes Eckzeichen
for(int i = 1; i <= Y; i++) {
matrix[0][i] = char(205); // linke "Wand"
}
matrix[0][Y-1] = char(187); // linkes unteres Eckzeichen
for(int i = 1; i <= X; i++) {
matrix[i][0] = char(186); // obere "Wand"
}
matrix[X][0] = char(200); // rechte obere Ecke
for(int i = 1; i <= Y; i++) {
matrix[X][i] = char(205); // untere "Wand"
}
matrix[X][Y-1] = char(188); // rechte untere Ecke
for(int i = 1; i < X; i++) {
matrix[i][Y-1] = char(186); // rechte "Wand"
}
for(int zelleX = 2;zelleX < X-2; zelleX++) {
for(int zelleY = 2;zelleY < Y-2; zelleY++) { // Der "Inhalt"
matrix[zelleX][zelleY] = '\0';
}
}
}
void printWorld() {
system("cls");
for(int zelleX = 0;zelleX < X+1; zelleX++) {
for(int zelleY = 0;zelleY < Y; zelleY++) { // Der "Inhalt"
cout << matrix[zelleX][zelleY];
}
cout << "\n";
}
}
void printRobot(int x, int y) {
matrix[x][y] = char(219);
}
void clear(int x, int y) {
matrix[x][y] = '\0';
}
void sleep(int delay) {
delay *= 100000;
for(double i = 0; i <= delay; i += 0.1) {
}
}
void steuerKonsole() {
char cursor;
while(cursor != 'q') {
//system("cls");
printWorld();
cursor = getch(); //Eingabe ohne bestätigung mit <ENTER>
switch(cursor) {
case 'w': hoverX--;break;
case 'a': hoverY--;break;
case 's': hoverX++;break;
case 'd': hoverY++;break;
case 'q': break;
}
printRobot(hoverX, hoverY);
sleep(20);
}
}
void savePicture(char* fileName) {
ofstream fileOut(fileName);
fileOut << ".Robot" << endl;
fileOut << "\t\t" << "(C)" << " Mathias Fröhlich 2007" << endl << endl;
for(int zelleX = 0;zelleX <= X; zelleX++) {
for(int zelleY = 0;zelleY < Y; zelleY++) {
fileOut << matrix[zelleX][zelleY];
}
fileOut << "\n";
}
fileOut.close();
}
int main() {
initWorld();
printWorld();
steuerKonsole();
savePicture("Zeichnung.txt");
}
Admin- Rang : Administrator
- Number of posts : 141
Age : 33
Registration date : 2007-03-16
Permissions in this forum:
You cannot reply to topics in this forum
|
|