Γενικό Λύκειο > Ψευδογλώσσα

div και mod με αρνητικους

(1/6) > >>

apanagio:
Όπως έχει συζητηθεί κι εδώ:
https://alkisg.mysch.gr/steki/index.php?topic=755.0
η συμπεριφορά των div και mod ίσως να ξενίζει τους μαθητές μας όταν τα ορίσματα είναι αρνητικοί αριθμοί.

Σύμφωνα με τα μαθητικά    0 < α mod β <=  β  για θετικούς β
Στο pseudoglossa.gr
-9 mod 2 = -1

Αν και δεν είναι μέσα στην ύλη μήπως θα ήταν καλύτερα να αλλάξει η υλοποίηση και να συμφωνεί με τον μαθηματικό ορισμό;

sstergou:
Και ποιος είναι ο μαθηματικός ορισμός;
Εδώ πάντως τα πράγματα δεν είναι καθόλου ξεκάθαρα.

apanagio:
Στη wikipedia που κάνεις link λέει:

--- Παράθεση ---In mathematics the result of the modulo operation is the remainder of the Euclidean division.

--- Τέλος παράθεσης ---

Και η ευκλείδεια διαίρεση ορίζεται:

--- Παράθεση ---Given two integers a and b, with b ≠ 0, there exist unique integers q and r such that a = bq + r and 0 ≤ r < |b|

--- Τέλος παράθεσης ---

Διάφορες γλώσσες προγραμματισμού έχουν και διαφορετική προσέγγιση.

sstergou:
Δηλαδή αν κατάλαβα καλά λες ότι πρέπει να επιστρέφει πάντα θετικό;

Υπάρχει κάποιος λόγος πέραν του μαθηματικού ορισμού όπου αυτό πρέπει να συμβαίνει;

apanagio:
Ναι αυτό λέω.

Εκεί που μου προέκυψε το πρόβλημα ήταν όταν σε μια άσκηση ένα παιδί ήθελε να δει αν ένας αριθμός είναι άρτιος ή περιττός. Κάνοντας έλεγχο με
--- Κώδικας: --- x mod 2 = 1
--- Τέλος κώδικα ---
δεν του δούλευε για αρνητικούς.

Πλοήγηση

[0] Λίστα μηνυμάτων

[#] Επόμενη σελίδα

Μετάβαση στην πλήρη έκδοση