Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Γ΄ Λυκείου => Δομή ακολουθίας => Μήνυμα ξεκίνησε από: anasta στις 12 Οκτ 2006, 09:08:28 ΜΜ

Τίτλος: Τελεστές MOD και DIV
Αποστολή από: anasta στις 12 Οκτ 2006, 09:08:28 ΜΜ
α) Η προτεραιότητα των τελεστών MOD και DIV είναι ίδια με αυτή των * και /;
β) Μπορούμε να χρησιμοποιήσουμε τους τελεστές αυτούς για πράξεις πραγματικών αριθμών;
Είναι σωστά δηλαδή τα: 5DIV1.5=3 και 5MOD1.5=0.5 ;
Τίτλος: Απ: Τελεστές MOD και DIV
Αποστολή από: gpapargi στις 13 Οκτ 2006, 08:52:57 ΠΜ
α) Η προτεραιότητα των DIV και MOD είναι η ίδια με αυτή των * και /. Θα ήταν παράλογο αν δεν είχαν την ίδια προτεραιότητα αφού πχ το 4/2 και το 4 DIV 2 είναι ακριβώς το ίδιο πράγμα.

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

Από φυσική άποψη αυτό σημαίνει αλλαγή στη μονάδα μέτρησης. Πχ από κιλά περνάς σε γραμμάρια. Προσοχή στο υπόλοιπο που εκφράζεται πλέον στη νέα μονάδα.
Τίτλος: Απ: Τελεστές MOD και DIV
Αποστολή από: Peandbal στις 20 Οκτ 2006, 01:23:23 ΠΜ
Στο πρώτο ερώτημα σου, αν και το βιβλίο δεν αναφέρει πουθενά (διόρθώστε με αν κάνω λάθος) την ιεραρχία σχετικά με τους τελεστές DIV και MOD, νομίζω ότι είναι σωστό να λέμε στους μαθητές μας ότι η ιεραρχία είναι ίδια με τους τελεστές / και * σαν απόρεια του ότι εκτελούν ακέραια διαίρεση.
Στο δεύτερο ερώτημά σου συμφωνώ με την απάντηση του Γιώργο.

Με εκτίμηση.
Τίτλος: Απ: Τελεστές MOD και DIV
Αποστολή από: andress στις 05 Νοε 2006, 12:54:05 ΜΜ
Άλλη μια ερώτηση για τους τελεστές : 
Τι γίνεται όταν έχω π.χ. 5MOD13 Ή 2DIV20 ?
είναι 0? αδύνατη? υπάρχει αποτέλεσμα ?

Ευχαριστώ 
Τίτλος: Απ: Τελεστές MOD και DIV
Αποστολή από: petrosp13 στις 05 Νοε 2006, 03:43:36 ΜΜ
H διαδικασία για να βρούμε τα αποτελέσματα σε πράξεις div και mod συμβαδίζει με την ευκλείδια διαίρεση, δηλαδή:

Δ=π*δ +υ

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

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

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

Παράδειγμα:

4div13=0
4mod13=4

αφού

4=0*13 + 4
Τίτλος: Απ: Τελεστές MOD και DIV
Αποστολή από: andress στις 05 Νοε 2006, 06:19:53 ΜΜ
Ευχαριστώ πολύ
γιατί τα βιβλία που κυκλοφορούν στο εμπόριο με είχαν μπερδέψει....
Τίτλος: Απ: Τελεστές MOD και DIV
Αποστολή από: andreas_p στις 06 Νοε 2006, 10:27:07 ΠΜ
Άλλη μια ερώτηση για τους τελεστές : 
Τι γίνεται όταν έχω π.χ. 5MOD13 Ή 2DIV20 ?
είναι 0? αδύνατη? υπάρχει αποτέλεσμα ?

Απάντηση  :

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

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

Ανδρέας
Τίτλος: Απ: Τελεστές MOD και DIV
Αποστολή από: nikosx στις 06 Νοε 2006, 12:39:07 ΜΜ
Οι λογικοί τελεστές Η, ΟΧΙ, ΚΑΙ ενώνουν λογικές προτάσεις και όχι αριθμητικές, δηλαδή πρέπει να υπάρχουν και τελεστές σύγκρισης,

π.χ. 7>=2 ΚΑΙ 6<>6
Τίτλος: Απ: Τελεστές MOD και DIV
Αποστολή από: tomemeto1 στις 20 Σεπ 2007, 02:36:04 ΜΜ
Ερώτηση:
Αν   i <-- a div b  και   k <-- a mod b
Τα a και b πρέπει να είναι ακέραιοι.
Τα i και k πρέπει να είναι ακέραιοι ή μπορεί να είναι και πραγματικοί αριθμοί;
Τίτλος: Απ: Τελεστές MOD και DIV
Αποστολή από: koniordos στις 20 Σεπ 2007, 02:51:41 ΜΜ
Θεωρώ πως μπορεί να είναι καί πραγματικοί.
Αντίστοιχα με το αν γράψω χ<--α*β με α,β ακεραίους
δεν υπάρχει πρόβλημα προορισμού. Ο περιορισμός είναι μόνο στους τελεστέους
Τίτλος: Απ: Τελεστές MOD και DIV
Αποστολή από: EleniK στις 20 Σεπ 2007, 03:19:33 ΜΜ
Έχω την εντύπωση ότι ειναι ακεραιοι όλοι. Το Div  ειναι το ακέραιο πηλίκο, (ακέραιο) και απο τη στιγμή που το mod είναι υπόλοιπο διαίρεσης ακεραίου, νομίζω και αυτό προκύπτει παντα ακέραιο.
Τίτλος: Απ: Τελεστές MOD και DIV
Αποστολή από: alkisg στις 20 Σεπ 2007, 03:57:24 ΜΜ
Το a div b
και το a mod b
όπως λέει και η Ελένη είναι ακέραιοι εξ' ορισμού των πράξεων.

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

Επομένως, όπως λέει και ο Τάκης, τα i και k επιτρέπεται να είναι πραγματικοί, όχι λόγω των mod/div αλλά λόγω της ανάθεσης τιμής.
Τίτλος: Απ: Τελεστές MOD και DIV
Αποστολή από: tomemeto1 στις 20 Σεπ 2007, 04:13:29 ΜΜ
Καταλαβαίνω ότι σε μια πραγματική μεταβλητή μπορεί να εκχωρηθεί η τιμή μιας ακέραιας μεταβλητης
δηλ αν η μεταβλητή t είναι ακέραια και η μεταβλητή i πραγματική, μπορεί να γίνει
i <-- t
αλλά όχι t <-- i

Στην σελ 155 του σχολικού λέει όμως ότι τα δύο μέλη μιας εντολής εκχώρησης τιμής πρέπει να είναι ίδιου τύπου.. Πως δικαιολογείται λοιπόν ότι το (i <-- t ) είναι σωστο; Λέει κάτι σχετικό το βιβλίο;
Τίτλος: Απ: Τελεστές MOD και DIV
Αποστολή από: koniordos στις 20 Σεπ 2007, 04:27:53 ΜΜ
Μπορείς να "ερμηνεύσεις" αυτή την πρόταση, θεωρώντας πως οι τύποι στους οποίους αναφέρεται, είναι οι

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

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

Αλφαριθμητικού τύπου μεταβλητές σε ορισμένες γλώσσες, (λχ C#) είναι το string (αντίστοιχο με τους ΧΑΡΑΚΤΗΡΕΣ της ΓΛΩΣΣΑΣ), και το char που είναι μεαβλητή που μπορεί να κουβαλήσει μόνον ένα χαρακτήρα τη φορά. Εκεί λοιπόν, μία εκχώρηση ενός χαρακτήρα σε μία μεταβλητή string είναι προφανώς αποδεχτή, ενώ πάνω από ένας (λχ 'ααα δδδ') σε μεταβλητή char απλά δεν χωράει. Κάτι αντίστοιχο υφίσταται και στη σχέση ακεραίων - πραγματικών ως διακριτοί τύποι μεταβλητών.
Τίτλος: Απ: Τελεστές MOD και DIV
Αποστολή από: P.Tsiotakis στις 20 Σεπ 2007, 04:46:41 ΜΜ
Έχω την αίσθηση οτι στην ευκλείδια διαίρεση αριθμών: ο διαιρετέος, ο διαιρέτης, το πηλίκο και το υπόλοιπο είναι ακέραιοι αριθμοι..
Τίτλος: Απ: Τελεστές MOD και DIV
Αποστολή από: koniordos στις 20 Σεπ 2007, 04:54:56 ΜΜ
Νομίζω η "αίσθησή" σου μας βρίσκει όλους σύμφωνους.
Πράγματι όλοι οι συντελεστές της ευκλείδιας διαίρεσης είναι ακέραιοι. Τούτο δε σημαίνει πως δεν μπορούν να εκχωρηθούν σε μεταβλητή πραγματικού τύπου.
Εγώ βρίσκω πως οι ακόλουθες εκχωρήσεις είναι απολύτως ισοδύναμες.

.....
ΠΡΑΓΜΑΤΙΚΕΣ: χ
......


χ<--2
χ<--4 DIV 2


Εάν όχι, όταν δηλωνόταν μία μεταβλητή ως πραγματική, θα έπρεπε η εκχώρηση σε αυτή αριθμητικής σταθεράς χωρίς δεκαδικά να γίνεται αναγκαστικά ως εξής

χ<--2.0

Τίτλος: Απ: Τελεστές MOD και DIV
Αποστολή από: P.Tsiotakis στις 20 Σεπ 2007, 05:01:42 ΜΜ
Πολύ σωστά,

Όμως αν το χ είναι πραγματικό, δεν μπορεί να συμμετάσχει σε άλλη πράξη div/mod
------

.....
ΠΡΑΓΜΑΤΙΚΕΣ: χ
ΑΚΕΡΑΙΕΣ: υ
.....
χ<--2
υ <--χ DIV 2  ! λάθος
Τίτλος: Απ: Τελεστές MOD και DIV
Αποστολή από: koniordos στις 20 Σεπ 2007, 05:13:01 ΜΜ
Συμφωνώ απόλυτα.
Τίτλος: Απ: Τελεστές MOD και DIV
Αποστολή από: Michael στις 20 Σεπ 2007, 08:40:59 ΜΜ
Μια σχετική με το θέμα ερώτηση:

Χθές έλυνα το πρώτο διαγώνισμα για τους πίνακες (από το στέκι). Στο ερώτημα 1.Δ.ii. ζητείται πίνακας τιμών για κάποιο αλγόριθμο. Εκεί, στον δοθέντα αλγόριθμο υπάρχουν οι εντολές:

...
X ← X/2 + i mod 2
...
Y ← i + X div i
...

Η πρώτη εντολή υποδηλώνει ότι το Χ πρέπει οπωσδήποτε να είναι πραγματική μεταβλητή. Η δεύτερη, ότι πρέπει οπωσδήποτε να είναι ακέραια. Εδώ το Χ, εκεί το Χ, πού θα έπρεπε να δηλωθεί το Χ?

Επίσης, αν δεν έχω κάνει κάποιο λάθος, κατά τη διάρκεια της εκτέλεσης του αλγορίθμου, το Χ παίρνει όντως μη ακέραια τιμή (1.5), οπότε συνάντησα πρόβλημα με την "πράξη"
Χ div i και σταμάτησα... Αλήθεια, υπάρχουν κάπου οι λύσεις των διαγωνισμάτων? Ρωτάω, επειδή τα έχω πάρει όλα με τη σειρά και θα ήταν χρήσιμο να μπορώ να ελέγχω τις λύσεις μου. (Συγχαρητήρια πάντως σε όσους τα έφτιαξαν, περιλαμβάνονται όντως πολλές πρωτότυπες ασκήσεις.)
Τίτλος: Απ: Τελεστές MOD και DIV
Αποστολή από: andreas_p στις 21 Σεπ 2007, 10:35:32 ΠΜ
Το σωστό  :

...
X ← X/2 + i mod 2
...
Y ← i + Α_Μ(X) div i
...


Ανδρέας