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



  • @TGGC
    Kannst du nicht zwischen dem worum es geht/dem Kontext in dem eine Aussage getroffen wurde, und dem was irgendjemanden interessieren könnte unterscheiden?

    Klar kann das jemanden interessieren. Interessiert mich auch oft genug. Nur muss ich mich nicht blöd belehren/korrigieren lassen, schon gar nicht von jemandem wie @Swordfish der bekanntermassen Leute gerne falsch versteht damit er was zu schlaumeiern oder kritisieren hat, wenn meine Aussage im durchaus vorhandenen und sehr klaren Kontext nicht falsch war.

    Das ist wie wenn jemand in Österreich, in einer Diskussion über österreichisches Recht fragt
    A: Ist eigentlich X legal?
    und dann jemand antwortet
    B: Nein.
    und dann ein dritter schlaumeiert
    C: Kommt drauf an in welchem Land.

    Macht das Sinn? Nein. Macht die Antwort "es könnte aber jemand interessieren" dann Sinn? Nein.

    Und jetzt GFU



  • @Swordfish

    Ich wollte nur ausdrücken daß es höchstwahrscheinlich auf div/idiv rausläuft wenn dem Compiler auf x86/x64 nichts besseres (konstanten, zweierpotenzen) einfällt.

    Und jetzt erklär mir bitte was das damit zu tun hat wie in C++ die % Operation definiert ist und wie man ihr Ergebnis am besten bezeichnen sollte sie am besten auf deutsch beschreiben/benennen sollte?

    Und "Division mit Rest" ist da einfach falsch, weil es halt einfach anders definiert ist.



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

    Nur muss ich mich nicht blöd belehren/korrigieren lassen, schon gar nicht von jemandem wie @Swordfish der bekanntermassen Leute gerne falsch versteht damit er was zu schlaumeiern oder kritisieren hat, wenn meine Aussage im durchaus vorhandenen und sehr klaren Kontext nicht falsch war.

    Jetzt komm mal wieder runter. Weder habe ich Dich absichtlich noch unabsichtlich falsch Verstanden und korrigiert oder kritisiert habe ich Dich auch nirgends. Die ursprüngliche Antwort war bloß als Zusatzinformation für Leser X gedacht.



  • @hustbaer Es geht hier im Kontext darum dem OP zu erklären, warum man mit paar Schleifen und % Zahlen findet, die nur durch sich selbst und 1 teilbar sind. Man könnte es auch so formulieren: "Was hat % mit Ganzzahl-Division zu tun?"



  • @TGGC Darum ging es nicht mehr wirklich, weil das Thema schon durch war. Genau das habe ich ihm nämlich bereits hier erklärt: https://www.c-plusplus.net/forum/topic/349807/die-ausgabe-von-primzahlen-bis-100-kann-mir-jemand-den-genauen-ablauf-erklären-ich-verstehe-das-nicht-richtig/7

    @Bashar meinte dann dass "Restklassendivision" falsch bzw. nicht optimal wäre als Bezeichnung/Beschreibung des % Operators. Darauf hin habe ihn gefragt was besser wäre. Dort kam dann "Division mit Rest". Das ist der Kontext.

    Und den % Operator als "Division mit Rest" zu bezeichnen ist mMn. einfach falsch. Und das unabhängig davon was vielleicht zusätzlich noch interessant wäre. Zusätzlich darf man gerne noch dazuschreiben was auch immer man möchte, das ist was ganz anderes.



  • #include <iostream>
    
    int main()
    {
        int remainder = 5 % 0;
        std::cout << remainder << '\n';
    }
    
    In function 'int main()':
    main.cpp:5:23: warning: division by zero [-Wdiv-by-zero]
    
        5 |     int remainder = 5 % 0;
    


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



  • Dieser Beitrag wurde gelöscht!

  • 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.


Anmelden zum Antworten