2 Commits
12 changed files with 76 additions and 7 deletions

No files matched your search

Binary file not shown.
+1 -1
View File
@@ -7,7 +7,7 @@ struct Vektor {
}; };
// Körper: // Körper:
struct Koerper { struct Koerper {
float masse = 10; // [kg] float masse; // [kg]
Vektor position; Vektor position;
Vektor geschwindigkeit; Vektor geschwindigkeit;
}; };
+1 -1
View File
@@ -1,9 +1,9 @@
const float* const wert const float* const wert
Welche Bedeuting haben das erste und zweite const? Welche Bedeuting haben das erste und zweite const?
wert ist ein konstanter Zeiger auf ein konstanten float.
1. const: es ist ein konstanter float 1. const: es ist ein konstanter float
2. const: es ist ein konstanter zeiger 2. const: es ist ein konstanter zeiger
Welchen Nutzen könnte die Verwendung von const an den beiden Stellen bieten? Welchen Nutzen könnte die Verwendung von const an den beiden Stellen bieten?
An der 1. Stelle: sichergehen, dass der Wert mit den gearbeitet wird nicht geändert wird An der 1. Stelle: sichergehen, dass der Wert mit den gearbeitet wird nicht geändert wird
An der 2. Stelle: sichergehen, dass der Zeiger nicht auf etwas anderes zeigt, womit sich der Wert ändern würde. An der 2. Stelle: sichergehen, dass der Zeiger nicht auf etwas anderes zeigt, womit sich der Wert ändern würde.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+1
View File
@@ -30,6 +30,7 @@ void function_checks() {
assert(fabs(koerper.geschwindigkeit.x - 10.7) < 0.1 && "Result must be 10.7"); assert(fabs(koerper.geschwindigkeit.x - 10.7) < 0.1 && "Result must be 10.7");
assert(fabs(koerper.geschwindigkeit.y - 9.3) < 0.1 && "Result must be 9.3"); assert(fabs(koerper.geschwindigkeit.y - 9.3) < 0.1 && "Result must be 9.3");
assert(fabs(koerper.position.x - 74.9) < 0.1 && "Result must be 74.9"); assert(fabs(koerper.position.x - 74.9) < 0.1 && "Result must be 74.9");
cout << koerper.position.y << endl;
assert(fabs(koerper.position.y - 65.1) < 0.1 && "Result must be 65.1"); assert(fabs(koerper.position.y - 65.1) < 0.1 && "Result must be 65.1");
cout << "bewegeKoerper erfolgreich" << endl; cout << "bewegeKoerper erfolgreich" << endl;
} }
+3 -3
View File
@@ -13,10 +13,10 @@ Vektor addVektor(const Vektor &vec1, const Vektor &vec2) {
} }
Koerper bewegeKoerper(const Koerper &korp, const Vektor &gesamtkraft,const float &dt) { Koerper bewegeKoerper(const Koerper &korp, const Vektor &gesamtkraft,const float &dt) {
Koerper erg; Koerper erg = {0, {0,0}, {0,0}};
// Berechnung der Beschleunigung aus der Kraft // Berechnung der Beschleunigung aus der Kraft
float xBeschleunigung = gesamtkraft.x / korp.masse; const float xBeschleunigung = gesamtkraft.x / korp.masse;
float yBeschleunigung = gesamtkraft.y / korp.masse; const float yBeschleunigung = gesamtkraft.y / korp.masse;
// Ermittlung der neuen Geschwindigkeit // Ermittlung der neuen Geschwindigkeit
erg.geschwindigkeit.x = korp.geschwindigkeit.x + dt * xBeschleunigung; erg.geschwindigkeit.x = korp.geschwindigkeit.x + dt * xBeschleunigung;
BIN
View File
Binary file not shown.
+35 -1
View File
@@ -4,4 +4,38 @@
#include "flugkurve03.h" #include "flugkurve03.h"
using namespace std; using namespace std;
//to be implemented
Vektor Vektor::mulVektor(const Vektor &vec, const float &skalar){
Vektor ergebnis = {vec.x * skalar, vec.y * skalar};
return ergebnis;
}
Vektor addVektor(const Vektor &vec1, const Vektor &vec2) {
Vektor erg = {x + x, y + y};
return erg;
}
Koerper bewegeKoerper(const Koerper &korp, const Vektor &gesamtkraft,const float &dt) {
Koerper erg = {0, {0,0}, {0,0}};
// Berechnung der Beschleunigung aus der Kraft
const float xBeschleunigung = gesamtkraft.x / korp.masse;
const float yBeschleunigung = gesamtkraft.y / korp.masse;
// Ermittlung der neuen Geschwindigkeit
erg.geschwindigkeit.x = korp.geschwindigkeit.x + dt * xBeschleunigung;
erg.geschwindigkeit.y = korp.geschwindigkeit.y + dt * yBeschleunigung;
// Ermittlung der neuen Position
erg.position.x += korp.position.x + dt * erg.geschwindigkeit.x;
erg.position.y += korp.position.y + dt * erg.geschwindigkeit.y;
return erg;
}
void ausgabeKoerper(const Koerper &korp){
cout << "x = " << korp.position.x << "y = " << korp.position.y;
}
void ausgabeVektor(const Vektor &vec){
cout << "x = " << vec.x << endl;
cout << "y = " << vec.y << endl;
}
+35 -1
View File
@@ -1,4 +1,38 @@
#include <string> #include <string>
using namespace std; using namespace std;
// to be defined #pragma once
// Parametrierung der auf den Körper wirkende Kräfte:
class Vektor {
public:
float x; // [m/s^2]
float y; // [m/s^2]
Vektor() = default;
Vektor(float x, float y) {
this->x = x;
this->y = y;
}
void add(const Vektor &vec2);
void ausgabeVektor(const Vektor &vec);
void mul(const float &skalar);
};
// Körper:
class Koerper {
float masse; // [kg]
Vektor position;
Vektor geschwindigkeit;
public:
Koerper(float masse, Vektor position, Vektor geschwindigkeit) {
this->masse = masse;
this->position = position;
this->geschwindigkeit = geschwindigkeit;
};
float liefereMasse();
Koerper bewegeKoerper(const Koerper &korp, const Vektor &gesamtkraft,
const float &dt);
Vektor lieferePosition();
Vektor liefereGeschwindigkeit();
void bewegen(Vektor beschleunigung, float dt);
};