Hilfe habe bald Klausur



  • NATÜRLICH gefällt er mir.. nur scheinbar habe ich eine andere Version, die Nimmt deine leider nicht an.



  • int n;
    double sum = 0.0,inp;
    ...
    

    "inp" ist eine ganz normale double variable

    interpretiert hab ichs mit yabasic da ging in kate nur das CLS nicht 🙄



  • aso, das erklärt auch warum du kein ";" verwendenet hast.. DANKE!!



  • ja das ; brachte bei mir iwie fehler, hab schon bischen von deinem gespickt 😮



  • Also ich Hab jetzt noch etwas rumgetüftelt.. ich glaub ich versteh einfach nicht wie der das Programm die Formel umsetzt..

    hab jetzt mal noch nen zwischenschritt eingebaut, aber da kommt dann auch nur blödsin bei rum..

    #include <iostream>
    #include <vector>

    using namespace std;

    int main()
    {
    cout << "Geben Sie die Anzahl der Messwerte an: " << flush;
    unsigned int anzahl_messwerte;
    cin >> anzahl_messwerte;

    vector<double> messwerte(anzahl_messwerte);
    double sum = 0;

    for (unsigned int i=0; i<anzahl_messwerte; ++i)
    {
    cout << "Geben sie den " << i+1 << ". Messwert an: " << flush;
    cin >> messwerte[i];
    double zwischenschritt;
    zwischenschritt= 1/messwerte[i];
    cout<<zwischenschritt;
    sum = anzahl_messwerte / (zwischenschritt);
    }

    cout << "xharm: " << sum << endl;
    }

    ich habe mir extra den zwischenschritt mal ausgeben lassen, die Ergebnisse stimmen alle soweit, nur muss er die dann addieren nur wie ich das am besten anstelle weiß ich leider nicht..



  • mit:

    zwischenschritt= (1/messwerte[i])+(1/messwerte[i+1]);

    bekomm ich auch nen fehler..


  • Mod

    maxbandel schrieb:

    mit:

    zwischenschritt= (1/messwerte[i])+(1/messwerte[i+1]);

    bekomm ich auch nen fehler..

    Das klingt nach einem klaren Fall für einen Schreibtischtest. Denk dir 5 Zahlen aus, berechne den harmonischen Durchschnitt. Dann nimmst du an, dass du alle Zahlen eine nach der anderen bekommst. Was machst du mit jeder neuen Zahl, wenn du als Hilfsmittel einen Taschenrechner mit einer Speichertaste hast? Kommst du auf das gleiche Ergebnis?

    P.S.: Und lies dir mal diesen Thread durch: Mit Aussagen wie "bekomm ich auch nen fehler.." kann niemand etwas anfangen. Falsches Ergebnis? Laufzeitfehler? Compilerfehler? Wenn du dem Leser so wenig Information gibst, ist niemand motiviert dir zu helfen, denn du willst offensichtlich keine Hilfe sondern eine Lösung.



  • Ich möchte sehr alles andere als eine nur eine Lösung, schließlich muss ich es in der Klausur auch können, ich bin auch sehr Dankbar das sich soviel bemühen mir zu helfen.

    denn der Fehler ist leider schwer zu beschrieben oder weiderzugeben, darum habe ich ein Screenshot gemacht und mal hochgeladen.

    http://img17.imageshack.us/f/fehlerc.png/#

    Danke für die Mühe!



  • Wenn du den Index von 0 bis size() laufen lässt, kannst du nicht [index + 1] ansprechen - gültige Indices des Containers liegen zwischen 0 und size() - 1. (Bzw. in deinem Fall anzahl_messwerte)

    Ansonsten scheint es mir so, als sei das Puzzleteil, das dir fehlt, folgendes:

    zwischenschritt = zwischenschritt + summand;
    

    ...und achte auf den Gültigkeitsbereich der Variablen!

    Der Vollständigkeit halber: Gleichbedeutend mit dem Codestück oben, aber hübscher anzusehen ist

    zwischenschritt += summand;
    


  • Super, habs dann jetzt es hat mir also "nur" das + vor dem = gefehlt.

    vielen dank für eure Geduld!



  • maxbandel schrieb:

    Super, habs dann jetzt es hat mir also "nur" das + vor dem = gefehlt.

    vielen dank für eure Geduld!

    falls sich das auf das letzte von dir gepostete snippet bezieht nein!


Anmelden zum Antworten