Compare commits

..
2 Commits
Author SHA1 Message Date
zwanzigda85419 872d122bb7 V5 2025-05-09 09:53:09 +02:00
zwanzigda85419 af8dca4694 Flugkurve V4 2025-04-25 11:35:57 +02:00
2 changed files with 149 additions and 0 deletions
+83
View File
@@ -0,0 +1,83 @@
/**
* $Author: MahrTh $
* $Rev: 118 $
* $Date: 2015-03-21 21:39:51 +0100 (Sa, 21. Mär 2015) $
*/
#include <iostream>
#include <sstream>
using namespace std;
class Vektor {
public:
float x, y;
void add(Vektor vektor) {
x += vektor.x;
y += vektor.y;
}
void mul(float faktor) {
x *= faktor;
y *= faktor;
}
string text(){
stringstream ss;
ss << "(" << x << "," << y << ")";
return ss.str();
}
};
class Koerper{
public:
Vektor position;
Vektor geschwindigkeit;
float masse;
Koerper(Vektor position, Vektor geschwindigkeit, float masse) {
this->position = position;
this->geschwindigkeit = geschwindigkeit;
this->masse = masse;
}
Vektor lieferePosition() {
return position;
}
Vektor liefereGeschwindigkeit() {
return geschwindigkeit;
}
float liefereMasse() {
return masse;
}
void bewegen(Vektor beschleunigung, float dt) {
position.add({geschwindigkeit.x * dt, geschwindigkeit.y * dt});
geschwindigkeit.add({beschleunigung.x * dt, beschleunigung.y * dt});
}
string text() {
return position.text();
}
};
int main() {
// Körper:
const float MASSE = 10;
const Vektor START_POSITION = {0,0};
const Vektor START_GESCHWINDIGKEIT = {10,10};
Koerper koerper = {START_POSITION,START_GESCHWINDIGKEIT,MASSE};
// Parametrierung der auf den Körper wirkende Kräfte:
const Vektor BESCHLEUNIGUNG_GRAVITATION = {0,-9.81}; // [m/s^2]
const float REIBUNGSKOEFFIZIENT =-5; // [kg/s]
// Simulation:
const float dt = 0.1;
for(;;) {
cout << "Position des Koerpers: " << koerper.text() << endl;
// Bestimmung der neuen Beschleunigung
Vektor beschleunigung;
beschleunigung = koerper.liefereGeschwindigkeit();
beschleunigung.mul(REIBUNGSKOEFFIZIENT/koerper.liefereMasse());
beschleunigung.add(BESCHLEUNIGUNG_GRAVITATION);
// Ermittlung der neuen Position und neuen Geschwindigkeit
koerper.bewegen(beschleunigung,dt);
if(koerper.lieferePosition().y<=0) {
break;
}
}
}
+66
View File
@@ -0,0 +1,66 @@
#include <iostream>
using namespace std;
class Basis {
private:
string name;
public:
Basis(string n) : name(n){}
string getName(){
return name;
}
};
class Division : public Basis{
private:
int nenner;
int zaehler;
public:
Division(int x, int y, string z): Basis(z){
this->nenner = x;
this->zaehler = y;
}
double getErgebnis (){
return nenner/zaehler;
}
};
class Multiplikation : public Basis {
private:
int multiplikator;
int multiplikand;
public:
Multiplikation(int x, int y, string z) : Basis(z) {
this->multiplikator = x;
this->multiplikand = y;
}
double getErgebnis() {
return multiplikator * multiplikand;
}
};
int main() {
Division d1(6, 2, "d1");
Division d2 (4, 1, "d2");
Multiplikation m1(5, 2, "m1");
Multiplikation m2(d1.getErgebnis(), d2.getErgebnis(), "m2");
Division d3(m2.getErgebnis(), 2, "d3");
Multiplikation m3(d3.getErgebnis(), m1.getErgebnis(), "m3");
cout << "Ergebnisse...\n";
cout << d1.getName() << ": " << d1.getErgebnis() << "\n";
cout << d2.getName() << ": " << d2.getErgebnis() << "\n";
cout << m1.getName() << ": " << m1.getErgebnis() << "\n";
cout << m2.getName() << ": " << m2.getErgebnis() << "\n";
cout << d3.getName() << ": " << d3.getErgebnis() << "\n";
cout << m3.getName() << ": " << m3.getErgebnis() << "\n";
int iAuswahl;
cin >> iAuswahl;
}