Τελεστές MOD και DIV

Ξεκίνησε από anasta, 12 Οκτ 2006, 09:08:28 ΜΜ

« προηγούμενο - επόμενο »

anasta

α) Η προτεραιότητα των τελεστών MOD και DIV είναι ίδια με αυτή των * και /;
β) Μπορούμε να χρησιμοποιήσουμε τους τελεστές αυτούς για πράξεις πραγματικών αριθμών;
Είναι σωστά δηλαδή τα: 5DIV1.5=3 και 5MOD1.5=0.5 ;

gpapargi

α) Η προτεραιότητα των DIV και MOD είναι η ίδια με αυτή των * και /. Θα ήταν παράλογο αν δεν είχαν την ίδια προτεραιότητα αφού πχ το 4/2 και το 4 DIV 2 είναι ακριβώς το ίδιο πράγμα.

β) Οι τελεστές DIV και MOD ορίζονται μόνο για ακεραίους. Αν θες να δεις πόσες φορές χωράει ένας δεκαδικός σε έναν άλλο δεκαδικό πολλαπλασίασε και τα 2 με την κατάλληλη δύναμη του 10 έτσι ώστε να γίνουν και οι 2 ακέραιοι.

Από φυσική άποψη αυτό σημαίνει αλλαγή στη μονάδα μέτρησης. Πχ από κιλά περνάς σε γραμμάρια. Προσοχή στο υπόλοιπο που εκφράζεται πλέον στη νέα μονάδα.

Peandbal

Στο πρώτο ερώτημα σου, αν και το βιβλίο δεν αναφέρει πουθενά (διόρθώστε με αν κάνω λάθος) την ιεραρχία σχετικά με τους τελεστές DIV και MOD, νομίζω ότι είναι σωστό να λέμε στους μαθητές μας ότι η ιεραρχία είναι ίδια με τους τελεστές / και * σαν απόρεια του ότι εκτελούν ακέραια διαίρεση.
Στο δεύτερο ερώτημά σου συμφωνώ με την απάντηση του Γιώργο.

Με εκτίμηση.

andress

Άλλη μια ερώτηση για τους τελεστές : 
Τι γίνεται όταν έχω π.χ. 5MOD13 Ή 2DIV20 ?
είναι 0? αδύνατη? υπάρχει αποτέλεσμα ?

Ευχαριστώ 

petrosp13

H διαδικασία για να βρούμε τα αποτελέσματα σε πράξεις div και mod συμβαδίζει με την ευκλείδια διαίρεση, δηλαδή:

Δ=π*δ +υ

Η πράξη Div δίνει ως αποτέλεσμα το π και η πράξη Mod δίνει ως αποτέλεσμα το υ

Συνεπώς, μπορείς να υπολογίσεις εύκολα τα αποτελέσματα που λες

Σαν παρατήρηση σου λέω ότι όταν ο διαιρέτης είναι μεγαλύτερος από τον διαιρετέο, το πηλίκο είναι 0 και το υπόλοιπο ίσο με τον διαιρετέο

Παράδειγμα:

4div13=0
4mod13=4

αφού

4=0*13 + 4
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

andress

Ευχαριστώ πολύ
γιατί τα βιβλία που κυκλοφορούν στο εμπόριο με είχαν μπερδέψει....

andreas_p

Άλλη μια ερώτηση για τους τελεστές : 
Τι γίνεται όταν έχω π.χ. 5MOD13 Ή 2DIV20 ?
είναι 0? αδύνατη? υπάρχει αποτέλεσμα ?

Απάντηση  :

αδύνατο το   5  Ή  0 

( το  Ή είναι λογικός τελεστής  ενώ τα 5, 0 αριθμητικές ποσότητες)

Ανδρέας

nikosx

Οι λογικοί τελεστές Η, ΟΧΙ, ΚΑΙ ενώνουν λογικές προτάσεις και όχι αριθμητικές, δηλαδή πρέπει να υπάρχουν και τελεστές σύγκρισης,

π.χ. 7>=2 ΚΑΙ 6<>6
Νίκος Ξένος
Καθηγητής Πληροφορικής
nxenos@sch.gr

tomemeto1

Ερώτηση:
Αν   i <-- a div b  και   k <-- a mod b
Τα a και b πρέπει να είναι ακέραιοι.
Τα i και k πρέπει να είναι ακέραιοι ή μπορεί να είναι και πραγματικοί αριθμοί;

koniordos

Θεωρώ πως μπορεί να είναι καί πραγματικοί.
Αντίστοιχα με το αν γράψω χ<--α*β με α,β ακεραίους
δεν υπάρχει πρόβλημα προορισμού. Ο περιορισμός είναι μόνο στους τελεστέους
Τσορώνης Τάκης
Ηλ.Μηχ. & Μηχ. Η/Υ ΕΜΠ

EleniK

Έχω την εντύπωση ότι ειναι ακεραιοι όλοι. Το Div  ειναι το ακέραιο πηλίκο, (ακέραιο) και απο τη στιγμή που το mod είναι υπόλοιπο διαίρεσης ακεραίου, νομίζω και αυτό προκύπτει παντα ακέραιο.
Ελένη Κοκκίνου
Καθηγήτρια Πληροφορικής, ΠΕ19

alkisg

Το a div b
και το a mod b
όπως λέει και η Ελένη είναι ακέραιοι εξ' ορισμού των πράξεων.

Η ανάθεση τιμής επιτρέπει όμως την ανάθεση ενός ακεραίου σε πραγματικό:
πραγματικός <- 1

Επομένως, όπως λέει και ο Τάκης, τα i και k επιτρέπεται να είναι πραγματικοί, όχι λόγω των mod/div αλλά λόγω της ανάθεσης τιμής.

tomemeto1

Καταλαβαίνω ότι σε μια πραγματική μεταβλητή μπορεί να εκχωρηθεί η τιμή μιας ακέραιας μεταβλητης
δηλ αν η μεταβλητή t είναι ακέραια και η μεταβλητή i πραγματική, μπορεί να γίνει
i <-- t
αλλά όχι t <-- i

Στην σελ 155 του σχολικού λέει όμως ότι τα δύο μέλη μιας εντολής εκχώρησης τιμής πρέπει να είναι ίδιου τύπου.. Πως δικαιολογείται λοιπόν ότι το (i <-- t ) είναι σωστο; Λέει κάτι σχετικό το βιβλίο;

koniordos

Μπορείς να "ερμηνεύσεις" αυτή την πρόταση, θεωρώντας πως οι τύποι στους οποίους αναφέρεται, είναι οι

α. μεταβλητές αριθμητικού τύπου (με τους όποιους περιορισμούς)
β. αλφαριθμητικού τύπου
γ. λογικού τύπου

και όχι στους διακριτούς τύπους όπως αυτοί αναφέρονται στο τμήμα δηλώσεων της ΓΛΩΣΣΑΣ.

Αλφαριθμητικού τύπου μεταβλητές σε ορισμένες γλώσσες, (λχ C#) είναι το string (αντίστοιχο με τους ΧΑΡΑΚΤΗΡΕΣ της ΓΛΩΣΣΑΣ), και το char που είναι μεαβλητή που μπορεί να κουβαλήσει μόνον ένα χαρακτήρα τη φορά. Εκεί λοιπόν, μία εκχώρηση ενός χαρακτήρα σε μία μεταβλητή string είναι προφανώς αποδεχτή, ενώ πάνω από ένας (λχ 'ααα δδδ') σε μεταβλητή char απλά δεν χωράει. Κάτι αντίστοιχο υφίσταται και στη σχέση ακεραίων - πραγματικών ως διακριτοί τύποι μεταβλητών.
Τσορώνης Τάκης
Ηλ.Μηχ. & Μηχ. Η/Υ ΕΜΠ

P.Tsiotakis

Έχω την αίσθηση οτι στην ευκλείδια διαίρεση αριθμών: ο διαιρετέος, ο διαιρέτης, το πηλίκο και το υπόλοιπο είναι ακέραιοι αριθμοι..