12 Commits
A3 ... A6
24 changed files with 217 additions and 25 deletions
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;
} }
+13 -13
View File
@@ -3,36 +3,36 @@
using namespace std; using namespace std;
Vektor mulVektor(const Vektor &vec, const float &skalar){ Vektor mulVektor(const Vektor &vec, const float &skalar){
Vektor ergebnis = {vec.x * num, vec.y * num}; Vektor ergebnis = {vec.x * skalar, vec.y * skalar};
return ergebnis; return ergebnis;
} }
Vektor addVektor(Vektor vec1, Vektor vec2) { Vektor addVektor(const Vektor &vec1, const Vektor &vec2) {
Vektor erg = {vec1.x + vec2.x, vec1.y + vec2.y}; Vektor erg = {vec1.x + vec2.x, vec1.y + vec2.y};
return erg; return erg;
} }
Koerper bewegeKoerper(Koerper korp, Vektor gesamtkraft, float dt) { Koerper bewegeKoerper(const Koerper &korp, const Vektor &gesamtkraft,const float &dt) {
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
korp.geschwindigkeit.x += dt * xBeschleunigung; erg.geschwindigkeit.x = korp.geschwindigkeit.x + dt * xBeschleunigung;
korp.geschwindigkeit.y += dt * yBeschleunigung; erg.geschwindigkeit.y = korp.geschwindigkeit.y + dt * yBeschleunigung;
// Ermittlung der neuen Position // Ermittlung der neuen Position
korp.position.x += dt * korp.geschwindigkeit.x; erg.position.x += korp.position.x + dt * erg.geschwindigkeit.x;
korp.position.y += dt * korp.geschwindigkeit.y; erg.position.y += korp.position.y + dt * erg.geschwindigkeit.y;
return korp; return erg;
} }
void ausgabeKoerper(Koerper korp){ void ausgabeKoerper(const Koerper &korp){
cout << "x = " << korp.position.x << "y = " << korp.position.y; cout << "x = " << korp.position.x << "y = " << korp.position.y;
} }
void ausgabeVektor(Vektor vec){ void ausgabeVektor(const Vektor &vec){
cout << "x = " << vec.x << endl; cout << "x = " << vec.x << endl;
cout << "y = " << vec.y << endl; cout << "y = " << vec.y << endl;
} }
+7 -7
View File
@@ -2,8 +2,8 @@
// Parametrierung der auf den Körper wirkende Kräfte: // Parametrierung der auf den Körper wirkende Kräfte:
struct Vektor { struct Vektor {
const float x; // [m/s^2] float x; // [m/s^2]
const float y; // [m/s^2] float y; // [m/s^2]
}; };
// Körper: // Körper:
struct Koerper { struct Koerper {
@@ -12,8 +12,8 @@ struct Koerper {
Vektor geschwindigkeit; Vektor geschwindigkeit;
}; };
Vektor addVektor(Vektor vec1, Vektor vec2); Vektor addVektor(const Vektor &vec1, const Vektor &vec2);
Vektor mulVektor(Vektor vec, float skalar); Vektor mulVektor(const Vektor &vec, const float &skalar);
Koerper bewegeKoerper(Koerper korp, Vektor gesamtkraft, float dt); Koerper bewegeKoerper(const Koerper &korp, const Vektor &gesamtkraft,const float &dt);
void ausgabeKoerper(Koerper korp); void ausgabeKoerper(const Koerper &korp);
void ausgabeVektor(Vektor vec); void ausgabeVektor(const Vektor &vec);
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+36 -1
View File
@@ -4,4 +4,39 @@
#include "flugkurve03.h" #include "flugkurve03.h"
using namespace std; using namespace std;
//to be implemented
void Vektor::mul(const float &skalar){
this->x *= skalar;
this->y *= skalar;
}
void Vektor::add(const Vektor &vec2) {
this->x += vec2.x;
this->y += vec2.y;
}
void Koerper::bewegen(const Vektor &beschleunigung,const float &dt) {
// Ermittlung der neuen Geschwindigkeit
this->geschwindigkeit.x += dt * beschleunigung.x;
this->geschwindigkeit.y += dt * beschleunigung.y;
// Ermittlung der neuen Position
this->position.x += dt * this->geschwindigkeit.x ;
this->position.y += dt * this->geschwindigkeit.y ;
}
float Koerper::liefereMasse(){
return this->masse;
}
Vektor Koerper::lieferePosition(){
return this->position;
}
Vektor Koerper::liefereGeschwindigkeit(){
return this->geschwindigkeit;
}
string Koerper::text(){
string outputX = to_string(this->position.x);
string outputY = to_string(this->position.y);
stringstream ganzeOut;
ganzeOut << "X= " << outputX << " Y= " << outputY;
return ganzeOut.str();
}
+33 -1
View File
@@ -1,4 +1,36 @@
#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 {
public:
float masse; // [kg]
Vektor position;
Vektor geschwindigkeit;
Koerper(float masse, Vektor position, Vektor geschwindigkeit) {
this->masse = masse;
this->position = position;
this->geschwindigkeit = geschwindigkeit;
};
float liefereMasse();
void bewegen(const Vektor &gesamtkraft, const float &dt);
Vektor lieferePosition();
Vektor liefereGeschwindigkeit();
string text();
};
Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

+15
View File
@@ -0,0 +1,15 @@
# Klassen:
- Verkehrsmittel
- Posistion (int x, int y)
- bewegen(neue Posistion)
- text()
- Luftfahrzeuge
- max. Flughöhe
- text()
- Radfahrzeuge
- Anzahl Räder
- text()
- Pkw
- Anzahl Türen
- text()
+11
View File
@@ -0,0 +1,11 @@
#pragma once
#include "Verkehrsmittel.h"
class Luftfahrzeug : public Verkehrsmittel{
private:
int maxFlughöhe;
public:
Luftfahrzeug (int maxFlughöhe){
this->maxFlughöhe = maxFlughöhe;
};
std::string text();
};
+12
View File
@@ -0,0 +1,12 @@
#pragma once
#include "Radfahrzeug.h"
#include "Verkehrsmittel.h"
class PKW : public Radfahrzeug {
private:
int anzahlTüren;
public:
PKW(int raeder, int türen) : Radfahrzeug(raeder) { anzahlTüren = türen; }
std::string text();
};
+12
View File
@@ -0,0 +1,12 @@
#pragma once
#include "Verkehrsmittel.h"
class Radfahrzeug : public Verkehrsmittel {
private:
int anzahlRäder;
public:
Radfahrzeug(int räder) { this->anzahlRäder = räder; }
std::string text();
int getRäder();
};
+13
View File
@@ -0,0 +1,13 @@
#pragma once
#include <string>
class Verkehrsmittel{
private:
int posX = 0;
int posY = 0;
public:
void bewege(int x, int y);
virtual std::string text();
int getX();
int getY();
};
BIN
View File
Binary file not shown.
+2 -1
View File
@@ -1,9 +1,10 @@
#include <cassert> #include <cassert>
#include <iostream>
#include "Verkehrsmittel.h" #include "Verkehrsmittel.h"
#include "Luftfahrzeug.h" #include "Luftfahrzeug.h"
#include "Radfahrzeug.h" #include "Radfahrzeug.h"
#include "PKW.h" #include "PKW.h"
using namespace std;
int main() int main()
{ {
//Verkehrsmittel //Verkehrsmittel
+60
View File
@@ -0,0 +1,60 @@
#include "Luftfahrzeug.h"
#include "PKW.h"
#include "Radfahrzeug.h"
#include "Verkehrsmittel.h"
#include <sstream>
#include <string>
// Verkehrsmittel - Position x: 0; Position y: 0
int Verkehrsmittel::getX() { return posX; }
int Verkehrsmittel::getY() { return posY; }
int Radfahrzeug::getRäder() { return anzahlRäder; }
void Verkehrsmittel::bewege(int x, int y) {
this->posX = x;
this->posY = y;
}
std::string Verkehrsmittel::text() {
std::string Xstring = std::to_string(getX());
std::string Ystring = std::to_string(getY());
std::string Fahrzeug = "Verkehrsmittel";
std::stringstream output;
output << Fahrzeug << " - " << "Position x: " << Xstring
<< "; Position y: " << Ystring;
return output.str();
}
std::string Luftfahrzeug::text() {
std::string Xstring = std::to_string(getX());
std::string Ystring = std::to_string(getY());
std::string FlughöheString = std::to_string(maxFlughöhe);
std::string Fahrzeug = "Luftfahrzeug";
std::stringstream output;
output << Fahrzeug << " - " << "Position x: " << Xstring
<< "; Position y: " << Ystring << "; max. Höhe: " << FlughöheString;
return output.str();
}
std::string Radfahrzeug::text() {
std::string Xstring = std::to_string(getX());
std::string Ystring = std::to_string(getY());
std::string RäderString = std::to_string(anzahlRäder);
std::string Fahrzeug = "Radfahrzeug";
std::stringstream output;
output << Fahrzeug << " - " << "Position x: " << Xstring
<< "; Position y: " << Ystring << "; Anzahl Räder: " << RäderString;
return output.str();
}
std::string PKW::text() {
std::string Xstring = std::to_string(getX());
std::string Ystring = std::to_string(getY());
std::string Räderstring = std::to_string(getRäder());
std::string TürenString = std::to_string(anzahlTüren);
std::string Fahrzeug = "PKW";
std::stringstream output;
output << Fahrzeug << " - " << "Position x: " << Xstring
<< "; Position y: " << Ystring << "; Anzahl Räder: " << Räderstring
<< "; Anzahl Türen: " << TürenString;
return output.str();
}
BIN
View File
Binary file not shown.