ΣΥΝΑΡΤΗΣΗ ΧΩΡΙΣ ΠΑΡΑΜΕΤΡΟΥΣ

Ξεκίνησε από summer, 11 Μαρ 2009, 02:46:53 ΠΜ

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

summer

ΣΥΝΕΧΙΖΟΝΤΑΣ ΤΟ ΠΡΟΗΓΟΥΜΕΝΟ ΘΕΜΑ ΕΓΩ ΜΕ ΤΗ ΣΕΙΡΑ ΜΟΥ ΘΕΛΩ ΝΑ ΡΩΤΗΣΩ ΤΙ ΓΙΝΕΤΑΙ ΜΕ ΤΙς ΣΥΝΑΡΤΗΣΕΙΣ.
ΜΠΟΡΕΙ ΝΑ ΟΡΙΣΤΕΙ ΣΥΝΑΡΤΗΣΗ ΧΩΡΙΣ ΠΑΡΑΜΕΤΡΟΥΣ?
Η ΓΛΩΣΣΟΜΑΘΕΙΑ ΠΟΥ ΤΟ ΔΟΚΙΜΑΣΑ ΔΕΝ ΤΟ ΚΑΝΕΙ.ΠΑΡΌΛΑ ΑΥΤΑ ΣΕ ΒΟΗΘΗΜΑ ΕΧΩ ΒΡΕΙ ΝΑ ΑΝΑΦΕΡΕΙ ΟΤΙ Η ΛΙΣΤΑ ΠΑΡΑΜΕΤΡΩΝ ΔΕΝ ΕΙΝΑΙ ΥΠΟΧΡΕΩΤΙΚΗ ΟΥΤΕ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ.ΤΟ ΒΙΒΛΙΟ ΑΠΟ ΤΗΝ ΑΛΛΗ ΣΤΗ ΣΕΛ 214 ΑΝΑΦΕΡΕΤΑΙ ΜΟΝΟ ΣΤΙΣ ΔΙΑΔΙΚΑΣΙΕΣ.....ΣΕ ΑΣΚΗΣΗ ΔΕ ΝΟΜΙΖΩ ΝΑ ΖΗΤΗΣΟΥΝ ΚΑΤΙ ΤΕΤΟΙΟ ΑΛΛΑ ΣΕ ΚΑΠΟΙΑ ΘΕΩΡΙΑ ΕΙΝΑΙ ΠΙΘΑΝΟΝ...

papet

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

ΥΓ. Έχω την υποψία ότι κάτι παραβλέπω/ξεχνάω... :(
May the Force b with u...
papet

P.Tsiotakis

Υπάρχουν λάθη και στα βοηθήματα.

Υπάρχουν βοηθήματα που μιλούν για ένωση αλφαριθμητικών με τον τελεστή + στην ψευδογλώσσα, για χρήση Διάβασε/Γράψε σε συνάρτηση και άλλα τέτοια ωραία.

Δημήτρης Φρυδάς

Κλασικό παράδειγμα συνάρτησης χωρίς παραμέτρους ήταν -κάποτε- το e.

Μπορεί να υπάρχουν κι άλλα.

Σε επίπεδο Λυκείου και σε περίπτωση άσκησης μπορεί να δοθεί ως σταθερά.

Τι γίνεται όμως αν τεθεί ως ερώτημα θεωρίας «Σωστό ή Λάθος»;


Εδώ ολόκληρη συζήτηση έγινε πέρσι για το ΓΡΑΨΕ - ΔΙΑΒΑΣΕ στις Συναρτήσεις. Μέχρι και ψηφοφορία έγινε... Κάποιοι φωστήρες όμως το έβαλαν θέμα στις επαναληπτικές του 2008: «Σε μία συνάρτηση δεν επιτρέπεται η χρήση της εντολής ΔΙΑΒΑΣΕ. Σωστό ή Λάθος;» 2 μονάδες.

Τι έπρεπε να απαντήσουν οι μαθητές; Ότι στο «Στέκι» 2/3 λένε Λάθος γιατί «είναι συντακτικό λάθος» ενώ 1/3 λένε Σωστό, «αλλά δεν προτείνονται»;

Έλεος πια. Ας αφήσουν οι επιτροπές εξετάσεων τη θεωρία και ας βάλουν ασκήσεις. Κάποτε η «καθαρή» θεωρία ήταν +/-10 μονάδες. Πέρσι έφτασε στις 30 περίπου. Με αποκορύφωμα το Θ1.Β.1 (6 μονάδες): «Να αναφέρετε τις τυποποιημένες κατηγορίες τεχνικών-μεθόδων σχεδίασης αλγορίθμων.» Ήταν bullet και έδινε μία μονάδα για κάθε λέξη που είχε κάποιος μαθητής αποστηθίσει. Συγνώμη, αλλά αυτό δεν είναι εξετάσεις.

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

>:D
Δημήτρης Φρυδάς

andreas_p

Δημήτρη Φρυδά , καλημέρα.

Αυτό 'φωνάζουμε' χρόοοονια τώρα ...

klitos

Δεν υπαρχει συναρτηση χωρις παραμετρους... μονο διαδικασια
μη μπερδευουμε τα παιδια με το κανει η γλωσσομαθεια η το τι λενε τα βοηθηματα....
το μονο στοιχειο που πρεπει να εχουμε ειναι το σχολικο βιβλιο ...
οι περισσοτεροι πληροφορικοι εχουν αποψη η οποια στηριζεται σε γνωσεις και εμπειριες απο γλωσσες προγραμματισμου που ομως δεν εχουν σχεση με την ΓΛΩΣΣΑ


κλητος χατζηγεωργιου

evry

Παράθεση από: klitos στις 08 Μαΐου 2009, 10:56:26 ΠΜ
Δεν υπαρχει συναρτηση χωρις παραμετρους... μονο διαδικασια
Αυτό πάντως δεν το λέει κάπου στο βιβλίο ρητά. Μπορούμε να το εξάγουμε σαν συμπέρασμα αν υποθέσουμε ότι είναι λάθος οι εντολές εισόδου/εξόδου σε συνάρτηση

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

P.Tsiotakis

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

evry


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

P.Tsiotakis

Δεν το υπέβαλλα προσωπικά σε σένα φίλε, αλλά στην άποψη που θέλει να είναι αντι-επιστημονική η παρουσίαση σημέων στην ΑΕΠΠ όπως αυτή.

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

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

ΚΑι φυσικά εννοώ:

- Όχι ΔΙΑΒΑΣΕ/ΓΡΑΨΕ στη συνάρτηση.
- Όχι ΣΤΑΘΕΡΕΣ ως παράμετροι στη διαδικασία, ναι στη συνάρτηση
- Υποχρεωτικά παράμετροι στη συνάρτηση, προαιρετικά στη διαδικασία
- Η διαδικασία επιστρέφει ΟΛΕΣ τις τιμές των τυπικών στις πραγματικές παραμέτρους (έχουν δεν έχουν αλλάξει). Η συνάρτηση ΟΧΙ, ακόμα και αν έχουν αλλάξει (θεμιτό και πιθανό) επιστρέφει μόνο μια τιμή, αυτή που εκχωρείται στο όνομά της.


ΥΓ: Αυτό ακριβώς είναι το θέμα. ΚΑΝΕΝΑΣ χημικός δε θα συζητήσει με τα παιδιά για την "πραγματική" χημεία. Θα καλύψει τις ενδεχόμενες αδυναμίες του βιβλίου του.
Δεν διαβάζουν όλοι οι μαθητές wikipedia. Τουλάχιστον όχι αυτοί της επαρχίας

evry

Παράθεση από: Τσιωτάκης Παναγιώτης στις 08 Μαΐου 2009, 05:20:26 ΜΜ
Δεν το υπέβαλλα προσωπικά σε σένα φίλε, αλλά στην άποψη που θέλει να είναι αντι-επιστημονική η παρουσίαση σημέων στην ΑΕΠΠ όπως αυτή.
Εντάξει, δεν το κατάλαβα απλά φαίνεται σαν να απευθύνεσαι σε μένα και για μια στιγμή ανησύχησα για τη μνήμη μου (γεράματα)

Συμφωνώ με την προσέγγισή σου, αλλά δε νομίζω ότι το παράδειγμα είναι ισομορφικό. Όσα χρόνια διδάσκω το μάθημα (σαφώς λιγότερα από τους περισσότερους εδώ μέσα), μου έχει δημιουργηθεί η εντύπωση πως η παρουσίαση πολλών θεμάτων στο βιβλίο δεν είναι ούτε με επιστημονικό αλλά ούτε και με διδακτικό τρόπο, τουλάχιστον όσο μπορώ να δω με τις γνώσεις που έχω. Δηλαδή αν για κάποιον διδακτικό σκοπό αποκρύψουμε κάποια πράγματα, τότε οκ δεν έχω κανένα πρόβλημα. Αλλά εδώ και ειδικά στα υποπρογράμματα γίνεται χαμός. Αφού η ΓΛΩΣΣΑ είναι κατά το μεγαλύτερο κομμάτι της μια μετάφραση της Pascal γιατί δεν υιοθέτησαν και αυτά που ισχύουν στα υποπρογράμματα; Δεν είπα να κάνουν τα παιδιά C, αλλά η φιλοσοφία της Pascal μια χαρά είναι. Δεν θα ήταν καλύτερο να είχαν μια κωδική λέξη ας πούμε όπως το var για να ξεχωρίζουν οι παράμετροι εισόδου/εξόδου ή το in/out της Ada ας πούμε;
    Ειδικά στο τρόπο μεταβίβασης παραμέτρων δεν βλέπω ούτε επιστημονικό ούτε διδακτικό σχεδιασμό να κρύβεται από πίσω. Το ίδιο ισχύει με το Διάβασε σε Συνάρτηση. Γιατί να θεωρείται λάθος? Δεν θα ήταν πιο λογικό να πούμε στα ότι παιδιά είναι κακός σχεδιασμός? (που ούτε αυτό είναι, μια χαρά δούλευε η readkey στην Pascal).

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

Παράθεση
- Όχι ΔΙΑΒΑΣΕ/ΓΡΑΨΕ στη συνάρτηση.
Δεν υπάρχει σοβαρός λόγος ώστε να απαγορεύεσεις κάτι τέτοιο στον προγραμματισμό. Αν σου πουν να κάνεις ένα υποπρόγραμμα που να διαβάζει έναν αριθμό ή και να κάνει έλεγχο εγκυρότητας καλύτερα γίνεται με συνάρτηση παρά με διαδικασία. βλέπε readkey() στην Pascal, getchar() στη C κλπ. Στο Γράψε φυσικά υπάρχει πρόβλημα γιατί εκεί η συνάρτηση θα είχε 2 εξόδους οπότε αυτό σηκώνει πολύ κριτική. Και πάλι όμως δεν μπορεί να θεωρηθεί λάθος αλλά κακός σχεδιασμός.

Παράθεση
- Όχι ΣΤΑΘΕΡΕΣ ως παράμετροι στη διαδικασία, ναι στη συνάρτηση
Αν είχαμε το var της Pascal ή το in/out της Ada τότε δεν θα υπήρχε αυτό το πρόβλημα

Παράθεση
- Υποχρεωτικά παράμετροι στη συνάρτηση, προαιρετικά στη διαδικασία
αν επιτρέπεις σε μια συνάρτηση να διαβάζει τότε μπορεί και να μην έχει παραμέτρους. Αλλά και πάλι αν κάνεις μια συνάρτηση που να υπολογίζει το e για παράδειγμα, που είναι το κακό? Απλά είναι κακός σχεδιασμός, οκ, αλλά πάλι δεν μπορεί να χαρακτηριστεί ως λάθος
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

alkisg

Είναι γνωστό από το βιβλίο (αλλά αμφισβητήσιμο ;)) ότι η είσοδος ενός υποπρογράμματος μπορεί να προκύπτει από πρωτογενείς τιμές.
Έτσι, μια
ΣΥΝΑΡΤΗΣΗ ΤΥΧΑΙΟΣ: ΠΡΑΓΜΑΤΙΚΗ
η οποία επιστρέφει ένα τυχαίο πραγματικό αριθμό από 0 μέχρι 1 και η οποία υπάρχει στις περισσότερες γλώσσες προγραμματισμού ικανοποιεί μια χαρά τα κριτήρια των αλγορίθμων και δεν αντιτίθεται πουθενά με τα όσα γράφει το βιβλίο. Τυχαίνει να μην είναι υλοποιήσιμη με την υπάρχουσα ύλη επειδή δεν έχει οριστεί κάποια μέθοδος ανάκτησης πρωτογενών τιμών (π.χ. τρέχουσα ώρα), αλλά μπορεί π.χ. να υπάρχει παράδειγμα με random στα παρακάτω κεφάλαια, π.χ. στον αντικειμενοστραφή ή στον οπτικό προγραμματισμό με ΓΛΩΣΣΑ. Ας μην ξεχνάμε ότι αν και εκτός ύλης, πρόκειται πάντα για την ίδια ΓΛΩΣΣΑ, και αν του χρόνου αλλάξει η ύλη δεν θα πρέπει να αλλάξει και η ερμηνεία μας.

Για τις σταθερές ως παράμετροι σε διαδικασία υπάρχει το παράδειγμα των πύργων του ΑΝΟΙ στο τετράδιο μαθητή, επομένως και μέχρι να έρθει διόρθωση (σιγά μην έρθει - υπάρχουν ένα σωρό ακόμα τέτοια παραδείγματα στα εκτός ύλης κεφάλαια) είναι σίγουρο ότι επιτρέπονται.


Με άλλα λόγια, τα γνωστά: διαφωνίες, γκρίζες ζώνες... είναι θέματα αυτά για εξετάσεις;

Νίκος Αδαμόπουλος

#12
Παράθεση από: Τσιωτάκης Παναγιώτης στις 08 Μαΐου 2009, 05:20:26 ΜΜ
Δεν το υπέβαλλα προσωπικά σε σένα φίλε, αλλά στην άποψη που θέλει να είναι αντι-επιστημονική η παρουσίαση σημέων στην ΑΕΠΠ όπως αυτή.
......
Συνεπώς θεωρώ απόλυτα αξιοπρεπή τον τρόπο που η ΓΛΩΣΣΑ χειρίζεται τον τμηματικό προγραμματισμό και μου αρκούν τα εργαλεία που μου διαθέτει για να παρουσιάσω αυτό το κεφάλαιο στους μαθητές.

ΚΑι φυσικά εννοώ:

- Όχι ΔΙΑΒΑΣΕ/ΓΡΑΨΕ στη συνάρτηση.
- Όχι ΣΤΑΘΕΡΕΣ ως παράμετροι στη διαδικασία, ναι στη συνάρτηση
- Υποχρεωτικά παράμετροι στη συνάρτηση, προαιρετικά στη διαδικασία
- Η διαδικασία επιστρέφει ΟΛΕΣ τις τιμές των τυπικών στις πραγματικές παραμέτρους (έχουν δεν έχουν αλλάξει). Η συνάρτηση ΟΧΙ, ακόμα και αν έχουν αλλάξει (θεμιτό και πιθανό) επιστρέφει μόνο μια τιμή, αυτή που εκχωρείται στο όνομά της.
....

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

Είναι αδύνατον να καταγράψει κάποιος τι επιτρέπεται αλλά και τι δεν επιτρέπεται! Μερικά θα πρέπει να τα υποθέσουμε και από μόνοι μας! Δηλαδή ακόμα και στον ΚΟΚ καταγράφονται όλα όσα απαγορεύονται (ίσως και όχι όλα!), αλλά δεν ορίζεται με σαφήνεια μέχρι πόσα dB πρέπει να ακούει κάποιος μουσική ώστε να μπορεί να ακούσει αν κάποιος άλλος κουρνάρει. Ή ακόμα, δεν χρειάζεται να καταγραφτεί ότι επιτρέπεται το σιγοτραγούδισμα από τον οδηγό όταν αυτός οδηγεί με ταχύτητα από 80 έως 100 χλμ/ώρα...

Βλ. παράλληλη κουβέντα και στο https://alkisg.mysch.gr/steki/index.php?topic=1950 ...

alkisg

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

Εάν τα παραδείγματα στο βιβλίο του ΚΟΚ έδιναν προτεραιότητα σε όσους έρχονται από δεξιά,
αλλά σε κάποια σημεία της θεωρίας έλεγε ότι έχουν προτεραιότητα όσοι έρχονται από αριστερά,
ποιο από τα δύο θα έπρεπε να δεχτούμε;
Κι αν δεχόμασταν κάποιο από τα δύο ως σωστό, θα το θεωρούσαμε και αρκετά προφανές ώστε να εξετάσουμε τους υποψηφίους σ' αυτό;

Υπάρχουν πολλά αντικρουόμενα σημεία στο βιβλίο, όχι μόνο ελλείψεις... 400 διορθώσεις στείλαμε, ελάχιστες πέρασαν. Θα έπρεπε τουλάχιστον να μην εξετάζουν τα σημεία που τους έχουμε εντοπίσει ως προβληματικά.

klitos

Παράθεση από: alkisg στις 09 Μαΐου 2009, 03:26:19 ΜΜ
Υπάρχουν παραδείγματα στο σχολικό βιβλίο στο οποίο περνιούνται σταθερές σε διαδικασίες.
Δεν υπάρχει σημείο της θεωρίας που αναφέρει ρητά ότι απαγορεύεται.
Πώς μπορώ να θεωρήσω ότι ΔΕΝ επιτρέπεται;
Δες σελίδα 218 "Μετά την εκτέλεση των εντολών της διαδικασίας οταν εκτελεστεί η εντολή ΤΕΛΟΣ ΔΙΑΔΙΚΑΣΙΑΣ, οι μετεβλητες της διαδικασίας δινουν τις τιμές που περιέχουν στις αντίστοιχες μεταβλητές ..." , επισης δες και το σχεδιάγραμμα της ιδιας σελίδας.
Νομίζω οτι ειναι ξεκαθαρο πως λειτουργεί η μεταφορα των τιμών απο τις τυπικές στις πραγματικες παραμέτρους
κλητος χατζηγεωργιου