das nachgestellt i



  • @DirkB

    #include <iostream>
    #include <cmath>
    
    using namespace std;
    
    int main(){
    
      double zahl;
    
      cout << "Gib ne Zahl ein\n" << endl;
    
      cin >> zahl;
    
      cout << "Die Wurzel aus "
           << zahl << " beträgt : "
           << sqrt(abs(zahl)) << endl;
    
    return 0;
    }
    


  • @Lou-Cyphr3
    Naja aber, die Aufgabe lautet doch, dass du auch die Wurzel aus negativen Zahlen ziehen sollst und diese dann entsprechend als imaginäre Zahl darstellen sollst, oder? Wo ist der part in deinem Quelltext?

    Ich verstehe das so, dass du zwei verschiedene Wege in Abhängigkeit vom Vorzeichen gehen sollst. Was glaube nicht gemeint ist, ist dass du die negativen Zahlen einfach "plattmachst" und so tust als wäre die nicht negativ gewesen.

    Die Wurzel aus "-1" ist halt "j". ( Abiturstoff ), d.h. wenn die Zahl negativ ist, passiert folgendes:

    zahl = -2;
    ergebnis = wurzel( -2 ) = wurzel( 2*j² ) = wurzel(2) * j

    Und das müsstest du jetzt mittels "if" oder alternativlösungen auch so darstellen.

    Edit: um nicht zu verwirren: das "j" in meiner Welt ist gleichbedeutend mit "i" in deiner Welt 😉



  • @It0101 sagte in das nachgestellt i:

    Edit: um nicht zu verwirren: das "j" in meiner Welt ist gleichbedeutend mit "i" in deiner Welt 😉

    Das heißt?

    i : Standard,
    j : Elektrotechnik

    Gut zu wissen 😎



  • @Lou-Cyphr3 wenn du vor das 2. endl noch ('i' * (zahl < 0)) << schreibst?



  • @It0101

    Und das müsstest du jetzt mittels "if" oder alternativlösungen auch so darstellen.

    if ist noch nicht bekannt. Die Alternativlösung wird hier gesucht.



  • @DirkB sagte in das nachgestellt i:

    ('i' * (zahl < 0)) <<

    also quasi so

    << sqrt(abs(zahl)) << ('i' * (zahl < 0)) << endl;
    

    ?

    das gibt nicht das richtige Ergebnis aus.
    Ich verstehe ehrlich gesagt auch die Formel nicht.
    Vllt sollte man es mit "?" lösen?!
    Ich hab jetzt an sowas gedacht. Ist ja ein wenig wie eine If-Abfrage.
    Aber wie kann ich das 'i' anhängen? So wie unten funktioniert es nicht.

    ((  zahl < 0 )) ? ((sqrt(abs(zahl))) + 'i') : sqrt(abs(zahl))
    


  • @Lou-Cyphr3

    Ich verstehe ehrlich gesagt auch die Formel nicht.

    'i' ist ein int.( Auf Geräten die mit ASCII arbeiten ist das der Weret 105)
    (zahl < 0) ist eine ASudruck, der im Wahrheitsfall 1 ergibt, sonst 0.

    105 * 1 ist 105, also ein 'i'.
    105 * 0 ist 0

    Vllt sollte man es mit "?" lösen?!

    Ach, den ?: Operator kennst du, if aber nicht. Hättest du mal früher schreiben sollen.
    cout << (( zahl < 0 ) ? "i" : "") << endl;
    sollte gehen



  • @DirkB

    Ja es war quasi der letzte Punkt vor den Kontrollstrukturen.
    Obwohl das ja irgendwie auch eine ist zählt das im Kurs noch zu Operatoren .

    Aber danke. Läuft jetzt!



  • Ich glaube, ich verstehe die Lehrer heutzutage nicht... Wie kann man "if" als letztes durchnehmen, stattdessen aber den völlig unbedeutenden ternären Operator viel früher?

    Sobald man das "if" vermittelt hat, kann man wenigstens ein paar gescheite Aufgaben verteilen.



  • Ist wahrscheinlich der Gliederung Operatore [...] Kontrollstrukturen etc. geschultet


Anmelden zum Antworten