Wie am elegantesten Ausrechnen?



  • std::string farben[5];
    farben[0] = "blau";
    farben[1] = "weiß";
    farben[2] = "gelb";
    farben[3] = "rot";
    farben[4] = "grün";
    
    std::string gesuchte_farbe = farben[jahreszahl % 5];
    

    Musst nach PHP portieren, sollte aber klappen.



  • Vielen Dank! Das ich da nicht selber drauf gekommen bin 😃

    function getColourByYear( $Year )
    {
    	$Farben = array( "Gelb",
    		 	 "Rot",
    		 	 "Grün",
    		 	 "Blau",
    		 	 "Weiß" );
    
    	return $Farben[($Year + 3) % 5];
    }
    

    Ich denke den Code kann ich so stehlen lassen? Oder sollte ich noch was ändern? 🙂

    Viele Grüße
    BlubBlubBlub



  • a) Variablennamen klein hat sich eingebürgert
    b) Ordne die Farben anders an, dann kannst du dir das +3 sparen?!
    c) Ich hoffe PHP legt das Array nicht bei jedem Funktionsaufruf neu an sondern macht daraus autom. das was in C++ als static bekannt ist

    MfG SideWinder



  • Korrektur 😃 ( feste Referenz ) 😃

    int main()
    { 
    	char* f[5] = {"gelb", "rot", "gruen", "blau", "weiss" };
    	int referenz = 1597;
    	int jahr = 2016;
    	printf("%s\n", f[abs( referenz - jahr )%5] );
    	return 0;
    }
    


  • proggingmania schrieb:

    Kuckuck !
    Du brauchst erstmal einen Nullpunkt bzw. eine Referenz, z.B. das Jahr
    2007.

    den hat er ja...btw deine indices sind um 1 daneben 😉
    ich dachte, dass er evtl. den richtigen index braucht. wenn es nur darum geht den richtigen string zu wählen, dann ist zutitzzs variante besser.



  • dot schrieb:

    den hat er ja...btw deine indices sind um 1 daneben 😉

    Wieso ? 5 Farben, Index 0 bis 4.

    dot schrieb:

    ich dachte, dass er evtl. den richtigen index braucht.

    Ja, für den Index kann man auch statt char* f
    int index nehmen oder so.

    dot schrieb:

    wenn es nur darum geht den richtigen string zu wählen, dann ist zutitzzs variante besser.

    Wieso, weils C++ ist und nicht C ? 😃

    🙂



  • Axoh, die abs Funktion kann ja jetzt auch rausfliegen.



  • SideWinder schrieb:

    a) Variablennamen klein hat sich eingebürgert
    b) Ordne die Farben anders an, dann kannst du dir das +3 sparen?!
    c) Ich hoffe PHP legt das Array nicht bei jedem Funktionsaufruf neu an sondern macht daraus autom. das was in C++ als static bekannt ist

    MfG SideWinder

    Hi, das mit der Variable Farben macht mir auch sorgen, aber ich weiß nicht wie ichs ohne lösen soll...

    function getColourForYear( $year )
    {
    	return ( array( "Gelb","Rot","Grün","Blau","Weiß" )[($year + 3) % 5] );
    }
    

    Das kann PHP scheinbar nicht... Wie könnte man das mit dem Array noch sinnvoller lösen?

    Danke



  • BlubBlubBlub schrieb:

    Ich denke den Code kann ich so stehlen lassen?

    Du kannst beruhigt sein, den Code stiehlt dir keiner. 😃

    MfG, der Beruhiger.



  • proggingmania schrieb:

    dot schrieb:

    den hat er ja...btw deine indices sind um 1 daneben 😉

    Wieso ? 5 Farben, Index 0 bis 4.

    rechne mal nach. bei dir wäre 2007 "weiss" 😉

    proggingmania schrieb:

    Ja, für den Index kann man auch statt char* f
    int index nehmen oder so.

    oO warum sollte man für einen index char* verwenden !?

    proggingmania schrieb:

    Wieso, weils C++ ist und nicht C ?

    nein. weil er sich die addition spart, was aber nur funktioniert, solange man eben nur den richtigen string auswählen will.



  • Zu 1.) Nööö
    Zu 2.) Nööö
    Zu 3.) Nööö

    Edit: Zu 3.) Nööö

    🙂


Anmelden zum Antworten