θεμα 3. τυπικές και πραγματικές παράμετροι

Ξεκίνησε από Λευτέρης Δουκέρης, 06 Ιουν 2008, 10:05:18 ΜΜ

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

Λευτέρης Δουκέρης

Συνάδελφοι όσοι είστε διορθωτές αλλά και όσοι έχετε σαφή άποψη θα ήθελα να μου απαντήσετε στο εξής :Στους μαθητές λέω να χρησιμοποιούν διαφορετικά ονόματα για τις  πραγματικές και τυπικές παραμέτρους. Βλέπω όμως ότι έτσι μπλέκονται και θεωρώ ότι στο μέλλον είναι καλύτερο να του προτρέπω (λόγω απλότητας )να χρησιμοποιούν ίδιες ονομασίες και για τις τυπικές και για τις πραγματικές) .Το βιβλίο σαφώς αναφέρει ότι

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

Στο θέμα 3 λοιπόν αν οι ονομασίες των παραμέτρων , τυπικών και πραγματικών ήταν ίδιες ή όχι έπαιξε κανένα ρόλο στην βαθμολόγηση;
ΛΕΥΤΕΡΗΣ  ΚΕΡΑΤΕΑ
http://glavrio.blogspot.com"Ο ιδανικός δάσκαλος είναι εκείνος που γίνεται γέφυρα για να περάσει αντίπερα ο μαθητής του και όταν , πια του διευκολύνει το πέρασμα , αφήνεται χαρούμενα να γκρεμιστεί , ενθαρρύνοντας το μαθητή του να φτιάξει τις δικές του γέφυρ

Sergio

Δεν έπαιξε κανέναν απολύτως ρόλο.

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

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

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

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

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

Σε πραγματικές συνθήκες όμως (κι σε προσεκτικά σχεδιασμένες ασκήσες) το δίλημμα δεν τίθεται αφού η λειτουργία του υποπρογράμματος είναι γενική.
Απ τη μια η θητεία μου σε σχολικές αίθουσες: να φλυαρώ - να ελπίζω πως κατι κατάλαβαν - να εξερευνώ - να μαθαίνω. Απ την άλλη, σχεδόν συνομήλικη, η Διδακτική της Πληροφορικής: ερευνά διαδικασίες μάθησης - φλερτάρει με την Ψυχολογία - με καλεί να αφήσω το βλέμμα του Πληροφορικού και να δω με τα μάτια του δασκάλου. Τέκνα των 2, οι απόψεις μου.. (προσαρμοσμένο από τον πρόλογο του βιβλίου "Το μακρόν Φυσική προ του βραχέως διδάσκω" του Ανδρέα Κασσέτα)

EleniK

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

gpapargi

Μια που το κεφάλαιο 10 είναι το αγαπημένο μου (γιατί σχετίζεται άμεσα με την ανάπτυξη αναλυτικής ικανότητας) στέκομαι πολύ στο συγκεκριμένο θέμα.

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

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

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

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

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

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

kkoutsak

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