Hallo allerseits,
ich habe mal ein kleines Programm geschrieben, welches eine Mathematisierug eines Versuches zur Hin- und Rückreaktion ist.
Hierbei hatten wir vier Zylinder. Zwei grosse (oben offen, unten geschlossen) und zwei kleinere (oben und unten offen).
In den einen Zylinder wurde Wasser gegossen, der andere bleibt vorerst leer. Jetzt werden mit Zylinder 3&4 (klein) Wasser aus Zylinder 1&2 herausgenommen (je nach dem, wie hoch der Wasserstand und der Radius von Zylinder 3 oder 4 ist) und jeweils in den anderen Zylinder eingefüllt (dies geschieht alles gleichzeitig).
Dies sollte so lange wiederholt werden, bis sich die Wasserpegelstände nicht mehr veränderten.
Wir hatten
Zylinder 1:
Radius : 1,5 cm
Wasser: 40 ml
Zylinder 2:
Radius : 1,5 cm
Wasser: 40 ml
Zylinder 3:
Radius: 0,8 cm
Zylinder 4:
Radius: 0,6 cm
Der Wasserstand in den beiden Zylindern 1&2 ändert sich nach 23 Durchführungen nicht mehr.
Hier jetzt der Quellcode (vll. etwas umständlich programmiert) :
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
//******************************************************************************
// Dieses Programm berechnet das Volumen von Wasser (in ml) in zwei Zylindern.
// Dabei kann durch verschiedene Parameter der Zylinderradius und die Masse des Wassers in den Zylindern in ml eingestezt werden.
// Nach und nach werden mit zwei weiteren Zylinder Wasser aus den ersten Beiden ausgetauscht:
// Bsp: Zylinder 1 hat 50ml Wasser, Zylinder 2 ist leer. Jetzt wird mit Zylinder 3 aus Zylinder 1
// so viel Wasser entnommen, wie es die Höhe (variabel) des Wasserpegels zulässt. Das gleiche gilt für Zylinder 2 und 4.
// Nun wird der Inhalt von Zylinder 3 in Zylinder 2 geschüttet, der Inhalt aus Zylinder 4 wird in
// Zylinder 1 gekippt. Hier wird dieser Vorgang so lange wiederholt, wie eingegeben wurde.
//******************************************************************************
#include <iostream>
using namespace std;
//Konstanten:
const float PI = 3.141592654;
// Variabeln werden deklariert:
float Zylinder_1_Wasser; //Wasser in ml in Zylinder 1
float Zylinder_1_Radius; //Radius in mm von Zylinder 1
float Zylinder_1_Wasserpegel; //Wasserpegel/höhe in cm von Zylinder 1
float Zylinder_2_Wasser;
float Zylinder_2_Radius=0;
float Zylinder_2_Wasserpegel;
float Zylinder_3_Radius;
float Zylinder_3_Wasser; //Wasser in ml, die Zylinder 3 aus Zylinder 1 aunimmt und in Zylinder 2 abgibt
float Zylinder_4_Radius;
float Zylinder_4_Wasser;
float Differenzvolumen_1;
float Differenzvolumen_2;
int Anzahl_der_Durchfuehrungen;
string beenden;
int main();
void Zylindermasse_1()
{
cout << "Masse fuer Zylinder 1:";
cout << "\nRadius [in cm] : ";
cin >> Zylinder_1_Radius;
cout << "Wasser [in ml]: ";
cin >> Zylinder_1_Wasser;
Zylinder_1_Wasserpegel = Zylinder_1_Wasser/PI/(Zylinder_1_Radius*Zylinder_1_Radius);
cout << "Der Wasserpegel von Zylinder 1 liegt bei " << Zylinder_1_Wasserpegel <<"mm";
}
void Zylindermasse_2()
{
cout << "\n\nMasse fuer Zylinder 2:";
cout << "\nRadius [in cm] : ";
cin >> Zylinder_2_Radius;
cout << "Wasser [in ml]: ";
cin >> Zylinder_2_Wasser;
Zylinder_2_Wasserpegel = Zylinder_2_Wasser/PI/(Zylinder_2_Radius*Zylinder_2_Radius);
cout << "Der Wasserpegel von Zylinder 2 liegt bei " << Zylinder_2_Wasserpegel <<"mm";
}
void Zylindermasse_3()
{
cout << "\n\nMasse fuer Zylinder 3:";
cout << "\nRadius [in cm] : ";
cin >> Zylinder_3_Radius;
}
void Zylindermasse_4()
{
cout << "\n\nMasse fuer Zylinder 4:";
cout << "\nRadius [in cm] : ";
cin >> Zylinder_4_Radius;
}
void Umfuellen()
{
int counter =0;
cout << "\nAnzahl der Durchfuehrungen: ";
cin >> Anzahl_der_Durchfuehrungen;
while(counter<Anzahl_der_Durchfuehrungen)
{
Zylinder_1_Wasserpegel = Zylinder_1_Wasser/PI/(Zylinder_1_Radius*Zylinder_1_Radius);
Zylinder_2_Wasserpegel = Zylinder_2_Wasser/PI/(Zylinder_2_Radius*Zylinder_2_Radius);
Zylinder_3_Wasser = (Zylinder_3_Radius*Zylinder_3_Radius)*PI*Zylinder_1_Wasserpegel;
Zylinder_4_Wasser = (Zylinder_4_Radius*Zylinder_4_Radius)*PI*Zylinder_2_Wasserpegel;
Differenzvolumen_1 = Zylinder_1_Wasser - Zylinder_3_Wasser;
Differenzvolumen_2 = Zylinder_2_Wasser - Zylinder_4_Wasser;
Zylinder_1_Wasser = Differenzvolumen_1 + Zylinder_4_Wasser;
Zylinder_2_Wasser = Differenzvolumen_2 + Zylinder_3_Wasser;
counter++;
cout << "\n\nZylinder 1 Nr. " << counter << "Wasser [in ml]: " << Zylinder_1_Wasser;
cout << "\nZylinder 2 Nr. " << counter << "Wasser [in ml]: " << Zylinder_2_Wasser;
}
}
int Beenden()
{
cout << "\nWollen Sie das Programm beenden? (y) ";
cin >> beenden;
if (beenden == "y")
return 1;
else
{
cout << "\n\n\n\n\n\n";
main();
}
}
int main()
{
Zylindermasse_1();
Zylindermasse_2();
Zylindermasse_3();
Zylindermasse_4();
Umfuellen();
Beenden();
}
|