Denkfehler in if-Schleife



  • Das mit dem Double ist so ein Problem......ich muss das irgendwie machen, weil ich ja die Wurzel ziehen will.....und außerdem fmod verwende.

    Wenn Du einen besseren Vorschlag hast bin ich dafür natürlich offen^^!



  • Schraubenzieher ist Volksmund, "if Schleife" ist nur Blödsinn.

    Ich möchte mal wissen wo das herkommt, bzw. warum sich das so hartnäckig hält. Ich lese das immer nur von Anfängern, hab es noch nie in einem Tutorial, einer Doku, einem Artikel oder ähnlichem gelesen.



  • Ich meine wir können ja nun anfangen zu philosophieren.^^
    If-Schleife würde ich auch als Volksmund abstempeln-zumindest für die Leute, die keine Informatiker sind und sich nicht näher mit dem Thema beschäftigen. Eben genau wie Schraubenzieher.....



  • miri schrieb:

    Das mit dem Double ist so ein Problem......ich muss das irgendwie machen, weil ich ja die Wurzel ziehen will.....

    sqrt(static_cast<double>(a));
    

    und außerdem fmod verwende.

    Modulo-Operator.

    If-Schleife würde ich auch als Volksmund abstempeln-zumindest für die Leute, die keine Informatiker sind und sich nicht näher mit dem Thema beschäftigen.

    Die meisten Leute wissen, was ein Schraubenzieher ist und was man mit ihm macht. Wie viele haben schon mal was programmiert? Wie viele davon sagen if-Schleife?



  • Seit wann spricht der Volksmund über Informatik (bzw. hier "falsche" Informatik)?

    Zudem kannst du int nehmen, du brauchst weder fmod() (du kannst nämlich einfach a % b schreiben, wenn es sich um ints handelt) noch brauchst du wegen sqrt() gleich mit doubles zu rechnen.

    int limit = static_cast<int>(sqrt(static_cast<double>(number)));  //Abrunden reicht aus
    

    EDIT: zu spät 😃
    P.S.: Was ist denn nun am Schraubenzieher falsch (Außer vom reinen Wortsinn her)?



  • hustbaer schrieb:

    Ich lese das immer nur von Anfängern, hab es noch nie in einem Tutorial, einer Doku, einem Artikel oder ähnlichem gelesen.

    Vielleicht sind das alles Klettverschlussträger, die einfach nicht mehr wissen, was eine Schleife ist.


  • Administrator

    http://de.wikipedia.org/wiki/Schraubenzieher#Geschichte_und_Bezeichnung

    Schraubenzieher ist nicht mal Volksmund sondern gewollt und gab es noch vor Schraubendreher. If-Schleife ist einfach nur falsch, gab es nie, ist nicht gewollt, ist falsch, wird nicht im Volksmund verwendet, usw.

    Im übrigen: Was ist ein Informatiker? Das darf sich ja jeder schimpfen.

    Grüssli



  • Mach stattdessen einfach i * i <= a;



  • 314159265358979 schrieb:

    Mach stattdessen einfach i * i <= a;

    Das muss ja dann jedes Mal geprüft werden. Lohnt sich auf Dauer wahrscheinlich nicht.



  • Hm, da hast du wohl Recht. 🙂



  • Vielen Dank für die Tipps bezüglich dem Wurzel ziehen aus einem Integer. Das kannte ich noch nicht und muss es ja nun auch nicht verstehen. Klappt aber super!

    @dravere
    na ja.....also Wikipedia....

    und: Informatiker ist eben genauso Volksmund......jeder der von Informatiker spricht meint eigentlich wohl einen Programmierer:-)^^

    Ich würde mich beides nicht "schimpfen"-bin kein Programmierer und auch kein Informatiker, sondern habe Maschinenbau studiert, wobei ein Teil meines Masterstudiums auch Programmieren enthielt. Ich beschäftige mich eher mit tribologischen Fragestellungen und weiß auch nicht, warum man sich aufregen muss über irgendwelche Begrifflichkeiten in einem Forum von einem "Nicht-Programmierer"^^. Ich würde ja gerne mal hören wie ihr über Reibung und Verschleiß referieren würdet:-).

    Danke trotzdem des Hinweises. Ich werde mir merken, dass es wohl if-Bedingung heißt. Gibt es eigentlich eine for-Schleife?? 🙂



  • Ja, die gibt es.
    Das Wurzelziehen ist ganz simpel. Der Integer wird in ein double konvertiert (es steht aber immer noch das Gleiche drin), dann die Wurzel gezogen und das Ergebnis wieder zurückkonvertiert. Dabei wird es gegen 0 gerundet (also bei positiven Zahlen abgerundet).



  • miri schrieb:

    Danke trotzdem des Hinweises. Ich werde mir merken, dass es wohl if-Bedingung heißt. Gibt es eigentlich eine for-Schleife?? 🙂

    if-Bedingung heißt es auch nicht wirklich. Die Bedingung ist ja nur der Ausdruck, dessen Wahrheitsgehalt geprüft wird. Mit if-Anweisung liegst du immer auf der sicheren Seite. Wenn's etwas spezifischer sein soll, ginge if-Verzweigung auch noch, das klingt aber auch irgendwie gekünstelt.
    for-Schleifen gibt es. Es gibt auch while-Schleifen und do-while-Schleifen. Im Gegensatz zu if-irgendwas sind das wirklich gebräuchliche Begriffe.



  • "If-Abfrage" fände ich auch okay. Zumindest habe ich das im Gegensatz zu "If-Anweisung" auch schon ab und zu gehört 😉



  • gebräuchlich vom Volksmund her oder ist es auch Fachsprache 😉 ?



  • wxSkip schrieb:

    314159265358979 schrieb:

    Mach stattdessen einfach i * i <= a;

    Das muss ja dann jedes Mal geprüft werden. Lohnt sich auf Dauer wahrscheinlich nicht.

    Man könnte auf nen Akku 2i + 1 draufzählen um sich die Multiplikation zu ersparen.
    Wobei die eine Wurzel sicher nicht SO weh tut...



  • Nexus schrieb:

    "If-Abfrage" fände ich auch okay. Zumindest habe ich das im Gegensatz zu "If-Anweisung" auch schon ab und zu gehört 😉

    If-Statement, If-Block, Bedingungsgekoppelte-Ausführungs-Anweisungs-Aufzählung, ... 😃



  • hustbaer schrieb:

    wxSkip schrieb:

    314159265358979 schrieb:

    Mach stattdessen einfach i * i <= a;

    Das muss ja dann jedes Mal geprüft werden. Lohnt sich auf Dauer wahrscheinlich nicht.

    Man könnte auf nen Akku 2i + 1 draufzählen um sich die Multiplikation zu ersparen.
    Wobei die eine Wurzel sicher nicht SO weh tut...

    Sicher, und für den Komplexitätstheoretiker erst recht nicht...



  • wxSkip schrieb:

    hustbaer schrieb:

    Man könnte auf nen Akku 2i + 1 draufzählen um sich die Multiplikation zu ersparen.
    Wobei die eine Wurzel sicher nicht SO weh tut...

    Sicher, und für den Komplexitätstheoretiker erst recht nicht...

    Aber dafür wäre es viel kuhler 🤡


Anmelden zum Antworten