Compare commits

..

No commits in common. "main" and "Aufgb2" have entirely different histories.
main ... Aufgb2

14 changed files with 55 additions and 99 deletions

Binary file not shown.

View File

@ -7,7 +7,7 @@ struct Vektor {
}; };
// Körper: // Körper:
struct Koerper { struct Koerper {
float masse; // [kg] float masse = 10; // [kg]
Vektor position; Vektor position;
Vektor geschwindigkeit; Vektor geschwindigkeit;
}; };

View File

@ -1,9 +0,0 @@
const float* const wert
Welche Bedeuting haben das erste und zweite const?
1. const: es ist ein konstanter float
2. const: es ist ein konstanter zeiger
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 2. Stelle: sichergehen, dass der Zeiger nicht auf etwas anderes zeigt, womit sich der Wert ändern würde.

Binary file not shown.

View File

@ -1,25 +1,10 @@
#include <stdio.h>
#include "summe.h" #include "summe.h"
#include <iostream>
#include <vector>
int main() { int main()
/* const int N = 4; {
const int N = 4;
const float daten[N] = {1.0f,2.0f,3.0f,4.0f}; const float daten[N] = {1.0f,2.0f,3.0f,4.0f};
float summe = berechneSumme(daten,N); float summe = berechneSumme(daten,N);
printf("Summe = %f\n", summe); */ printf("Summe = %f\n", summe);
string name;
int anzahlSummanten;
int hilfvar;
vector<int> summanten;
cout << "Was ist dein Name?" << endl;
cin >> name;
cout << "Hallo " << name << ", Wie viele Zahlen willst du addieren?" << endl;
cin >> anzahlSummanten;
for (int i = 0; i < anzahlSummanten; i++) {
cout << "Der " << i + 1 << ". Summant ist:" << endl;
cin >> hilfvar;
summanten.push_back(hilfvar);
}
cout << name << ", die Summe ist: " << berechneSumme(summanten) << endl;
cout << "Auf Wiedersehen " << name << endl;
} }

Binary file not shown.

Binary file not shown.

View File

@ -1,13 +1,8 @@
#include "summe.h" #include "summe.h"
/* float berechneSumme(const float *const wert, int anzahlWerte) { float berechneSumme(const float* const wert, int anzahlWerte)
return (anzahlWerte) ? *wert + berechneSumme(wert + 1, anzahlWerte - 1) : 0; {
} */ return (anzahlWerte) ? *wert+berechneSumme(wert+1, anzahlWerte-1) : 0;
int berechneSumme(vector<int> myvector) {
int summe;
for (unsigned int i = 0; i < myvector.size(); i++) {
summe += myvector[i];
}
return summe;
} }

View File

@ -1,8 +1,6 @@
#ifndef __SUMME_H #ifndef __SUMME_H
#define __SUMME_H #define __SUMME_H
#include <vector>
using namespace std;
/** /**
* Berechnet die Summe ueber eine Menge von Werten. * Berechnet die Summe ueber eine Menge von Werten.
* @param wert Werte * @param wert Werte
@ -10,5 +8,5 @@ using namespace std;
* @return Summe * @return Summe
*/ */
float berechneSumme(const float* const wert, int anzahlWerte); float berechneSumme(const float* const wert, int anzahlWerte);
int berechneSumme(vector<int> myvector);
#endif #endif

Binary file not shown.

View File

@ -30,7 +30,6 @@ 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;
} }

View File

@ -1,38 +1,45 @@
#include "flugkurve02.h"
#include <iostream> #include <iostream>
using namespace std; using namespace std;
Vektor mulVektor(const Vektor &vec, const float &skalar){ int main()
Vektor ergebnis = {vec.x * skalar, vec.y * skalar}; {
return ergebnis; // Körper:
} float masse = 10; // [kg]
float xPosition = 0; // [m]
float yPosition = 0; // [m]
float xGeschwindigkeit = 10; // [m/s]
float yGeschwindigkeit = 10; // [m/s]
Vektor addVektor(const Vektor &vec1, const Vektor &vec2) { // Parametrierung der auf den Körper wirkende Kräfte:
Vektor erg = {vec1.x + vec2.x, vec1.y + vec2.y}; const float X_BESCHLEUNIGUNG_GRAVITATION = 0; // [m/s^2]
return erg; const float Y_BESCHLEUNIGUNG_GRAVITATION = -9.81; // [m/s^2]
} const float REIBUNGSKOEFFIZIENT = -5; // [kg/s]
// Sorgt dafür, dass 2 Nachkommastellen angezeigt werden:
cout << fixed;
cout.precision(2);
// Simulation:
const float dt = 0.1; // [s]
for(;;)
{
cout << "(" << xPosition << "," << yPosition << ")" << endl;
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
const float xBeschleunigung = gesamtkraft.x / korp.masse; float xBeschleunigung = xGeschwindigkeit * REIBUNGSKOEFFIZIENT / masse + X_BESCHLEUNIGUNG_GRAVITATION;
const float yBeschleunigung = gesamtkraft.y / korp.masse; float yBeschleunigung = yGeschwindigkeit * REIBUNGSKOEFFIZIENT / masse + Y_BESCHLEUNIGUNG_GRAVITATION;
// Ermittlung der neuen Geschwindigkeit // Ermittlung der neuen Geschwindigkeit
erg.geschwindigkeit.x = korp.geschwindigkeit.x + dt * xBeschleunigung; xGeschwindigkeit += dt * xBeschleunigung;
erg.geschwindigkeit.y = korp.geschwindigkeit.y + dt * yBeschleunigung; yGeschwindigkeit += dt * yBeschleunigung;
// Ermittlung der neuen Position // Ermittlung der neuen Position
erg.position.x += korp.position.x + dt * erg.geschwindigkeit.x; xPosition += dt * xGeschwindigkeit;
erg.position.y += korp.position.y + dt * erg.geschwindigkeit.y; yPosition += dt * yGeschwindigkeit;
return erg;
}
void ausgabeKoerper(const Koerper &korp){ if(yPosition<=0)
cout << "x = " << korp.position.x << "y = " << korp.position.y; {
} break;
}
void ausgabeVektor(const Vektor &vec){ }
cout << "x = " << vec.x << endl;
cout << "y = " << vec.y << endl;
} }

View File

@ -1,19 +0,0 @@
#pragma once
// Parametrierung der auf den Körper wirkende Kräfte:
struct Vektor {
float x; // [m/s^2]
float y; // [m/s^2]
};
// Körper:
struct Koerper {
float masse; // [kg]
Vektor position;
Vektor geschwindigkeit;
};
Vektor addVektor(const Vektor &vec1, const Vektor &vec2);
Vektor mulVektor(const Vektor &vec, const float &skalar);
Koerper bewegeKoerper(const Koerper &korp, const Vektor &gesamtkraft,const float &dt);
void ausgabeKoerper(const Koerper &korp);
void ausgabeVektor(const Vektor &vec);

Binary file not shown.