Die Ausgabe von Primzahlen bis 100. Kann mir jemand den genauen Ablauf erklären ich verstehe das nicht richtig



  • So what?
    Der C++ Standard wird nich durch GCC Warnings/Fehlermeldungen definiert.



  • This post is deleted!

  • Mod

    @hustbaer Es ist IMO verkehrt, % als 'Bestimmung der Restklasse' zu bezeichnen. Da kann ich auch erklären, / führt Polynomdivision durch, weil ja ein Computer die Zahl als Liste der Polynomialkoeffizienten mit x=2 repräsentiert. Allein die Tatsache, dass wir uns über die Eignung dieses Begriffs streiten, disqualifiziert ihn doch. Soll sich doch nicht jeder Neuling plötzlich in Zahlentheorie einlesen muessen, um Divisionsreste zu bestimmen.

    Wobei "Division mit Rest" ist auch Quatsch. Das würde ja bedeuten dass man sowohl das Ergebnis der Division als auch den Rest zurückbekommt. Was man ja nicht tut.

    Interessanterweise werden die meisten Kompilate fuer % dennoch die Divisionsinstruktion der Maschine ausführen, die den Rest mitbestimmt und in einem zweiten Register platziert. Um diese Tatsache ausnutzen zu können, haben wir ja auch std::div im Standard. Ich wäre allerdings ebenfalls für Modulo Operator. Das ist völlig eindeutig und im Einklang mit Wikipedia und anderen Quellen. 'Division mit Rest' suggeriert nämlich std::div.
    (^ Das ist fuer andere Leser, ich weiss dass Du das weisst 🙂 )



  • @hustbaer sagte in Die Ausgabe von Primzahlen bis 100. Kann mir jemand den genauen Ablauf erklären ich verstehe das nicht richtig:

    Wenn du's so genau nehmen willst dann wird das kleinse Element der Restklasse ermittelt.

    Nö. Auch das nicht. Negative Zahlen gehören auch mit zur Restklasse, es gibt kein kleinstes Element einer Restklasse, da ich bei einem potentiell kleinsten Element immer einfach nochmal den Divisor subtrahieren kann und damit ein kleineres Element existiert und somit die Annahme falsch ist.

    Aber das ist ein ganz neues Fass, dass ich da eigentlich nicht aufmachen will. -7 % 3 = -1. Aber wer weiß denn schon, wie das Rest-Vorzeichen aussieht oder was bei negativem Divisor passiert 😉 Und vor allem: wer teilt mit welcher Standardversion durch was Negatives 🙀

    Der Standard spricht übrigens vom "remainder from the division of the first expression by the second", also auf Deutsch vom Divisionsrest.



  • @wob
    Ich hab mir schon gedacht dass die negative Zahlen Sache kommen wird. Aber dann hab ich mir gedacht: nein, es ist klar was ich meine, so pingelig wird er dann wohl nicht sein. Naja, so kann man sich täuschen.



  • @Columbo Das die ganze Restklassen-irgendwas Sache als Bezeichnung für % nicht optimal ist ist lange durch, das hab ich akzeptiert.

    Interessanterweise werden die meisten Kompilate

    Und auch das Thema hatten wir jetzt schon 10x durch. Leute, ich kann x86 Assembler, und ich sehe mir häufig genug generierten Code an, ich weiss das alles. Tut nur überhaupt nichts zur Sache wenn wir daruber reden wie wir Konstrukte des C++ Standard nennen wollen. Zusatzinformationen geben ist immer OK, aber die primäre Bezeichnung die man für ein Konstrukt des C++ Standards verwendet daraus abzuleiten was für Maschinencode dafür üblicherweise generiert wird... nein.





  • @hustbaer sagte in Die Ausgabe von Primzahlen bis 100. Kann mir jemand den genauen Ablauf erklären ich verstehe das nicht richtig:

    So what?
    Der C++ Standard wird nich durch GCC Warnings/Fehlermeldungen definiert.

    Der Standard derfiniert das "/" den Quotient und "%" den Rest einer Division zurückgibt und beides multiplikative Operatoren sind.



  • @TGGC sagte in [Die Ausgabe von Primzahlen bis 100. Kann mir jemand den genauen

    Der Standard derfiniert das "/" den Quotient und "%" den Rest einer Division zurückgibt und beides multiplikative Operatoren sind.

    Was auch voll OK ist. Ich seh zwar immer noch keinen Zusammenhang mit dem hier diskutierten, aber ich mag die Diskussion auch nicht mehr wirklich fortsetzen. Ich denke nachdem sich alle beteiligten (inklusive mir) halbwegs beruhigt haben können wir die Sache auch ohne das noch zu klären zu den Akten legen.



  • Das sollte keine Diskussion sondern Fakten sein.


Log in to reply