HILFE!! C++ Programm für SolarProjekt



  • ja,schon hab doch überall Float oder net?

    das mit dem Punkt weiß ich, hab ich auch so in der Eingabeaufforderung geschrieben.

    Wieso alte Header??? WElche sollte ich den benutzen ? 😕 😕 😕



  • Deine komischen Werte kommen daher, weil du Gesamtleistung nirgends mit 0.0 initialisierst.
    Zum speichern des Datums/Uhrzeit bietest sich ein array von time_t an.
    Die neuen Header wären

    #include <iostream>
    #include <ctime>
    using namespace std;  // eventuell
    

    Kurt



  • wie meinst des mit dem array von time_t ???

    kannste mir ein beispiel progen wär echt net !

    danke



  • time_t zeitstempel[234];
    

    psycracker schrieb:

    kannste mir ein beispiel progen

    Kann mir unter "progen" nichts vorstellen.
    Kurt



  • mit progen meinte ich programmieren...

    deine erklärungen sind bestimmt gut aber nicht wirklich sinnvoll für mich da ich es nicht ganz versteh bin kein profi...

    könntest du deine antworten vieleicht etwas mehr erläutern?`

    Übrigens: Danke, das mit der Initialisierung hat gefunzt!

    danke



  • > Deine komischen Werte kommen daher, weil du Gesamtleistung nirgends mit 0.0 initialisierst.

    void Solar::ausrechneDurchschnitt() {
        int i;
    
        //Berechnung der Gesamtleistung                   
        Gesamtleistung = 0.0f;     // initialisieren
        for(i=0;i<=4;i++)          // sonst hat Gesamtleistung hat hier irgendeinen Wert da nicht initialisiert
        {
            float LeistungH;
    
            LeistungH=Leistung[i];
            Gesamtleistung=Gesamtleistung+LeistungH;  // du addierst zu einem undefinierten Wert
                                                      // Mist + LeistungH ist immer noch Mist
        }
        //Berechnung und Ausgabe des Durchschnitts
        cout << "Die Gesamtleistung betraegt:" << Gesamtleistung << endl;
    
        Durchschnitt=Gesamtleistung/i;
    
        cout << "Der Durchschnitt der Gesamtleistung betraegt:"
            << Durchschnitt << endl;
    }
    

    > Zum speichern des Datums/Uhrzeit bietest sich ein array von time_t an.

    Keine Ahnung wann du die Zeit speichern willst. Nehmen wir an in einem globalen array zeitstempel.

    void zeistempelSpeichern( int idx ) {
        zeitstempel[idx] = time(0);
    }
    
    void zeistempelAnzeigen( int idx ) {
        tm *nun;
        nun = localtime(&zeitstempel[idx]);
    
        cout << nun->tm_mday << '.' << nun->tm_mon+1 << '.'
             << nun->tm_year+1900 << " - " << nun->tm_hour
             << ':' << nun->tm_min << endl;
    }
    

    Kurt



  • hmmmm.. okay, gute idee.

    ich steh irgendwie grad aufn schlauch... brauch ich Werte für diesen Zeitstempel??

    weil ich habs nun so:

    long Zeitstempel[60];
    
    void zeitstempelAnzeige();
    void zeitstempelSpeichern();
    
    void zeitstempelSpeichern()
    {Zeitstempel[60]=time(0);}
    
    void zeitstempelAnzeige()
    {
    	//Datum und Zeit Funktion
    
    	tm *jetzt;
        jetzt = localtime(&Zeitstempel[60]);
    
        cout << jetzt->tm_mday << '.' << jetzt->tm_mon+1 << '.'
    		 << jetzt->tm_year+1900 << " - " << jetzt->tm_hour
             << ':' << jetzt->tm_min << endl;
    
    }
    

    aber nun bekomm ich nur das Datum vom 1.1.1970 ausgegeben,warum des???
    ich kapier des net mit diesem Stempel ....



  • //long Zeitstempel[60];
    time_t Zeitstempel[60];  // platz fur 60 time_t
    
    void zeitstempelAnzeige();
    void zeitstempelSpeichern();
    
    void zeitstempelSpeichern()
    {Zeitstempel[60]=time(0);}  // schlecht ungültiger index ( 0.. 59 ) 
    
    void zeitstempelAnzeige()
    {
    	//Datum und Zeit Funktion
    
    	tm *jetzt;
        jetzt = localtime(&Zeitstempel[60]); // siehe oben
    
        cout << jetzt->tm_mday << '.' << jetzt->tm_mon+1 << '.'
    		 << jetzt->tm_year+1900 << " - " << jetzt->tm_hour
             << ':' << jetzt->tm_min << endl;
    
    }
    

    Kurt



  • okay, hab meinen Lehrer gefragt hat mir das nun eklärt.

    weiß nun was du mit dem Index meinst,danke!

    Habs nun so:

    //Global
    time_t Zeitstempel[60];
    
    void zeitstempelAnzeige();
    void zeitstempelSpeichern();
    
    void zeitstempelSpeichern()
    {
    	for(int idx=0;idx<=4;idx++)
    	{Zeitstempel[idx]=time(0);}
    }
    
    void zeitstempelAnzeige()
    {
    	//Datum und Zeit Funktion
    
    	for(int idx=0;idx<=4;idx++)
    	{
    	tm *nun;
        nun = localtime(&Zeitstempel[idx]);
    
        cout << nun->tm_mday << '.' << nun->tm_mon+1 << '.'
    		 << nun->tm_year+1900 << " - " << nun->tm_hour
             << ':' << nun->tm_min << endl;
    	}
    }
    

    HAb aber immernoch das Problem das in meinem Zeitstempel nicht die korrekte Zeit und Datum drin ist!!! Hab immer nur den 1.1.1970 blabla uhrzeit.
    Warum geht dat net =?? 😞 😞 😞



  • #include <iostream>
    #include <cstdlib>
    
    using namespace std;
    
    time_t Zeitstempel[60];
    
    void zeitstempelAnzeige();
    void zeitstempelSpeichern();
    
    void zeitstempelSpeichern() {
        for(int idx=0;idx<=4;idx++)
        {Zeitstempel[idx]=time(0);}
    }
    
    void zeitstempelAnzeige()
    {
        //Datum und Zeit Funktion
    
        for(int idx=0;idx<=4;idx++)
        {
        tm *nun;
        nun = localtime(&Zeitstempel[idx]);
    
        cout << nun->tm_mday << '.' << nun->tm_mon+1 << '.'
             << nun->tm_year+1900 << " - " << nun->tm_hour
             << ':' << nun->tm_min << endl;
        }
    }
    
    int main() {
    	zeitstempelSpeichern();
    	zeitstempelAnzeige();
    }
    

    mein output:

    13.2.2006 - 10:9
    13.2.2006 - 10:9
    13.2.2006 - 10:9
    13.2.2006 - 10:9
    13.2.2006 - 10:9
    

    Kurt



  • oooohhh,danke!!!

    ich hab vergessen die Funktion: zeitstempelSpeichern noch aufzurufen!!


Anmelden zum Antworten