Αποστολέας Θέμα: Λογικοί τελεστές,div mod  (Αναγνώστηκε 1086 φορές)

JohnyF

  • Θαμώνας
  • ***
  • Μηνύματα: 38
Λογικοί τελεστές,div mod
« στις: 18 Οκτ 2017, 04:12:42 πμ »
Λοιπόν είναι ένα πολυσυζητημένο θέμα απλά θέλω να δω τι ακριβώς θα πω στα παιδιά.Το ΚΑΙ έχει μεγαλύτερη προτεραιότητα από το Η;Θεωρείται ακόμα ασάφεια , ή έχει βρεθεί κάποια λύση;Να πω οτι είναι ασάφεια,δεν αναφέρεται στο βιβλίο,οπότε δε πρόκειται να μπει χωρίς παρενθέσεις;Η να πω οτι αν σας τύχει,όπως και να το κάνετε είναι σωστό;
Επίσης το επόμενο είναι το εξής.Στο βιβλίο αναφέρει οτι το div mod χρησιμοποιεί ακεράιους.Αυτό σημαίνει ότι απαγορεύεται να κάνουμε div Mod με πραγματικόυς;Σε άαλες γλωσσες γίνεται μια χαρά.
Και πάνω στο mod,div επίσης...Αναφέρεται κάπου τι κάνουμε πχ στο -3 div 2  ;Πως θα πρέπει αν λυθεί αυτό?Στο διερμηνευτή βγάζει -2 σαν αποτέλεσμα,δηλαδή μας πάει στο -6 που είναι σωστό..Η πχ στο -5 mod -3 βγάζει 1 που θα είναι ουσιαστικά -5-(-6)..Δε νομίζω τα παιδιά πρέπει να έχουν τοσο ειδικευμένες γνώσεις έτσι;
« Τελευταία τροποποίηση: 18 Οκτ 2017, 04:33:50 πμ από JohnyF »

ozorgnax

  • Θαμώνας
  • ***
  • Μηνύματα: 36
Απ: Λογικοί τελεστές,div mod
« Απάντηση #1 στις: 18 Οκτ 2017, 07:46:02 πμ »
Εχει βγει διευκρίνιση από το υπουργείο που λέει ότι οι αριθμοί που συμμετέχουν σε πράξεις με div και mod πρέπει να θεωρούνται θετικοί ακέραιοι.
http://dide.sam.sch.gr/keplinet/images/newsletters/aepp_div_mod.pdf

Και το έγγραφο για την προτεραιότητα των λογικών τελεστών (ουσιαστικά λέει ότι καλύτερα να χρησιμοποιούνται πάντοτε παρενθέσεις)
https://aepp.files.wordpress.com/2011/04/aepp_telestes.pdf
« Τελευταία τροποποίηση: 18 Οκτ 2017, 08:15:39 πμ από ozorgnax »

nikosx

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 345
  • ___
Απ: Λογικοί τελεστές,div mod
« Απάντηση #2 στις: 18 Οκτ 2017, 10:39:38 πμ »
Υπάρχει νέα οδηγία που λέει ότι από τη στιγμή που στο βιβλίο της Β Λ περιέχεται η ιεραρχία των λογικών τελεστώ (1.ΟΧΙ 2.ΚΑΙ 3. 'Η) είναι γνωστό και στη Γ' Λ.
Νίκος Ξένος
nkxenos@yahoo.gr

bugman

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 231
  • The Bug Eater
    • Πληροφορική Προγραμματισμός
Απ: Λογικοί τελεστές,div mod
« Απάντηση #3 στις: 18 Οκτ 2017, 03:40:09 μμ »
Απλός τρόπος διαπίστωσης:
ΕΜΦΑΝΙΣΕ ΑΛΗΘΗΣ Η ΨΕΥΔΗΣ ΚΑΙ ΨΕΥΔΗΣ
αν δώσει ΨΕΥΔΗΣ τότε δεν υπάρχει προτεραιότητα στο ΚΑΙ
(ΑΛΗΘΗΣ Η ΨΕΥΔΗΣ) ΚΑΙ ΨΕΥΔΗΣ = ΑΛΗΘΗΣ ΚΑΙ ΨΕΥΔΗΣ = ΨΕΥΔΗΣ
αν δώσει ΑΛΗΘΗΣ τότε η ΚΑΙ έχει προτεραιότητα και δείτε πως λειτουργεί σε διερμηνευτή:
Υπάρχουν δυο καταχωρητές, ο συσσωρευτής, και το μερικό αποτέλεσμα. Στην Αρχή μπαίνει η τιμή ΑΛΗΘΗΣ στο συσσωρευτή. Μετά βλέπει ο διερμηνευτής το "Η" και ζητάει την επόμενη συνθήκη. Η επόμενη συνθήκη ξεκινάει και αυτή με το δικό της συσσωρευτή. Βάζει λοιπόν το ΨΕΥΔΗΣ αλλά δεν επιστρέφει (όπως θα έκανε αν όλα ήταν ίδιας προτεραιότητας) και κοιτάει τι έχει ακόμα. Βλέπει το "ΚΑΙ" και τότε πάει για την επόμενη συνθήκη. Εκεί βρίσκει το ΨΕΥΔΗΣ και τίποτα άλλο. Τώρα εκτελεί το (συσσωρευτής=συσσωρευτής ΚΑΙ μερικό αποτέλεσμα), και το δίνει στη θέση "μερικό αποτέλεσμα"  της προηγούμενης κλήσης. Εκεί εκτελεί το (συσσωρευτής=συσσωρευτής Η μερικό αποτέλεσμα), το ΑΛΗΘΗΣ η ΨΕΥΔΗΣ, άρα δίνει το ΨΕΥΔΗΣ στον συσσωρευτή. Γενικά ο συσσωρευτής είναι αυτός στον οποίο βγαίνει κάποιο αποτέλεσμα. Πώς γίνεται τώρα και έχουμε διπλό συσσωρευτή; Είναι τοπική μεταβλητή, ή σε υλοποίηση η προηγούμενη τιμή φυλάσσεται σε μια στοίβα.
Ασφαλώς είναι πιο γρήγορο να έχουμε εκτέλεση χωρίς να λογαριάζουμε προτεραιότητα, επειδή για αυτή την έκφραση αρκεί ένας συσσωρευτής, ο οποίος θα συσσωρεύει το αποτέλεσμα του κάθε επόμενου τελεστή. Οι παρενθέσεις βάζουν υποχρεωτικά το σύστημα να βγάζει νέο συσσωρευτή (μπορεί να πηγαίνει η τρέχουσα τιμή σε στοίβα). Έτσι οι παρενθέσεις στη δεύτερη περίπτωση κάνουν την επιλογή που γίνονταν αυτόματα στην πρώτη περίπτωση θέμα επιλογής του προγραμματιστή.
Να γιατί όταν ζητάνε "να μπαίνουν παρενθέσεις", σημαίνει ότι "είναι επιλογή του προγραμματιστή, όχι του διερμηνευτή/γλώσσας".




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

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2770
  • Πύργος Ηλείας
    • ΚΕΠΛΗΝΕΤ Ηλείας
Απ: Λογικοί τελεστές,div mod
« Απάντηση #4 στις: 18 Οκτ 2017, 08:26:28 μμ »
Απλός τρόπος διαπίστωσης:
ΕΜΦΑΝΙΣΕ ΑΛΗΘΗΣ Η ΨΕΥΔΗΣ ΚΑΙ ΨΕΥΔΗΣ
αν δώσει ΨΕΥΔΗΣ τότε δεν υπάρχει προτεραιότητα στο ΚΑΙ
(ΑΛΗΘΗΣ Η ΨΕΥΔΗΣ) ΚΑΙ ΨΕΥΔΗΣ = ΑΛΗΘΗΣ ΚΑΙ ΨΕΥΔΗΣ = ΨΕΥΔΗΣ
αν δώσει ΑΛΗΘΗΣ τότε η ΚΑΙ έχει προτεραιότητα και δείτε πως λειτουργεί σε διερμηνευτή:
Υπάρχουν δυο καταχωρητές, ο συσσωρευτής, και το μερικό αποτέλεσμα. Στην Αρχή μπαίνει η τιμή ΑΛΗΘΗΣ στο συσσωρευτή. Μετά βλέπει ο διερμηνευτής το "Η" και ζητάει την επόμενη συνθήκη. Η επόμενη συνθήκη ξεκινάει και αυτή με το δικό της συσσωρευτή. Βάζει λοιπόν το ΨΕΥΔΗΣ αλλά δεν επιστρέφει (όπως θα έκανε αν όλα ήταν ίδιας προτεραιότητας) και κοιτάει τι έχει ακόμα. Βλέπει το "ΚΑΙ" και τότε πάει για την επόμενη συνθήκη. Εκεί βρίσκει το ΨΕΥΔΗΣ και τίποτα άλλο. Τώρα εκτελεί το (συσσωρευτής=συσσωρευτής ΚΑΙ μερικό αποτέλεσμα), και το δίνει στη θέση "μερικό αποτέλεσμα"  της προηγούμενης κλήσης. Εκεί εκτελεί το (συσσωρευτής=συσσωρευτής Η μερικό αποτέλεσμα), το ΑΛΗΘΗΣ η ΨΕΥΔΗΣ, άρα δίνει το ΨΕΥΔΗΣ στον συσσωρευτή. Γενικά ο συσσωρευτής είναι αυτός στον οποίο βγαίνει κάποιο αποτέλεσμα. Πώς γίνεται τώρα και έχουμε διπλό συσσωρευτή; Είναι τοπική μεταβλητή, ή σε υλοποίηση η προηγούμενη τιμή φυλάσσεται σε μια στοίβα.
Ασφαλώς είναι πιο γρήγορο να έχουμε εκτέλεση χωρίς να λογαριάζουμε προτεραιότητα, επειδή για αυτή την έκφραση αρκεί ένας συσσωρευτής, ο οποίος θα συσσωρεύει το αποτέλεσμα του κάθε επόμενου τελεστή. Οι παρενθέσεις βάζουν υποχρεωτικά το σύστημα να βγάζει νέο συσσωρευτή (μπορεί να πηγαίνει η τρέχουσα τιμή σε στοίβα). Έτσι οι παρενθέσεις στη δεύτερη περίπτωση κάνουν την επιλογή που γίνονταν αυτόματα στην πρώτη περίπτωση θέμα επιλογής του προγραμματιστή.
Να γιατί όταν ζητάνε "να μπαίνουν παρενθέσεις", σημαίνει ότι "είναι επιλογή του προγραμματιστή, όχι του διερμηνευτή/γλώσσας".

Υποθέτω ότι όλα αυτά δεν απευθύνονται σε μαθητές...

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

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2770
  • Πύργος Ηλείας
    • ΚΕΠΛΗΝΕΤ Ηλείας
Απ: Λογικοί τελεστές,div mod
« Απάντηση #5 στις: 18 Οκτ 2017, 08:29:06 μμ »
Στο βιβλίο αναφέρει οτι το div mod χρησιμοποιεί ακεράιους.Αυτό σημαίνει ότι απαγορεύεται να κάνουμε div Mod με πραγματικόυς;Σε άαλες γλωσσες γίνεται μια χαρά.

Σε ποιες άλλες γλώσσες γίνεται το div και mod με πραγματικούς και ποιο είναι τότε το αποτέλεσμα μιας τέτοιας πράξης;

bugman

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 231
  • The Bug Eater
    • Πληροφορική Προγραμματισμός
Απ: Λογικοί τελεστές,div mod
« Απάντηση #6 στις: 18 Οκτ 2017, 08:59:45 μμ »
Ναι αλλά εδώ συζητούν Καθηγητές! Και αυτό που αναφέρω πιστεύω ότι δίνει την "απάντηση" στο δύσκολο μαθητή. (το στέλνει αδιάβαστο που λέμε), ενώ η λύση είναι "δεν μας ενδιαφέρει το γενικό, εδώ στη Γλώσσα βάζουμε παρενθέσεις, και δεν υπάρχει ζήτημα").

Για το DIV υπάρχει θέμα και ως προς αυτό: 12 DIV 3*2 άλλες γλώσσες θα δώσουν 2 και άλλες 8, ανάλογα πάλι τις προτεραιότητες.
πχ στην Python to 12 // 3 * 2 δίνει 8. Στη Visual Basic  το 12 \ 3 * 2 δίνει 2
« Τελευταία τροποποίηση: 18 Οκτ 2017, 09:10:27 μμ από bugman »

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

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2770
  • Πύργος Ηλείας
    • ΚΕΠΛΗΝΕΤ Ηλείας
Απ: Λογικοί τελεστές,div mod
« Απάντηση #7 στις: 19 Οκτ 2017, 11:36:53 πμ »
Ναι αλλά εδώ συζητούν Καθηγητές! Και αυτό που αναφέρω πιστεύω ότι δίνει την "απάντηση" στο δύσκολο μαθητή. (το στέλνει αδιάβαστο που λέμε), ενώ η λύση είναι "δεν μας ενδιαφέρει το γενικό, εδώ στη Γλώσσα βάζουμε παρενθέσεις, και δεν υπάρχει ζήτημα").

Όλοι καταλαβαίνουν ότι η σειρά των πράξεων επηρεάζει το αποτέλεσμα... Το θέμα είναι αν είναι όλοι σύμφωνοι για το ποια είναι η σωστή σειρά!

bugman

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 231
  • The Bug Eater
    • Πληροφορική Προγραμματισμός
Απ: Λογικοί τελεστές,div mod
« Απάντηση #8 στις: 19 Οκτ 2017, 02:31:48 μμ »
Δεν είναι θέμα δημοκρατίας εδώ, τι θέλουμε να συμφωνούμε όλοι, αλλά τι λέει το εγχειρίδιο της ΓΛΩΣΣΑΣ, το οποίο βέβαια λείπει και αντί αυτού υπάρχουν ασαφείς οδηγίες.
Η σειρά των πράξεων επηρεάζουν το αποτέλεσμα, ναι μεν, αλλά η σειρά δεν είναι δεδομένη, αυτό εξηγώ όπως όταν δείχνω τη χρήση του DIV σε Python και σε Visual Basic. Σε κάθε περίπτωση οφείλει αυτός που κατατοπίζει τον χρήστη να του πει τι ακριβώς στη περίπτωση της ΓΛΩΣΣΑΣ συμβαίνει, και όχι από διάσπαρτες ανακοινώσεις-σχόλια-όπως θες να τα πούμε, αλλά βάσει ενός εγχειριδίου που θα εμπλουτίζεται αν χρειαστεί, ή θα αναθεωρείται αν κάτι πάει στραβά, και θα είναι το σημείο αναφοράς!
Όλοι τα καταλαβαίνουμε αυτά αλλά απλά δεν τα βλέπουμε να χρησιμοποιούνται. Το εγχειρίδιο της ΓΛΩΣΣΑΣ θα ήταν τέσσερις-πέντε σελίδες, αραιά γραμμένο.
Και ίσως μετά από χρόνια να έβαζαν και καμιά συνάρτηση για αλφαριθμητικά!

JohnyF

  • Θαμώνας
  • ***
  • Μηνύματα: 38
Απ: Λογικοί τελεστές,div mod
« Απάντηση #9 στις: 19 Οκτ 2017, 10:06:28 μμ »
Σε ποιες άλλες γλώσσες γίνεται το div και mod με πραγματικούς και ποιο είναι τότε το αποτέλεσμα μιας τέτοιας πράξης;

Στη python divmod(3.0 , 2.0) σου δινει (1.0 , 1.0).Επίσης στη java System.out.println(3.0%2.0); σου δινει 1.0.Φαντάζομαι θα γίνεται μια χαρα και σε άλλες γλώσσες

JohnyF

  • Θαμώνας
  • ***
  • Μηνύματα: 38
Απ: Λογικοί τελεστές,div mod
« Απάντηση #10 στις: 19 Οκτ 2017, 10:09:51 μμ »
Υπάρχει νέα οδηγία που λέει ότι από τη στιγμή που στο βιβλίο της Β Λ περιέχεται η ιεραρχία των λογικών τελεστώ (1.ΟΧΙ 2.ΚΑΙ 3. 'Η) είναι γνωστό και στη Γ' Λ.

Αυτή η οδηγία είναι φετινή;Δηλαδη εγώ στα παιδιά να πω ότι προτεραιότητα έχει το και,και να μην μιλήσω για ασάφειες και τα λοιπα έτσι;

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2093
Απ: Λογικοί τελεστές,div mod
« Απάντηση #11 στις: 20 Οκτ 2017, 12:44:34 πμ »
Από τότε που άλλαξαν οι κατευθύνσεις είναι η οδηγία νομίζω
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

akouts

  • Νέος
  • *
  • Μηνύματα: 3
Απ: Λογικοί τελεστές,div mod
« Απάντηση #12 στις: 20 Οκτ 2017, 08:05:28 μμ »
http://users.sch.gr/akouts/docs/163578-D2-2-10-2017.pdf

Στη σελίδα 6 η απάντηση για τους λογικούς τελεστές.

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

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1050
Απ: Λογικοί τελεστές,div mod
« Απάντηση #13 στις: 02 Νοέ 2017, 12:10:06 πμ »
Θα πρέπει κάποια στιγμή να συνειδητοποιήσουμε οτι δεν πρέπει να συγκρίνουμε τη ΓΛΩΣΣΑ με πραγματικές γλώσσες προγραμματισμού.
Η ΓΛΩΣΣΑ κατασκευάστηκε για τις ανάγκες του μαθήματος με απλότητα και λιτότητα για να είναι κατανοητή από τον μαθητή.
Δυστυχώς ή ευτυχώς με αυτή πρέπει να βαδίσουμε για τις πανελληνιες και πρέπει να σταθούμε πάνω σε αυτήν αξιοποιώντας τις όσες δυνατότητες μας παρέχει.
Για όλα τα παραπάνω υπάρχουν οδηγίες αντιμετώπισης από το ΠΙ.

noname

  • Ομάδα διαγωνισμάτων 2013
  • *
  • Μηνύματα: 189
Απ: Λογικοί τελεστές,div mod
« Απάντηση #14 στις: 14 Ιαν 2018, 10:29:34 πμ »
Στις οδηγίες αναφέρει:
Παράθεση
Στο βιβλίο της Β' ΓΕΛ (ΕΑΕΗΥ σελ 35 στο πλαίσιο για τις Εκφράσεις, δίνεται ιεραρχία των
λογικών πράξεων (1. όχι , 2. και 3. ή). Στο Βιβλίο της Γ' δεν αναφέρεται η ιεραρχία των
λογικών πράξεων. Είναι δεκτή η ιεραρχία των λογικών πράξεων, όπως αναφέρεται στο
βιβλίο της Β' και μπορεί να χρησιμοποιηθεί σε ασκήσεις. Προτείνεται να διδαχθεί η καλή
τακτική της χρήσης παρενθέσεων.
Συνεπώς θεωρώ δύσκολο να δοθεί ως θέμα αυτό καθεαυτό στις πανελλήνιες που να ζητά την ιεραρχία των λογικών πράξεων είτε να παίζουν καθοριστικό ρόλο στον υπολογισμό του αποτελέσματος ενός ερωτήματος άπαξ και δεν αναφέρονται στο σχολικό βιβλίο της Γ' Λυκείου.
Εσείς τι λέτε;