Ich verstehe diese Frage nicht so ganz.Geschrieben wurde ja schon das ich es mit einer For-Schleife mache aber wie muss die aussehen das immer x1,y1 dann x2, y2 usw. genommen wird?
Nehmen wir als Beispiel die Formel für A.
Dort ist im Zähler ja als erstes die Summe von x_i^2 aufgelistet.
Dieser Teil der Gleichung lässt sich als
C:
double sum = 0.0;
for(size_t i = 0; i < anzahln; i++)
{
sum += nx[i] * nx[i];
}
Man könnte so eine Summenfunktion folgendermassen schreiben:
Das ist aber schon eher für Fortgeschrittene, allerdings würde es dir ersparen, sehr viele Loops zu schreiben (oder einen schnelleren, aber unübersichtlicheren Code zu erschaffen).
Falls dich das Thema interessiert: Suche nach "Lambda-Funktionen".
C++:
#include <functional>
double sum(double* data, size_t start, size_t end, std::function<double(double)>& func)
{
double ret = 0.;
for(size_t i = start; i < end; i++)
{
ret += func(data[i]);
}
return ret;
}
//Aufruf für das Beispiel oben:
sum(&nx, 0, anzahln, [](double val){ return val * val; });
Falls dich das Thema interessiert: Suche nach "Lambda-Funktionen".
Diese einzelnen Summenblöcke kannst du nun im Voraus berechnen und dann in die eigentlichen Gleichungen einsetzen.
Konkreter:
Falls du auf das letzte Summenkonstrukt im A-Zähler ansprichst:Geschrieben wurde ja schon das ich es mit einer For-Schleife mache aber wie muss die aussehen das immer x1,y1 dann x2, y2 usw. genommen wird?
C:
double sum = 0.0;
for(size_t i = 0; i < anzahln; i++) //anzahln ist immer gleich für nx und ny
{
sum += nx[i] * ny[i];
}
Gruss
cwriter