From 65abdc34a9cf5e58c119f1a6dba57f0c39e6929f Mon Sep 17 00:00:00 2001 From: Jonas Date: Wed, 15 Apr 2026 20:25:59 +0200 Subject: [PATCH] Aufgabe 3-5 --- 2_Flugkurve01/code/flugkurve02.cpp | 3 +- 3_Summe/code/main.cpp | 38 ++++++++++++--- 3_Summe/code/summe.cpp | 9 +++- 3_Summe/code/summe.h | 3 +- 4_Flugkurve02/code/flugkurve02.h | 19 ++++++++ 4_Flugkurve02/code/flugkurve02bearbeitet.cpp | 44 +++++++++++++++++ 5_Flugkurve03/code/flugkurve03.cpp | 51 +++++++++++++++++++- 5_Flugkurve03/code/flugkurve03.h | 29 ++++++++++- 8 files changed, 184 insertions(+), 12 deletions(-) create mode 100644 4_Flugkurve02/code/flugkurve02.h create mode 100644 4_Flugkurve02/code/flugkurve02bearbeitet.cpp diff --git a/2_Flugkurve01/code/flugkurve02.cpp b/2_Flugkurve01/code/flugkurve02.cpp index 7ade48d..b5f25d7 100644 --- a/2_Flugkurve01/code/flugkurve02.cpp +++ b/2_Flugkurve01/code/flugkurve02.cpp @@ -22,7 +22,8 @@ Vektor addVektor(Vektor vektor1, Vektor vektor2) Koerper bewegeKoerper(Koerper koerper, Vektor gesamtkraft, float dt) { - // Beschleunigung = bewegung / masse + // Beschleunigung = Kraft / masse + // Geschwindigkeit = Beschleunigung * Zeit koerper.geschwindigkeit.x += dt * gesamtkraft.x / koerper.masse; koerper.geschwindigkeit.y += dt * gesamtkraft.y / koerper.masse; diff --git a/3_Summe/code/main.cpp b/3_Summe/code/main.cpp index 8d4c443..98d60b5 100644 --- a/3_Summe/code/main.cpp +++ b/3_Summe/code/main.cpp @@ -1,10 +1,36 @@ -#include #include "summe.h" +#include +#include +#include + + + int main() -{ - const int N = 4; - const float daten[N] = {1.0f,2.0f,3.0f,4.0f}; - float summe = berechneSumme(daten,N); - printf("Summe = %f\n", summe); +{ + using namespace std; + + string name; + int anzahlWerte; + int summe; + vector werte; + + + cout << "Bitte gebe deinen Namen ein: "; + cin >> name; + cout << "Hallo " << name << "!\nGebe die Anzahl deiner Werte an: "; + cin >> anzahlWerte; + if(anzahlWerte<= 0) return 0; + + for( int i = 0; i < anzahlWerte; i++) + { + int eingelesen; + cout << "Wert " << i + 1 << " : "; + cin >> eingelesen; + werte.push_back(eingelesen); + } + + summe = berechneSumme(werte); + + cout << "Die Summe deiner Werte betrÃĪgt: " << summe << "\n\nAuf Wiedersehen, " << name; } diff --git a/3_Summe/code/summe.cpp b/3_Summe/code/summe.cpp index 7038832..e7ec515 100644 --- a/3_Summe/code/summe.cpp +++ b/3_Summe/code/summe.cpp @@ -1,8 +1,13 @@ #include "summe.h" -float berechneSumme(const float* const wert, int anzahlWerte) +int berechneSumme(std::vector werte) { - return (anzahlWerte) ? *wert+berechneSumme(wert+1, anzahlWerte-1) : 0; + int summe = 0; + for(int i = 0; i < (int)werte.size(); i++) + { + summe += werte[i]; + } + return summe; } diff --git a/3_Summe/code/summe.h b/3_Summe/code/summe.h index 67bf774..27e05fb 100644 --- a/3_Summe/code/summe.h +++ b/3_Summe/code/summe.h @@ -1,12 +1,13 @@ #ifndef __SUMME_H #define __SUMME_H +#include /** * Berechnet die Summe ueber eine Menge von Werten. * @param wert Werte * @param anzahlWerte Anzahl der Werte * @return Summe */ -float berechneSumme(const float* const wert, int anzahlWerte); +int berechneSumme(std::vector werte); #endif diff --git a/4_Flugkurve02/code/flugkurve02.h b/4_Flugkurve02/code/flugkurve02.h new file mode 100644 index 0000000..690bba8 --- /dev/null +++ b/4_Flugkurve02/code/flugkurve02.h @@ -0,0 +1,19 @@ +#ifndef FLUGKURVE02_H +#define FLUGKURVE02_H + +struct Vektor{ + float x; + float y; +}; + +struct Koerper{ + float masse; + Vektor position; + Vektor geschwindigkeit; +}; + +Vektor mulVektor(const Vektor &vektor, const float &skalar); +Vektor addVektor(const Vektor &vektor1, const Vektor &vektor2); +Koerper bewegeKoerper(const Koerper &koerper, const Vektor &bewegung, const float &dt); +void ausgabeKoerper(const Koerper &koerper); +#endif \ No newline at end of file diff --git a/4_Flugkurve02/code/flugkurve02bearbeitet.cpp b/4_Flugkurve02/code/flugkurve02bearbeitet.cpp new file mode 100644 index 0000000..fd3f69d --- /dev/null +++ b/4_Flugkurve02/code/flugkurve02bearbeitet.cpp @@ -0,0 +1,44 @@ +#include +#include "flugkurve02.h" + +using namespace std; + +Vektor mulVektor(const Vektor &vec, const float &skalar) +{ + Vektor ergebnis; + ergebnis.x = skalar * vec.x; + ergebnis.y = skalar * vec.y; + + return ergebnis; +} + +Vektor addVektor(const Vektor &vektor1, const Vektor &vektor2) +{ + Vektor result; + result.x = vektor1.x + vektor2.x; + result.y = vektor1.y + vektor2.y; + + return result; +} + +Koerper bewegeKoerper(const Koerper &koerper, const Vektor &gesamtkraft, const float &dt) +{ + Koerper ergebnis; + ergebnis.masse = koerper.masse; + // Beschleunigung = Kraft / masse + // Geschwindigkeit = Beschleunigung * Zeit + ergebnis.geschwindigkeit.x = koerper.geschwindigkeit.x + dt * gesamtkraft.x / koerper.masse; + ergebnis.geschwindigkeit.y = koerper.geschwindigkeit.y + dt * gesamtkraft.y / koerper.masse; + + // Neue Position + ergebnis.position.x = koerper.position.x + dt * ergebnis.geschwindigkeit.x; + ergebnis.position.y = koerper.position.y + dt * ergebnis.geschwindigkeit.y; + + return ergebnis; +} + +void ausgabeKoerper(const Koerper &koerper) +{ + cout << "(" << koerper.position.x << "," << koerper.position.y << ") "; + cout << "Geschwindigkeit: (" << koerper.geschwindigkeit.x << ", " << koerper.geschwindigkeit.y << ")" << endl; +} \ No newline at end of file diff --git a/5_Flugkurve03/code/flugkurve03.cpp b/5_Flugkurve03/code/flugkurve03.cpp index cfc05ef..5c1a326 100644 --- a/5_Flugkurve03/code/flugkurve03.cpp +++ b/5_Flugkurve03/code/flugkurve03.cpp @@ -4,4 +4,53 @@ #include "flugkurve03.h" using namespace std; -//to be implemented +Vektor Vektor::mul(const float &skalar) +{ + this->x *= skalar; + this->y *= skalar; + + return *this; +} + +Vektor Vektor::add(const Vektor &vektor_to_add) +{ + this->x += vektor_to_add.x; + this->y += vektor_to_add.y; + + return *this; +} + +Koerper Koerper::bewegen(const Vektor &beschleunigung, const float &dt) +{ + this->position.x += this->geschwindigkeit.x * dt; + this->position.y += this->geschwindigkeit.y * dt; + + this->geschwindigkeit.x += beschleunigung.x * dt; + this->geschwindigkeit.y += beschleunigung.y * dt; + + return *this; +} + +Vektor Koerper::liefereGeschwindigkeit() +{ + return this->geschwindigkeit; +} + +Vektor Koerper::lieferePosition() +{ + return this->position; +} + +float Koerper::liefereMasse() +{ + return this->masse; +} + +string Koerper::text() +{ + stringstream ausgabe; + + ausgabe << "(" << this->position.x << "," << this->position.y << ")"; + + return ausgabe.str(); +} \ No newline at end of file diff --git a/5_Flugkurve03/code/flugkurve03.h b/5_Flugkurve03/code/flugkurve03.h index acb5909..4d48154 100644 --- a/5_Flugkurve03/code/flugkurve03.h +++ b/5_Flugkurve03/code/flugkurve03.h @@ -1,4 +1,31 @@ #include using namespace std; -// to be defined +class Vektor{ + public: + float x; + float y; + + Vektor() : x(0), y(0) {} + Vektor(float x, float y) : x(x), y(y) {} + + Vektor mul(const float &skalar); + Vektor add(const Vektor &vektor_to_add); +}; + +class Koerper{ + public: + + float masse; + Vektor position; + Vektor geschwindigkeit; + + Koerper() : masse(0), position(0,0), geschwindigkeit(0,0){} + Koerper(float m, Vektor pos, Vektor gesch) : masse(m), position(pos), geschwindigkeit(gesch) {} + + Koerper bewegen(const Vektor &beschleunigung, const float &dt); + Vektor liefereGeschwindigkeit(); + Vektor lieferePosition(); + float liefereMasse(); + string text(); +};