Durchschnittswert



  • Hi Leute!

    Ich mache eine Elektronikerlehre. Seit 2 Wochen programmiere ich mit C++. Ich programmiere mit dem Borland C++ 5.0.

    Nun mache ich einen Temperaturmesser und übermittle die Temperaturen über die RS232 Schnittstelle. Dort wird das ganze auch grafisch dargestellt.

    Nun zu meinem Problem:

    Der Temperaturwert wird bei mir in einem Label 1 angezeigt, welcher vom uC über die RS232 Schnittstelle übermittelt wird. Das geht ja noch alles 🙂

    Nun möchte ich, dass ich in einem anderen Label den Durchschnittswert anzeigen kann.

    Ich weiss leider nicht wie ich nun zählen soll wie viele Werte (die Werte werden im Label 1 jede 1s aktualisiert) nun schon reinkahmen.
    Und wie ich die hereingekommenen Werte zusammenzählen kann.

    Besten Dank für eure Antworten! Wäre super, wenn ich es noch heute die Lösung hätte, denn bis am Freitag sollte ich das Projekt fertig haben.

    Bitte ein bisschen verständlich schreiben, denn in 2 Wochen ist man ja noch nicht gerade C++ Profi 🙂

    Mit freundlichen Grüßen

    Simon



  • Pseudocode:

    int summe = 0;
    int anzahl = 0;
    int temp;

    Jede Sekunde:
    temp = holeTemperatur();
    anzahl++;
    Label1.Text = temp;
    summe += temp;
    Label2.Text = summe / anzahl;



  • #include <iostream>
    #include <cmath>
    #include <ctime>
    #include <conio.h>
    using namespace std;
    
    int main()
    {
        srand(time(0));
    
        int N;
        cout << "Anzahl Messwerte: ";
        cin >> N;
        double * px = new double[N]; // dynamischen Speicher anfordern
    
        for (int i = 0; i < N; ++i)
        {
             double eingabe;
             /*
             cout << "Messwert Nr. " << i+1 <<" : ";
             cin >> eingabe;
             */
    
             eingabe = static_cast<double>( rand()%49+1 ); 
             // Zufallszahl zwischen 1 und 49
    
             *(px+i) = eingabe;
        }
    
        //Mittelwert m
        double m = 0;
        for (int i = 0; i < N; ++i)
        {
            m += *(px+i); // m = m + x[i]
        }
        m /= N;
    
        //Varianz var
        double var = 0;
        for (int i = 0; i < N; ++i)
        {
            var += (*(px+i) - m) * (*(px+i) - m);
        }
        var /= ( N-1 );
    
        //Standardabweichung sigma
        double sigma = sqrt( var );
    
        cout << "Mittelwert:         " << m     << endl;
        cout << "Varianz:            " << var   << endl;
        cout << "Standardabweichung: " << sigma << endl;
    
        delete[] px;
        getch();
    }
    

    Mittelwert, Varianz, Standardabweichung aus Zufallszahlen (da stellst du dir deine angelieferten Temperaturwerte vor), die in einem dynamischen Array gespeichert werden.



  • Erhard Henkes schrieb:

    #include <iostream>
    #include <cmath>
    #include <ctime>
    #include <conio.h>
    using namespace std;
    
    int main()
    {
        srand(time(0));
    
        int N;
        cout << "Anzahl Messwerte: ";
        cin >> N;
        double * px = new double[N]; // dynamischen Speicher anfordern
    
        for (int i = 0; i < N; ++i)
        {
             double eingabe;
             /*
             cout << "Messwert Nr. " << i+1 <<" : ";
             cin >> eingabe;
             */
    
             eingabe = static_cast<double>( rand()%49+1 ); 
             // Zufallszahl zwischen 1 und 49
    
             *(px+i) = eingabe;
        }
    
        //Mittelwert m
        double m = 0;
        for (int i = 0; i < N; ++i)
        {
            m += *(px+i); // m = m + x[i]
        }
        m /= N;
    
        //Varianz var
        double var = 0;
        for (int i = 0; i < N; ++i)
        {
            var += (*(px+i) - m) * (*(px+i) - m);
        }
        var /= ( N-1 );
    
        //Standardabweichung sigma
        double sigma = sqrt( var );
    
        cout << "Mittelwert:         " << m     << endl;
        cout << "Varianz:            " << var   << endl;
        cout << "Standardabweichung: " << sigma << endl;
    
        delete[] px;
        getch();
    }
    

    Mittelwert, Varianz, Standardabweichung aus Zufallszahlen (da stellst du dir deine angelieferten Temperaturwerte vor), die in einem dynamischen Array gespeichert werden.

    Das erinnert mich an die Fernsehköche: "Ich hab da schon mal was vorbereitet..." 😃



  • interpreter schrieb:

    Erhard Henkes schrieb:

    #include <iostream>
    #include <cmath>
    #include <ctime>
    #include <conio.h>
    using namespace std;
    
    int main()
    {
        srand(time(0));
    
        int N;
        cout << "Anzahl Messwerte: ";
        cin >> N;
        double * px = new double[N]; // dynamischen Speicher anfordern
    
        for (int i = 0; i < N; ++i)
        {
             double eingabe;
             /*
             cout << "Messwert Nr. " << i+1 <<" : ";
             cin >> eingabe;
             */
    
             eingabe = static_cast<double>( rand()%49+1 ); 
             // Zufallszahl zwischen 1 und 49
    
             *(px+i) = eingabe;
        }
    
        //Mittelwert m
        double m = 0;
        for (int i = 0; i < N; ++i)
        {
            m += *(px+i); // m = m + x[i]
        }
        m /= N;
    
        //Varianz var
        double var = 0;
        for (int i = 0; i < N; ++i)
        {
            var += (*(px+i) - m) * (*(px+i) - m);
        }
        var /= ( N-1 );
    
        //Standardabweichung sigma
        double sigma = sqrt( var );
    
        cout << "Mittelwert:         " << m     << endl;
        cout << "Varianz:            " << var   << endl;
        cout << "Standardabweichung: " << sigma << endl;
    
        delete[] px;
        getch();
    }
    

    Mittelwert, Varianz, Standardabweichung aus Zufallszahlen (da stellst du dir deine angelieferten Temperaturwerte vor), die in einem dynamischen Array gespeichert werden.

    Das erinnert mich an die Fernsehköche: "Ich hab da schon mal was vorbereitet..." 😃

    Super Danke euch beiden! Werde das Morgen früh gerade einmal probieren! Sehe zwar noch nicht ganz so durch, aber mal schauen wie es morgen funzt.

    MfG

    simon


Anmelden zum Antworten