προτεραιότητα τελεστών

Ξεκίνησε από petran, 23 Οκτ 2009, 12:16:13 ΜΜ

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

petran

Καλησπέρα.

Θα ήθελα να ρωτήσω.
Ποιά είναι η προτεραιότητα των τελεστών στην Γλώσσα ?
Υπάρχει κάποια σύμβαση για την ψευδογλωσσα ?

Ευχαριστώ.

ikariofil

Κατά σειρά

1) Αριθμητικοί
        ^
  *, /, mod, div
       +,-

2) Συγκριτικοί
  =, >, < , >=, <=, <>


3) Λογικοί
  όχι, και ,η

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

P.Tsiotakis

άρα σε μια έκφραση με τελεστές ίδιας ιεραρχίας οι πράξεις εκτελούνται από αριστερά προς τα δεξιά...

oneoxoritis

Γειά σας και συγχαρητήρια για την καλη δουλειά που γίνεται στο "Στέκι". Θα ήθελα να επανέλθω στο θέμα της προτεραιότητας τελεστών και να ρωτήσω πιο είναι το αποτέλεσμα της πραξης 5 mod 2 * 10?
Είναι το 10 ή το το 5? Θα εκτελεστεί πρώτα το mod και μετά ο πολ/μός (*)?
Ευχαριστω εκ των προτέρων

P.Tsiotakis

Καλώς ήρθες...

αριστερά προς τα δεξιά

5 mod 2 * 10 = 1 * 10= 10

δες και το παρακάτω συνημμένο

oneoxoritis

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

Καρκαμάνης Γεώργιος


evry

Μήπως τους το έδωσαν σαν

5         mod                              2*10

και όχι σαν  5 mod 2*10 ?

οπότε ναι μεν ισχύει η προτεραιότητα από αριστερά, αλλά τα πιο κοντινά υπολογίζονται πρώτα :D

What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

P.Tsiotakis

Ευρυπίδη, υπάρχει και η παραλλαγή:

5 mod 2 * 10   :D

nikosx

Υπάρχει και η περίπτωση οι συνάδελφοι να είναι της αραβικής σχολής
Νίκος Ξένος
Καθηγητής Πληροφορικής
nxenos@sch.gr

karaberis

Παρόλο που η αρχική ερώτηση αναφέρεται μάλλον στην ιεραρχία (σειρά εκτέλεσης) των αριθμητικών τελεστών, το θέμα διευρύνθηκε και αναφέρθηκε η σειρά όλων των κατηγοριών τελεστών και ίσως δημιουργηθεί κάποια παρανόηση.

ΠαράθεσηΚατά σειρά

1) Αριθμητικοί
        ^
  *, /, mod, div
       +,-

2) Συγκριτικοί
  =, >, < , >=, <=, <>


3) Λογικοί
  όχι, και ,η

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

Το βιβλίο του μαθητή αναφέρει (σελ.166) οτι προηγούνται οι αριθμητικοί, ακολουθούν οι συγκριτικοί και τελευταίοι εκτελούνται οι λογικοί. Δυστυχώς όμως δεν αναφέρει τίποτα (με κάθε επιφύλαξη) για τη σειρά υπολογισμού όταν έχουμε μόνο λογικούς τελεστές (χωρίς παρενθέσεις) σε μία ΣΥΝΘΕΤΗ λογική έκφραση.

Όμως σε μία σύνθετη λογική έκφραση (παράσταση) όπου εμφανίζονται λογικοί τελεστές, η σειρά υπολογισμού (εκτέλεσης) ΔΕΝ είναι πάντα από αριστερά προς τα δεξιά, αλλά με την εξής σειρά:

ΟΧΙ
ΚΑΙ
Η

εκτός αν επιβάλλεται διαφορετική σειρά με τη χρήση παρενθέσεων. Απο αριστερά προς τα δεξιά γίνονται οι υπολογισμοί μόνον όταν είναι ίδιοι οι τελεστές (  .... ΚΑΙ ...... ΚΑΙ ....... ΚΑΙ ......).

Το οτι έχει σημασία η σειρά εκτέλεσης των λογικών τελεστών προκύπτει από το τετράδιο του μαθητή, όπου στο αντίστοιχο κεφάλαιο γίνεται αναφορά στην ιεραρχία των λογικών τελεστών και δίνεται συμβουλή για τη χρήση παρεθένσεων (Κεφ.8ο, Παρ. 8.3, Σελ. 77), ενώ στη Δραστηριότητα ΔΤ1 (Σελ. 78) και στην 7η ερώτηση του τεστ αυτοαξιολόγησης ζητείται ο υπολογισμός της τιμής ΣΥΝΘΕΤΩΝ λογικών εκφράσεων με ή χωρίς τη χρήση παρενθέσεων, ακριβώς για να γίνει κατανοητή η σειρά εκτέλεσης (υπολογισμού) των λογικών πράξεων.

Παρακαλώ τους συναδέλφους να επαληθεύσουν τα παραπάνω ή να διατυπώσουν άλλη γνώμη αν κάνω λάθος. Πάντως πρέπει οποσδήποτε να διευκρινιστεί το θέμα αυτό για να μην υπάρξουν παρανοήσεις (μας διαβάζουν και υποψήφιοι και μαθαίνουν από αυτές τις συζητήσεις...)

Φιλικά

P.Tsiotakis

το όχι προηγείται των άλλων 2 τελεστών ΟΚ

γιατί το ΚΑΙ προηγείται του Η δεν κατάλαβα

κατά τη γνώμη μου για τα ΚΑΙ και Η ισχύει πάλι ο κανόνας του αριστερά προς τα δεξιά
αφού όπως αναφέρεις "Δυστυχώς όμως δεν αναφέρει τίποτα (με κάθε επιφύλαξη) για τη σειρά υπολογισμού όταν έχουμε μόνο λογικούς τελεστές (χωρίς παρενθέσεις) σε μία ΣΥΝΘΕΤΗ λογική έκφραση"

Σούλας Βασίλης

Προτεραιότητα τελεστών

Αριθμητικοί :   + , - , *  (πολλ/σμός), /  (διαίρεση), ^ (ύψωση σε δύναμη), DIV (ακέραια διαίρεση), MOD (ακέραιο υπόλοιπο). (Σειρά εκτέλεσης αριθμητικών πράξεων : 1ο το ^, και με ίδια προτεραιότητα τα  *, /, div, mod και από αριστερά προς τα δεξιά και τα +, - και φυσικά πρώτα οι παρενθέσεις)

Παράδειγματα

Χ<--4/2*2=4 (εδώ πρώτα η διαίρεση γιατί πιο αριστερά)
Ενώ
Χ<--2*2/4=1 (εδώ πρώτα ο πολλαπλασιασμός γιατί πιο αριστερά)

Χ<--50 div 22*11 mod 4=2 (από αριστερά προς τα δεξιά)


Λογικοί : ΚΑΙ, Η, ΟΧΙ . (Σειρά εκτέλεσης λογικών πράξεων : 1ο το όχι και με την ίδια προτεραιότητα τα και, η από αριστερά προς τα δεξιά και φυσικά πρώτα οι παρενθέσεις)
Σούλας Βασίλης
Ηλεκτρολόγος Μηχανικός & Μηχανικός Η/Υ Δ.Π.Θ.
Καθηγητής Πληροφορικής ΠΕ19
http://users.sch.gr/vasisoulas
http://eclass.sch.gr/modules/auth/opencourses.php?fc=%D4-52

karaberis

Ευχαριστώ για τη γρήγορη απάντηση.

Όσο για τη σειρά των ΚΑΙ και Η μάλλον από κάποιο παράδειγμα θα το συμπαίρανα. Αυτή τη στιγμή δεν μπορώ όμως να το στηρίξω κάπου. Θα το ψάξω και θα δω αν μπορώ να απαντήσω...Ίσως να προκύπτει από τις απαντήσεις στις ασκήσεις του τετραδίου μαθητή που ανέφερα στο προηγούμενο μήνυμά μου. Θα το δω...

Φιλικά


Νίκος Αδαμόπουλος

Παράθεση από: karaberis στις 01 Νοε 2009, 02:05:25 ΜΜ
Όμως σε μία σύνθετη λογική έκφραση (παράσταση) όπου εμφανίζονται λογικοί τελεστές, η σειρά υπολογισμού (εκτέλεσης) ΔΕΝ είναι πάντα από αριστερά προς τα δεξιά, αλλά με την εξής σειρά:

ΟΧΙ
ΚΑΙ
Η

Αυτό μπορεί να ισχύει σε κάποιες (ή και όλες!) γλώσσες προγραμματισμού, αλλά γιατί να το υιοθετήσουμε αυθαίρετα στην ΑΕΠΠ αφού το βιβλίο δεν το αναφέρει πουθενά; Όπως λέει και ο Παναγιώτης προηγείται το ΟΧΙ (αφού είναι μοναδιαίος τελεστής - δηλαδή εφαρμόζεται σε έναν μόνο τελεσταίο - οπότε δεν θα μπορούσε να γίνεται αλλιώς), αλλά για τους άλλους δύο λέμε από αριστερά προς τα δεξιά (αν και ούτε αυτό το λέει το βιβλίο, αλλά αφού αυτό το λέει για τους αριθμητικούς τελεστές, γιατί να πάμε ανάποδα για τους λογικούς;  ;))

Και τελευταίο επιχείρημα: https://alkisg.mysch.gr/steki/index.php?topic=912.msg8645#msg8645