Klasse String



  • Wie sieht es mit der Verwendung von short int aus, da das Alter nicht
    größer als 32767 sein dürfte.
    Negative Zahlen könnte man ja auch gleich mit ausschließen durch unsigned.
    Also z.B.

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
    
        unsigned short int alter;     
        cin >> alter;
        cout << alter;
    }
    

  • Mod

    redrew99 schrieb:

    Wie sieht es mit der Verwendung von short int aus, da das Alter nicht
    größer als 32767 sein dürfte.

    Welchen nennenswerten Vorteil hätte das?

    Negative Zahlen könnte man ja auch gleich mit ausschließen durch unsigned.

    Jetzt gib mal -1 ein und staune.



  • SeppJ schrieb:

    Welchen nennenswerten Vorteil hätte das?

    Bei diesem kleinen Programm vermutlich nichts, aber falls Speicher in zukünftigen Programmen mal knapp sein sollte...

    SeppJ schrieb:

    Jetzt gib mal -1 ein und staune.

    Interessant, es wird der maximale Wertebereich ausgegeben bzw. bei zweistelligen negativen Zahlen wird (Alter-2) vom maximalen Wertebereich abgezogen.



  • SeppJ schrieb:

    redrew99 schrieb:

    Negative Zahlen könnte man ja auch gleich mit ausschließen durch unsigned.

    Jetzt gib mal -1 ein und staune.

    Wenn da z.B. stände: "Geben sie ihr Alter an." und jemand gibt -1 ein, dann ist das doch der Fehler des Anwenders und nicht der Fehler des Entwicklers. Also würde ich auch zu unsigned tendieren, oder etwa nicht?


  • Mod

    Gugelmoser schrieb:

    SeppJ schrieb:

    redrew99 schrieb:

    Negative Zahlen könnte man ja auch gleich mit ausschließen durch unsigned.

    Jetzt gib mal -1 ein und staune.

    Wenn da z.B. stände: "Geben sie ihr Alter an." und jemand gibt -1 ein, dann ist das doch der Fehler des Anwenders und nicht der Fehler des Entwicklers. Also würde ich auch zu unsigned tendieren, oder etwa nicht?

    Aber wie stellst du dann fest, dass die Eingabe falsch war?

    (Ja, beim Alter kann man sich denken, dass niemand über 4 Milliarden Jahre alt ist. Aber das kann ein Problem werden, wenn der ganze Wertebereich eines unsigned realistisch für den gefragten Wert ist)



  • Jetzt argumentiere ich, dass noch kein Mensch

    redrew99 schrieb:

    Interessant, es wird der maximale Wertebereich ausgegeben bzw. bei zweistelligen negativen Zahlen wird (Alter-2) vom maximalen Wertebereich abgezogen.

    Google mal Zweierkomplement (Raumfolgearithmetik).
    @SeppJ: Kein Schwein wird älter als 150. setz das als Bedingung, und das Problem ist gelöst 🤡


  • Mod

    Hacker schrieb:

    Raumfolgearithmetik

    Den Begriff sehe ich zum ersten mal. Und scheint eine gruselige Übersetzung auf ähnlichem Niveau wie "Seiteneffkt" zu sein.

    Nur aus Neugierde - wer kann damit (ohne zu googlen) etwas anfangen?



  • camper schrieb:

    Nur aus Neugierde - wer kann damit (ohne zu googlen) etwas anfangen?

    Damit kann ich nicht mal mit Google was anfangen. 😃 (Na ok, wenn man etwas liest dann schon.)



  • cooky451 schrieb:

    camper schrieb:

    Nur aus Neugierde - wer kann damit (ohne zu googlen) etwas anfangen?

    Damit kann ich nicht mal mit Google was anfangen. 😃 (Na ok, wenn man etwas liest dann schon.)

    Vielleicht könnt ihr Google-Spastis dann was mit der englischen Variante anfangen: Sequence Space Arithmetics. Gibt gute Gründe wieso das so heißt.



  • Hacker schrieb:

    Google mal Zweierkomplement (Raumfolgearithmetik).

    cooky451 schrieb:

    Damit kann ich nicht mal mit Google was anfangen. 😃

    Hacker schrieb:

    ihr Google-Spastis

    Google mal nach "Eigentor" - metaphorisch gesehn.



  • Hacker schrieb:

    @SeppJ: Kein Schwein wird älter als 150. setz das als Bedingung, und das Problem ist gelöst 🤡

    einige Schildkröten schon... 😉

    redrew99 schrieb:

    SeppJ schrieb:

    Welchen nennenswerten Vorteil hätte das?

    Bei diesem kleinen Programm vermutlich nichts, aber falls Speicher in zukünftigen Programmen mal knapp sein sollte...

    klingt für mich sehr nach premature optimization.



  • pumuckl schrieb:

    Hacker schrieb:

    Google mal Zweierkomplement (Raumfolgearithmetik).

    cooky451 schrieb:

    Damit kann ich nicht mal mit Google was anfangen. 😃

    Hacker schrieb:

    ihr Google-Spastis

    Google mal nach "Eigentor" - metaphorisch gesehn.

    Nix gefunden 😞

    Ich wusste ja nicht, das Google bei sowas so spärlich ist. Aber man kann doch ein WENIG EIGENINITIATIVE zeigen und sich ein Fachbuch schnappen, anstatt gleich aufzugeben. Und "nicht mal" zeigt schon genug.

    @daddy_felix: Setz bitte einen Smilie dahinter, sonst denkt man noch du meinst das Ernst (also dass man Schildkröten berücksichtigen sollte).



  • SeppJ schrieb:

    Gugelmoser schrieb:

    Wenn da z.B. stände: "Geben sie ihr Alter an." und jemand gibt -1 ein, dann ist das doch der Fehler des Anwenders und nicht der Fehler des Entwicklers. Also würde ich auch zu unsigned tendieren, oder etwa nicht?

    Aber wie stellst du dann fest, dass die Eingabe falsch war?)

    if( alter>120 )
    {
        // Falsche Eingabe
    }
    

    Oder meinst du nicht? Ok, wenn jemand einen so negativen Wert eingibt, dass er wieder im gültigen Bereich landet, obwohl es eine ungültige Eingabe war, dann ist int wirklich besser.


Anmelden zum Antworten