Αποστολέας Θέμα: Ερωτήσεις στη μέχρι τώρα διδαχθήσα ύλη  (Αναγνώστηκε 1566 φορές)

dihatzou

  • Θαμώνας
  • ***
  • Μηνύματα: 26
Ερωτήσεις στη μέχρι τώρα διδαχθήσα ύλη
« στις: 20 Νοέ 2008, 11:25:12 πμ »
Καλημέρα, θέλώ να κάνω κάποια ερωτήματα πάνω στην ύλη που έχω διδάξει μέχρι τώρα

1) Το πρώτο ερώτημα αφορά τη δομή Για. Πιο συγκεκριμένα:
Μπορεί να τροποποιηθεί η τιμή του μετρητή μέσα στο βρόχο;
Αν όχι που αναφέρεται στο βιβλίο;
Το ρωτώ γιατί στο βοήθημα του κ. Τσιωτάκη(σελ 226Α) αναφέρει ότι δεν επιτρέπεται να τροποποιηθεί.
Θεωρώ σημαντικό να αποσαφηνιστεί γιατί αν μπορεί να τροποποιηθεί ο μετρητής, τότε μπορεί να χρησιμοποιηθεί η δομή Για οποτεδήποτε χρειαζόμαστε επανάληψη.

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


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

Για να γίνω πιο συγκεκριμένος, έστω ότι έχω τον παρακάτω αλγόριθμο:

Αλγόριθμος Τεστ
Διάβασε χ
χ <-- χ/4
χ <-- χ mod 2
Εκτύπωσε χ
Τέλος Τέστ

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

Δεν ξέρω, ίσως να το ψάχνω πολύ, αλλά καλό θα ήταν όποιος μπορεί να μου αποσαφηνίσει τις παραπάνω απορίες.

Παναγιώτης Τσιωτάκης

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3219
  • I love you 3000
    • Panagiotis Tsiotakis
Απ: Ερωτήσεις στη μέχρι τώρα διδαχθήσα ύλη
« Απάντηση #1 στις: 20 Νοέ 2008, 01:49:33 μμ »
1. στη σελίδα 234 του βοηθήματος επαναλαμβάνω αυτά που γράφονται στη σελίδα 78 του τετραδίου μαθητή. Μάλιστα στο τετράδιο μαθητή αναφέρει και τη λέξη ΠΟΤΕ την οποία δεν έβαλα.
Αν έχεις διαβάσει και παλιές συζητήσεις για το θέμα στο στέκι, τότε ξέρεις οτι δε θα βγει άκρη εδω !!  :)

2. ναι μπορείς.
το αν μπορούμε να χρησιμοποιήσουμε τις συναρτήσεις της ΓΛΩΣΣΑΣ στην ψευδογλώσσα το έχει απαντήσει η επιτροπή εξετάσεων του μαθήματός μας:

θέμα 4 http://users.kor.sch.gr/ptsiotakis/a...panen_2004.htm

θέμα 2 http://users.kor.sch.gr/ptsiotakis/a...l_esp_2007.htm

αλλά και

θέμα 2 http://users.kor.sch.gr/ptsiotakis/a...anesp_2005.htm

θέμα 2 http://users.kor.sch.gr/ptsiotakis/a...panen_2003.htm

Συνεπώς, οι μαθητές μας μπορούν να χρησιμοποιούν τις συναρτήσεις στην ψευδογλώσσα. Άλλωστε και το ΠΡΟΓΡΑΜΜΑ και η ψευδογλώσσα είναι μορφές αλγορίθμου..

3. Τα div, mod έχουν νόημα μόνο μεταξύ ακέραιων ΤΙΜΩΝ (μιας και μιλάμε για ευκλείδια διαίρεση). Δες και σελίδα 153.
Για να είμαστε ειλικρινείς δεν παρουσιάζει τους τελεστές αυτούς στο κεφάλαιο 2  γιατι όπως ορθά λες στην ψευδογλώσσα αριθμό εννοούμε τα πάντα. Ωστόσο, πρέπει η μεταβλητή που συμμετέχει σε μια τέτοια πράξη να έχει ακέραιο περιεχόμενο, αυτό είναι σίγουρο!!

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3168
  • to Iterate is human to Recurse divine
Απ: Ερωτήσεις στη μέχρι τώρα διδαχθήσα ύλη
« Απάντηση #2 στις: 20 Νοέ 2008, 03:00:56 μμ »

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

Για το 3 με τα div και mod σίγουρα υπάρχει το πρόβλημα με τους ακέραιους και τους πραγματικούς, το καλύτερο είναι να συμβουλέψεις τους μαθητές σου να τα χρησιμοποιούν μόνο με ακέραιες μεταβλητές και να έχουν το κεφάλι τους ήσυχο. Τα div και mod ναι μεν ορίζονται στο κεφάλαιο 7 αλλά το mod χρησιμοποιείται στον αλγόριθμο αλά ρωσικά στο κεφάλαιο 2, οπότε κανείς δε μπορεί να σου πει ότι o μαθητής δεν ξέρει τα mod και div ακόμα. Δείξτου τον αλγόριθμο στη σελίδα 48 που χρησιμοποιεί mod και λογικά θα τον πείσεις

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

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

  Το μερικές το έχω σε έντονη γραφή γιατί μου φαίνεται πολύ αστείο, αφού σε όλες σχεδόν τις γλώσσες συμβαίνει αυτό
  Η άποψη μου όπως έχω πει και άλλες φορές στο στέκι είναι ότι η αλλαγή μετρητή μέσα στη Για δεν είναι λάθος. Είναι κακή πρακτική πρέπει να αποφεύγεται οκ, αλλά δεν είναι λάθος. Αυτό άλλωστε λέει και το παραπάνω, αν ήταν λάθος θα έλεγε ότι είναι λάθος και τέρμα. Λέει όμως ότι πρέπει να τις αποφεύγεις γιατί οδηγούν σε δυσνόητα προγράμματα και συνήθως λανθασμένα. Άρα μερικές φορές οδηγούν και σε προγράμματα που δεν είναι λανθασμένα!!!
   Προφανώς λέμε στους μαθητές (αν μας ρωτήσουν) ότι δεν πρέπει να αλλάζουν τον μετρητή μέσα στη Για όμως αν στις εξετάσεις κάποιος μαθητής έχει αλλάξει τον μετρητή μέσα στη Για και ο αλγόριθμός του είναι σωστός δεν πρέπει να του κόψουμε.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr