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

Γενικό Λύκειο => Γενικές εξετάσεις => Γ΄ Λυκείου => Εξετάσεις 2007-2008 => Μήνυμα ξεκίνησε από: Λευτέρης Δουκέρης στις 06 Ιουν 2008, 10:05:18 μμ

Τίτλος: θεμα 3. τυπικές και πραγματικές παράμετροι
Αποστολή από: Λευτέρης Δουκέρης στις 06 Ιουν 2008, 10:05:18 μμ
Συνάδελφοι όσοι είστε διορθωτές αλλά και όσοι έχετε σαφή άποψη θα ήθελα να μου απαντήσετε στο εξής :Στους μαθητές λέω να χρησιμοποιούν διαφορετικά ονόματα για τις  πραγματικές και τυπικές παραμέτρους. Βλέπω όμως ότι έτσι μπλέκονται και θεωρώ ότι στο μέλλον είναι καλύτερο να του προτρέπω (λόγω απλότητας )να χρησιμοποιούν ίδιες ονομασίες και για τις τυπικές και για τις πραγματικές) .Το βιβλίο σαφώς αναφέρει ότι

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

Στο θέμα 3 λοιπόν αν οι ονομασίες των παραμέτρων , τυπικών και πραγματικών ήταν ίδιες ή όχι έπαιξε κανένα ρόλο στην βαθμολόγηση;
Τίτλος: Απ: θεμα 3. τυπικές και πραγματικές παράμετροι
Αποστολή από: Sergio στις 06 Ιουν 2008, 11:27:35 μμ
Δεν έπαιξε κανέναν απολύτως ρόλο.

Προσωπικά τους προτείνω και γω αυτρό που αναφέρεις.

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

Για παράδειγμα τους ανβαφέρω ότι δεν υπάρχει τρόπος να δοθεί "σωστό" όνομα στην τυπική παράμετρο της Α_Τ()... ΠΟΥ να ξέρουμε ΤΙ θα περάσει όποιος την καλέσει.

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

Βέβαια, στο "βάθος" που διδάσκουμε το μάθημα, σπάνια δημιουργούμε πραγματικά γενική χρήσης υποπρογράμματα οπότε είναι λογικό να δημιουργείται το ερώτημα ΑΝ θα πρέπει να είναι τα ίδια τα ονόματα ή ΟΧΙ.

Σε πραγματικές συνθήκες όμως (κι σε προσεκτικά σχεδιασμένες ασκήσες) το δίλημμα δεν τίθεται αφού η λειτουργία του υποπρογράμματος είναι γενική.
Τίτλος: Απ: θεμα 3. τυπικές και πραγματικές παράμετροι
Αποστολή από: EleniK στις 07 Ιουν 2008, 10:48:26 πμ
Προσωπικά για να μην μπερδεύονται Λευτέρη και εγώ τους έχω πει όπου δεν υπάρχει λόγος να χρησιμοποιούν ίδια ονόματα. Αν όμως η συνάρτηση/διαδικασία καλείται πολλές φορες τότε να χρησιμοποιούν διαφορετικά.
Τίτλος: Απ: θεμα 3. τυπικές και πραγματικές παράμετροι
Αποστολή από: gpapargi στις 09 Ιουν 2008, 09:09:33 πμ
Μια που το κεφάλαιο 10 είναι το αγαπημένο μου (γιατί σχετίζεται άμεσα με την ανάπτυξη αναλυτικής ικανότητας) στέκομαι πολύ στο συγκεκριμένο θέμα.

Τα υποπρογράμματα πρέπει να είναι ανεξάρτητα μεταξύ τους. Για παράδειγμα ο προϊστάμενος μιας  εταιρείας θέλει να φτιάξει ένα πρόγραμμα. Το σπάει σε υποπρογράμματα και αναθέτει καθένα από αυτά δε διαφορετικό υπάλληλο. Αυτό είναι το πρότυπο που πρέπει να έχουμε στο νου μας όταν σχεδιάζουμε υποπρογράμματα.

Ο προϊστάμενος δεν ενδιαφέρεται για τις λεπτομέρειες υλοποίησης του υποπρογράμματος. Το μόνο που τον νοιάζει είναι το πως θα το καλέσει (δηλαδή τις παραμέτρους). Άρα δεν έχει σημασία αν θα χρησιμοποιήσει τα ίδια ή διαφορετικά ονόματα παραμέτρων. Αν πχ απαγορευόταν αν χρησιμοποιηθεί το ίδιο όνομα μεταβλητής σε πραγματική και τυπική παράμετρο, τότε αυτός που φτιάχνει το κύριο πρόγραμμα θα έπρεπε να ξέρει τι όνομα έχει χρησιμοποιήσει αυτός που έφτιαξε το υποπρόγραμμα, έτσι ώστε να το αποφύγει. ʼρα θα έπρεπε να γνωρίζει λεπτομέρειες υλοποίησης και κάτι τέτοιο έρχεται σε αντίθεση με την ανεξαρτησία των υποπρογραμμάτων.

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

Στα παραδείγματα βάζω συνήθως διαφορετικά για να καταλαβαίνουν τι γίνεται. Αλλά επιλέγω και μερικά παραδείγματα που βάζω τα ίδια. Πχ όταν υλοποιούμε μαθηματική συνάρτηση f(x) με χρήση προγραμματιστικής συνάρτησης f(x) τότε και σαν τυπική αλλά και σαν πραγματική παράμετρο χρησιμοποιούμε το x αφού ο μαθητής έχει μάθει το x σαν την πιο συνηθισμένη ανεξάρτητη μεταβλητή. Τους ξεκαθαρίζω όμως ότι πρόκειται για 2 διαφορετικές μεταβλητές (αφού έχουν διαφορετικούς αποθηκευτικούς χώρους κρυμμένους από πίσω τους) που έχουν απλά το ίδιο όνομα. Είναι μια απλή συνωνυμία. Πχ όταν φωνάζουμε «Γιώργο» στο δικό μου σπίτι, εννοούμε εμένα. Σε άλλα σπίτια με το «Γιώργο» εννοούμε κάποιον άλλο.

Το συγκεκριμένο είναι από τα σημεία που δεν επιλέγω να τους το πω απλά γιατί έχει άμεση σχέση με τη φιλοσοφία του τμηματικού προγραμματισμού. Αυτό που θέλω να τονίσω ( το ξέρει καλά ο Σέργιος) είναι ότι για μένα το κεφάλαιο 10 είναι κάτι πολύ περισσότερο από συντακτικό. Είναι κυρίως τεχνικές ανάλυσης προβλήματος σε απλούστερα και φιλοσοφία τμηματικού προγραμματισμού.  Σε αυτό το κεφάλαιο είναι κρυμμένη η αναλυτική ικανότητα που για μένα αποτελεί το βασικότερο όπλο επίλυσης προβλημάτων. Ένα δύσκολο πρόβλημα το κάνεις 2 απλά τα οποία τελικά λύνονται εύκολα.   

Η αλήθεια είναι ότι πολλοί μπερδεύονται. Αλλά όσοι δεν μπερδεύονται καταλαβαίνουν γιατί κάνουμε κάτι και αυτό τους δίνει την εικόνα ότι τα πράγματα διέπονται από κάποια εσωτερική λογική και συνέπεια που ίσως δεν είναι προφανής με την πρώτη ματιά. ΑΥτοί που μπερδεύονται κρατάνε απλά ότι μπορείς να βάλεις είτε τα ίδια είτα διαφορετικά ονόματα. 
Τίτλος: Απ: θεμα 3. τυπικές και πραγματικές παράμετροι
Αποστολή από: kkoutsak στις 09 Ιουν 2008, 11:09:17 πμ
Εγώ  πάλι  τους  λέω  πως  και το  να  είναι  ίδια  τα  ονόματα  και  διαφορετικά το  αποτέλεσμα  είναι  το  ίδιο  απλά  επιμένω στο  να  ξέρουν  πως  είναι  ανεξάρτητες  οι  τυπικές  με τις  πραγματικές  διότι  αυτό  είναι  πολύ  χρήσιμο  σε  ασκήσεις  που  μας  ζητάει  να  βρούμε  τα  αποτελέσματα του  προγράμματος.