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

Ξεκίνησε από 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 "Μετά την εκτέλεση των εντολών της διαδικασίας οταν εκτελεστεί η εντολή ΤΕΛΟΣ ΔΙΑΔΙΚΑΣΙΑΣ, οι μετεβλητες της διαδικασίας δινουν τις τιμές που περιέχουν στις αντίστοιχες μεταβλητές ..." , επισης δες και το σχεδιάγραμμα της ιδιας σελίδας.
Νομίζω οτι ειναι ξεκαθαρο πως λειτουργεί η μεταφορα των τιμών απο τις τυπικές στις πραγματικες παραμέτρους
κλητος χατζηγεωργιου

klitos

#15
Παράθεση από: klitos - evry στις 08 Μαΐου 2009, 10:56:26 ΠΜ
Δεν υπαρχει συναρτηση χωρις παραμετρους... μονο διαδικασια
Αυτό πάντως δεν το λέει κάπου στο βιβλίο ρητά. Μπορούμε να το εξάγουμε σαν συμπέρασμα αν υποθέσουμε ότι είναι λάθος οι εντολές εισόδου/εξόδου σε συνάρτηση
Το λεει πολυ ξεκάθαρα στο σημειο που αναφέρει οτι( σελ 214  κιτρινο πλαισιο) ότι η λίστα παραμέτρων δεν ειναι υποχρεωτική στη διαδικασία. Δηλαδή το οτι δεν το αναφέρει στη συναρτηση ειναι παράλειψη ? . Νομίζω οτι σε καθε περιγραφή αναφέρει το τι κανει καθε εντολή η διαδικασία ή συναρτηση και οχι τι ΔΕΝ κανει. 

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

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

alkisg

Παράθεση από: klitos στις 14 Μαΐου 2009, 08:45:17 ΠΜ
Δες σελίδα 218 "Μετά την εκτέλεση των εντολών της διαδικασίας οταν εκτελεστεί η εντολή ΤΕΛΟΣ ΔΙΑΔΙΚΑΣΙΑΣ, οι μετεβλητες της διαδικασίας δινουν τις τιμές που περιέχουν στις αντίστοιχες μεταβλητές ..." , επισης δες και το σχεδιάγραμμα της ιδιας σελίδας.
Νομίζω οτι ειναι ξεκαθαρο πως λειτουργεί η μεταφορα των τιμών απο τις τυπικές στις πραγματικες παραμέτρους

Δες σελίδα 106 τετραδίου μαθητή:

Κώδικας: ΓΛΩΣΣΑ
ΠΡΟΓΡΑΜΜΑ Πύργοι_του_Ανόι
ΣΤΑΘΕΡΕΣ
   Στύλος1=’Α’
   Στύλος2=’Β’
   Στύλος3=’Γ’
...
   ΚΑΛΕΣΕ Μετακίνησε(Ν, Στύλος1, Στύλος2, Στύλος3)
...
   ΚΑΛΕΣΕ Μετακινησε(Ν-1, ΣτύλοςΑ, ΣτύλοςΓ,ΣτύλοςΒ)
...
   ΚΑΛΕΣΕ Μετακίνησε(Ν-1, ΣτύλοςΒ, ΣτύλοςΑ, ΣτύλοςΓ)
...


Επιτρέπονται να περαστούν όχι μόνο σταθερές (Στύλος1), αλλά και εκφράσεις (Ν-1).

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

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

evry

Παράθεση από: klitos στις 14 Μαΐου 2009, 09:02:04 ΠΜ
Το λεει πολυ ξεκάθαρα στο σημειο που αναφέρει οτι( σελ 214  κιτρινο πλαισιο) ότι η λίστα παραμέτρων δεν ειναι υποχρεωτική στη διαδικασία. Δηλαδή το οτι δεν το αναφέρει στη συναρτηση ειναι παράλειψη ? . 
Ναι είναι παράλειψη!!! Τόσα λάθη και τόσες ασυνέπειες έχει το βιβλίο. Γιατί αυτό να μην αποτελεί μια από αυτές? Πως είσαι τόσο σίγουρος ότι δεν είναι παράλειψη? Δεν είσαι, απλά το υποθέτεις.
Να μου έλεγες ότι επειδή η συνάρτηση έχει οπωσδήποτε κάποια είσοδο και δεδομένου ότι δεν έχει διάβασε πρέπει να έχει τουλάχιστον μια παράμετρο είναι ένας συλλογισμός που μπορώ να δεχτώ.
   Αλλά δεν είναι δυνατόν να θεωρήσω τον παρακάτω συλλογισμό

  Η διαδικασία μπορεί να μην έχει λίστα παραμέτρων ==> η συνάρτηση έχει οπωσδήποτε λίστα παραμέτρων.

Δεν νομίζεις ότι είναι αρκετά μεγάλο λογικό άλμα?

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

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

klitos

Παράθεση
  Να μου έλεγες ότι επειδή η συνάρτηση έχει οπωσδήποτε κάποια είσοδο και δεδομένου ότι δεν έχει διάβασε πρέπει να έχει τουλάχιστον μια παράμετρο είναι ένας συλλογισμός που μπορώ να δεχτώ.
  Αλλά δεν είναι δυνατόν να θεωρήσω τον παρακάτω συλλογισμό
  Η διαδικασία μπορεί να μην έχει λίστα παραμέτρων ==> η συνάρτηση έχει οπωσδήποτε λίστα παραμέτρων.
Δεν νομίζεις ότι είναι αρκετά μεγάλο λογικό άλμα?
Νομιζω οτι επιασες ακριβως το νοημα μου... προφανως δεν ισχυει η συνεπαγωγη που αναφερεις αλλα ισχυει ομως το οτι η συναρτηση δεν εχει διαβασε αρα πρεπει να παρει τιμες ( εχω τοποθετηθει και παλιοτερα)
Οσον αφορα τωρα τα στραβα ματια , εμεις διορθωνουμε τα γραπτα των παιδιων στα οποια διδασκουμε τι ? Αν διδαξουμε αυτα που λεει στο βιβλιο ( τα λαθη ) τοτε πως θα διορθωσουμε ? " Παυλος κυκλος " που ελεγε και ενας φιλος ... Αρα ναχαμε να λεγαμε ...
κλητος χατζηγεωργιου

klitos

Παράθεση
Κώδικας: ΓΛΩΣΣΑ
ΠΡΟΓΡΑΜΜΑ Πύργοι_του_Ανόι
ΣΤΑΘΕΡΕΣ
   Στύλος1=’Α’
   Στύλος2=’Β’
   Στύλος3=’Γ’
...
   ΚΑΛΕΣΕ Μετακίνησε(Ν, Στύλος1, Στύλος2, Στύλος3)
...
   ΚΑΛΕΣΕ Μετακινησε(Ν-1, ΣτύλοςΑ, ΣτύλοςΓ,ΣτύλοςΒ)
...
   ΚΑΛΕΣΕ Μετακίνησε(Ν-1, ΣτύλοςΒ, ΣτύλοςΑ, ΣτύλοςΓ)
...


Επιτρέπονται να περαστούν όχι μόνο σταθερές (Στύλος1), αλλά και εκφράσεις (Ν-1).

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

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

alkisg

Παράθεση από: klitos στις 14 Μαΐου 2009, 01:48:01 ΜΜ
Η αποψή σου ειναι οτι μπορουμε να χρησιμοποιήσουμε σταθερες στην κληση των διαδικασιων?. Αν ναι τοτε πως διακιολογεις την επιστροφη των τιμων μετα το περας της διαδικασιας ? Εχουν μπει και θεματα παννεληνιων με πινακα τιμων ( προγραμμα και διαδικασια )

Η άποψή μου είναι διατυπωμένη αναλυτικά εδώ: https://alkisg.mysch.gr/ΓΛΩΣΣΑ/Μεταβίβαση_παραμέτρων και είχε προκύψει μετά από επικοινωνία με τη συγγραφική ομάδα το 2003 αν θυμάμαι καλά (το "κόλπο" που αναφέρω με τις παρενθέσεις, π.χ. ΚΑΛΕΣΕ ΜιαΔιαδικασία(Χ, (Ψ)) για όταν δεν είναι επιθυμητή η αλλαγή τιμών μου το πρότειναν οι ίδιοι, δεν ήταν δική μου ιδέα).
Φυσικά δεν στέκομαι στο τι είπαν οι συγγραφείς εκτός του βιβλίου - όμως το "αντιπαράδειγμα" που έχει το τετράδιο μαθητή είναι μια καλή απόδειξη ότι επιτρέπονται σταθερές σαν παράμετροι.

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

evry

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

Δ <- 1
ΚΑΛΕΣΕ Παράδοξο(Δ, Δ)
ΓΡΑΨΕ Δ
...........

ΔΙΑΔΙΚΑΣΙΑ Παράδοξο(Α, Β)
ΜΕΤΑΒΛΗΤΕΣ
    ΑΚΕΡΑΙΕΣ: Α, Β
ΑΡΧΗ
     Β <- Β + 2
     Α <- Α + 2009
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ


Απλά θέλω να ξέρω αν μπορεί να δοθεί μονοσήμαντη απάντηση για το παραπάνω με βάση μόνο το βιβλίο.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

sstergou

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

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

evry

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

bagelis

Μία συνάρτηση είναι ένα αλγόριθμος --> Ένα αλγόριθμος μπορεί να μην έχει είσοδο

Άρα

μία συνάρτηση μπορεί να μην έχει είσοδο.

Τεκμηριωμένο με βάση το σχολικό εγχειρίδιο...

evry

Δεν το κατάλαβα, μήπως έχεις βάλει κάτι σε λάθος σειρά?

Παράθεση από: bagelis στις 23 Μαΐου 2009, 09:19:38 ΜΜ
Μία συνάρτηση είναι ένα αλγόριθμος --> Ένα αλγόριθμος μπορεί να μην έχει είσοδο

Άρα

μία συνάρτηση μπορεί να μην έχει είσοδο.

Τεκμηριωμένο με βάση το σχολικό εγχειρίδιο...
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

P.Tsiotakis

Ένα αλγόριθμος πρέπει απαραίτητα να εκλπηρώνει το κριτήριο της εισόδου

bagelis

1) Ένας αλγόριθμος μπορεί να έχει καμία μία ή περισσότερες εισόδους
2) Ένα υποπρόγραμμα είναι ένας αλγόριθμος και αυτός
3) Μία συνάρτηση είναι ένα υποπρόγραμμα

3--> 2 --> 1
Άρα:
Μία συνάρτηση μπορείς να έχει καμμία μία ή περισσότερες εισόδους (είσοδο στην συνάρτηση εννοούμε τη λίστα τυπικών παραμέτρων)

@Παναγιώτης: Παναγιώτη μου αν το υποστηρίξεις αυτό που γράφεις μόνο του τότε δεν στέκει η πρόταση (1) μολονότι την αναφέρει το σχολικό.

P.Tsiotakis

Δε λέει οτι μπορεί να μην έχει καμια είσοδο.
Γράφει οτι μπορεί να μην εισάγεται καμια τιμή.

Πιο συγκεκριμένα Βαγγέλη, γράφει: "Είσοδος (input). Καμία, μία ή περισσότερες τιμές δεδομένων πρέπει να δίνονται ως είσοδοι στον αλγόριθμο. Η περίπτωση που δεν δίνονται τιμές δεδομένων εμφανίζεται, όταν ο αλγόριθμος δημιουργεί και επεξεργάζεται κάποιες πρωτογενείς τιμές με τη βοήθεια συναρτήσεων παραγωγής τυχαίων αριθμών ή με τη βοήθεια άλλων απλών εντολών."

ΠΑΝΤΑ υπάρχει είσοδος στον αλγόριθμο.

Αυτό που μπορεί να μην υπάρχει είναι οι εντολές Διάβασε, Δεδομένα γιατί μπορεί η είσοδος να πραγματοποιείται με άλλον τρόπο.

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

alkisg

Κώδικας: ΓΛΩΣΣΑ
ΔΙΑΔΙΚΑΣΙΑ ΔιάβασεΈνανΑριθμό(Χ)
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Χ
ΑΡΧΗ
  ΓΡΑΨΕ "Δώσε έναν αριθμό: "
  ΔΙΑΒΑΣΕ χ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΣΥΝΑΡΤΗΣΗ ΧωρίςΠαραμέτρους
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Χ
ΑΡΧΗ
  ΚΑΛΕΣΕ ΔιάβασεΈνανΑριθμό(Χ)
  ΧωρίςΠαραμέτρους <- Χ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ


Δεν προτείνεται, αλλά δεν απαγορεύεται κιόλας από πουθενά στο βιβλίο. Και είσοδο έχει και δεν περιέχει εντολές ΔΙΑΒΑΣΕ.  ;D
(αυτό που εννοώ είναι ότι είσοδος δεν είναι μόνο οι παράμετροι)

evry


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

ntzios kostas

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

evry

 
  Ένα λεπτό γιατί δεν κατάλαβα πως πηγάζει από τα μαθηματικά. Στα μαθηματικά δεν υπάρχουν τέτοιες εντολές ούτως ή άλλως. Το Διάβασε μέσα σε συνάρτηση στον προγραμματισμό θα μπορούσε να θεωρηθεί παράμετρος στα μαθηματικά. Επίσης σχεδόν σε όλες τις γλώσσες προγραμματισμού που έχω υπόψη μου (δεν είναι και πολλές αλλά είναι αυτές που μαθαίνουν οι περισσότεροι, δηλαδή C, C++, Java, Pascal ) δεν απαγορεύεται πουθενά κάτι τέτοιο. Μάλιστα σε πολλές περιπτώσεις είναι ιδιαίτερα χρηστικό
(βλέπε (ch = getch())!=EOF )
   Για να μπορέσουμε να αντιπαραβάλλουμε τον προγραμματισμό με τα μαθηματικά πρέπει να πάμε σε λ-λογισμό και ακόμα και εκεί δε νομίζω ότι ισχύει κάτι τέτοιο.
   Στη δική μας περίπτωση η τιμή που εισάγεται από Διάβασε μέσα στη συνάρτηση δεν μπορεί να θεωρηθεί και αυτή σαν μια άλλη κατηγορία παραμέτρου?
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

ntzios kostas

Στις περισσότερες γλώσσες προγραμματισμού και νομίζω σε όλες επιτρέπεται (Η C νομίζω ότι όλα τα υποπρογράμματα τα ονομάζει συναρτήσεις; ), όπως και επιτρέπεται η συνάρτηση να αλλάζει το περιεχόμενο μίας ή και περισσοτέρων παραμετρων κατά την κλήση της. Απλά δεν  θεωρώ σωστό να τα κάνουμε αυτά με την βοήθεια συνάρτησης. Το βιβλίο σε αυτό το σημείο θέλει να διδάξει όσο γίνεται το σωστό προγραμματισμό και γι΄αυτό απαγορεύει το διάβασε-γράψε και την αλλαγή των παραμέτρων μέσω της συνάρτησης.
ΠαράθεσηΣτη δική μας περίπτωση η τιμή που εισάγεται από Διάβασε μέσα στη συνάρτηση δεν μπορεί να θεωρηθεί και αυτή σαν μια άλλη κατηγορία παραμέτρου?
Οι παράμετροι σε όλες τις θετικές επιστήμες πρέπει να έχουν τιμή πριν την κλήση της συνάρτησης  και πρέπει να φαίνονται στην παρένθεση.
Το μάθημα Ανάπτυξη Εφαρμογών δεν έχει σαν στόχο την εκμάθηση κάποιου συγκεκριμένου προγραμματιστικού περιβάλλοντος ούτε την καλλιέργεια προγραμματιστικών δεξιοτήτων από τη μεριά των μαθητών. Δεν αποσκοπεί στη λεπτομερειακή εξέταση της δομής, του ρεπερτορίου και των συντακτικων κανόνων κάποιας γλώσσας...

evry

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

Παράθεση από: ntzios kostas στις 24 Μαΐου 2009, 10:58:32 ΜΜ
Το βιβλίο σε αυτό το σημείο θέλει να διδάξει όσο γίνεται το σωστό προγραμματισμό και γι΄αυτό απαγορεύει το διάβασε-γράψε και την αλλαγή των παραμέτρων μέσω της συνάρτησης.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

ntzios kostas

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

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

evry


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

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

mathiopoulosk


Μια συνάρτηση δεν χρειάζεται παραμέτρους όταν κάνει απλά έναν υπολογισμό.
Απλά πάντα θα επιστρέφει την ίδια τιμή. Γιατί όχι?
Για παράδειγμα:

ΣΥΝΑΡΤΗΣΗ ΑΘΡΟΙΣΜΑ():ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Ι
ΑΡΧΗ
   ΑΘΡΟΙΣΜΑ<--0
   ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100
       ΑΘΡΟΙΣΜΑ<--ΑΘΡΟΙΣΜΑ + Ι
   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Σε σχέση με το αν μπορούμε να βάζουμε σταθερές για παραμέτρους, αυτό παραβαίνει τον ορισμό ότι οι παράμετροι είναι μεταβλητές.
Θα έπρεπε να αλλάξει και ο ορισμός.

Μαθιόπουλος Κωνσταντίνος
http://mathiopoulosk.dyndns.org




ΜΑΘΙΟΠΟΥΛΟΣ Κ.
http://www.ictlab.edu.gr

antonproto

Παράθεση από: ntzios kostas στις 24 Μαΐου 2009, 10:01:33 ΜΜ
Παιδία το νόημα της απαγόρευσης του διάβασε στη συνάρτηση πηγάζει από τα μαθηματικά.
f(x,y)=... Άρα η τιμή της  f είναι συναρτήσει των παραμέτρων χ και y και καμίας άλλης. Δηλαδή αν μου δίνεις το χ και y  πρέπει να μπορώ να βρω την f. Έτσι και σε εμάς η τιμή της συνάρτησης είναι συναρτήσει μόνο των παραμέτρων που γράφουμε στη παρένθεση, και όχι και μιας τιμής που μας δίνει ο χρήστης η οποία δεν αποτελεί παράμετρο επηρεασμού της συνάρτησης.

Καλησπέρα κύριοι, είναι το πρώτο μου μηνυμα στο στέκι αν και σας παρακολουθώ αρκετά χρόνια. 
Επαναφέρω το θέμα διότι έχω βρεί την απάντηση στον φίλο evry.  O ntzios kostas κατα κάποιο τρόπο λέει τον λόγο.  Εψαξα ένα βιβλίο που είχα στο πανεπιστήμιο και βρήκα το εξής κομμάτι:

A general rule of thumb is to always use a procedure when more than one result is returned.  If a single result is returned, use a function when a pure computation is performed that requires no data beyond what is provided through the parameter list.  If input or output operations are also performed, use a procedure instead of a function , even if only a single result is returned.  The reason is that a function call can be inserted in an expression, and it is generally not useful to read or display information as part of an expression evaluation.

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

Καλό βράδυ σε όλους

alexandra64

ΚΑΛΗΣΠΕΡΑ!!!
ΘΑ ΜΠΟΡΟΥΣΕ ΝΑ ΜΟΥ ΑΠΑΝΤΗΣΕΙ ΚΑΠΟΙΟΣ ΤΙ ΕΝΝΟΕΙ ΤΟ ΒΙΒΛΙΟ ΟΤΙ <<ΤΑ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΠΡΕΠΕΙ ΝΑ ΕΧΟΥΝ ΜΙΑ ΕΙΣΟΔΟ ΚΑΙ ΜΙΑ ΕΞΟΔΟ;;;>>
ΣΕ ΤΙ ΑΝΑΦΕΡΕΤΑΙ ΩΣ "ΜΙΑ" ΓΙΑ ΤΗΝ ΕΙΣΟΔΟ;;;ΔΕΝ ΕΝΝΟΕΙ ΤΗ ΛΙΣΤΑ ΠΑΡΑΜΕΤΡΩΝ ΝΑ ΦΑΝΤΑΣΤΩ ΑΦΟΥ ΧΡΗΣΙΜΟΠΟΙΟΥΜΕ ΩΣ ΕΙΣΟΔΟ ΟΣΕΣ ΜΕΤΑΒΛΗΤΕΣ ΧΡΕΙΑΖΟΜΑΣΤΕ....

Laertis

Εννοεί ότι κάθε υποπρόγραμμα έχει ένα σημείο-πόρτα όπου εισάγονται ή/και εξάγονται δεδομένα και όχι ένα δεδομένο ώς είσοδο ή/και έξοδο.
Στη διαδικασία αυτή η "πόρτα" είναι η λίστα παραμέτρων και στη συνάρτηση για είσοδο η λίστα παραμέτρων και έξοδο το όνομα της συνάρτησης.
Ένα παράδειγμα που χρησιμοποιώ για να το κατανοήσουν τα παιδιά είναι η πόρτα (μία είσοδος-έξοδος) ενός δωματίου,  όπου μπορούν να μπαίνουν και βγαίνουν πολλά άτομα (δεδομένα).
Δε λαμβάνουμε υπόψη όσους θέλουν να χρησιμοποιούν τα παράθυρα  ;)
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

gthal

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

(είναι πράγματι πολύ ατυχές το ότι χρησιμοποιεί τις λέξεις είσοδος και έξοδος τις οποίες ήδη έχει συνδέσει τόσο πολύ με τη ροή δεδομένων προς ή από τον αλγόριθμο)
Φιλικά,
Γιώργος Θαλασσινός