Compare commits

...

4 Commits
main ... Jonas

Author SHA1 Message Date
6303f5f224 namespace fix 2026-04-29 17:14:37 +02:00
b685a3dfae Aufgabe 6: Verkehrsmittel 2026-04-29 17:08:29 +02:00
23f603b64b small fix 2026-04-17 08:03:52 +02:00
65abdc34a9 Aufgabe 3-5 2026-04-15 20:25:59 +02:00
17 changed files with 301 additions and 13 deletions

View File

@ -22,7 +22,8 @@ Vektor addVektor(Vektor vektor1, Vektor vektor2)
Koerper bewegeKoerper(Koerper koerper, Vektor gesamtkraft, float dt) 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.x += dt * gesamtkraft.x / koerper.masse;
koerper.geschwindigkeit.y += dt * gesamtkraft.y / koerper.masse; koerper.geschwindigkeit.y += dt * gesamtkraft.y / koerper.masse;

View File

@ -1,10 +1,36 @@
#include <stdio.h>
#include "summe.h" #include "summe.h"
#include <vector>
#include <iostream>
#include <string>
int main() int main()
{ {
const int N = 4; using namespace std;
const float daten[N] = {1.0f,2.0f,3.0f,4.0f};
float summe = berechneSumme(daten,N); string name;
printf("Summe = %f\n", summe); int anzahlWerte;
int summe;
vector<int> 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;
} }

View File

@ -1,8 +1,13 @@
#include "summe.h" #include "summe.h"
float berechneSumme(const float* const wert, int anzahlWerte) int berechneSumme(std::vector<int> 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;
} }

View File

@ -1,12 +1,13 @@
#ifndef __SUMME_H #ifndef __SUMME_H
#define __SUMME_H #define __SUMME_H
#include <vector>
/** /**
* Berechnet die Summe ueber eine Menge von Werten. * Berechnet die Summe ueber eine Menge von Werten.
* @param wert Werte * @param wert Werte
* @param anzahlWerte Anzahl der Werte * @param anzahlWerte Anzahl der Werte
* @return Summe * @return Summe
*/ */
float berechneSumme(const float* const wert, int anzahlWerte); int berechneSumme(std::vector<int> werte);
#endif #endif

View File

@ -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 &gesamtkraft, const float &dt);
void ausgabeKoerper(const Koerper &koerper);
#endif

View File

@ -0,0 +1,44 @@
#include <iostream>
#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;
}

View File

@ -4,4 +4,53 @@
#include "flugkurve03.h" #include "flugkurve03.h"
using namespace std; 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();
}

View File

@ -1,4 +1,31 @@
#include <string> #include <string>
using namespace std; 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();
};

View File

@ -0,0 +1,13 @@
#include "Luftfahrzeug.h"
#include "Verkehrsmittel.h"
#include <string>
#include <sstream>
string Luftfahrzeug::text()
{
stringstream ausgabe;
ausgabe << "Luftfahrzeug - Position x: " << x << "; Position y: " << y << "; max. Höhe: " << max_hoehe;
return ausgabe.str();
}

View File

@ -0,0 +1,15 @@
#pragma once
#include <string>
#include "Verkehrsmittel.h"
class Luftfahrzeug : public Verkehrsmittel{
int max_hoehe;
int z;
public:
Luftfahrzeug() : max_hoehe(0), z(0) {}
Luftfahrzeug(int max_hoehe) : max_hoehe(max_hoehe), z(0) {}
Luftfahrzeug(int max_hoehe, int z) : max_hoehe(max_hoehe), z(z) {}
std::string text();
};

14
6_Verkehrsmittel/PKW.h Normal file
View File

@ -0,0 +1,14 @@
#pragma once
#include "Verkehrsmittel.h"
#include "Radfahrzeug.h"
#include <string>
class PKW : public Radfahrzeug{
const int anzahl_tueren;
public:
PKW() : Radfahrzeug(4), anzahl_tueren(4) {}
PKW(int anzahl_raeder, int anzahl_tueren) : Radfahrzeug(anzahl_raeder), anzahl_tueren(anzahl_tueren) {}
string text();
};

View File

@ -0,0 +1,11 @@
#include "Radfahrzeug.h"
#include <sstream>
string Radfahrzeug::text()
{
stringstream ausgabe;
ausgabe << "Radfahrzeug - Position x: " << x << "; Position y: " << y << "; Anzahl Räder: " << anzahl_raeder;
return ausgabe.str();
}

View File

@ -0,0 +1,14 @@
#pragma once
#include "Verkehrsmittel.h"
#include <string>
class Radfahrzeug : public Verkehrsmittel{
protected:
const int anzahl_raeder;
public:
Radfahrzeug() : anzahl_raeder(4) {}
Radfahrzeug(int anzahl_raeder) : anzahl_raeder(anzahl_raeder) {}
string text();
};

View File

@ -0,0 +1,18 @@
#include "Verkehrsmittel.h"
#include <sstream>
#include <string>
void Verkehrsmittel::bewege(int zielx, int ziely)
{
x = zielx;
y = ziely;
}
string Verkehrsmittel::text()
{
stringstream ausgabe;
ausgabe << "Verkehrsmittel - Position x: " << x << "; Position y: " << y;
return ausgabe.str();
}

View File

@ -0,0 +1,18 @@
#pragma once
#include <string>
#include <iostream>
using namespace std;
class Verkehrsmittel{
protected:
int x;
int y;
public:
Verkehrsmittel () : x(0), y(0) {}
Verkehrsmittel(int x, int y) : x(x), y(y) {}
void bewege(int zielx, int ziely);
string text();
};

View File

@ -7,7 +7,7 @@
int main() int main()
{ {
//Verkehrsmittel //Verkehrsmittel
Verkehrsmittel verkehrsmittel; Verkehrsmittel verkehrsmittel;
cout << verkehrsmittel.text() << endl; cout << verkehrsmittel.text() << endl;
assert(verkehrsmittel.text().compare("Verkehrsmittel - Position x: 0; Position y: 0") == 0 && "String must be: Verkehrsmittel - Position x: 0; Position y: 0"); assert(verkehrsmittel.text().compare("Verkehrsmittel - Position x: 0; Position y: 0") == 0 && "String must be: Verkehrsmittel - Position x: 0; Position y: 0");
verkehrsmittel.bewege(10,10); verkehrsmittel.bewege(10,10);

13
6_Verkehrsmittel/pkw.cpp Normal file
View File

@ -0,0 +1,13 @@
#include "PKW.h"
#include "Verkehrsmittel.h"
#include "Radfahrzeug.h"
#include <sstream>
string PKW::text()
{
stringstream ausgabe;
ausgabe << "PKW - Position x: " << x << "; Position y: " << y << "; Anzahl Räder: " << anzahl_raeder << "; Anzahl Türen: " << anzahl_tueren;
return ausgabe.str();
}