Skip to main content

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:

F=(𝑠𝑎)(𝑠𝑏)(𝑠𝑐)𝑠2F = \sqrt[2]{(𝑠−𝑎)∗(𝑠−𝑏)∗(𝑠−𝑐)∗𝑠}

wobei gilt: 𝑎+𝑏+𝑐2\frac{𝑎+𝑏+𝑐}{2}

1.cpp
#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;
}

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:

  • 222^2 = 2 x 2
  • 939^3 = 9 x 9 x 9
  • 10410^4 = 10 x 10 x 10 x 10
2.cpp
#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

2_2.cpp
#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;
}

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().

3.cpp
#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;
}

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)

4.cpp
#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;
}

Erstellen Sie eine Funktion Zufall (UG, OG), die Ihnen passende Zufallszahlen zwischen der Untergrenze UG und der Obergrenze OG liefert.

5.cpp
#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;
}

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.

6.cpp
#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.

6_2.cpp
#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;
}

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;
}