Summe ausrechnen
-
Ähnlich wie deine erste Schleife mußt du einfach die Summe aufaddieren (wobei
xi
deinemarray[i]
entspricht).
Und den Standardwert berechnest du dann nach der Schleife in einer eigenen Anweisung.
-
Ist es so richtig?
double standard ; //evaluating the standard deviration
for (int b = 0; b < 10; ++b)
{
double sum += (array[i]-average) ;
standard = sqrt(1.0/(10.0-1.0)*(sum))
cout << "Standard Deviration: " << standard << endl ;
}
-
@KathiJ Nein. So wie der Mittelwert außerhalb der Schleife berechnet wird, geschieht das auch mit der Standardabweichung.
Was ist mit den Compilerwarnungen? Etwa "Erste Nutzung der Variable xyz ohne vorherige Zuweisung/Initialisierung"
-
So?
double standard ; //evaluating the standard deviration
for (int b = 0; b < 10; ++b)
{
double sum += (array[i]-average) ;
}
standard = sqrt(1.0/(10.0-1.0)*(sum))
cout << "Standard Deviration: " << standard << endl ;Das Programm ist wesentlich umfangreicher. Es ist alles definiert.
-
@KathiJ sagte in Summe ausrechnen:
So?
Was sagt denn der Compiler?
Das Programm ist wesentlich umfangreicher. Es ist alles definiert.
Ich habe nichts von Definitionen gesagt.
Aber genau das wird der Compiler in deinem Codefragment anmeckern (diesmal als Fehler)
-
@KathiJ sum muss außerhalb der schleife definiert und mit 0 initialisiert werden, ansonsten müsste das so stimmen.
-
-
Ich habs jetzt so.
Es wird mir kein Fehler angezeigt und das restliche Programm läuft, aber die Standardabweichung wird nicht ausgegeben.
double standard ; //evaluating the standard deviration
double sum = 0 ;
for (int b = 0; b < 10; ++b)
{
sum += (array[b]-average) ;
}
standard = sqrt(1.0/(10.0-1.0)*(sum)) ;
cout << "Standard Deviration: " << standard << endl ;
return standard ;
}
-
@KathiJ sagte in Summe ausrechnen:
aber die Standardabweichung wird nicht ausgegeben.
Was soll das heißen?
Gar keine Ausgabe?
Programmabsturz?
Falsche Ausgabe?In der Formel ist auch noch ein Fehler.
Es ist die Summe der Abweichungsquadrate.
-
PS: Es heißt auf englisch "standard deviation".
-
@DirkB Stimmt, vielen Dank.
Es gibt keine Ausgabe.
Der Rest des Programmes läuft.
-
@KathiJ sagte in Summe ausrechnen:
Es gibt keine Ausgabe.
Der Rest des Programmes läuft.Mit dem von dir gezeigten Fragment kann man dazu keine Aussage machen.
Im einfachsten Fall wird die Funktion (deren Definition nicht gezeigt wird) gar nicht aufgerufen.
Die Ausgabe selber sollte auch nicht in der Funktion erfolgen, die rechnet.
-
Hast du den Code in einer Funktion stehen und zwischendrin (so wie in deinem ersten Code)
@KathiJ sagte in Summe ausrechnen:return average;
?
Dann solltest du eine Warnung bzgl. nichtverwendeter Code o.ä. erhalten.
-
Ja, ich habe alles in einer Funktion stehen, aber es wird kein Fehler angezeigt.
-
@DirkB sagte in Summe ausrechnen:
du musst unbedingt die Compiler-Warnungen auf Maximum stellen und auch beachten.
Eine Warnung ist etwas anderes als ein Fehler, obwohl du sie gleich behandeln solltest.
Bei einer Warnung macht der Compiler weiter, obwohl er den Code für merkwürdig hält.
Dann zeig bitte mal die ganze Funktion.
-
Ok vielen Dank für eure Hilfe, ich habs hinbekommen.