Laufzeit



  • Ich hatte den Code erst vor return reingetan, da sagte Xcode, daß dies erst nach return geht. Fand ich irgendwie folgerichtig, da Return ja noch Programm ist.

    Also ich möchte echt die Zeit messen, die das Programm benötigt. Verlangsamt der time-Befehl den Rechner wesentlich?

    Danke für die Infos, aber noch ist das Problem nicht ausgestanden.

    Ich poste mal den Code

    #include <iostream>
    using namespace std;
    int main (int argc, char * const argv[])
    {
    	long long Zaehlgrenze = 10000;
    
    	long long zaehler = 0;
    	long long trigonal = 0;
    	printf("Das Programm sucht innerhalb des Intervalls von 0 bis %d die Zahlen heraus, welche zugleich Quadratzahlen und Trigonalzahlen sind. \n", Zaehlgrenze);
    	while (zaehler < Zaehlgrenze)
    	{
    trigonal = trigonal+zaehler;
    for (long long i=1, x = zaehler/2; x*x <= trigonal; i += ++x)  	
    
    	if (trigonal== x*x)
    		cout << "Zaehler=\t " << zaehler  <<"\t" <<" Sum= \t " << trigonal  << "\tt" << " xq = \t " << x*x <<  "\t" << "Sqrt = \t " << x <<    endl;
    
    		zaehler++;		
    	}
    	printf("Das Programm endet mit Zähler %d\n", zaehler);	
    	printf("Die höchste Trigonalzahl %d\n", trigonal);
    
    	return 0;
    	time_t time(time_t *tp);
    }
    


  • brak schrieb:

    Ich hatte den Code erst vor return reingetan, da sagte Xcode, daß dies erst nach return geht. Fand ich irgendwie folgerichtig, da Return ja noch Programm ist.

    Nochmals: Mit return in main() wird das Programm beendet. Nachher kannst du nichts mehr tun. Und du kannst ebensowenig die Programmlaufzeit exakt innerhalb des Programmes messen. Und weil es fast aufs Gleiche hinausläuft, kannst du vor Programmende nochmals die Zeit messen.

    brak schrieb:

    Also ich möchte echt die Zeit messen, die das Programm benötigt. Verlangsamt der time-Befehl den Rechner wesentlich?

    Kaum, da brauchst du dir keine Gedanken zu machen. Die Frage ist eher, ob der "Befehl" der richtige ist.

    brak schrieb:

    Ich poste mal den Code

    Wann lernst du endlich, CPP-Tags zu benutzen? Das ist die erste weisse Schaltfläche links oben unter dem Textfenster. Das sieht dann viel schöner aus:

    int main()
    {
        return 0;
    }
    


  • Hallo, vielleicht bin ich ein bischen blöde. Ich finde auf dem Xcode-Brauser keine CPP-Tags links oben unter dem Text-Fenster. Oder meinst Du dies hier

    return
    

    Was heißt überhaupt CPP?



  • brak schrieb:

    Oder meinst Du dies hier

    return
    

    Was heißt überhaupt CPP?

    Genau das ist gemeint, und CPP steht für C Plus Plus (C++).

    cu André



  • brak schrieb:

    Hallo, vielleicht bin ich ein bischen blöde. Ich finde auf dem Xcode-Brauser keine CPP-Tags links oben unter dem Text-Fenster. Oder meinst Du dies hier

    return
    

    Was heißt überhaupt CPP?

    Das findest du nicht im Browser selbst, sondern von der Seite her.

    Schau mal, wo du diesen Smylie siehst: 😃
    Und darunter steht C/C++ (CPP steht für C++, c plus plus)
    Wenn du den drückst, geht [ cpp] auf und darin kannst du C++ Code schreiben,welcher dann farbig hier ausgegeben wird. Am Ende des Codes nochmal drücken und dann kommt [ /cpp], was den Code wieder schliesst.



  • :o



  • Mach ich das halt, sonst dauert das noch Stunden:

    #include <iostream>
    using namespace std;
    int main (int argc, char * const argv[])
    {
    	long long Zaehlgrenze = 10000;
    
    	long long zaehler = 0;
    	long long trigonal = 0;
    	printf("Such innerhalb des Intervalls [0...%d] die, die zugleich Quad.zahlen und Trig.zahlen sind.\n", Zaehlgrenze);
    	while (zaehler < Zaehlgrenze)
    	{
              trigonal = trigonal+zaehler;
              for (long long i=1, x = zaehler/2; x*x <= trigonal; i += ++x)  	
    
    	    if (trigonal== x*x)
    		cout << "Zaehler=\t " << zaehler  <<"\t" <<" Sum= \t " 
                         << trigonal  << "\tt" << " xq = \t " << x*x <<  "\t" 
                         << "Sqrt = \t " << x <<    endl;
    
              zaehler++;		
    	}
    	printf("Das Programm endet mit Zähler %d\n", zaehler);	
    	printf("Die höchste Trigonalzahl %d\n", trigonal);
    
    	return 0;
    	time_t time(time_t *tp);
    }
    


  • Die [code]-Tags hast du ja auch hingekriegt. Gleich links davon sind die [cpp]-Tags. Während bei den Code-Tags nur eine Rasterausrichtung des Textes durchgeführt wird, haben die C/C++-Tags noch Syntaxhighlighting, was die Übersicht massiv erhöht.

    sothis_ schrieb:

    :o

    Wieder mal ein sehr hilfreicher Kommentar... :p

    Fellhuhn schrieb:

    Mach ich das halt, sonst dauert das noch Stunden

    Aber so lernt er es nie 😉



  • #include <iostream>
    #time <main.cpp-ds>
    using namespace std;
    int main (int argc, char * const argv[])
    {
    	long long Zaehlgrenze = 10000;
    
    	long long zaehler = 0;
    	long long trigonal = 0;
    	printf("Das Programm sucht innerhalb des Intervalls von 0 bis %d die Zahlen heraus, welche zugleich Quadratzahlen und Trigonalzahlen sind. \n", Zaehlgrenze);
    	while (zaehler < Zaehlgrenze)
    	{
    trigonal = trigonal+zaehler;
    for (long long i=1, x = zaehler/2; x*x <= trigonal; i += ++x)  	
    
    	if (trigonal== x*x)
    		cout << "Zaehler=\t " << zaehler  <<"\t" <<" Sum= \t " << trigonal  << "\tt" << " xq = \t " << x*x <<  "\t" << "Sqrt = \t " << x <<    endl;
    
    		zaehler++;		
    	}
    	printf("Das Programm endet mit Zähler %d\n", zaehler);	
    	printf("Die höchste Trigonalzahl %d\n", trigonal);
    
    	realloc(<#void * #>, <#size_t #>); 
    	user_addr_t;
    	system(<#const char * #>);
    	return 0;
    
    }
    

    Das hab ich gemacht, kriege aber nur Warnungen.

    Oben steht beim Time-Befehl: **"Invalid prepocessor direktive #time"
    **
    Bei "realloc" steht: "ERROR expected primary exprssion before < token"
    Bei "useradr" steht: "ERROR Declaration does not declare anything"
    Bei "system" steht: "ERROR expected primary expression before < token"

    Also alles höchst frustrierend.



  • Nexus schrieb:

    sothis_ schrieb:

    :o

    Wieder mal ein sehr hilfreicher Kommentar... :p

    wie lange braucht ihr in der regel um trollposts zu erkennen? 🙂



  • brak schrieb:

    realloc(<#void * #>, <#size_t #>); 
        user_addr_t;
        system(<#const char * #>);
    

    Bei "realloc" steht: "ERROR expected primary exprssion before < token"
    Bei "useradr" steht: "ERROR Declaration does not declare anything"
    Bei "system" steht: "ERROR expected primary expression before < token"

    Was ist daran verwunderlich? Die Syntax stimmt halt nicht. Und was #time betrifft: Dein Compiler unterstützt die Direktive eben nicht. Was möglicherweise daran liegt, dass es diese nicht gibt.



  • #include <iostream.h>
    using namespace std;
    
    int main (int argc, char * const argv[])
    {
    	long long Zaehlgrenze = 10000;	
    	long long zaehler = 0;
    	long long trigonal = 0;
    	printf("Das Programm sucht innerhalb des Intervalls von 0 bis %d die Zahlen heraus, welche zugleich Quadratzahlen und Trigonalzahlen sind. \n", Zaehlgrenze);
    	while (zaehler < Zaehlgrenze)
    	{
    trigonal = trigonal+zaehler;
    for (long long i=1, x = zaehler/2; x*x <= trigonal; i += ++x)  	
    
    	if (trigonal== x*x)
    		cout << "Zaehler=\t " << zaehler  <<"\t" <<" Sum= \t " << trigonal  << "\tt" << " xq = \t " << x*x <<  "\t" << "Sqrt = \t " << x <<    endl;
    
    		zaehler++;		
    	}
    	printf("Das Programm endet mit Zähler %d\n", zaehler);	
    	printf("Die höchste Trigonalzahl %d\n", trigonal);
    	return 0;	
    }
    

    😃

    Hab ich doch kapiert... Nur das mit der Zeitmessung noch nicht...



  • Das lies dir das Beispiel hier durch. Dann dürfte alles klar sein.

    http://support.microsoft.com/kb/172338/de



  • Hallo, das ist doch alles Visual-Basic. Ich mache hier C++ auf Mac.



  • Upps, falscher Link! 😃 Sorry...

    Dann guck mal hier:

    http://msdn.microsoft.com/en-us/library/ms644904(VS.85).aspx
    http://msdn.microsoft.com/en-us/library/ms724408.aspx

    Beispiele sind da leider nicht (brauchst du für GetTickCount auch nicht), ich finde jetzt auf die Schnelle keinen besseren Link.

    Also => Forensuche + Google, und du hast in unter einer Minute ein paar Beispiele gefunden!


Anmelden zum Antworten