Ασάφειες της ΑΕΠΠ

Ξεκίνησε από alkisg, 18 Απρ 2007, 05:02:56 ΜΜ

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

P.Tsiotakis

Άλκη, εντόπισα λάθη (κάποιος δε μελέτησε καλά το μάθημά του), πχ με την ΕΠΙΛΕΞΕ, στο τρετράδιο μαθητή στη ΓΛΩΣΣΑ επιτρέπονται συνθήκες...

ΘΑ ΔΟΥΜΕ

gpapargi

Μακάρι να ήξερα Άλκη. Αν θέλουμε να καταλήξουμε σε «καμία επανάληψη» τότε είναι ι<= 1, δηλαδή δείχνουμε κάποια προτίμηση στο <= και το χρησιμοποιούμε στην ουδέτερη περίπτωση του βήματος 0. Αν βάλουμε ι>=1 τότε για τον καθορισμό του τελεστή, μετά το πρόσημο του βήματος, έχουμε δευτερεύον κριτήριο τα άκρα.της Για. (και ασάφεια στο Για ι από 1 μέχρι 1 με_βήμα 0).
Θα ήθελα να έρθει μια ολοκληρωμένη  απάντηση από «πάνω». Μην κάνουμε πάλι υποθέσεις. Υποτίθεται αυτός είναι  ρόλος των διευκρινίσεων.

papaluk

1.Σύμφωνα με όσα πρέπει να διδάξουμε στην επιμόρφωση
Οι τελεστές div και mod ορίζονται ως ευκλείδια διαίρεση και όχι όπως ορίζονται στην Πληροφορική. Επομένως (-17) MOD 5 δίνει -3 και (-17) DIV 5 δίνει -4.

μπορει κάποιος να εξηγήσει το παραπάνω
ξέρω ισχύει Δ=δ*π+υ, δηλαδή -17=5*(-4)+(-3), δηλαδή -17=-23??? Στην ευκλείδια διαίρεση το υπόλοιπο δεν είναι θετική ποσότητα?

2. Στην μετατροπή του Για σε Οσο γιατι να ισχύουν διαφορετικά πράγματα σε ΓΛΩΣΣΑ με ψευδογλώσσα?
για κ απο τ1 μεχρι τ2 με βήμα β
β=0, ατέρμων βρόγχος
β>0, τοτε κ<-- τ1 οσο κ<= τ2
β<0,τοτε κ<-- τ1 οσο κ>= τ2

και λύσαμε το πρόβλημα μας με κοινή γραμμή, τι θα πω στους μαθητές όταν με ρωτήσουν δάσκαλε γιατί με άλλο τρόπο η ΓΛΩΣΣΑ και με άλλο η ψευδογλώσσα

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

4. Δίνεται κώδικας
χ<--2
κ<--3
Διαβασανε Ν
ΟΣΟ κ>0 επανάλαβε
  κ<--κ+Ν
Τελος_επανάληψης

Ποιό κριτήριο δεν ικανοποιείται?

Εφόσον Ν θετικό περατότητα?
Ανεξάρτητα από Ν εξόδου?

5. εφόσον καλώ από συνάρτηση διαδικασία και συμφωνώ ότι στη συνάρτηση δεν έχω γραψε, διαβασε
μπορώ να καλέσω συνάρτηση χωρίς παράμετρο, αφου τιμες που θα χρειαστεί μπορεί να τις δεχτεί από διαδικασία που καλεί, πχ να εχεις τη συνάρτηση Σ1 και να ισχύει κ<--Σ1(). Ο κύριος Τσιωτάκης αναφέρει στο βοήθημα του ότι αναγκαστικά στελνω παράμετρο με τιμή στη συνάρτηση. Στη διαδικασία δν θυμάμαι που ακριβώς το έχω συναντήσει αλλά μπορούμε να πούμε ΚΑΛΕΣΕ Δ1().

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

P.Tsiotakis

Για τη διαδικασία το βιβλίο λέει πως μπορεί να μην υπάρχει παράμετρος εισόδου.
Για τη συνάρτηση ΔΕΝ το λέει. Αντίθετα, λέει πως συμπεριφέρετε μια συνάρτηση όπως οι συναρτήσει της ΓΛΩΣΣΑΣ, δηλαδή δέχονται τιμές και επιτρέφουν μια τιμή. Η λειτουργία της συνάρτησης είναι περιορισμένη συνάδελφοι στο διδακτικό μας πακέτο...

pgrontas

Νομίζω πως το θέμα με την ύπαρξη ΔΙΑΒΑΣΕ, ΓΡΑΨΕ σε συνάρτηση ξεκαθαρίζει αν θεωρήσουμε τις συναρτήσεις με τον τρόπο που τις θεωρούν οι λεγόμενες pure συναρτησιακές γλώσσες (πχ. haskell), ο οποίος είναι συμβατός με αυτό που λέει το διδακτικό πακέτο ότι μοιάζουν με τις συναρτήσεις των μαθηματικών.
Συγκεκριμένα στα μαθηματικά και σε αυτές τις γλώσσες μια συνάρτηση επιστρέφει πάντα το ίδιο αποτέλεσμα για την ίδια τιμή εισόδου (παράμετρο). Αν επιτρέψεις ΔΙΑΒΑΣΕ σε μια συνάρτηση κινδυνεύεις να το καταστρέψεις αυτό, γιατί η τιμή της συνάρτησης για την ίδια παράμετρο εξαρτάται και από τα δεδομένα που θα δώσει ο χρήστης μέσω της ΔΙΑΒΑΣΕ.

Η παραπάνω άποψη επιπλέον αποκλείει την κλήση διαδικασίας από συνάρτηση.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

bagelis

Δηλαδή δεν θα μπορούσε  να υπάρξει η συνάρτηση ΤΥΧΑΙΟΣ_ΑΡΙΘΜΟΣ(  ) (η οποία προφανώς δεν παίρνει όρισμα) ??

Ούτε το παρακάτω:
ΣΥΝΑΡΤΗΣΗ ΕμβαδόΔακτυλίου(ρ1, ρ2): ΠΡΑΓΜΑΤΙΚΗ
...
ΑΡΧΗ
   ΑΝ ρ1 < ρ2 τΟΤΕ
       ΚΑΛΕΣΕ Αντιμετάθεση (ρ1, ρ2)
   ΤΕΛΟΣ_ΑΝ

   ΕμβαδόΔακτυλίου <-- π*ρ1^2 - π*ρ2^2
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

pgrontas

Παράθεση από: bagelis στις 02 Απρ 2008, 01:43:38 ΜΜ
Δηλαδή δεν θα μπορούσε  να υπάρξει η συνάρτηση ΤΥΧΑΙΟΣ_ΑΡΙΘΜΟΣ(  ) (η οποία προφανώς δεν παίρνει όρισμα) ??
Οι συναρτήσεις τυχαιών αριθμών, έχουν κάποιο όρισμα (το γνωστό seed) και νομίζω ότι είναι πιο σωστό να μην δούμε μια συνάρτηση τυχαίων αριθμών ως συνάρτηση που επιστρέφει μια τιμή μόνο, αλλά ως συνάρτηση που επιστρέφει ακολουθία τιμών (τα οποία πληρούν χαρακτηριστικά τυχαιότητας)
Παράθεση
Ούτε το παρακάτω:
ΣΥΝΑΡΤΗΣΗ ΕμβαδόΔακτυλίου(ρ1, ρ2): ΠΡΑΓΜΑΤΙΚΗ
...
ΑΡΧΗ
   ΑΝ ρ1 < ρ2 τΟΤΕ
       ΚΑΛΕΣΕ Αντιμετάθεση (ρ1, ρ2)
   ΤΕΛΟΣ_ΑΝ

   ΕμβαδόΔακτυλίου <-- π*ρ1^2 - π*ρ2^2
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
To παράδειγμα αυτό επιστρέφει πάντα για τις ίδιες ρ1 και ρ2 το ίδιο αποτέλεσμα. Μπορεί να υλοποιηθεί εξάλλου και χωρίς την αντιμετάθεσε ως εξής:

ΣΥΝΑΡΤΗΣΗ ΕμβαδόΔακτυλίου(ρ1, ρ2): ΠΡΑΓΜΑΤΙΚΗ
...
ΑΡΧΗ
   ΑΝ ρ1 < ρ2 τΟΤΕ
       ΕμβαδόΔακτυλίου <-- π*ρ1^2 - π*ρ2^2
   ΑΛΛΙΩΣ
       ΕμβαδόΔακτυλίου <-- π*ρ2^2 - π*ρ1^2
   ΤΕΛΟΣ_ΑΝ 
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ


Σίγουρα ο αποκλεισμός διάβασε / γράψε / διαδικασιών είναι περίεργος αν σκεφτούμε μόνο τις συναρτήσεις της C/Pascal κτλ. αλλά δεν είναι περίεργος αν σκεφτούμε τις μαθηματικές συναρτήσεις.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

bagelis

Άρα και το Σ - Λ που είχε πέσει στις Εξετάσεις και έλεγε "ένα υποπρόγραμμα μπορεί να κληθεί από άλλο υποπρόγραμμα" είναι λάθος ????

pgrontas

Παράθεση από: bagelis στις 02 Απρ 2008, 02:40:54 ΜΜ
Άρα και το Σ - Λ που είχε πέσει στις Εξετάσεις και έλεγε "ένα υποπρόγραμμα μπορεί να κληθεί από άλλο υποπρόγραμμα" είναι λάθος ????

Αλήθεια ποια ήταν η σωστή απάντηση σε αυτό?

Απλά προσπαθώ να καταλάβω για  ποιο λόγο να μην επιτρέπεται η χρήση διάβασε / γράψε από συνάρτηση. Η μόνη λύση που σκέφτηκα εγώ είναι η σύγκριση των συναρτήσεων της γλώσσας με αυτές των μαθηματικών, σε ότι αφορά το ίδιο αποτέλεσμα για τις ίδιες παραμέτρους. Δυστυχώς αυτή η λύση αποκλείει και την κλήση διαδικασιών από συναρτήσεις.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

alkisg

Επισυνάπτω το αναθεωρημένο κείμενο από την ενότητα Α4 της επιμόρφωσης των εκπαιδευτικών πληροφορικής.
Οι θέσεις παρακάτω δεν είναι του ΥΠΕΠΘ ή του ΠΙ, αφού όμως θα διαβιβαστούν σε μεγάλο μέρος συναδέλφων μέσω της επιμόρφωσης, είναι πιστεύω καλό να τις ακολουθήσουμε όλοι μας (κι επομένως όσοι χρησιμοποιείτε Διερμηνευτή προσαρμόστε την προτεραιότητα του τελεστή ΚΑΙ από το μενού Επιλογές > καρτέλα ασάφειες).




4. Παρατηρήσεις για Α.Ε.Π.Π

Κεφάλαιο 4ο - Παρατηρήσεις για Ανάπτυξη Εφαρμογών σε Π.Π.


Εδώ παρουσιάζονται μερικές παρατηρήσεις σχετικά με το μάθημα "Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον" στο κομμάτι που αφορά στις βασικές ακολουθιακές δομές και έννοιες (κεφάλαια 2, 7,8).

Το γεγονός ότι το μάθημα εξετάζεται σε πανελλήνιο επίπεδο έχει δημιουργήσει υψηλές προσδοκίες για το ρόλο του αλλά και αυστηρές προδιαγραφές και απαιτήσεις στη διδασκαλία του. Ο βασικός στόχος του μαθήματος (και του βιβλίου) που είναι να μπορεί ο μαθητής να διατυπώσει ένα αλγόριθμο, να μάθει δηλαδή να σκέφτεται αλγοριθμικά, συμπληρώνεται από τη δυνατότητα να "προγραμματίσει" σε ΓΛΩΣΣΑ δηλαδή σε ένα αυστηρό προγραμματιστικό περιβάλλον που δεν επιτρέπει και δεν συγχωρεί συντακτικά λάθη, χωρίς όμως να έχει το χρόνο να δουλέψει και να γνωρίσει το περιβάλλον αυτό. Ο καθηγητής λοιπόν πρέπει να φροντίσει να βρει χρόνο και να δώσει στο μαθητή τη δυνατότητα εξάσκησης στον Η/Υ.

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

Μέχρι σήμερα, δεν υπάρχει κάποια επίσημη διευκρίνηση από το ΥΠΕΠΘ σχετικά με τα παρακάτω θέματα και γι αυτό το λόγο αναμένεται είτε να μην εξεταστούν ποτέ, είτε σε περίπτωση που εξεταστούν να γίνουν αποδεκτές όλες οι απόψεις.

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

  Οι συναρτήσεις ΗΜ(), ΣΥΝ() και ΕΦ() στον ορισμό τους στο βιβλίο δέχονται παράμετρο σε μοίρες. Στη ΓΛΩΣΣΑ οι τριγωνομετρικές συναρτήσεις δέχονται παραμέτρους σε μοίρες και όχι σε ακτίνια όπως συμβαίνει με όλες τις γλώσσες προγραμματισμού.



Οι τελεστές div και mod ορίζονται ως ευκλείδια διαίρεση ή όπως ορίζονται στην Πληροφορική (επικρατέστερη άποψη). Δηλαδή το αποτέλεσμα (-17) MOD 5 δίνει +3 και (-17) DIV 5 δίνει -4 ή (-17) MOD 5 δίνει -2 και (-17) DIV 5 δίνει -3.
Σχετικά με τις πράξεις αυτές αξίζει να σημειωθεί ότι αν και έχει ζητηθεί παλιότερα σε πανελλήνιες εξετάσεις πράξη με αρνητικό διαιρέτη, δεν αναμένεται να ξανασυμβεί κάτι τέτοιο και πρέπει κατά τη διδασκαλία τους να θεωρείται ότι τα ορίσματα είναι θετικοί ακέραιοι αριθμοί (Από έγγραφο Συμβούλου Πληροφορικής).

Το ΚΑΙ έχει την ίδια προτεραιότητα με το Ή. Ενώ σε όλες τις γλώσσες ισχύει η προτεραιότητα ΟΧΙ, ΚΑΙ, Η. Επομένως καλό είναι να χρησιμοποιούνται παρενθέσεις στις λογικές εκφράσεις για να μην υπάρχει αμφιβολία για τη σειρά εκτέλεσή τους.
Υπάρχει ασάφεια σχετικά με το πως εμφανίζει το αποτέλεσμα στην Οθόνη η ΓΡΑΨΕ. Για παράδειγμα η ΓΡΑΨΕ α,β για α=1 και β=9 θα εμφανίσει 1 9 ή 19. Γενικά θεωρούμε ότι κάθε ΓΡΑΨΕ τυπώνει σε μία γραμμή τη λίστα των ορισμάτων της και γενικά ότι το αποτέλεσμα που τυπώνει είναι ευκρινές δηλαδή όχο κολλημένο το ένα με το άλλο. Επίσης θεωρούμε ότι ως όρισμα στη ΓΡΑΨΕ μπορεί να μπει κα μία έκφραση, αν και στη σύνταξη της εντολής δεν αναφέρεται η δυνατότητα αυτή.
Να μην επιτρέπονται οι εντολές ΓΡΑΨΕ και ΔΙΑΒΑΣΕ στο εσωτερικό συναρτήσεων.
Η συνάρτηση Α_Μ(α) ορίζεται ως ακέραιο μέρος του α, επομένως φαίνεται να χρησιμοποιείται ο ορισμός των Μαθηματικών αντί της Πληροφορικής. Επομένως Α_Μ(-5.9) = -6, ενώ σε όλες τις γλώσσες προγραμματισμού ισχύει Α_Μ(-5.9)=-5 (αποκοπή δεκαδικών στοιχείων) Η εντολή ΓΙΑ ορίζεται διαφορετικά στη Ψευδογλώσσα και διαφορετικά στην ΓΛΩΣΣΑ. Πιο συγκεριμένα
Στην ουσία: Στη Ψευδογλώσσα δεν επιτρέπεται βήμα 0, γιατί δημιουργεί ατέρμωνα βρόχο. Στη ΓΛΩΣΣΑ σύμφωνα με τον τρόπο που δουλεύει η ΓΙΑ (σύμφωνα με την ισοδύναμη ΟΣΟ της)

ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 10 ΜΕ_ΒΗΜΑ 0 ( ι<-1 ΟΣΟ ι<=10 ... -- δίνει άπειρες επαναλήψεις)
ΓΙΑ ι ΑΠΟ 10 ΜΕΧΡΙ 1 ΜΕ_ΒΗΜΑ 0 ( ι<-10 ΟΣΟ ι<=1 ... -- δίνει καμία επανάληψη)
Η εντολή απλής επιλογής ΑΝ συνθήκη ΤΟΤΕ ορίζεται διαφορετικά στη Ψευδογλώσσα και διαφορετικά στη ΓΛΩΣΣΑ. Στη ΓΛΩΣΣΑ απαιτείται ένα ΤΕΛΟΣ_ΑΝ για κάθε ΑΝ, ενώ στη Ψευδογλώσσα (όπως και σε όλες τις Γλώσσες προγραματισμού) αν στο τότε έχεις μόνο μια εντολή επιτρέπεται να γραφεί στην ίδια ευθεία. Δηλαδή ΑΝ συνθήκη ΤΟΤΕ εντολή.
Στην εντολή εκχώρησης αναφέρεται ότι η έκφραση δεξιά και η μεταβλητή αριστερά πρέπει να είναι του ίδιου τύπου, κάτι που εν γένει δεν ισχύει για τις πραγματικές μεταβλητές, στις οποίες μπορούμε να εκχωρήσουμε μία ακέραια έκφραση (την οποία βέβαια πλέον θα θεωρούμε ως πραγματική).

papaluk

Με βάση το κείμενο που ανακοίνωσε ο Άλκης θέλω να ξεκαθαρίσω το εξής
Σε σχέση με προτεραιότητα ΚΑΙ Ή. Εμείς βάζουμε παρενθέσεις για να την καθορίσουμε, αν δοθεί σε άσκηση χωρίς παρενθέσεις εκτελώ αρχικά ότι είναι πιο αριστερά?? δηλαδή δεν ισχύει προτεραιότητα 1.ΟΧΙ 2. ΚΑΙ 3. Ή 

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

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

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

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


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

P.Tsiotakis


petrosp13

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

sstergou

#29
Παράθεση από: petrosp_13 στις 13 Οκτ 2008, 06:05:00 ΜΜ
Οι τελεστές ΚΑΙ και Η δεν μπορούν να έχουν την ίδια προτεραιότητα
Εμένα πάλι αυτό μου φαίνεται σαν η μόνη ασφαλής προσέγγιση στο θέμα.

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