Die Ausgabe von Primzahlen bis 100. Kann mir jemand den genauen Ablauf erklären ich verstehe das nicht richtig
-
@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!
-
@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 auchstd::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ämlichstd::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 pingelig wird er dann wohl nicht sein
-
@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.