GIP Aufgabe 5
Mittwoch, November 9th, 2005Funktionen in C++
Schreiben Sie die folgenden C++-Funktionen und rufen Sie sie in main() auf. Benutzen Sie das Hilfsblatt „Funktionen“ (Download im GIP-Vorlesungsbereich).
- Schreiben Sie eine Funktion hw(), die keine Argumente und keinen Rückgabewert hat, sondern lediglich die Zeichenkette „Hello world!“ auf dem Bildschirm ausgibt.
Testlauf:
Hello world! - Schreiben Sie eine Funktion cbv1(), die ein Argument vom Typ double und keinen Rückgabewert hat. Der Wert des Argumentes ist von der Funktion auf dem Bildschirm auszugeben. Rufen Sie die Funktion mit dem konstanten Parameter 12.6 auf.
Testlauf: Wert von a in cbv1 = 12.6 - Rufen Sie die Funktion cbv1() auf, indem Sie als Parameter eine Variable übergeben, die Sie vorher mit dem Wert 7.1234 belegt haben.
Testlauf:
Wert von a in cbv1 = 7.1234 - Schreiben Sie eine Funktion cbv2(), die ein Argument vom Typ double und einen Rückgabewert vom Typ char hat. Die Funktion soll das Zeichen ’p’ zurückgeben, wenn eine positive Integerzahl als Parameter übergeben wird und das Zeichen ’n’ bei einer negativen Integerzahl. Rufen Sie die Funktion einmal mit einer positiven und einmal mit einer negativen Zahl auf und geben Sie das Ergebnis in main() auf dem Bildschirm aus.
Testlauf:
Ergebnis von cbv2 mit Parameter -23: n
Ergebnis von cbv2 mit Parameter +10: p - Schreiben Sie eine Funktion cbr1(), die die Float-Variable f im Hauptprogramm auf den konstanten Wert 12.345 setzt. Geben Sie den Wert von f in main() vor und nach dem Aufruf der Funktion aus.
Testlauf:
Vor dem Aufruf von cbr1: f = 0
Nach dem Aufruf von cbr1: f = 12.345 - Schreiben Sie eine Funktion cube(), die abhängig von der Anzahl der übergebenen Parameter den Rauminhalt eines Quaders oder die Fläche eines Rechtecks berechnet und als Wert zurückgibt. Argumente sind Länge, Breite und Höhe. Definieren Sie die Höhe als Default-Parameter mit dem Defaultwert 1, so dass beim Weglassen der Höhe beim Funktionsaufruf mit 1 gerechnet und somit der Wert für die Fläche zurückgegeben wird. Rufen Sie die Funktion mit Beispielwerten auf. Die Daten sind innerhalb der Funktion am Bildschirm auszugeben, das Ergebnis in main().
Testlauf:
Daten (L: 10 B: 11 H: 12)
Rauminhalt: 1320
Daten (L: 10 B: 11 H: 1)
Flaeche: 110
Überprüfen Sie die Werte der Variablen in den Aufgaben b) bis f) mit dem Debugger!
#include "stdafx.h"
using namespace std;
void hw(void);
void cbv1(double i = 12.6);
char cbv2(double d = 0);
void cbr1(double &d);
int cube(int l,int b,int h=1);
int main(void)
{
// Aufgabe A
hw();
//Aufgabe B
cbv1();
//Aufgabe C
cbv1(7.1234);
// Aufgabe D
double d = -23;
cout << "Ergebnis von cbv2 mit Parameter " << d << ": " << cbv2(d) << endl;
d = 10;
cout << "Ergebnis von cbv2 mit Parameter +" << d << ": " << cbv2(d) << endl;
// Aufgabe E
d = 0;
cout << "Vor dem Aufruf von cbr1: f = " << d << endl;
cbr1(d);
cout << "Nach dem Aufruf von cbr1: f = " << d << endl;
// Aufgabe F
int l=10,b=11,h=12;
/*
cout << "Daten (L: "<< l << " B: " << b << " H: " << h <<")" << endl << "Rauminhalt: " << cube(l,b,h) << endl;
h=1;
cout << "Daten (L: "<< l << " B: " << b << " H: " << h <<")" << endl << "Flaeche: " << cube(l,b) << endl;
*/
cout << cube(l,b,h) << endl;
cout << cube(l,b) << endl;
return 0;
}
void hw(void)
{
cout << "Hello world!" << endl;
}
void cbv1(double i)
{
cout << "Wert von a in cbv1 = " << i << endl;
}
// Aufgabe D
char cbv2(double d)
{
char zeichen;
if(d < 0)
{
zeichen = 'n';
}
else if(d > 0)
{
zeichen = 'p';
}
// cout << "Ergebnis von cbv2 mit Parameter " << d << ": " << zeichen;
return zeichen;
}
void cbr1(double &d)
{
d = 12.345;
}
int cube(int l,int b,int h)
{
if(h==1)
{
cout << "Daten (L: "<< l << " B: " << b << " H: " << h <<")" << endl << "Flaeche: ";
}
else
{
cout << "Daten (L: "<< l << " B: " << b << " H: " << h <<")" << endl << "Rauminhalt: ";
}
return l*b*h;
}