Αποστολέας Θέμα: Ασκήσεις και Οδηγίες Μελέτης Μαθητή αναρτημένες στο ΙΕΠ  (Αναγνώστηκε 6448 φορές)

itt

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 428
  • Real stupidity beats ΑΙ any time
Αυτό που θα τον απασχολούσε με την αναφορά της εκφώνησης στη μέγιστη τιμή του ΕΚΠ δεν είναι αν χωράει το 2 * 109 σε ακέραιο της ΓΛΩΣΣΑΣ αλλά αν χωράει το ΕΚΠ όλων των δεδομένων εισόδου σε ακέραιο της ΓΛΩΣΣΑΣ.

Το οποίο είναι αυτό που συζητάμε;

Επίσης, το ότι δεν αναφέρεται το όριο σημαίνει ότι δεν αναφέρεται, δε σημαίνει ότι δεν υπάρχει.

Όχι, σημαίνει ότι δεν υπάρχει, αφού δεν αναφέρεται άρα και δεν ορίζεται.

Στις "πραγματικές" γλώσσες προγραμματισμού που υποστηρίζουν τύπους χωρίς όριο μεγέθους, τι από τα δύο συμβαίνει σε ότι αφορά στις προδιαγραφές αυτών των γλωσσών και των υλοποιήσεών τους: δεν αναφέρεται τίποτα για το μέγιστο μέγεθος ή αναφέρεται ότι είναι "απεριόριστο";
π.χ.
στην Python αναφέρει: "Long integers have unlimited precision." (https://docs.python.org/2/library/stdtypes.html#typesnumeric),
στην Java αναφέρει για την κλάση BigInteger: "Immutable arbitrary-precision integers." (https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html)
ενώ με το δικό σου σκεπτικό θα μπορούσαν να μην αναφέρουν τίποτα.

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

Αν θα γράψετε compiler με arbitrary μέγεθος και μπορούν οι μαθητές μου να τρέχουν τη λύση που προτείνετε τότε κανένα πρόβλημα.
Σε αυτά τα περιβάλλοντα που δουλεύουν στο σχολικό εργαστήριο άρα στην πραγματικότητα όπως έδειξα με τις 5 γραμμές κώδικα παραπάνω, η λύση που προτείνετε δεν δουλεύει.

Δεν καταλαβαίνω τι σχέση έχει αυτό που έγραψες. Το ότι δεν προσφέρει η υλοποίηση της ΓΛΩΣΣΑΣ που χρησιμοποιείς arbitrary ακέραιο, είναι πρόβλημα της υλοποίησης, όχι δικό μας.


Φέτος όμως, με βάση τις οδηγίες, οι Αλγόριθμοι να υλοποιούνται σε αμιγώς προγραμματιστικό περιβάλλον και συγκεκριμένα αυτό της ΓΛΩΣΣΑΣ και οι οι μαθητές να μπορούν στη συνέχεια να τις εκτελέσουν στον Η/Υ. Άσε λοιπόν Ευριπίδη τις αναφορές περί λανθασμένης επιχειρηματολογίας που προκύπτει από τη σελίδα 129 και πες μας τι θα έλεγες στους μαθητές σου όταν θα εμφανίζονταν η υπερχείλιση.   

Δεν μιλάω εκ μέρους του Ευριπίδη, αλλά θα σου απαντήσω τι θα τους έλεγα εγώ. Έχουμε υπερχείλιση επειδή η υλοποίηση της ΓΛΩΣΣΑΣ που χρησιμοποιούμε δεν υποστηρίζει arbitrary precision ακεραίους. Το πρόγραμμα δεν είναι λάθος γραμμένο, αφού πουθενά δεν ορίζεται πώς πρέπει να αναπαρίσταται ο ακέραιος και οπότε δεν προκύπτουν περιορισμοί για το εύρος του.

Αν σε απασχολεί τόσο πολύ το τι κάνει ο interpreter, ο Άλκης υποθέτω ότι διανείμει τον κώδικα ελεύθερα, κάνε ένα patch λοιπόν που θα χρησιμοποιεί την GMP ή κάτι τέτοιο και το πρόβλημα λύθηκε;

Αθανάσιος Πέρδος

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 288
Εντάξει itt ευχαριστώ για τις παρατηρήσεις σου.

Το κείμενο που θα αποστείλω σχετικά με το ζήτημα θα είναι το εξής:

Ένα θέμα που προέκυψε φέτος με τις υλοποιήσεις της ΓΛΩΣΣΑΣ στο σχολικό εργαστήριο είναι ότι δεν υποστηρίζουν arbitrary precision ακεραίους.
Στο σχολικό βιβλίο δεν ορίζεται πουθενά το εύρος τιμών των ακεραίων. Αυτό οδηγεί πολλούς συναδέλφους να θεωρούν ότι η ΓΛΩΣΣΑ υποστηρίζει  arbitrary precision ακεραίους.
Από την άλλη στο σχολικό βιβλίο ακριβώς δίπλα από την περιγραφή αριθμητικών τύπων δεδομένων στη σελίδα 129 υπάρχει σχόλιο για το τι συμβαίνει στην πραγματικότητα και αναφέρει ότι υπάρχει όριο στο εύρος τιμών που μπορούν να αποδοθούν σε μία ακέραια μεταβλητή. Αυτό οδηγεί άλλους συναδέλφους να θεωρούν ότι στη ΓΛΩΣΣΑ, η οποία μέχρι φέτος ήταν μια υποθετική γλώσσα προγραμματισμού αλλά με βάση τις οδηγίες από φέτος δεν είναι αφού οι μαθητές πρέπει να εκτελούν τα προγράμματα σε Η/Υ, οι ακέραιοι μπορούν να δεχτούν συγκεκριμένο εύρος τιμών.

Το όλο θέμα προέκυψε από την 5η άσκηση της δομής επανάληψης η οποία προέρχεται από τους διαγωνισμούς πληροφορικής και είναι αναρτημένη στο ΙΕΠ ως υποστηρικτικό υλικό και τον τρόπο λύσης της. Από τη μία η άσκηση δεν μπορεί να λυθεί με τις υπάρχουσες υλοποιήσεις της ΓΛΩΣΣΑΣ γιατί υπάρχει πιθανότητα τιμή που θα αποδοθεί σε μεταβλητή να ξεπερνά το εύρος τιμών που μπορούν να χειριστούν οι υλοποιήσεις και από την άλλη δεν μπορεί να χρησιμοποιηθεί πίνακας αφού δεν είναι γνωστό το μέγεθος των στοιχείων προς επεξεργασία.


Αν έχεις itt κάποια παρατήρηση ακόμη ευχαρίστως να την συμπεριλάβω.
Επίσης θεωρώ ότι συμφωνείτε τόσο εσύ όσο και ο Ευριπίδης με όσα έγραψα για τις άλλες ασκήσεις μιας και δεν τις έχετε σχολιάσει.
Δηλαδή ότι δεν λύνονται με ΓΛΩΣΣΑ και ότι η ομάδα εργασίας πρέπει να τις επαναδιατυπώσει.
Φυσικά θα συμπεριλάβω και οποιαδήποτε παρατήρηση συναδέλφων που παρακολουθούν το post και θέλουν να παρέμβουν.

ολγα

  • Βετεράνος
  • ****
  • Μηνύματα: 70
Α) Όσον αφορά το μέγεθος του ακέραιου στη Γλώσσα συμφωνώ 100% με  το σκεπτικό του evry και toy itt. Δεν πρέπει να μας απασχολεί κάτι τέτοιο στο  μάθημα αυτό.

Β) Στις γενικές ασκήσεις μέχρι και τη Δομή Επανάληψης:
-  η 6 νομίζω λύνεται και χωρίς πίνακα (απ’ ότι είδα βιαστικά). Δε βλέπω κάποιο πρόβλημα εκεί που είναι.
- η 1 νομίζω πρέπει να παραμείνει στις γενικές ασκήσεις μέχρι και τη Δομή Επανάληψης (είναι πολύ καλή άσκηση στην κατηγορία αυτή), απλώς θα πρέπει να αλλάξει λίγο η εκφώνηση και στη θέση της πρότασης 
«Το πρόγραμμα θα εμφανίζει τον αριθμό των νικητών του αγωνίσματος και τη σειρά συμμετοχής, που αυτός /αυτοί είχε/είχαν.»
να γίνει:   
«Το πρόγραμμα θα εμφανίζει τον αριθμό των νικητών του αγωνίσματος και σε περίπτωση που υπάρχει ένας μόνο νικητής τη σειρά συμμετοχής που αυτός  είχε.»
- η 2 μάλλον πρέπει να μπει στους πίνακες.

Γ) Στις Ασκήσεις Εμπέδωσης Πίνακες
Στα θέματα 9, 12, 16 αν και δεν είναι γνωστός ο μέγιστος αριθμός των στοιχείων προς επεξεργασία θα έλεγα ο διδάσκων να προσθέσει μια διευκρίνιση του στυλ «Το πρόγραμμα να δέχεται σαν μέγιστη τιμή του Ν τον αριθμό (π.χ.) 1000» παρά να πετάξει στον Καιάδα τρεις ενδιαφέρουσες ασκήσεις.

Υ.Γ. Έχει πολλή ομορφιά το μάθημα αυτό, ας μην το χαλάμε διυλίζοντας τον κώνωπα. Μέχρι και χτες με ρώτησε μαθητής αν πρέπει να γράφει τα προγράμματα με κεφαλαία!!!

Αθανάσιος Πέρδος

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 288
Β) Στις γενικές ασκήσεις μέχρι και τη Δομή Επανάληψης:
-  η 6 νομίζω λύνεται και χωρίς πίνακα (απ’ ότι είδα βιαστικά). Δε βλέπω κάποιο πρόβλημα εκεί που είναι.
Εγώ δεν μπορώ να τη λύσω χωρίς πίνακα. Για αυτό ζήτησα και τη συνδρομή των συναδέλφων. Αν έχεις λύση θα ήθελα πολύ να τη δω.


Γ) Στις Ασκήσεις Εμπέδωσης Πίνακες
Στα θέματα 9, 12, 16 αν και δεν είναι γνωστός ο μέγιστος αριθμός των στοιχείων προς επεξεργασία θα έλεγα ο διδάσκων να προσθέσει μια διευκρίνιση του στυλ «Το πρόγραμμα να δέχεται σαν μέγιστη τιμή του Ν τον αριθμό (π.χ.) 1000» παρά να πετάξει στον Καιάδα τρεις ενδιαφέρουσες ασκήσεις.

Δεν πετάει κανένας ασκήσεις στον Καιάδα. Δες τι έγραψα και τι πρότεινα στο αρχικό μήνυμά μου.

Συνοψίζω λέγοντας ότι τα θέματα μπορούν πολύ εύκολα να διορθωθούν αρκεί να δοθεί ο μέγιστος αριθμός των δεδομένων προς επεξεργασία κάτι που υπάρχει άλλωστε στις αρχικές εκφωνήσεις του διαγωνισμού.



Υ.Γ. Έχει πολλή ομορφιά το μάθημα αυτό, ας μην το χαλάμε διυλίζοντας τον κώνωπα. Μέχρι και χτες με ρώτησε μαθητής αν πρέπει να γράφει τα προγράμματα με κεφαλαία!!!
Συγγνώμη αλλά η επισήμανση ότι υπάρχουν λάθη σε έγγραφο αναρτημένο στο ΙΕΠ κατά την άποψη μου δεν διυλίζει τον κώνωπα και ούτε έχει καμία σχέση με το αν ο καθηγητής ή η καθηγήτρια στο σχολείο ή στο φροντιστήριο του μαθητή που σε ρώτησε, δεν είναι καλά ενημερωμένος/ ενημερωμένη και του λέει να γράφει με κεφαλαία.
Η επισήμανση αναδεικνύει την αστοχία ώστε να διορθωθεί.   

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5086
    • alkisg@im.sch.gr
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Επειδή δεν παρακολούθησα αναλυτικά τη συζήτηση, να αναφέρω μόνο ένα μικρό σημείο, ότι αν κάποια γλώσσα χρησιμοποιεί βιβλιοθήκη τύπων άπειρης ακρίβειας, τότε σ' αυτήν την γλώσσα το
i <- i + 1
δεν εκτελείται πια σε Ο(1) αλλά σε Ο(μέγεθος του i σε bit, συν χρόνος για realloc όταν χρειάζεται).

Δηλαδή δεν μπορούμε και να υποθέτουμε άπειρη ακρίβεια και να υποθέτουμε ότι η προσπέλαση μεταβλητών γίνεται σε Ο(1).

Μπορούμε όμως να περιορίσουμε το πεδίο τιμών της εισόδου (να εννοείται κατά την εκφώνηση των προβλημάτων) ώστε να θεωρούμε ότι οι τύποι δεδομένων που έχουμε είναι επαρκείς και δεν χρειάζεται να μας απασχολούν κατά την επίλυση των ασκήσεων. Είτε σε δυσκολότερα προβλήματα όπως το ΕΚΠ, είτε σε απλούστερα όπως το a <- b*c, η πιθανότητα υπερχείλισης υφίσταται, το αν θα αναφερθούμε ή όχι σε αυτήν δεν εξαρτάται και τόσο πολύ από το ίδιο το πρόβλημα παρά από την διδακτέα ύλη.

itt

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 428
  • Real stupidity beats ΑΙ any time
Εντάξει itt ευχαριστώ για τις παρατηρήσεις σου.

Το κείμενο που θα αποστείλω σχετικά με το ζήτημα θα είναι το εξής:

Ένα θέμα που προέκυψε φέτος με τις υλοποιήσεις της ΓΛΩΣΣΑΣ στο σχολικό εργαστήριο είναι ότι δεν υποστηρίζουν arbitrary precision ακεραίους.
Στο σχολικό βιβλίο δεν ορίζεται πουθενά το εύρος τιμών των ακεραίων. Αυτό οδηγεί πολλούς συναδέλφους να θεωρούν ότι η ΓΛΩΣΣΑ υποστηρίζει  arbitrary precision ακεραίους.
Από την άλλη στο σχολικό βιβλίο ακριβώς δίπλα από την περιγραφή αριθμητικών τύπων δεδομένων στη σελίδα 129 υπάρχει σχόλιο για το τι συμβαίνει στην πραγματικότητα και αναφέρει ότι υπάρχει όριο στο εύρος τιμών που μπορούν να αποδοθούν σε μία ακέραια μεταβλητή. Αυτό οδηγεί άλλους συναδέλφους να θεωρούν ότι στη ΓΛΩΣΣΑ, η οποία μέχρι φέτος ήταν μια υποθετική γλώσσα προγραμματισμού αλλά με βάση τις οδηγίες από φέτος δεν είναι αφού οι μαθητές πρέπει να εκτελούν τα προγράμματα σε Η/Υ, οι ακέραιοι μπορούν να δεχτούν συγκεκριμένο εύρος τιμών.

Το όλο θέμα προέκυψε από την 5η άσκηση της δομής επανάληψης η οποία προέρχεται από τους διαγωνισμούς πληροφορικής και είναι αναρτημένη στο ΙΕΠ ως υποστηρικτικό υλικό και τον τρόπο λύσης της. Από τη μία η άσκηση δεν μπορεί να λυθεί με τις υπάρχουσες υλοποιήσεις της ΓΛΩΣΣΑΣ γιατί υπάρχει πιθανότητα τιμή που θα αποδοθεί σε μεταβλητή να ξεπερνά το εύρος τιμών που μπορούν να χειριστούν οι υλοποιήσεις και από την άλλη δεν μπορεί να χρησιμοποιηθεί πίνακας αφού δεν είναι γνωστό το μέγεθος των στοιχείων προς επεξεργασία.


Αν έχεις itt κάποια παρατήρηση ακόμη ευχαρίστως να την συμπεριλάβω.
Επίσης θεωρώ ότι συμφωνείτε τόσο εσύ όσο και ο Ευριπίδης με όσα έγραψα για τις άλλες ασκήσεις μιας και δεν τις έχετε σχολιάσει.
Δηλαδή ότι δεν λύνονται με ΓΛΩΣΣΑ και ότι η ομάδα εργασίας πρέπει να τις επαναδιατυπώσει.
Φυσικά θα συμπεριλάβω και οποιαδήποτε παρατήρηση συναδέλφων που παρακολουθούν το post και θέλουν να παρέμβουν.

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

ether

  • Επισκέπτης
Ζητώ εκ των προτέρων συγνώμη που θα "χαλάσω το μάθημα". Δε θα το ξανακάνω.

Στο συνημμένο αρχείο υπάρχουν ενδεικτικές λύσεις της άσκησης 5-Γενικές Ασκήσεις μέχρι και την Δομή Επανάληψης (23ος ΠΔΠ, Γ φάση, θέμα Α).
Στη μία ενδεικτική λύση χρησιμοποιείται πίνακας, στην άλλη όχι.

Τα αρχεία ελέγχου 1-11 είναι τα αντίστοιχα αρχεία που δόθηκαν και στο διαγωνισμό. Και οι δυο λύσεις δίνουν σ' αυτά την ίδια -προφανώς- σωστή απάντηση.
Στο αρχείο ελέγχου 0, η λύση με τον πίνακα δίνει τη σωστή απάντηση (15485863), ενώ η λύση χωρίς πίνακα, στον υπολογιστή μου (με την έκδοση 1.5.1.3 του διερμηνευτή της ΓΛΩΣΣΑΣ του Άλκη) δίνει λανθασμένη απάντηση (328276198696976133) λόγω υπερχείλισης.

Αν κάποιος έχει κάποια λύση χωρίς πίνακα η οποία να μην παρουσιάζει πρόβλημα υπερχείλισης και να μη χρησιμοποιεί κάτι που δεν υπάρχει στη διδακτέα ύλη της ΑΕΠΠ το οποίο θα προβλημάτιζε και θα μπέρδευε έναν μαθητή περισσότερο από μια αναφορά στην εκφώνηση του τύπου "θεωρήστε ότι το ελάχιστο κοινό πολλαπλάσιο όλων των αριθμών δε θα υπερβαίνει τη μέγιστη τιμή που μπορεί να αναπαρασταθεί με τον ακέραιο τύπο δεδομένων της γλώσσας που χρησιμοποιείτε", θα με ενδιέφερε να την έχω υπ' όψη μου.
« Τελευταία τροποποίηση: 09 Απρ 2016, 09:28:29 πμ από ether »

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3163
  • to Iterate is human to Recurse divine

@ether
Δεν μπορώ να καταλάβω το σκεπτικό σου. Έτσι όπως το παρουσιάζεις, ακόμα και μια πιο απλή άσκηση όπως

Να γίνει πρόγραμμα που να διαβάζει 3 αριθμούς και να εμφανίζει το γινόμενό τους

έχει πρόβλημα , γιατί αν δοθεί τρεις φορές το 1.000.000 θα κάνει υπερχείλιση. Με το σκεπτικό σου όλες οι ασκήσεις που κάναμε τόσα χρόνια δεν είναι σωστές.
Από την στιγμή που δεν υπάρχει στο βιβλίο τέτοιος περιορισμός για τη ΓΛΩΣΣΑ, και από τι στιγμή που τόσα χρόνια κάναμε και ΓΛΩΣΣΑ και όχι ξαφνικά φέτος, γιατί ανακαλύψαμε τώρα αυτό το πρόβλημα? δεν μπορώ να καταλάβω. Δηλαδή τις προηγούμενες χρονιές που έπεφταν προγράμματα δεν υπήρχε αντίστοιχο πρόβλημα?
« Τελευταία τροποποίηση: 08 Απρ 2016, 10:24:53 μμ από evry »
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

ether

  • Επισκέπτης
@ether
Δεν μπορώ να καταλάβω το σκεπτικό σου. Έτσι όπως το παρουσιάζεις, ακόμα και μια πιο απλή άσκηση όπως

Να γίνει πρόγραμμα που να διαβάζει 3 αριθμούς και να εμφανίζει το γινόμενό τους

έχει πρόβλημα , γιατί αν δοθεί τρεις φορές το 1.000.000 θα κάνει υπερχείλιση. Με το σκεπτικό σου όλες οι ασκήσεις που κάναμε τόσα χρόνια δεν είναι σωστές.
Από την στιγμή που δεν υπάρχει στο βιβλίο τέτοιος περιορισμός για τη ΓΛΩΣΣΑ, και από τι στιγμή που τόσα χρόνια κάναμε και ΓΛΩΣΣΑ και όχι ξαφνικά φέτος, γιατί ανακαλύψαμε τώρα αυτό το πρόβλημα? δεν μπορώ να καταλάβω. Δηλαδή τις προηγούμενες χρονιές που έπεφταν προγράμματα δεν υπήρχε αντίστοιχο πρόβλημα?
Θα το ξαναπώ για μια ακόμα, τελευταία, φορά, χωρίς να ελπίζω ότι θα γίνω κατανοητός αφού δεν είναι θέμα δυνατότητας αλλά θέλησης: στο παράδειγμα που αναφέρεις οι τρεις αριθμοί είναι δεδομένα εισόδου και το γινόμενο είναι αποτέλεσμα. Είναι εύλογο ότι θα μπορούν να αναπαρασταθούν σε κάποιον από τους τύπους δεδομένων που υποστηρίζει η γλώσσα που καλούμαι να υλοποιήσω τη λύση, αλλιώς δεν έχει νόημα η άσκηση.

Στην άσκηση 5, το ελάχιστο κοινό πολλαπλάσιο δεν είναι ούτε δεδομένο ούτε ζητούμενο αφού: α) δεν αναφέρεται στην εκφώνηση ως τέτοιο, β) υπάρχει τουλάχιστον μια λύση που δεν το χρησιμοποιεί/απαιτεί.

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

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

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3163
  • to Iterate is human to Recurse divine
Θα το ξαναπώ για μια ακόμα, τελευταία, φορά, χωρίς να ελπίζω ότι θα γίνω κατανοητός αφού δεν είναι θέμα δυνατότητας αλλά θέλησης: στο παράδειγμα που αναφέρεις οι τρεις αριθμοί είναι δεδομένα εισόδου και το γινόμενο είναι αποτέλεσμα. Είναι εύλογο ότι θα μπορούν να αναπαρασταθούν σε κάποιον από τους τύπους δεδομένων που υποστηρίζει η γλώσσα που καλούμαι να υλοποιήσω τη λύση, αλλιώς δεν έχει νόημα η άσκηση.

οκ, άρα κατά τη γνώμη σου η παρακάτω άσκηση λύνεται ή όχι;

Άσκηση 1
Στο προγραμματιστικό περιβάλλον του εργαστηρίου του σχολείου σας:
Να γράψεις πρόγραμμα το οποίο θα διαβάζει δυο αριθμούς και θα υπολογίζει το Μέγιστο Κοινό Διαιρέτη (ΜΚΔ) αξιοποιώντας τον τύπο x∙y = ΜΚΔ(x,y) ∙ ΕΚΠ(x,y)
Προσοχή!!! Το ΕΚΠ δεν πρέπει να εμφανιστεί  γιατί δεν αποτελεί αποτέλεσμα του αλγορίθμου

Πρόκειται για τη δραστηριότητα ΔΕ1 από το τετράδιο του μαθητή σελίδα 105. Η μόνη αλλαγή είναι ότι τώρα δεν εμφανίζει το ΕΚΠ.

Τώρα αν αυτή λύνεται δεν λύνεται και η παρακάτω;

Άσκηση 2
Στο προγραμματιστικό περιβάλλον του εργαστηρίου του σχολείου σας:
Να γράψεις πρόγραμμα το οποίο θα διαβάζει δυο αριθμούς και θα υπολογίζει το Μέγιστο Κοινό Διαιρέτη (ΜΚΔ).
« Τελευταία τροποποίηση: 08 Απρ 2016, 11:37:27 μμ από evry »
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Αθανάσιος Πέρδος

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 288
Δεν διαφωνώ σε τίποτα, αλλά δυστήχως δεν είχα χρόνο να διαβάσω όλες τις υπόλοιπες ασκήσεις (δεν έχω κάποια παρατήρηση σε αυτές που είδα) αυτή τη βδομάδα λόγο πηξίματος. Πότε σκοπεύεις να στείλεις τις παρατηρήσεις σου;

Σκοπεύω να στείλω τις παρατηρήσεις αύριο το βράδυ. Δεν μπορώ όμως να μην συμπεριλάβω στο παραπάνω κείμενο και την παρέμβαση του Άλκη.

αν κάποια γλώσσα χρησιμοποιεί βιβλιοθήκη τύπων άπειρης ακρίβειας, τότε σ' αυτήν την γλώσσα το
 i <- i + 1
δεν εκτελείται πια σε Ο(1) αλλά σε Ο(μέγεθος του i σε bit, συν χρόνος για realloc όταν χρειάζεται).

Δηλαδή δεν μπορούμε και να υποθέτουμε άπειρη ακρίβεια και να υποθέτουμε ότι η προσπέλαση μεταβλητών γίνεται σε Ο(1).



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

Παρατήρηση 1η
Στη σελίδα 17 στη μεθοδολογία που παρουσιάζεται στην πρώτη περίπτωση για την εύρεση μεγίστου και ελαχίστου, υπάρχει πιθανότητα μη αρχικοποίησης μεταβλητών αν η είσοδος των τιμών γίνεται με τιμή φρουρό και δοθεί πρώτη φορά τιμή ίση με το μέγιστο ή το ελάχιστο και στη συνέχεια η τιμή φρουρός.
Στο παράδειγμα 4 στη σελίδα 21 -22 αν οι μαθητές δεν ήταν 70 αλλά ο βρόχος εκτελούνταν με τιμή φρουρό και η είσοδος των τιμών ήταν η παραπάνω, μία εκ των μεταβλητών Μαχ_ον και Μιν_ον δεν θα είχε οριστεί.
Νομίζω ότι εύκολα διορθώνεται αν οι μεταβλητές MAX και ΜΙΝ αρχικοποιηθούν με μία μικρότερη και μία μεγαλύτερη αντίστοιχα τιμή από αυτές του διαστήματος τιμών που επεξεργάζεται ο αλγόριθμος.

Παρατήρηση 2η
Στη σελίδα 39 υπάρχει ο αλγόριθμος της Σειριακής Αναζήτησης. Ο αλγόριθμος σε περίπτωση που δεν υπάρχει το στοιχείο βγαίνει εκτός ορίων πίνακα διότι κάνει προσπέλαση στην τιμή Α[101] που δεν υπάρχει τόσο στη συνθήκη του βρόχου όσο και στην εντολή επιλογής που ακολουθεί.
Νομίζω ότι ο αλγόριθμος πρέπει να αντικατασταθεί από αυτόν που υπάρχει στο σχολικό.

Παρατήρηση 3η
Το ίδιο πρόβλημα παρουσιάζεται και στον αλγόριθμο της δυαδικής αναζήτησης εφόσον γίνεται πλήρης αποτίμηση σύνθετης συνθήκης. Βέβαια δεν είναι ορισμένο στο σχολικό το συγκεκριμένο θέμα (πλήρης ή όχι αποτίμηση) και τουλάχιστον στον Διερμηνευτή της ΓΛΩΣΣΑΣ υπάρχει επιλογή για το πώς αντιμετωπίζεται.
Νομίζω ότι πρέπει να αντικατασταθεί με τον αλγόριθμο που υπάρχει στις οδηγίες της 08/12.

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

ολγα

  • Βετεράνος
  • ****
  • Μηνύματα: 70
Εγώ δεν μπορώ να τη λύσω χωρίς πίνακα. Για αυτό ζήτησα και τη συνδρομή των συναδέλφων. Αν έχεις λύση θα ήθελα πολύ να τη δω.

Συγνώμη έχεις δίκιο. Θέλει πίνακα.

Diotima

  • Επισκέπτης
Σκοπεύω να στείλω τις παρατηρήσεις αύριο το βράδυ. Δεν μπορώ όμως να μην συμπεριλάβω στο παραπάνω κείμενο και την παρέμβαση του Άλκη.



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

Παρατήρηση 1η
Στη σελίδα 17 στη μεθοδολογία που παρουσιάζεται στην πρώτη περίπτωση για την εύρεση μεγίστου και ελαχίστου, υπάρχει πιθανότητα μη αρχικοποίησης μεταβλητών αν η είσοδος των τιμών γίνεται με τιμή φρουρό και δοθεί πρώτη φορά τιμή ίση με το μέγιστο ή το ελάχιστο και στη συνέχεια η τιμή φρουρός.
Στο παράδειγμα 4 στη σελίδα 21 -22 αν οι μαθητές δεν ήταν 70 αλλά ο βρόχος εκτελούνταν με τιμή φρουρό και η είσοδος των τιμών ήταν η παραπάνω, μία εκ των μεταβλητών Μαχ_ον και Μιν_ον δεν θα είχε οριστεί.
Νομίζω ότι εύκολα διορθώνεται αν οι μεταβλητές MAX και ΜΙΝ αρχικοποιηθούν με μία μικρότερη και μία μεγαλύτερη αντίστοιχα τιμή από αυτές του διαστήματος τιμών που επεξεργάζεται ο αλγόριθμος.

Παρατήρηση 2η
Στη σελίδα 39 υπάρχει ο αλγόριθμος της Σειριακής Αναζήτησης. Ο αλγόριθμος σε περίπτωση που δεν υπάρχει το στοιχείο βγαίνει εκτός ορίων πίνακα διότι κάνει προσπέλαση στην τιμή Α[101] που δεν υπάρχει τόσο στη συνθήκη του βρόχου όσο και στην εντολή επιλογής που ακολουθεί.
Νομίζω ότι ο αλγόριθμος πρέπει να αντικατασταθεί από αυτόν που υπάρχει στο σχολικό.

Παρατήρηση 3η
Το ίδιο πρόβλημα παρουσιάζεται και στον αλγόριθμο της δυαδικής αναζήτησης εφόσον γίνεται πλήρης αποτίμηση σύνθετης συνθήκης. Βέβαια δεν είναι ορισμένο στο σχολικό το συγκεκριμένο θέμα (πλήρης ή όχι αποτίμηση) και τουλάχιστον στον Διερμηνευτή της ΓΛΩΣΣΑΣ υπάρχει επιλογή για το πώς αντιμετωπίζεται.
Νομίζω ότι πρέπει να αντικατασταθεί με τον αλγόριθμο που υπάρχει στις οδηγίες της 08/12.

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

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

Αθανάσιος Πέρδος

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 288
Συμφωνώ και με τις τρεις παρατηρήσεις σου, παραθέτω ένα αρχείο όπου έχω γράψει διορθώσεις για τις οδηγίες μελέτης του μαθητή. Είναι γραμμένα και όλα τα συντακτικά λάθη που έχω βρει, εκτός από τα λογικά.

Ευχαριστώ πολύ για τον κόπο σου, θα στείλω το αρχείο όπως είναι.

dski

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 185
@Diotima:

Μπράβο για την πολύ καλή δουλειά που έκατσες κι έκανες!

Μια παρατήρηση μόνο: διαφωνώ με το 1ο σχόλιό σου για τις δομές επανάληψης. Φυσικά μανιέρες του στυλ "η ΟΣΟ χρησιμοποιείται όταν έχουμε «τιμή φρουρό» και η ΜΕΧΡΙΣ_ΟΤΟΥ σε όλες τις άλλες περιπτώσεις" είναι λάθος και πρέπει να αποφεύγονται, όμως η ΟΣΟ και η ΜΕΧΡΙΣ_ΟΤΟΥ δεν είναι ακριβώς ισοδύναμες καθώς οι εντολές της δεύτερης (όπως λες και στο παράδειγμα με τον έλεγχο εγκυρότητας) εκτελούνται τουλάχιστον μία φορά και, αν υπάρχει ενδεχόμενο να μην πρέπει να εκτελεστούν καμία φορά σε κάποια περίπτωση, τότε πρέπει να μπει μια επιπλέον δομή επιλογής στην ΜΕΧΡΙΣ_ΟΤΟΥ που θα ελέγχει αυτό το ενδεχόμενο.

Ακόμη και στην περίπτωση του ελέγχου εγκυρότητας η χρήση της ΜΕΧΡΙΣ_ΟΤΟΥ δεν είναι πάντα καλύτερη σε σχέση με την ΟΣΟ. Π.χ. αν πρέπει να εκτυπωθεί και ένα μήνυμα λάθους που θα προτρέπει το χρήστη να εισάγει ξανά την τιμή. Εκεί η ΟΣΟ είναι μάλλον προτιμότερη γιατί αποφεύγεις τη χρήση μιας επιπλέον ΑΝ μέσα στο βρόχο.

Εγώ αυτό που λέω στους μαθητές είναι ότι η πιο γενική μορφή της επανάληψης είναι η μορφή ΟΣΟ...ΕΠΑΝΑΛΑΒΕ και ότι η χρήση της ΟΣΟ ή της ΜΕΧΡΙΣ_ΟΤΟΥ είναι πράγματι συνήθως θέμα στυλ αλλά και καλύτερης διατύπωσης του αλγορίθμου με την υποσημείωση για τη μικρή αλλά ενίοτε ουσιαστική διαφορά μεταξύ των δύο εντολών.