Wiedermal ne Summe berechnen



  • Super geil!!!

    Vielen Danbk für die Mühe und die wichtigen Denkanstöße-es funzt:

    [cpp]#include <stdio.h>

    int main (void)
    {
    float x;
    float ergeb = 0;

    for (x = 2.f; x < 199.f; x+=2.f)

    ergeb += ( 1.f/ ((x)(x+1.f)(x+2.f)));

    printf("Die Summe lautet: %f\n", ergeb);
    return 0;
    }

    Wie genau funzt das mit dem C/C++ Knopf?
    Wie ihr seht bin ich nicht der Checker auf Computer Ebene 😞

    Was genau bedeutet ".f"?



  • Ringo-Riese schrieb:

    Was genau bedeutet ".f"?

    das ist 'ne eine float-konstante. für 1 kannste auch schreiben 1.0.f (ich wusste gar nicht, dass man die 0 auch weglassen kann).
    🙂



  • +fricky schrieb:

    1.0.f

    edit: 1.0f



  • +fricky schrieb:

    ich wusste gar nicht, dass man die 0 auch weglassen kann

    Klar, kannst du. Genau wie du ja auch .5 notieren kannst.



  • _matze schrieb:

    Klar, kannst du. Genau wie du ja auch .5 notieren kannst.

    so rum kannte ich's schon. aber egal, ich schreibe floats (wenn ich sie verwende, was sehr selten vorkommt) immer aus.
    `float a = 1.0f; // statt 1.f

    float b = 0.012f; // statt .012f

    `
    ^^finds einfach besser lesbar.
    🙂



  • für ein weiteres programm zu summenberechnung hab ich eine hoffentlich einfache frage:

    ist es möglich in den exponenten eine variable zu stecken die sich mit jedem summanden inkrementiert? ein beispiel zu dem was ich meine:

    (2x) + (3x^2) + (4x^3) ...



  • Ringo-Riese schrieb:

    für ein weiteres programm zu summenberechnung hab ich eine hoffentlich einfache frage:

    ist es möglich in den exponenten eine variable zu stecken die sich mit jedem summanden inkrementiert? ein beispiel zu dem was ich meine:

    (2x) + (3x^2) + (4x^3) ...

    Ja, aber nicht mit "^" (das ist bitweises XOR). Dafür kannst die Funktion pow() benutzen. Und bedenke, dass du nicht in einem Ausdruck mehrfach dieselbe Variable per "++" inkrementieren kannst (es ist undefiniert, welcher Teilausdruck zuerst ausgewertet wird). Du musst das dann in eine Schleife packen.



  • Tut mir echt leid aber ich komm mit der Info nicht weiter: Wir sollen die Summe bis zum 15 Term berechnen.
    x = 0,4

    Meine Idee war folgende:

    #include <stdio.h>
    
    int main (void)
    
    {
    
    	float ergebnis = 0;
    	float a,x;
    
    	for(a, x = 1.f ; a <= 15.f; a++ && x*=0.4.f )
    
    		ergebnis += (a * x);
    
    	printf("Summe ist gleich = %f\n", ergebnis);
    
    	return 0;
    
    }
    

    Der Compiler meckert:

    "Der linke Teil von '.f' muss eine Struktur/Union sein"

    Kann mir jemand bitte einen entscheidenen Tipp geben!?
    Danach geb ich auch erstmal Ruhe 😕



  • Das ist der Fehler:

    0.4.f
    

    Das muss so aussehen:

    0.4f
    

    Das "f" (nicht ".f"!) bedeutet, dass du aus einer double-Konstante eine float-Konstante machen willst. Du versuchst das mit 0.4., dabei willst du nur die Zahl 0.4 haben. Lässt du die Nachkommastelle(n) weg, dann musst du tatsächlich 0.f notieren, aber wenn es Nachkommastellen gibt, ist der zweite Punkt natürlich überflüssig.



  • Ergänzung:

    Deine for-Anweisung muss so aussehen:

    for(a = 1.f, x = 1.0f ; a <= 15.f; a++, x*=0.4f )
    

    Bitte sieh dir mal genau an, was jetzt anders ist. So wie du da einige Sachen versucht hast, kann man es leider nicht machen.



  • wenn ich das aber dann so umschreibe:

    for(a, x = 1.0f ; a <= 15.0f; a++ && x*=0.4f )
    

    streikt der compiler mit:

    "'=' : Konvertierung von 'const float ' in 'int ', moeglicher Datenverlust"
    und
    "'
    =' : Linker Operand muss ein L-Wert sein"



  • Sieh mal ein Posting über dir! 😉



  • upps zeitüberschneidung 😃

    aber super jetzt hab ich es geschnallt!!!!!!

    kein "&&" verwenden sondern ein "," !!!!!!!!

    Eigentlich ist es ja ganz einfach aber als absouluter anfänger-sieht man sowas nicht.

    Ich dank dir Matze (hehe mein namensvetter)!



  • Jepp. Und das mit a hast du auch gesehen, ja? Wenn du a mit einem Wert initialisieren willst, musst du diesen auch für a angeben. Du kannst halt keine Liste von Variablen notieren und am Ende einmal "=1.f" (leider).



  • hab ich glatt übersehen 👎

    nochmals vielen Dank!!!


Anmelden zum Antworten