Compare commits
9
Commits
Aufg1-dev-tobi
...
A4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
09c8ca75fe | ||
|
|
a7a85287d0 | ||
|
|
2b46522a4d | ||
|
|
643c524d1b | ||
|
|
3b1a8af39d | ||
|
|
be77aebb25 | ||
|
|
7618246a5b | ||
|
|
78de564416 | ||
|
|
7ae37fad48 |
@@ -1 +1,4 @@
|
|||||||
1_Grundlagen/code/matrix.exe
|
1_Grundlagen/code/matrix.exe
|
||||||
|
.out
|
||||||
|
.exe
|
||||||
|
.a
|
||||||
|
|||||||
Vendored
+28
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"type": "cppbuild",
|
||||||
|
"label": "C/C++: g++ build active file",
|
||||||
|
"command": "/usr/bin/g++",
|
||||||
|
"args": [
|
||||||
|
"-fdiagnostics-color=always",
|
||||||
|
"-g",
|
||||||
|
"${file}",
|
||||||
|
"-o",
|
||||||
|
"${fileDirname}/${fileBasenameNoExtension}"
|
||||||
|
],
|
||||||
|
"options": {
|
||||||
|
"cwd": "${fileDirname}"
|
||||||
|
},
|
||||||
|
"problemMatcher": [
|
||||||
|
"$gcc"
|
||||||
|
],
|
||||||
|
"group": {
|
||||||
|
"kind": "build",
|
||||||
|
"isDefault": true
|
||||||
|
},
|
||||||
|
"detail": "Task generated by Debugger."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"version": "2.0.0"
|
||||||
|
}
|
||||||
Executable
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -1,4 +1,3 @@
|
|||||||
#include <iostream>
|
|
||||||
#define NUM 0
|
#define NUM 0
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
|||||||
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
@@ -1,45 +1,38 @@
|
|||||||
|
#include "flugkurve01.h"
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
int main()
|
Vektor mulVektor(Vektor vec, float num) {
|
||||||
{
|
Vektor ergebnis = {vec.x * num, vec.y * num};
|
||||||
// Körper:
|
return ergebnis;
|
||||||
float masse = 10; // [kg]
|
}
|
||||||
float xPosition = 0; // [m]
|
|
||||||
float yPosition = 0; // [m]
|
|
||||||
float xGeschwindigkeit = 10; // [m/s]
|
|
||||||
float yGeschwindigkeit = 10; // [m/s]
|
|
||||||
|
|
||||||
// Parametrierung der auf den Körper wirkende Kräfte:
|
Vektor addVektor(Vektor vec1, Vektor vec2) {
|
||||||
const float X_BESCHLEUNIGUNG_GRAVITATION = 0; // [m/s^2]
|
Vektor erg = {vec1.x + vec2.x, vec1.y + vec2.y};
|
||||||
const float Y_BESCHLEUNIGUNG_GRAVITATION = -9.81; // [m/s^2]
|
return erg;
|
||||||
const float REIBUNGSKOEFFIZIENT = -5; // [kg/s]
|
}
|
||||||
|
|
||||||
// Sorgt dafür, dass 2 Nachkommastellen angezeigt werden:
|
Koerper bewegeKoerper(Koerper korp, Vektor gesamtkraft, float dt) {
|
||||||
cout << fixed;
|
|
||||||
cout.precision(2);
|
|
||||||
|
|
||||||
// Simulation:
|
|
||||||
const float dt = 0.1; // [s]
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
cout << "(" << xPosition << "," << yPosition << ")" << endl;
|
|
||||||
|
|
||||||
// Berechnung der Beschleunigung aus der Kraft
|
// Berechnung der Beschleunigung aus der Kraft
|
||||||
float xBeschleunigung = xGeschwindigkeit * REIBUNGSKOEFFIZIENT / masse + X_BESCHLEUNIGUNG_GRAVITATION;
|
float xBeschleunigung = gesamtkraft.x / korp.masse;
|
||||||
float yBeschleunigung = yGeschwindigkeit * REIBUNGSKOEFFIZIENT / masse + Y_BESCHLEUNIGUNG_GRAVITATION;
|
float yBeschleunigung = gesamtkraft.y / korp.masse;
|
||||||
|
|
||||||
// Ermittlung der neuen Geschwindigkeit
|
// Ermittlung der neuen Geschwindigkeit
|
||||||
xGeschwindigkeit += dt * xBeschleunigung;
|
korp.geschwindigkeit.x += dt * xBeschleunigung;
|
||||||
yGeschwindigkeit += dt * yBeschleunigung;
|
korp.geschwindigkeit.y += dt * yBeschleunigung;
|
||||||
|
|
||||||
// Ermittlung der neuen Position
|
// Ermittlung der neuen Position
|
||||||
xPosition += dt * xGeschwindigkeit;
|
korp.position.x += dt * korp.geschwindigkeit.x;
|
||||||
yPosition += dt * yGeschwindigkeit;
|
korp.position.y += dt * korp.geschwindigkeit.y;
|
||||||
|
return korp;
|
||||||
|
}
|
||||||
|
|
||||||
if(yPosition<=0)
|
void ausgabeKoerper(Koerper korp){
|
||||||
{
|
cout << "x = " << korp.position.x << "y = " << korp.position.y;
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ausgabeVektor(Vektor vec){
|
||||||
|
cout << "x = " << vec.x << endl;
|
||||||
|
cout << "y = " << vec.y << endl;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
#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(Vektor vec1, Vektor vec2);
|
||||||
|
Vektor mulVektor(Vektor vec, float skalar);
|
||||||
|
Koerper bewegeKoerper(Koerper korp, Vektor gesamtkraft, float dt);
|
||||||
|
void ausgabeKoerper(Koerper korp);
|
||||||
|
void ausgabeVektor(Vektor vec);
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
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.
|
||||||
Executable
BIN
Binary file not shown.
+20
-5
@@ -1,10 +1,25 @@
|
|||||||
#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;
|
||||||
}
|
}
|
||||||
|
|||||||
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
@@ -1,8 +1,13 @@
|
|||||||
#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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
#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
|
||||||
@@ -8,5 +10,5 @@
|
|||||||
* @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
|
||||||
|
|||||||
Executable
BIN
Binary file not shown.
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,45 +1,38 @@
|
|||||||
|
#include "flugkurve02.h"
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
int main()
|
Vektor mulVektor(const Vektor &vec, const float &skalar){
|
||||||
{
|
Vektor ergebnis = {vec.x * skalar, vec.y * skalar};
|
||||||
// Körper:
|
return ergebnis;
|
||||||
float masse = 10; // [kg]
|
}
|
||||||
float xPosition = 0; // [m]
|
|
||||||
float yPosition = 0; // [m]
|
|
||||||
float xGeschwindigkeit = 10; // [m/s]
|
|
||||||
float yGeschwindigkeit = 10; // [m/s]
|
|
||||||
|
|
||||||
// Parametrierung der auf den Körper wirkende Kräfte:
|
Vektor addVektor(const Vektor &vec1, const Vektor &vec2) {
|
||||||
const float X_BESCHLEUNIGUNG_GRAVITATION = 0; // [m/s^2]
|
Vektor erg = {vec1.x + vec2.x, vec1.y + vec2.y};
|
||||||
const float Y_BESCHLEUNIGUNG_GRAVITATION = -9.81; // [m/s^2]
|
return erg;
|
||||||
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
|
||||||
float xBeschleunigung = xGeschwindigkeit * REIBUNGSKOEFFIZIENT / masse + X_BESCHLEUNIGUNG_GRAVITATION;
|
const float xBeschleunigung = gesamtkraft.x / korp.masse;
|
||||||
float yBeschleunigung = yGeschwindigkeit * REIBUNGSKOEFFIZIENT / masse + Y_BESCHLEUNIGUNG_GRAVITATION;
|
const float yBeschleunigung = gesamtkraft.y / korp.masse;
|
||||||
|
|
||||||
// Ermittlung der neuen Geschwindigkeit
|
// Ermittlung der neuen Geschwindigkeit
|
||||||
xGeschwindigkeit += dt * xBeschleunigung;
|
erg.geschwindigkeit.x = korp.geschwindigkeit.x + dt * xBeschleunigung;
|
||||||
yGeschwindigkeit += dt * yBeschleunigung;
|
erg.geschwindigkeit.y = korp.geschwindigkeit.y + dt * yBeschleunigung;
|
||||||
|
|
||||||
// Ermittlung der neuen Position
|
// Ermittlung der neuen Position
|
||||||
xPosition += dt * xGeschwindigkeit;
|
erg.position.x += korp.position.x + dt * erg.geschwindigkeit.x;
|
||||||
yPosition += dt * yGeschwindigkeit;
|
erg.position.y += korp.position.y + dt * erg.geschwindigkeit.y;
|
||||||
|
return erg;
|
||||||
|
}
|
||||||
|
|
||||||
if(yPosition<=0)
|
void ausgabeKoerper(const Koerper &korp){
|
||||||
{
|
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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
#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);
|
||||||
Executable
BIN
Binary file not shown.
@@ -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;
|
||||||
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user