Es gibt jedoch auch viele Probleme, bei denen die Ausführung des Unterprogramms Ergebnisse liefert, die später im Hauptprogramm verwendet werden müssen. Dazu dienen sogenannte Ein/Ausgabeparameter.
Diese Parameter werden mit einem &-Zeichen gekennzeichnet.
Kopiere den Programmcode und teste das Programm.
#include <iostream> #include <conio.h> using namespace std; void berechnung(int &n, int &sum); void main() { int zahl, summe; cout <<"Dieses Programm summiert alle Zahlen von 1 bis n"; cout <<"\n Zahl n: "; cin >> zahl; if (zahl>0) { berechnung(zahl, summe); cout<<"\n Summe: 1... "<<zahl<<": " <<summe; } else{cout<<"Es wurde ein falscher Wert eingegeben";} getch(); } //Hauptprogramm void berechnung(int &n, int &sum){ sum=0; while(n>=0){ sum=sum+n; n--; } } //Berechnung
Beide Parameter sind Ein/Ausgabeparameter. n wird innerhalb von Berechnung verändert, weshalb auch der veränderte Wert zurückgegeben wird, als zahl.
Ändere den Kopf von berechnung, sodass n ein reiner Eingabeparameter ist und sum ein Ein/Ausgabeparameter.
Schreibe ein Programm, welches Sekunden in Stunden, Minuten und Sekunden umwandelt.
Die Umwandlung soll mit Hilfe des Unterprogramms void umwandeln (Eingabeparameter: ein→long; Ein/Ausgabeparameter: h, m, s) realisiert werden.
void umwandeln(long ein, int &stun, int &min, int &sek); int main() { long eingabe; int stunden, minuten, sekunden; cout << "Dieses Programm rechnet Sekunden in Stunden, Minuten und Sekunden um!\n"; cout << "Bitte geben Sie die Anzahl der Sekunden an: "; cin >> eingabe; umwandeln(eingabe, stunden, minuten, sekunden); cout <<eingabe<<" Sekunden sind "<<stunden<<" Stunden, "<<minuten<<" Minuten und "<<sekunden<<" Sekunden!"; getch(); return 0; } void umwandeln(long ein, int &stun, int &min, int &sek) { stun=ein/3600; ein=ein%3600; min=ein/60; sek=ein%60; }