Compare commits
2 Commits
be77aebb25
...
643c524d1b
| Author | SHA1 | Date | |
|---|---|---|---|
| 643c524d1b | |||
| 3b1a8af39d |
9
3_Summe/code/SchluesselwortConst.txt
Normal file
9
3_Summe/code/SchluesselwortConst.txt
Normal file
@ -0,0 +1,9 @@
|
||||
const float* const wert
|
||||
|
||||
Welche Bedeuting haben das erste und zweite const?
|
||||
wert ist ein konstanter Zeiger auf ein konstanten float.
|
||||
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.
|
||||
@ -1,10 +1,25 @@
|
||||
#include <stdio.h>
|
||||
#include "summe.h"
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
|
||||
int main()
|
||||
{
|
||||
const int N = 4;
|
||||
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);
|
||||
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;
|
||||
}
|
||||
|
||||
@ -1,8 +1,13 @@
|
||||
#include "summe.h"
|
||||
|
||||
float berechneSumme(const float* const wert, int anzahlWerte)
|
||||
{
|
||||
return (anzahlWerte) ? *wert+berechneSumme(wert+1, anzahlWerte-1) : 0;
|
||||
/* float berechneSumme(const float *const wert, int anzahlWerte) {
|
||||
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
|
||||
#define __SUMME_H
|
||||
|
||||
#include <vector>
|
||||
using namespace std;
|
||||
/**
|
||||
* Berechnet die Summe ueber eine Menge von Werten.
|
||||
* @param wert Werte
|
||||
@ -8,5 +10,5 @@
|
||||
* @return Summe
|
||||
*/
|
||||
float berechneSumme(const float* const wert, int anzahlWerte);
|
||||
|
||||
int berechneSumme(vector<int> myvector);
|
||||
#endif
|
||||
|
||||
@ -1,45 +1,38 @@
|
||||
#include "flugkurve02.h"
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
|
||||
int main()
|
||||
{
|
||||
// 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 mulVektor(const Vektor &vec, const float &skalar){
|
||||
Vektor ergebnis = {vec.x * num, vec.y * num};
|
||||
return ergebnis;
|
||||
}
|
||||
|
||||
// Parametrierung der auf den Körper wirkende Kräfte:
|
||||
const float X_BESCHLEUNIGUNG_GRAVITATION = 0; // [m/s^2]
|
||||
const float Y_BESCHLEUNIGUNG_GRAVITATION = -9.81; // [m/s^2]
|
||||
const float REIBUNGSKOEFFIZIENT = -5; // [kg/s]
|
||||
Vektor addVektor(Vektor vec1, Vektor vec2) {
|
||||
Vektor erg = {vec1.x + vec2.x, vec1.y + vec2.y};
|
||||
return erg;
|
||||
}
|
||||
|
||||
// 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(Koerper korp, Vektor gesamtkraft, float dt) {
|
||||
|
||||
// Berechnung der Beschleunigung aus der Kraft
|
||||
float xBeschleunigung = xGeschwindigkeit * REIBUNGSKOEFFIZIENT / masse + X_BESCHLEUNIGUNG_GRAVITATION;
|
||||
float yBeschleunigung = yGeschwindigkeit * REIBUNGSKOEFFIZIENT / masse + Y_BESCHLEUNIGUNG_GRAVITATION;
|
||||
float xBeschleunigung = gesamtkraft.x / korp.masse;
|
||||
float yBeschleunigung = gesamtkraft.y / korp.masse;
|
||||
|
||||
// Ermittlung der neuen Geschwindigkeit
|
||||
xGeschwindigkeit += dt * xBeschleunigung;
|
||||
yGeschwindigkeit += dt * yBeschleunigung;
|
||||
korp.geschwindigkeit.x += dt * xBeschleunigung;
|
||||
korp.geschwindigkeit.y += dt * yBeschleunigung;
|
||||
|
||||
// Ermittlung der neuen Position
|
||||
xPosition += dt * xGeschwindigkeit;
|
||||
yPosition += dt * yGeschwindigkeit;
|
||||
|
||||
if(yPosition<=0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
korp.position.x += dt * korp.geschwindigkeit.x;
|
||||
korp.position.y += dt * korp.geschwindigkeit.y;
|
||||
return korp;
|
||||
}
|
||||
|
||||
void ausgabeKoerper(Koerper korp){
|
||||
cout << "x = " << korp.position.x << "y = " << korp.position.y;
|
||||
}
|
||||
|
||||
void ausgabeVektor(Vektor vec){
|
||||
cout << "x = " << vec.x << endl;
|
||||
cout << "y = " << vec.y << endl;
|
||||
}
|
||||
|
||||
19
4_Flugkurve02/code/flugkurve02.h
Normal file
19
4_Flugkurve02/code/flugkurve02.h
Normal file
@ -0,0 +1,19 @@
|
||||
#pragma once
|
||||
|
||||
// Parametrierung der auf den Körper wirkende Kräfte:
|
||||
struct Vektor {
|
||||
const float x; // [m/s^2]
|
||||
const 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);
|
||||
Loading…
x
Reference in New Issue
Block a user