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

Γενικό Λύκειο => Γ΄ Λυκείου => Μήνυμα ξεκίνησε από: JohnyF στις 18 Οκτ 2017, 04:12:42 ΠΜ

Τίτλος: Λογικοί τελεστές,div mod
Αποστολή από: JohnyF στις 18 Οκτ 2017, 04:12:42 ΠΜ
Λοιπόν είναι ένα πολυσυζητημένο θέμα απλά θέλω να δω τι ακριβώς θα πω στα παιδιά.Το ΚΑΙ έχει μεγαλύτερη προτεραιότητα από το Η;Θεωρείται ακόμα ασάφεια , ή έχει βρεθεί κάποια λύση;Να πω οτι είναι ασάφεια,δεν αναφέρεται στο βιβλίο,οπότε δε πρόκειται να μπει χωρίς παρενθέσεις;Η να πω οτι αν σας τύχει,όπως και να το κάνετε είναι σωστό;
Επίσης το επόμενο είναι το εξής.Στο βιβλίο αναφέρει οτι το div mod χρησιμοποιεί ακεράιους.Αυτό σημαίνει ότι απαγορεύεται να κάνουμε div Mod με πραγματικόυς;Σε άαλες γλωσσες γίνεται μια χαρά.
Και πάνω στο mod,div επίσης...Αναφέρεται κάπου τι κάνουμε πχ στο -3 div 2  ;Πως θα πρέπει αν λυθεί αυτό?Στο διερμηνευτή βγάζει -2 σαν αποτέλεσμα,δηλαδή μας πάει στο -6 που είναι σωστό..Η πχ στο -5 mod -3 βγάζει 1 που θα είναι ουσιαστικά -5-(-6)..Δε νομίζω τα παιδιά πρέπει να έχουν τοσο ειδικευμένες γνώσεις έτσι;
Τίτλος: Απ: Λογικοί τελεστές,div mod
Αποστολή από: ozorgnax στις 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
Τίτλος: Απ: Λογικοί τελεστές,div mod
Αποστολή από: nikosx στις 18 Οκτ 2017, 10:39:38 ΠΜ
Υπάρχει νέα οδηγία που λέει ότι από τη στιγμή που στο βιβλίο της Β Λ περιέχεται η ιεραρχία των λογικών τελεστώ (1.ΟΧΙ 2.ΚΑΙ 3. 'Η) είναι γνωστό και στη Γ' Λ.
Τίτλος: Απ: Λογικοί τελεστές,div mod
Αποστολή από: bugman στις 18 Οκτ 2017, 03:40:09 ΜΜ
Απλός τρόπος διαπίστωσης:
ΕΜΦΑΝΙΣΕ ΑΛΗΘΗΣ Η ΨΕΥΔΗΣ ΚΑΙ ΨΕΥΔΗΣ
αν δώσει ΨΕΥΔΗΣ τότε δεν υπάρχει προτεραιότητα στο ΚΑΙ
(ΑΛΗΘΗΣ Η ΨΕΥΔΗΣ) ΚΑΙ ΨΕΥΔΗΣ = ΑΛΗΘΗΣ ΚΑΙ ΨΕΥΔΗΣ = ΨΕΥΔΗΣ
αν δώσει ΑΛΗΘΗΣ τότε η ΚΑΙ έχει προτεραιότητα και δείτε πως λειτουργεί σε διερμηνευτή:
Υπάρχουν δυο καταχωρητές, ο συσσωρευτής, και το μερικό αποτέλεσμα. Στην Αρχή μπαίνει η τιμή ΑΛΗΘΗΣ στο συσσωρευτή. Μετά βλέπει ο διερμηνευτής το "Η" και ζητάει την επόμενη συνθήκη. Η επόμενη συνθήκη ξεκινάει και αυτή με το δικό της συσσωρευτή. Βάζει λοιπόν το ΨΕΥΔΗΣ αλλά δεν επιστρέφει (όπως θα έκανε αν όλα ήταν ίδιας προτεραιότητας) και κοιτάει τι έχει ακόμα. Βλέπει το "ΚΑΙ" και τότε πάει για την επόμενη συνθήκη. Εκεί βρίσκει το ΨΕΥΔΗΣ και τίποτα άλλο. Τώρα εκτελεί το (συσσωρευτής=συσσωρευτής ΚΑΙ μερικό αποτέλεσμα), και το δίνει στη θέση "μερικό αποτέλεσμα"  της προηγούμενης κλήσης. Εκεί εκτελεί το (συσσωρευτής=συσσωρευτής Η μερικό αποτέλεσμα), το ΑΛΗΘΗΣ η ΨΕΥΔΗΣ, άρα δίνει το ΨΕΥΔΗΣ στον συσσωρευτή. Γενικά ο συσσωρευτής είναι αυτός στον οποίο βγαίνει κάποιο αποτέλεσμα. Πώς γίνεται τώρα και έχουμε διπλό συσσωρευτή; Είναι τοπική μεταβλητή, ή σε υλοποίηση η προηγούμενη τιμή φυλάσσεται σε μια στοίβα.
Ασφαλώς είναι πιο γρήγορο να έχουμε εκτέλεση χωρίς να λογαριάζουμε προτεραιότητα, επειδή για αυτή την έκφραση αρκεί ένας συσσωρευτής, ο οποίος θα συσσωρεύει το αποτέλεσμα του κάθε επόμενου τελεστή. Οι παρενθέσεις βάζουν υποχρεωτικά το σύστημα να βγάζει νέο συσσωρευτή (μπορεί να πηγαίνει η τρέχουσα τιμή σε στοίβα). Έτσι οι παρενθέσεις στη δεύτερη περίπτωση κάνουν την επιλογή που γίνονταν αυτόματα στην πρώτη περίπτωση θέμα επιλογής του προγραμματιστή.
Να γιατί όταν ζητάνε "να μπαίνουν παρενθέσεις", σημαίνει ότι "είναι επιλογή του προγραμματιστή, όχι του διερμηνευτή/γλώσσας".



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

Υποθέτω ότι όλα αυτά δεν απευθύνονται σε μαθητές...
Τίτλος: Απ: Λογικοί τελεστές,div mod
Αποστολή από: Νίκος Αδαμόπουλος στις 18 Οκτ 2017, 08:29:06 ΜΜ
Παράθεση από: JohnyF στις 18 Οκτ 2017, 04:12:42 ΠΜ
Στο βιβλίο αναφέρει οτι το div mod χρησιμοποιεί ακεράιους.Αυτό σημαίνει ότι απαγορεύεται να κάνουμε div Mod με πραγματικόυς;Σε άαλες γλωσσες γίνεται μια χαρά.

Σε ποιες άλλες γλώσσες γίνεται το div και mod με πραγματικούς και ποιο είναι τότε το αποτέλεσμα μιας τέτοιας πράξης;
Τίτλος: Απ: Λογικοί τελεστές,div mod
Αποστολή από: bugman στις 18 Οκτ 2017, 08:59:45 ΜΜ
Ναι αλλά εδώ συζητούν Καθηγητές! Και αυτό που αναφέρω πιστεύω ότι δίνει την "απάντηση" στο δύσκολο μαθητή. (το στέλνει αδιάβαστο που λέμε), ενώ η λύση είναι "δεν μας ενδιαφέρει το γενικό, εδώ στη Γλώσσα βάζουμε παρενθέσεις, και δεν υπάρχει ζήτημα").

Για το DIV υπάρχει θέμα και ως προς αυτό: 12 DIV 3*2 άλλες γλώσσες θα δώσουν 2 και άλλες 8, ανάλογα πάλι τις προτεραιότητες.
πχ στην Python to 12 // 3 * 2 δίνει 8. Στη Visual Basic  το 12 \ 3 * 2 δίνει 2
Τίτλος: Απ: Λογικοί τελεστές,div mod
Αποστολή από: Νίκος Αδαμόπουλος στις 19 Οκτ 2017, 11:36:53 ΠΜ
Παράθεση από: bugman στις 18 Οκτ 2017, 08:59:45 ΜΜ
Ναι αλλά εδώ συζητούν Καθηγητές! Και αυτό που αναφέρω πιστεύω ότι δίνει την "απάντηση" στο δύσκολο μαθητή. (το στέλνει αδιάβαστο που λέμε), ενώ η λύση είναι "δεν μας ενδιαφέρει το γενικό, εδώ στη Γλώσσα βάζουμε παρενθέσεις, και δεν υπάρχει ζήτημα").

Όλοι καταλαβαίνουν ότι η σειρά των πράξεων επηρεάζει το αποτέλεσμα... Το θέμα είναι αν είναι όλοι σύμφωνοι για το ποια είναι η σωστή σειρά!
Τίτλος: Απ: Λογικοί τελεστές,div mod
Αποστολή από: bugman στις 19 Οκτ 2017, 02:31:48 ΜΜ
Δεν είναι θέμα δημοκρατίας εδώ, τι θέλουμε να συμφωνούμε όλοι, αλλά τι λέει το εγχειρίδιο της ΓΛΩΣΣΑΣ, το οποίο βέβαια λείπει και αντί αυτού υπάρχουν ασαφείς οδηγίες.
Η σειρά των πράξεων επηρεάζουν το αποτέλεσμα, ναι μεν, αλλά η σειρά δεν είναι δεδομένη, αυτό εξηγώ όπως όταν δείχνω τη χρήση του DIV σε Python και σε Visual Basic. Σε κάθε περίπτωση οφείλει αυτός που κατατοπίζει τον χρήστη να του πει τι ακριβώς στη περίπτωση της ΓΛΩΣΣΑΣ συμβαίνει, και όχι από διάσπαρτες ανακοινώσεις-σχόλια-όπως θες να τα πούμε, αλλά βάσει ενός εγχειριδίου που θα εμπλουτίζεται αν χρειαστεί, ή θα αναθεωρείται αν κάτι πάει στραβά, και θα είναι το σημείο αναφοράς!
Όλοι τα καταλαβαίνουμε αυτά αλλά απλά δεν τα βλέπουμε να χρησιμοποιούνται. Το εγχειρίδιο της ΓΛΩΣΣΑΣ θα ήταν τέσσερις-πέντε σελίδες, αραιά γραμμένο.
Και ίσως μετά από χρόνια να έβαζαν και καμιά συνάρτηση για αλφαριθμητικά!
Τίτλος: Απ: Λογικοί τελεστές,div mod
Αποστολή από: JohnyF στις 19 Οκτ 2017, 10:06:28 ΜΜ
Παράθεση από: Νίκος Αδαμόπουλος στις 18 Οκτ 2017, 08:29:06 ΜΜ
Σε ποιες άλλες γλώσσες γίνεται το div και mod με πραγματικούς και ποιο είναι τότε το αποτέλεσμα μιας τέτοιας πράξης;

Στη python divmod(3.0 , 2.0) σου δινει (1.0 , 1.0).Επίσης στη java System.out.println(3.0%2.0); σου δινει 1.0.Φαντάζομαι θα γίνεται μια χαρα και σε άλλες γλώσσες
Τίτλος: Απ: Λογικοί τελεστές,div mod
Αποστολή από: JohnyF στις 19 Οκτ 2017, 10:09:51 ΜΜ
Παράθεση από: nikosx στις 18 Οκτ 2017, 10:39:38 ΠΜ
Υπάρχει νέα οδηγία που λέει ότι από τη στιγμή που στο βιβλίο της Β Λ περιέχεται η ιεραρχία των λογικών τελεστώ (1.ΟΧΙ 2.ΚΑΙ 3. 'Η) είναι γνωστό και στη Γ' Λ.

Αυτή η οδηγία είναι φετινή;Δηλαδη εγώ στα παιδιά να πω ότι προτεραιότητα έχει το και,και να μην μιλήσω για ασάφειες και τα λοιπα έτσι;
Τίτλος: Απ: Λογικοί τελεστές,div mod
Αποστολή από: petrosp13 στις 20 Οκτ 2017, 12:44:34 ΠΜ
Από τότε που άλλαξαν οι κατευθύνσεις είναι η οδηγία νομίζω
Τίτλος: Απ: Λογικοί τελεστές,div mod
Αποστολή από: akouts στις 20 Οκτ 2017, 08:05:28 ΜΜ
http://users.sch.gr/akouts/docs/163578-D2-2-10-2017.pdf

Στη σελίδα 6 η απάντηση για τους λογικούς τελεστές.
Τίτλος: Απ: Λογικοί τελεστές,div mod
Αποστολή από: Καρκαμάνης Γεώργιος στις 02 Νοε 2017, 12:10:06 ΠΜ
Θα πρέπει κάποια στιγμή να συνειδητοποιήσουμε οτι δεν πρέπει να συγκρίνουμε τη ΓΛΩΣΣΑ με πραγματικές γλώσσες προγραμματισμού.
Η ΓΛΩΣΣΑ κατασκευάστηκε για τις ανάγκες του μαθήματος με απλότητα και λιτότητα για να είναι κατανοητή από τον μαθητή.
Δυστυχώς ή ευτυχώς με αυτή πρέπει να βαδίσουμε για τις πανελληνιες και πρέπει να σταθούμε πάνω σε αυτήν αξιοποιώντας τις όσες δυνατότητες μας παρέχει.
Για όλα τα παραπάνω υπάρχουν οδηγίες αντιμετώπισης από το ΠΙ.
Τίτλος: Απ: Λογικοί τελεστές,div mod
Αποστολή από: noname στις 14 Ιαν 2018, 10:29:34 ΠΜ
Στις οδηγίες αναφέρει:
ΠαράθεσηΣτο βιβλίο της Β' ΓΕΛ (ΕΑΕΗΥ σελ 35 στο πλαίσιο για τις Εκφράσεις, δίνεται ιεραρχία των
λογικών πράξεων (1. όχι , 2. και 3. ή). Στο Βιβλίο της Γ' δεν αναφέρεται η ιεραρχία των
λογικών πράξεων. Είναι δεκτή η ιεραρχία των λογικών πράξεων, όπως αναφέρεται στο
βιβλίο της Β' και μπορεί να χρησιμοποιηθεί σε ασκήσεις. Προτείνεται να διδαχθεί η καλή
τακτική της χρήσης παρενθέσεων.
Συνεπώς θεωρώ δύσκολο να δοθεί ως θέμα αυτό καθεαυτό στις πανελλήνιες που να ζητά την ιεραρχία των λογικών πράξεων είτε να παίζουν καθοριστικό ρόλο στον υπολογισμό του αποτελέσματος ενός ερωτήματος άπαξ και δεν αναφέρονται στο σχολικό βιβλίο της Γ' Λυκείου.
Εσείς τι λέτε;
Τίτλος: Απ: Λογικοί τελεστές,div mod
Αποστολή από: P.Tsiotakis στις 14 Ιαν 2018, 06:15:50 ΜΜ
Καλησπέρα,
στο βιβλίο οδηγιών μελέτης μαθητή (2015) αναφέρει στη σελίδα 12 ότι η ιεραρχία των λογικών τελεστών είναι:
1. όχι
2. και
3. ή.
Επίσης, για τους αριθμητικούς τελεστές, στη σελίδα 10 αναφέρει ότι οι τελεστές div, mod έχουν την ίδια ιεραρχία με *, /.
Οι μαθητές λαμβάνουν έντυπα το βιβλίο από πέρσι.

Οπότε μάλλον είναι ξεκάθαρο και λυμένο το ζήτημα.

ΥΓ (προσθήκη): φυσικά και οι οδηγίες διδασκαλίας και το βιβλίο της Β λυκείου έχουν την ίδια αντιμετώπιση στο ζήτημα.
Τίτλος: Απ: Λογικοί τελεστές,div mod
Αποστολή από: Κωστας τζιαννης στις 25 Μαΐου 2018, 08:00:41 ΠΜ
ενας τροπος για να το θυμαται καποιος καθηγητης (οχι μαθητης γιατι δεν το ξερει)ειναι η boolean αλγεβρα.σε αυτην το αληθης ειναι 1 το ψευδης=0
το οχι ειναι το συμπληρωμα και συμβολιζεται με τονο(0'=1,1'=0) το Η ειναι η πραξη της προσθεσης και το ΚΑΙ η πραξη του πολλαπλασιασμου.
θα συμβολισω Α αληθες και Ψ ψευδες.
εχω λοιπον

0+0=0
ψ Η ψ=ψ

0+1=1
Ψ Η Α=Α

1+0=1
α η ψ=α

1+1=1
α η α=α

0*0=0
ψ και ψ=ψ

0*1=0
ψ και α=ψ

1*0=0
α και ψ=ψ

1*1=1
α και α=α

πχ αληθης η  ψευδης η αληθης και οχι ψευδης

μετατρεπω σε bool και εχω

1+0+1*0'=1+1*0'=1+1*1=1+1=1 αρα αληθης η εκφραση
Τίτλος: Απ: Λογικοί τελεστές,div mod
Αποστολή από: akalest0s στις 05 Ιουν 2018, 04:48:26 ΜΜ
Παράθεση από: ozorgnax στις 18 Οκτ 2017, 07:46:02 ΠΜ
Εχει βγει διευκρίνιση από το υπουργείο που λέει ότι οι αριθμοί που συμμετέχουν σε πράξεις με div και mod πρέπει να θεωρούνται θετικοί ακέραιοι.
http://dide.sam.sch.gr/keplinet/images/newsletters/aepp_div_mod.pdf
Στο παράδειγμα το πρώτο, αντί για 1 έπρεπε να βρίσκει 4, ή λάθος κάνω;  :P
Τίτλος: Απ: Λογικοί τελεστές,div mod
Αποστολή από: evry στις 05 Ιουν 2018, 07:31:23 ΜΜ
Παλιές καλές εποχές. >:D
Το αρχείο αυτό είναι ιστορικό μια και δεν θυμάμαι πριν από αυτό κάποια άλλη οδηγία από το Π.Ι.
Τίτλος: Απ: Λογικοί τελεστές,div mod
Αποστολή από: taxata στις 05 Ιουν 2018, 07:45:54 ΜΜ
και έχει και λάθος στα παραδείγματα
Τίτλος: Απ: Λογικοί τελεστές,div mod
Αποστολή από: evry στις 05 Ιουν 2018, 08:53:29 ΜΜ
μα για αυτό είναι ιστορικό!
Μια οδηγία αποφάσισαν να στείλουν και αυτή λάθος ήταν! >:D

Εκείνες τις εποχές ένα κόμμα να αλλάξει στο βιβλίο ήθελε ολόκληρη φασαρία.
Σήμερα όλα αλλάζουν σε χρόνο dt.
Για αυτό είπα άλλες εποχές.
Τίτλος: Απ: Λογικοί τελεστές,div mod
Αποστολή από: andreas_p στις 08 Ιουν 2018, 05:08:24 ΜΜ
Βλ Ταταράκη