Λοιπόν είναι ένα πολυσυζητημένο θέμα απλά θέλω να δω τι ακριβώς θα πω στα παιδιά.Το ΚΑΙ έχει μεγαλύτερη προτεραιότητα από το Η;Θεωρείται ακόμα ασάφεια , ή έχει βρεθεί κάποια λύση;Να πω οτι είναι ασάφεια,δεν αναφέρεται στο βιβλίο,οπότε δε πρόκειται να μπει χωρίς παρενθέσεις;Η να πω οτι αν σας τύχει,όπως και να το κάνετε είναι σωστό;
Επίσης το επόμενο είναι το εξής.Στο βιβλίο αναφέρει οτι το div mod χρησιμοποιεί ακεράιους.Αυτό σημαίνει ότι απαγορεύεται να κάνουμε div Mod με πραγματικόυς;Σε άαλες γλωσσες γίνεται μια χαρά.
Και πάνω στο mod,div επίσης...Αναφέρεται κάπου τι κάνουμε πχ στο -3 div 2 ;Πως θα πρέπει αν λυθεί αυτό?Στο διερμηνευτή βγάζει -2 σαν αποτέλεσμα,δηλαδή μας πάει στο -6 που είναι σωστό..Η πχ στο -5 mod -3 βγάζει 1 που θα είναι ουσιαστικά -5-(-6)..Δε νομίζω τα παιδιά πρέπει να έχουν τοσο ειδικευμένες γνώσεις έτσι;
Εχει βγει διευκρίνιση από το υπουργείο που λέει ότι οι αριθμοί που συμμετέχουν σε πράξεις με div και mod πρέπει να θεωρούνται θετικοί ακέραιοι.
http://dide.sam.sch.gr/keplinet/images/newsletters/aepp_div_mod.pdf
Και το έγγραφο για την προτεραιότητα των λογικών τελεστών (ουσιαστικά λέει ότι καλύτερα να χρησιμοποιούνται πάντοτε παρενθέσεις)
https://aepp.files.wordpress.com/2011/04/aepp_telestes.pdf
Υπάρχει νέα οδηγία που λέει ότι από τη στιγμή που στο βιβλίο της Β Λ περιέχεται η ιεραρχία των λογικών τελεστώ (1.ΟΧΙ 2.ΚΑΙ 3. 'Η) είναι γνωστό και στη Γ' Λ.
Απλός τρόπος διαπίστωσης:
ΕΜΦΑΝΙΣΕ ΑΛΗΘΗΣ Η ΨΕΥΔΗΣ ΚΑΙ ΨΕΥΔΗΣ
αν δώσει ΨΕΥΔΗΣ τότε δεν υπάρχει προτεραιότητα στο ΚΑΙ
(ΑΛΗΘΗΣ Η ΨΕΥΔΗΣ) ΚΑΙ ΨΕΥΔΗΣ = ΑΛΗΘΗΣ ΚΑΙ ΨΕΥΔΗΣ = ΨΕΥΔΗΣ
αν δώσει ΑΛΗΘΗΣ τότε η ΚΑΙ έχει προτεραιότητα και δείτε πως λειτουργεί σε διερμηνευτή:
Υπάρχουν δυο καταχωρητές, ο συσσωρευτής, και το μερικό αποτέλεσμα. Στην Αρχή μπαίνει η τιμή ΑΛΗΘΗΣ στο συσσωρευτή. Μετά βλέπει ο διερμηνευτής το "Η" και ζητάει την επόμενη συνθήκη. Η επόμενη συνθήκη ξεκινάει και αυτή με το δικό της συσσωρευτή. Βάζει λοιπόν το ΨΕΥΔΗΣ αλλά δεν επιστρέφει (όπως θα έκανε αν όλα ήταν ίδιας προτεραιότητας) και κοιτάει τι έχει ακόμα. Βλέπει το "ΚΑΙ" και τότε πάει για την επόμενη συνθήκη. Εκεί βρίσκει το ΨΕΥΔΗΣ και τίποτα άλλο. Τώρα εκτελεί το (συσσωρευτής=συσσωρευτής ΚΑΙ μερικό αποτέλεσμα), και το δίνει στη θέση "μερικό αποτέλεσμα" της προηγούμενης κλήσης. Εκεί εκτελεί το (συσσωρευτής=συσσωρευτής Η μερικό αποτέλεσμα), το ΑΛΗΘΗΣ η ΨΕΥΔΗΣ, άρα δίνει το ΨΕΥΔΗΣ στον συσσωρευτή. Γενικά ο συσσωρευτής είναι αυτός στον οποίο βγαίνει κάποιο αποτέλεσμα. Πώς γίνεται τώρα και έχουμε διπλό συσσωρευτή; Είναι τοπική μεταβλητή, ή σε υλοποίηση η προηγούμενη τιμή φυλάσσεται σε μια στοίβα.
Ασφαλώς είναι πιο γρήγορο να έχουμε εκτέλεση χωρίς να λογαριάζουμε προτεραιότητα, επειδή για αυτή την έκφραση αρκεί ένας συσσωρευτής, ο οποίος θα συσσωρεύει το αποτέλεσμα του κάθε επόμενου τελεστή. Οι παρενθέσεις βάζουν υποχρεωτικά το σύστημα να βγάζει νέο συσσωρευτή (μπορεί να πηγαίνει η τρέχουσα τιμή σε στοίβα). Έτσι οι παρενθέσεις στη δεύτερη περίπτωση κάνουν την επιλογή που γίνονταν αυτόματα στην πρώτη περίπτωση θέμα επιλογής του προγραμματιστή.
Να γιατί όταν ζητάνε "να μπαίνουν παρενθέσεις", σημαίνει ότι "είναι επιλογή του προγραμματιστή, όχι του διερμηνευτή/γλώσσας".
Παράθεση από: bugman στις 18 Οκτ 2017, 03:40:09 ΜΜ
Απλός τρόπος διαπίστωσης:
ΕΜΦΑΝΙΣΕ ΑΛΗΘΗΣ Η ΨΕΥΔΗΣ ΚΑΙ ΨΕΥΔΗΣ
αν δώσει ΨΕΥΔΗΣ τότε δεν υπάρχει προτεραιότητα στο ΚΑΙ
(ΑΛΗΘΗΣ Η ΨΕΥΔΗΣ) ΚΑΙ ΨΕΥΔΗΣ = ΑΛΗΘΗΣ ΚΑΙ ΨΕΥΔΗΣ = ΨΕΥΔΗΣ
αν δώσει ΑΛΗΘΗΣ τότε η ΚΑΙ έχει προτεραιότητα και δείτε πως λειτουργεί σε διερμηνευτή:
Υπάρχουν δυο καταχωρητές, ο συσσωρευτής, και το μερικό αποτέλεσμα. Στην Αρχή μπαίνει η τιμή ΑΛΗΘΗΣ στο συσσωρευτή. Μετά βλέπει ο διερμηνευτής το "Η" και ζητάει την επόμενη συνθήκη. Η επόμενη συνθήκη ξεκινάει και αυτή με το δικό της συσσωρευτή. Βάζει λοιπόν το ΨΕΥΔΗΣ αλλά δεν επιστρέφει (όπως θα έκανε αν όλα ήταν ίδιας προτεραιότητας) και κοιτάει τι έχει ακόμα. Βλέπει το "ΚΑΙ" και τότε πάει για την επόμενη συνθήκη. Εκεί βρίσκει το ΨΕΥΔΗΣ και τίποτα άλλο. Τώρα εκτελεί το (συσσωρευτής=συσσωρευτής ΚΑΙ μερικό αποτέλεσμα), και το δίνει στη θέση "μερικό αποτέλεσμα" της προηγούμενης κλήσης. Εκεί εκτελεί το (συσσωρευτής=συσσωρευτής Η μερικό αποτέλεσμα), το ΑΛΗΘΗΣ η ΨΕΥΔΗΣ, άρα δίνει το ΨΕΥΔΗΣ στον συσσωρευτή. Γενικά ο συσσωρευτής είναι αυτός στον οποίο βγαίνει κάποιο αποτέλεσμα. Πώς γίνεται τώρα και έχουμε διπλό συσσωρευτή; Είναι τοπική μεταβλητή, ή σε υλοποίηση η προηγούμενη τιμή φυλάσσεται σε μια στοίβα.
Ασφαλώς είναι πιο γρήγορο να έχουμε εκτέλεση χωρίς να λογαριάζουμε προτεραιότητα, επειδή για αυτή την έκφραση αρκεί ένας συσσωρευτής, ο οποίος θα συσσωρεύει το αποτέλεσμα του κάθε επόμενου τελεστή. Οι παρενθέσεις βάζουν υποχρεωτικά το σύστημα να βγάζει νέο συσσωρευτή (μπορεί να πηγαίνει η τρέχουσα τιμή σε στοίβα). Έτσι οι παρενθέσεις στη δεύτερη περίπτωση κάνουν την επιλογή που γίνονταν αυτόματα στην πρώτη περίπτωση θέμα επιλογής του προγραμματιστή.
Να γιατί όταν ζητάνε "να μπαίνουν παρενθέσεις", σημαίνει ότι "είναι επιλογή του προγραμματιστή, όχι του διερμηνευτή/γλώσσας".
Υποθέτω ότι όλα αυτά δεν απευθύνονται σε μαθητές...
Παράθεση από: JohnyF στις 18 Οκτ 2017, 04:12:42 ΠΜ
Στο βιβλίο αναφέρει οτι το div mod χρησιμοποιεί ακεράιους.Αυτό σημαίνει ότι απαγορεύεται να κάνουμε div Mod με πραγματικόυς;Σε άαλες γλωσσες γίνεται μια χαρά.
Σε ποιες άλλες γλώσσες γίνεται το div και mod με πραγματικούς και ποιο είναι τότε το αποτέλεσμα μιας τέτοιας πράξης;
Ναι αλλά εδώ συζητούν Καθηγητές! Και αυτό που αναφέρω πιστεύω ότι δίνει την "απάντηση" στο δύσκολο μαθητή. (το στέλνει αδιάβαστο που λέμε), ενώ η λύση είναι "δεν μας ενδιαφέρει το γενικό, εδώ στη Γλώσσα βάζουμε παρενθέσεις, και δεν υπάρχει ζήτημα").
Για το DIV υπάρχει θέμα και ως προς αυτό: 12 DIV 3*2 άλλες γλώσσες θα δώσουν 2 και άλλες 8, ανάλογα πάλι τις προτεραιότητες.
πχ στην Python to 12 // 3 * 2 δίνει 8. Στη Visual Basic το 12 \ 3 * 2 δίνει 2
Παράθεση από: bugman στις 18 Οκτ 2017, 08:59:45 ΜΜ
Ναι αλλά εδώ συζητούν Καθηγητές! Και αυτό που αναφέρω πιστεύω ότι δίνει την "απάντηση" στο δύσκολο μαθητή. (το στέλνει αδιάβαστο που λέμε), ενώ η λύση είναι "δεν μας ενδιαφέρει το γενικό, εδώ στη Γλώσσα βάζουμε παρενθέσεις, και δεν υπάρχει ζήτημα").
Όλοι καταλαβαίνουν ότι η σειρά των πράξεων επηρεάζει το αποτέλεσμα... Το θέμα είναι αν είναι όλοι σύμφωνοι για το ποια είναι η σωστή σειρά!
Δεν είναι θέμα δημοκρατίας εδώ, τι θέλουμε να συμφωνούμε όλοι, αλλά τι λέει το εγχειρίδιο της ΓΛΩΣΣΑΣ, το οποίο βέβαια λείπει και αντί αυτού υπάρχουν ασαφείς οδηγίες.
Η σειρά των πράξεων επηρεάζουν το αποτέλεσμα, ναι μεν, αλλά η σειρά δεν είναι δεδομένη, αυτό εξηγώ όπως όταν δείχνω τη χρήση του DIV σε Python και σε Visual Basic. Σε κάθε περίπτωση οφείλει αυτός που κατατοπίζει τον χρήστη να του πει τι ακριβώς στη περίπτωση της ΓΛΩΣΣΑΣ συμβαίνει, και όχι από διάσπαρτες ανακοινώσεις-σχόλια-όπως θες να τα πούμε, αλλά βάσει ενός εγχειριδίου που θα εμπλουτίζεται αν χρειαστεί, ή θα αναθεωρείται αν κάτι πάει στραβά, και θα είναι το σημείο αναφοράς!
Όλοι τα καταλαβαίνουμε αυτά αλλά απλά δεν τα βλέπουμε να χρησιμοποιούνται. Το εγχειρίδιο της ΓΛΩΣΣΑΣ θα ήταν τέσσερις-πέντε σελίδες, αραιά γραμμένο.
Και ίσως μετά από χρόνια να έβαζαν και καμιά συνάρτηση για αλφαριθμητικά!
Παράθεση από: Νίκος Αδαμόπουλος στις 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.Φαντάζομαι θα γίνεται μια χαρα και σε άλλες γλώσσες
Παράθεση από: nikosx στις 18 Οκτ 2017, 10:39:38 ΠΜ
Υπάρχει νέα οδηγία που λέει ότι από τη στιγμή που στο βιβλίο της Β Λ περιέχεται η ιεραρχία των λογικών τελεστώ (1.ΟΧΙ 2.ΚΑΙ 3. 'Η) είναι γνωστό και στη Γ' Λ.
Αυτή η οδηγία είναι φετινή;Δηλαδη εγώ στα παιδιά να πω ότι προτεραιότητα έχει το και,και να μην μιλήσω για ασάφειες και τα λοιπα έτσι;
Από τότε που άλλαξαν οι κατευθύνσεις είναι η οδηγία νομίζω
http://users.sch.gr/akouts/docs/163578-D2-2-10-2017.pdf
Στη σελίδα 6 η απάντηση για τους λογικούς τελεστές.
Θα πρέπει κάποια στιγμή να συνειδητοποιήσουμε οτι δεν πρέπει να συγκρίνουμε τη ΓΛΩΣΣΑ με πραγματικές γλώσσες προγραμματισμού.
Η ΓΛΩΣΣΑ κατασκευάστηκε για τις ανάγκες του μαθήματος με απλότητα και λιτότητα για να είναι κατανοητή από τον μαθητή.
Δυστυχώς ή ευτυχώς με αυτή πρέπει να βαδίσουμε για τις πανελληνιες και πρέπει να σταθούμε πάνω σε αυτήν αξιοποιώντας τις όσες δυνατότητες μας παρέχει.
Για όλα τα παραπάνω υπάρχουν οδηγίες αντιμετώπισης από το ΠΙ.
Στις οδηγίες αναφέρει:
ΠαράθεσηΣτο βιβλίο της Β' ΓΕΛ (ΕΑΕΗΥ σελ 35 στο πλαίσιο για τις Εκφράσεις, δίνεται ιεραρχία των
λογικών πράξεων (1. όχι , 2. και 3. ή). Στο Βιβλίο της Γ' δεν αναφέρεται η ιεραρχία των
λογικών πράξεων. Είναι δεκτή η ιεραρχία των λογικών πράξεων, όπως αναφέρεται στο
βιβλίο της Β' και μπορεί να χρησιμοποιηθεί σε ασκήσεις. Προτείνεται να διδαχθεί η καλή
τακτική της χρήσης παρενθέσεων.
Συνεπώς θεωρώ δύσκολο να δοθεί ως θέμα αυτό καθεαυτό στις πανελλήνιες που να ζητά την ιεραρχία των λογικών πράξεων είτε να παίζουν καθοριστικό ρόλο στον υπολογισμό του αποτελέσματος ενός ερωτήματος άπαξ και δεν αναφέρονται στο σχολικό βιβλίο της Γ' Λυκείου.
Εσείς τι λέτε;
Καλησπέρα,
στο βιβλίο οδηγιών μελέτης μαθητή (2015) αναφέρει στη σελίδα 12 ότι η ιεραρχία των λογικών τελεστών είναι:
1. όχι
2. και
3. ή.
Επίσης, για τους αριθμητικούς τελεστές, στη σελίδα 10 αναφέρει ότι οι τελεστές div, mod έχουν την ίδια ιεραρχία με *, /.
Οι μαθητές λαμβάνουν έντυπα το βιβλίο από πέρσι.
Οπότε μάλλον είναι ξεκάθαρο και λυμένο το ζήτημα.
ΥΓ (προσθήκη): φυσικά και οι οδηγίες διδασκαλίας και το βιβλίο της Β λυκείου έχουν την ίδια αντιμετώπιση στο ζήτημα.
ενας τροπος για να το θυμαται καποιος καθηγητης (οχι μαθητης γιατι δεν το ξερει)ειναι η 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 αρα αληθης η εκφραση
Παράθεση από: ozorgnax στις 18 Οκτ 2017, 07:46:02 ΠΜ
Εχει βγει διευκρίνιση από το υπουργείο που λέει ότι οι αριθμοί που συμμετέχουν σε πράξεις με div και mod πρέπει να θεωρούνται θετικοί ακέραιοι.
http://dide.sam.sch.gr/keplinet/images/newsletters/aepp_div_mod.pdf
Στο παράδειγμα το πρώτο, αντί για 1 έπρεπε να βρίσκει 4, ή λάθος κάνω; :P
Παλιές καλές εποχές. >:D
Το αρχείο αυτό είναι ιστορικό μια και δεν θυμάμαι πριν από αυτό κάποια άλλη οδηγία από το Π.Ι.
και έχει και λάθος στα παραδείγματα
μα για αυτό είναι ιστορικό!
Μια οδηγία αποφάσισαν να στείλουν και αυτή λάθος ήταν! >:D
Εκείνες τις εποχές ένα κόμμα να αλλάξει στο βιβλίο ήθελε ολόκληρη φασαρία.
Σήμερα όλα αλλάζουν σε χρόνο dt.
Για αυτό είπα άλλες εποχές.
Βλ Ταταράκη