Summendarstellung

erom

Grünschnabel
Hallo,


ich bin auf der Suche nach einer allgemeinen Darstellung von Summen in C++.

Im Speziellen sind es die Summen

Summen C++.PNG

und

Quadratsumme C++.PNG

würde mich über Hilfe sehr freuen.
 
Hi und Willkommen bei tutorials.de,

versteh nicht genau, was du willst.
Wie die Berechnung im Code auszuschauen hätte?
Wie du so eine Formel am Bildschirm ausgeben kannst?
...?
 
Wie ich die Formeln in Code ausdrücken kann , habe schon Summendarstellungen gefunden bei mir ist jedoch das Problem das der Index i= 0 - n sich auf (die jeweiligen) Elemente eines Arrays beziehen soll, sprich "a[]= a1 , a2, a3...".
Ich poste die Aufgabe (zwischen der gestrichelten Linie ist mein bisheriger Versuch):

C++:
# include <iostream >
 using namespace std ;

 int main (){
 double a [10] = {12.6 ,33.77 ,51.32 ,95.11 ,19.78 ,
 35.34 ,85.18 ,89.0 ,37.5 ,24.1};
 double sum  , quad  ;
 double n;
 
 // *************************************


 for (n=0; n<=10; n++);
{
sum += a[n]/n;
}




 // *************************************

 cout << " Gewichtete Summe : " << sum << endl ;
 cout << " Quadrat des quadratisches Mittel : ";
 cout << quad << endl ;
 getchar();
 return 0;
 }
 
Zuletzt bearbeitet von einem Moderator:
Dein Array hat 10 Elemente, deine For-Schleife läuft aber 11 mal durch. Es sollte n < 10 heißen, nicht <=.
Wo liegt denn sonst deine Frage? Weil dein Versuch sieht doch richtig aus.
Um die Wurzelfunktion nutzen zu können musst du die math.h Headerdatei inkludieren und kannst dann mit sqrt(double d) darauf zugreifen.
 
Er erwartet anscheinend für n von a[n] einen ganzzahlwert obwohl ich ihn als double ausgewiesen habe.

Nun habe ich den double n durch ein int n ersetzt was die Fehlermeldung schonmal eleminiert. Aber weiterhin werden astronomische werte augegeben.
 
Hi

wie du schon erkannt hast können Indizes [...] nur Ganzzahlwerte sein.
Das Array hat 10 Elemente, 0-9; ein Element 7.4429 gibts eben nicht.

Zum Hauptproblem:
Arrayindex geht von 0-9.
Deine Summenformel will von 1-10
Stattdessen rechnest du auch mit 0-9 und hast dadurch auch eine Division durch 0 drin.
Das kann nur danebengehen.

Besser so:
C++:
int n;
for (n=1; n<=10; n++)
{
    sum += a[n-1]/n;
}
 
Zuletzt bearbeitet:
Ich habe nun den Code so erweitert

Code:
for (n=1; n<=10; n++);
{
    sum += a[n-1]/n;
	quad += ((a[n-1]*a[n-1])/n)/n;
}


er gibt mir jedoch immernoch das gleichen Gleiche aus.
 
Aah.
Nach dem for() ist ein ;
Weg damit.

Das bedeutet ca., das der Codeblock {...} danach nicht mehr zur Schleife gehört.
Zuerst geht die Schleife ohne Inhalt allein durch, und n bleibt am Ende auf 11.
Dann erst kommt die Berechnung.
Noch dazu mit [10], was nicht existiert -> falscher Ausgangswert.

Und die quad-Formel ist so nicht richtig.
 
Ja das wars, verrückt.

Code:
for (n=1; n<=10; n++)
{
    sum += a[n-1]/n;
    quad += ((a[n-1]*a[n-1])/10)/10;
}


Ist die Formel nun richtig?

Das 2. "/10" dürfte noch falsch sein
 
Zurück