Παράμετροι : Τιμές και μεταβλητές

Ξεκίνησε από Γιάννης Σ., 13 Μαρ 2010, 11:17:43 ΜΜ

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

P.Tsiotakis

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

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

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

ntzios kostas

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

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

alkisg

Παράθεση από: ntzios kostas στις 15 Μαρ 2010, 08:08:46 ΜΜ
Αν στείλουμε την απορία στους συμβούλους από εκεί να πάει στο ΠΙ, τότε  τέλος_αν.
Δεν ξέρω έχει νόημα η δομή επιλογής χωρίς να περιλαμβάνει στο εσωτερικό της εντολές;


Μέσα στο τότε μπαίνει «θα σταματήσουν οι μισοί καθηγητές να τα διδάσκουν λάθος και να κόβουν μονάδες γι' αυτά που διδάσκουν οι άλλοι μισοί» - είτε οι μεν είτε οι δε...


Anyway, να πω ένα άλλο παράδειγμα:
Παράθεση από: Σελίδα 213
Το όνομα της συνάρτησης είναι οποιοδήποτε έγκυρο όνομα της ΓΛΩΣΣΑΣ. Η λίστα παραμέτρων είναι μια λίστα μεταβλητών...

Αυτό το θεωρείτε ορισμό, και από αυτό καταλαβαίνετε ότι δεν επιτρέπονται τιμές/σταθερές/εκφράσεις;
Γιατί λίγο παρακάτω, έχει:
Παράθεση από: Σελίδα 223
Παραγοντικό <- Ν*Παραγοντικό(Ν-1)

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

Παράθεση από: Τσιωτάκης Παναγιώτης στις 15 Μαρ 2010, 05:30:39 ΜΜ
Και είναι να απορεί κανείς πως έχει εντυπωθεί η pascal στο DNA μας.
Η μεταβίβαση παραμέτρων έχει επιρροές από Basic, όχι από Pascal. :)

gthal

Παράθεση από: alkisg στις 18 Μαρ 2010, 08:43:56 ΠΜ
Η μεταβίβαση παραμέτρων έχει επιρροές από Basic, όχι από Pascal. :)
Ναι αλλά μάλλον ο Παναγιώτης εννοεί ότι θα θέλαμε να έχει επιρροές από  Pascal. 
Και εγώ συμφωνώ, και ως τώρα έτσι τις έβλεπα και τις δίδασκα. Δεν είχα καν παρατηρήσει τη λεπτομέρεια που λέτε. (άρα έχω την Pascal στο DNA μου)
Αλήθεια, από ποια basic υπήρξαν συναρτήσεις και διαδικασίες ως υποπρογράμματα? εγώ θυμάμαι μόνο routines και subroutines, που ... ας μη μιλήσουμε για τη μεταβίβαση παραμέτρων τους  :D
Φιλικά,
Γιώργος Θαλασσινός

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

VB! Οι συγγραφείς αυτήν πρέπει να είχαν στο μυαλό τους. Π.χ., όπως έχουμε πει, η Για...από...μέχρι...με_βήμα βασίζεται στην For...to...step

ntzios kostas

ΠαράθεσηΠαράθεση από: ntzios kostas στις 15 Μαρ 2010, 08:08:46 pm<blockquote>Αν στείλουμε την απορία στους συμβούλους από εκεί να πάει στο ΠΙ, τότε  τέλος_αν.
Δεν ξέρω έχει νόημα η δομή επιλογής χωρίς να περιλαμβάνει στο εσωτερικό της εντολές;

</blockquote>

Μέσα στο τότε μπαίνει «θα σταματήσουν οι μισοί καθηγητές να τα διδάσκουν λάθος και να κόβουν μονάδες γι' αυτά που διδάσκουν οι άλλοι μισοί» - είτε οι μεν είτε οι δε...

Στο τότε πρέπει να μπει αρχικά ότι το ΠΙ θα σου απαντήσει και στη συνέχεια θα συμβεί αυτό που λες.


ΠαράθεσηAnyway, να πω ένα άλλο παράδειγμα:
Παράθεση από: Σελίδα 213<blockquote>Το όνομα της συνάρτησης είναι οποιοδήποτε έγκυρο όνομα της ΓΛΩΣΣΑΣ. Η λίστα παραμέτρων είναι μια λίστα μεταβλητών...</blockquote>

Αυτό το θεωρείτε ορισμό, και από αυτό καταλαβαίνετε ότι δεν επιτρέπονται τιμές/σταθερές/εκφράσεις;
Γιατί λίγο παρακάτω, έχει:
Άλκη έχεις δίκιο για την συνάρτηση. Σε αυτό το σημείο είναι φανερό πάλι ότι το βιβλίο δεν γράφει ακριβώς τα πράγματα όπως είναι. Αλλά είναι απλά μία παράληψη κάποιων λέξεων. Στη διαδικασία δεν είναι το ίδιο πράγμα έχει ολόκληρη ανάλυση δύο σελίδων.

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

alkisg

Παράθεση από: ntzios kostas στις 18 Μαρ 2010, 10:56:52 ΠΜ
Άλκη έχεις δίκιο για την συνάρτηση. Σε αυτό το σημείο είναι φανερό πάλι ότι το βιβλίο δεν γράφει ακριβώς τα πράγματα όπως είναι. Αλλά είναι απλά μία παράληψη κάποιων λέξεων. Στη διαδικασία δεν είναι το ίδιο πράγμα έχει ολόκληρη ανάλυση δύο σελίδων.
Με δεδομένο ότι έχω την απάντηση των συγγραφέων ότι επιτρέπονται εκφράσεις ως παράμετροι σε διαδικασίες, και επομένως προσωπικά είμαι σίγουρος ότι δεν παρερμηνεύω το βιβλίο,
θεωρώ ότι είναι ακριβώς η ίδια περίπτωση, απλά πιο μεγάλη:
σε 2 σελίδες αναλύουν πώς περνιούνται οι μεταβλητές, αλλά δεν λένε τίποτα για τις εκφράσεις. Ούτε ότι επιτρέπονται ούτε ότι απαγορεύονται. Απλά επικεντρώθηκαν να εξηγήσουν τον μηχανισμό, δεν ασχολήθηκαν να αναλύσουν όλες τις περιπτώσεις...

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

gthal

χμμμ
Δηλαδή η by reference μεταβίβαση δεν υφίσταται, σύμφωνα με το βιβλίο ...
Το ότι πίστευα ότι υφίσταται (όπως και άλλοι συνάδελφοι που ξέρω) οφείλεται σε κεκτημένη ταχύτητα.
(και πάλι επειδή στο DNA μας είναι η Pascal :) )
Φιλικά,
Γιώργος Θαλασσινός

ntzios kostas

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

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

alkisg

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

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

Το ίδιο συμβαίνει και σε πολλές άλλες έννοιες, π.χ. στην ΓΡΑΨΕ δεν αναφέρεται ότι επιτρέπονται εκφράσεις - όταν όμως τους είχα πει ότι κάποιοι συνάδελφοι θεωρούν λάθος την ΓΡΑΨΕ χ+1, δεν μπορούσαν να πιστέψουν ότι υπήρχε τέτοια παρανόηση... Τέλος πάντων, δεν νομίζω ότι μπορώ να προσφέρω κάτι άλλο στη συζήτηση, τα έχουμε πει δεκάδες φορές τα τελευταία χρόνια. Απλά καλό θα είναι να ζητηθεί επίσημη διευκρίνηση από κάποιον που διδάσκει φέτος το μάθημα για να μην γίνονται λάθη στις βαθμολογήσεις.

ntzios kostas

Έστω η διαδικασία:

Διαδικασία Δ(Ν)
...
Αρχή
Ν<-Ν+1
Τέλος_Διαδικασίας

και οι εντολες

Ν<-5
Κάλεσε Δ(Ν)
γράψε Ν
Κάλεσε Δ(Ν-1)
γράψε Ν

Τι λες στους μαθητές σου ότι εμφανίζεται σε αυτή την περίπτωση;

Και γενικότερα τι λες στους μαθητές σου για τις παραμέτρους;

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

evry

  λογικά θα είναι

  Ν' <-- Ν' + 1

όπου Ν' = Ν-1

άρα Ν <- Ν +1 άρα το Ν αυξάνεται κατά 1  :D

αυτή την απάντηση μου είχε δώσει μαθητής σε αντίστοιχο ερώτημα που είχα βάλει κάποτε.

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

What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

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

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

alkisg

Παράθεση από: Νίκος Αδαμόπουλος στις 20 Μαρ 2010, 05:12:30 ΜΜ
... είναι απλό ο μεταγλωττιστής να έχει υλοποιηθεί έτσι ώστε αν η πραγματική παράμετρος είναι σταθερά ή έκφραση τότε η μεταβίβαση των τιμών να γίνεται προς την μία κατεύθυνση μονάχα, όπως στις συναρτήσεις...
Αυτό ακριβώς έχω υλοποιήσει στο Διερμηνευτή, και το έκανα έτσι επειδή έτσι μου είπανε οι συγγραφείς να τον υλοποιήσω... θα μου έπαιρνε πολύ λιγότερο χρόνο και κόπο (και RAM) αν υλοποιούσα αυτό που λένε ο Κώστας κι ο Παναγιώτης, αλλά δεν ήταν αυτό το σκεπτικό τους...

P.Tsiotakis

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

αν βγει τροποποίηση απο ΠΙ θα συμφωνήσω Αλκη 100%