Summieren und sortieren



  • Hallo Cevin,

    Du bist wirklich arm dran.

    Cevin19994 schrieb:

    nun ja das summieren klappt jetzt ja wunderbar ganz unten im code ... mit dem "+" 😉 nur das er nicht alles zeilen summiert weil ich ja meine neuen doubles summieren will wo nur ein double rein passt ... deswegen dachte ich mir wenn ich
    meine neuen doubles ( die ich zurzeit summiere ) mit arrays oder besser containern .. danke :).. austausche .. könnte ich es richtig summieren ? denk ich da falsch ? oder ... 🙂

    .. nein, Du denkst nicht falsch, nur zu weit. Warum erst die Variablen in einen Container stecken und dann summieren, wenn Du sie gleich summieren kannst. Besserwisser hat Dir schon den Weg gewiesen - ich habe Dir eine Programmskizze hingelegt, da brauchst Du nur die entsprechenden Teile in Deinen Code übernehmen, also wo ganz konkret ist das Problem?

    Machen wir's mal anders. Schreib' hier mal ein kleines Programm, welches die Zahlen von 1 bis 10 zusammenzählt und die Summe anschließend ausgibt. Und dann sehen wir weiter.

    Gruß
    Werner



  • Hmm ich bin vielleicht wirklich zu vorschnell ..:/
    ich muss gestehen ich komme mit deine skizze nicht klar also wird schon richtig sein aber weiß auch nicht

    ähm zahlen von 1-10 summieren ? so ?
    [/cpp]#include <iostream>

    using namespace std ;

    int main () {

    int zahl (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10);

    cout << zahl << endl ;
    getchar () ;
    }
    [cpp]



  • Ja, kann man machen.

    Und jetzt die Zahlen von 1-10000



  • Hallo Cevin,

    Cevin19994 schrieb:

    Hmm ich bin vielleicht wirklich zu vorschnell ..:/
    ich muss gestehen ich komme mit deine skizze nicht klar also wird schon richtig sein aber weiß auch nicht

    auch die Info 'komme nicht klar' gibt niemanden hier ein Chance Dir konkret zu helfen 😉

    Cevin19994 schrieb:

    ähm zahlen von 1-10 summieren ? so ?

    #include <iostream>
    using namespace std;
    
    int main () {
        int zahl (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10);
        cout << zahl << endl ;
        getchar ();
    }
    

    Ok - der Code ist zumindest performanter als die Lösung, die mir vorschwebte 😃
    Jetzt bitte das ganze noch mal für die Zahlen von 1 bis 10000 und mit einer for-Schleife.

    Gruß
    Werner



  • Werner Salomon schrieb:

    Jetzt bitte das ganze noch mal für die Zahlen von 1 bis 10000 und mit einer for-Schleife.

    Ich würde das mit dem Gauß lösen, ist viel performanter als eine for-Schleife *duckundweg*



  • daddy_felix schrieb:

    Ich würde das mit dem Gauß lösen, ist viel performanter als eine for-Schleife *duckundweg*

    ja, aber wir wollen den Gauss doch überprüfen 😉



  • otze_logout schrieb:

    daddy_felix schrieb:

    Ich würde das mit dem Gauß lösen, ist viel performanter als eine for-Schleife *duckundweg*

    ja, aber wir wollen den Gauss doch überprüfen 😉

    das beweist doch so ziemlich jeder Student, der eine Mathe-Vorlesung hört, per natürlicher Induktion...

    aber andererseits, als Unit Test ob die Implementierung stimmt, wäre das natürlich eine Idee. Auch wenn die Formel jetzt nicht so extrem kompliziert ist 😉



  • #include <iostream>
    
    using namespace std ;
    
    int main () {
    
        int zahl ;
    
        for (zahl=0; zahl <= 1000; zahl++) 
        {
            cout << zahl << endl ;
    
            }
    
        getchar();
    
        }
    

    Das würde ich so lösen ?



  • sry meinte naklar

    for (zahl=0; zahl <= 10000 ; zahl++ )
    


  • Cevin19994 schrieb:

    #include <iostream>
    
    using namespace std ;
    
    int main () {
        
        
        int zahl ;
        
        for (zahl=0; zahl <= 1000; zahl++) 
        {
            cout << zahl << endl ;
            
            }
        
        getchar();
        
        
        }
    

    Das würde ich so lösen ?

    irgendwie ist dir jetzt die Addition verloren gegangen...



  • Naja wozu auch die schleife rechnnet doch ... der anfangswert ist bei 0 und er tut immer 1 dazu bis er bei 10000 ist ... gehört ja wohl auch zum rechnen oder ? 🙂



  • Also wenn
    1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55 ist und
    1 + ...+ ... + 10000 = 10000
    siehst du da keine Inkonsistenz?



  • Ouuuuu doch jetzt seh ich's 😮



  • #include <iostream>
    
    using namespace std ;
    
    int main () {
    
        int zahl  ;
        int plus  ;
    
        for (plus=0;  plus <= 10000 ; plus++) 
        {
            cout << plus + zahl << endl ;
    
            }
    
        getchar();
    
        }
    

    so besser ?



  • Cevin19994 schrieb:

    #include <iostream>
    
    using namespace std ;
    
    int main () {
        
        
        int zahl  ;
        int plus  ;
        
        for (plus=0;  plus <= 10000 ; plus++) 
        {
            cout << plus + zahl << endl ;
            
            }
        
        getchar();
        
        
        }
    

    so besser ?

    Ne leider nicht.
    1. Es kommen komische Werte raus.
    2. Wir wollen mit dem Endergebnis später weiterrechnen, sprich du musst das Endergebnis irgendwo abspeichern.



  • kriege das erstmal bei dir zu Hause zum Laufen, dann poste hier wieder, wenn es läuft 😉



  • Cevin19994 schrieb:

    #include <iostream>
    
    using namespace std ;
    
    int main () {
        int zahl  ;
        int plus  ;
        for (plus=0;  plus <= 10000 ; plus++) 
        {
            cout << plus + zahl << endl ;
        }
        getchar();
    }
    

    so besser ?

    Äh - nein. Hast Du den Code ausprobiert? Wenn am Ende nicht 50005000 erscheint - und sonst gar nichts - weder davor noch danach, dann funktioniert Dein Programm nicht.

    Mal angenommen Du würdest die Zahlen 1 bis 10000 per Hand zusammenzählen. Und zwar in der Reihenfolge 1,2,3,4.. usw. und Du wärst bei der Zahl 7 und hättest als Summe also 28. Die nächste Zahl wäre die 8 - die erscheint aber erst mit dem nächsten Durchlauf der Schleife. Was machst Du solange mit der Summe?

    Weißt Du was in C++ eine Zuweisung ist?

    Im Übrigen habe ich Dir die Lösung schon genannt - gleich im ersten Absatz.

    Gruß
    Werner


Anmelden zum Antworten