// Funktionen mit call by reference #include using namespace std; void begruessung(); void ausgabe(int , int, int ); int addition(int x, int y); void eingabe(int& x, int& y); void main() { int wert1=0, wert2=0, erg, op=0; //lokale Variable begruessung(); eingabe(wert1, wert2, op); // Adresse von wert1 und wert2 wird auf den Stack gelegt if(op==1) erg = addition(wert1, wert2); elseif(op==2) erg = subtraktion(wert1, wert2); elseif(op==3) erg = multiplikaion(wert1, wert2); elseif(op==4) erg = division(wert1, wert2); ausgabe(wert1, wert2, erg, op); } void eingabe(int& x, int& y, int& o) // Call by Reference (Referentparameter) { // es wird die Adresse mit pop vom Stack den Variablen x und y zugewiesen scanf >> x >> y >> o; // Werte änern sich auch im main() } int addition(int x, int y) { return (x+y); } int subtraktion(int x, int y) { return (x-y); } int multiplikation(int x, int y) { return (x*y); } int division(int x, int y) { return (x/y); } void ausgabe(int x, int y, int z, int o) //Inhalt für lokalen Param vom Stack holen { printf << x << " + " << y << " = " << z < 1 |\n"); printf("+-----------------------|\n"); printf("| Subtraktion > 2 |\n"); printf("+-----------------------|\n"); printf("| Multiplikation > 3 |\n"); printf("+-----------------------|\n"); printf("| Divison > 4 |\n"); printf("+-----------------------+\n"); }