1
Ein Zeitgenosse des Pythagoras war Heron von Alexandria. Basierend auf dem Satz des Pythagoras entwickelte er folgende Formel für die Berechnung der Fläche jedes Dreiecks:
wobei gilt:
#include <iostream>
#include <cmath>
float heron(float, float, float);
using namespace std;
int main()
{
float a, b, c, f;
cout << "Seite a: ";
cin >> a;
cout << "Seite b: ";
cin >> b;
cout << "Seite c: ";
cin >> c;
f = heron(a, b, c);
cout << "Fl\204che: " << f;
return 0;
}
float heron(float x, float y, float z)
{
float f, s;
s = (x + y + z) / 2;
f = sqrt((s - x) * (s - y) * (s - z) * s);
return f;
}
2
Stellen Sie sich vor, die Potenz-Funktion wäre "kaputt"/nicht vorhanden. Erstellen Sie eine Funktion hoch(basis, exponent)
, die eine ganze Zahl n-mal potenzieren kann.
Hilfe:
- = 2 x 2
- = 9 x 9 x 9
- = 10 x 10 x 10 x 10
#include <iostream>
int hoch(int, int);
using namespace std;
int main(int argc, char const *argv[])
{
int a = 0;
int b = 0;
int c = 0;
cout << "Bitte Seite A eingeben" << endl;
cin >> a;
cout << "Bitte Seite B eingeben" << endl;
cin >> b;
c = hoch(a, b);
cout << "Seite C betraegt : " << c << endl;
return 0;
}
int hoch(int a, int b)
{
int c = 1;
for (b; b >= 1; b--)
{
c *= a;
}
return c;
}
alternativ: mit Zufallszahlen zum Testen
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int hoch(int a, int b)
{
int hoch = 1, i;
for (i = 1; i <= b; i++)
{
hoch = hoch * a;
}
return hoch;
}
int main()
{
int a, b;
srand(time(NULL));
a = rand() % 10 + 1;
b = rand() % 6;
cout << a << " hoch " << b << " = " << hoch(a, b);
return 0;
}
3
Der Satz des Pytagoras lautet a² + b² = c²
. Erstellen Sie eine Funktion zur Berechnung der Seite C nach Eingabe der Werte für a und b. Für die Wurzelberechnung benutzen Sie bitte die Funktion sqrt()
.
#include <iostream>
#include <cmath>
float pytagoras(float, float);
using namespace std;
int main()
{
float a = 0;
float b = 0;
float c = 0;
cout << "Bitte Seite A eingeben" << endl;
cin >> a;
cout << "Bitte Seite B eingeben" << endl;
cin >> b;
c = pytagoras(a, b);
cout << "Seite C betraegt : " << c << endl;
return 0;
}
float pytagoras(float a, float b)
{
float c;
c = sqrt(a * a + b * b);
return c;
}
4
Immer wieder gern (zu)genommen, aber aus der Mode: Die Kilokalorie (kcal). Erstellen Sie daher eine Funktion "Joule(k)", die aus Kalorien Joule errechnet. (1 Kcal = 4,31 Joule)
#include <iostream>
double joule(double);
using namespace std;
int main(int argc, char const *argv[])
{
double a, erg = 0;
cout << "Bitte Kilokalorie eingeben:" << endl;
cin >> a;
erg = joule(a);
printf("%.2lf kcal = %.2lf Joule", a, erg);
return 0;
}
double joule(double x)
{
double result = 4.32;
return result *= x;
}
5
Erstellen Sie eine Funktion Zufall (UG, OG)
,
die Ihnen passende Zufallszahlen zwischen der Untergrenze UG und der Obergrenze OG liefert.
#include <iostream>
#include <ctime>
int zufall(int, int);
using namespace std;
int main(int argc, char const *argv[])
{
int rnd = 0;
srand(time(NULL));
for (int i = 0; i < 10; i++)
{
rnd = zufall(450, 50);
printf("%i ", rnd);
}
return 0;
}
int zufall(int ug, int og)
{
int erg;
erg = rand() % (og - ug + 1) + ug;
return erg;
}
6
Definieren Sie eine Funktion Barrel (Liter)
, die eine Liter-Angabe in Barrel umrechnet,
wobei ein Petrol Barrel (PB) laut Definition einem Volumen von nahezu 159 Litern entspricht.
#include <iostream>
int barrel(int);
using namespace std;
int main(int argc, char const *argv[])
{
int eingabe = 159, ausgabe;
ausgabe = barrel(eingabe);
printf("%i Liter = %i Barrel", eingabe, ausgabe);
return 0;
}
int barrel(int liter)
{
return liter / 159;
}
Extra: Erstellen Sie auch die Funktion liBa(Menge, Zieleinheit)
, die wahlweise Liter in Barrel umrechnet oder Barrel in Liter, entsprechend dem zweiten übergebenen Parameter.
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
double barrel(double);
double liba(double, char);
int main()
{
int x;
char z;
srand(time(NULL));
// x=rand()%9901+100;
// cout << x << " Liter sind " << barrel(liter) << " Barrel.";
cout << "Menge: ";
cin >> x;
do
{
cout << "Zieleinheit:\n(L)iter oder (B)arrel: ";
cin >> z;
} while (z != 'l' && z != 'L' && z != 'b' && z != 'B'); // bis z=L oder z=B
if (z == 'l' || z == 'L')
cout << x << " Barrel sind " << liba(x, z) << " Liter.";
else
cout << x << " Liter sind " << liba(x, z) << " Barrel.";
return 0;
}
// LiBa(Menge, Zieleinheit)
double liba(double menge, char ziel)
{
if (ziel == 'l' || ziel == 'L')
{
return menge * 159;
}
else
{
return menge / 159;
}
}
double barrel(double liter)
{
return liter / 159;
}
9
Bestimmen Sie nach Eingabe des Radius in einer Funktion Volumen, Oberfläche und Umfang einer Kugel. (Hilfe: Die Konstante M_PI ist in der math.h enthalten)
Call by Reference
Formelübersicht:
- d = 2·r ← Durchmesser = 2 mal Radius
- U = 2·π·r ← Umfang = 2 mal Pi mal Radius.
- A = π·r² ← Kreisfläche = Pi mal Radius ins Quadrat.
- O = 4·π·r² ← Oberfläche = 4 mal Pi mal Radius ins Quadrat.
- V = (4/3)·π·r³ ← Volumen = Vier Drittel mal Pi mal Radius hoch 3
#include <iostream>
#include <cmath>
using namespace std;
void kugel(float r, float *u, float *o, float *v)
{
*u = 2 * M_PI * r;
*o = 4 * M_PI * r * r;
*v = (4.0 / 3) * M_PI * pow(r, 3);
}
int main()
{
float r, umf, ober, vol;
cout << "Radius? ";
cin >> r;
kugel(r, &umf, &ober, &vol);
cout << "Umfang: " << umf << endl;
cout << "Oberfl\204che: " << ober << endl;
cout << "Volumen: " << vol << endl;
return 0;
}