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

Γενικό Λύκειο => Γ΄ Λυκείου => Τμηματικός προγραμματισμός => Μήνυμα ξεκίνησε από: Γιάννης Σ. στις 13 Μαρ 2010, 11:17:43 ΜΜ

Τίτλος: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: Γιάννης Σ. στις 13 Μαρ 2010, 11:17:43 ΜΜ
Μήπως ξέρει κάποιος αν μπορώ να καλέσω ένα υποπρόγραμμα στέλνοντας τιμές στη θέση των πραγματικών παραμέτρων και μεταβλητέςστη θέση των ορισμάτων πχ.

ΚΑΛΕΣΕ Υπολ(1, 'Γιάννης')
......
...
ΔΙΑΔΙΚΑΣΙΑ Υπολ(Χ, Όνομα)
....
Εάν ναι, πως επιστρεφεται η τιμή;
Επίσης, Όλες οι παράμετροι επιστρέφουν τιμή;
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: Laertis στις 13 Μαρ 2010, 11:53:06 ΜΜ
Δεν μπορείς να χρησιμοποιοήσεις σταθερές στην κλήση διαδικασίας. Μόνο μεταβλητές ως παραμέτρους.
Η επιστροφή τιμής έχει νόημα όταν μεταβάλλεται η μεταβλητή παράμετρος μέσα στην διαδικασία. Ναι όλες οι παράμετροι επιστρέφουν τιμές
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: alkisg στις 14 Μαρ 2010, 12:03:37 ΠΜ
Οι απόψεις διίστανται :)

Σύμφωνα με το βιβλίο, γίνεται αντιγραφή των τιμών των παραμέτρων στη στοίβα, δεν μεταβιβάζονται οι διεύθυνσεις τους.
Επομένως μπορείς κάλλιστα να περάσεις τιμές σε διαδικασίες.
Υπάρχει και παράδειγμα στο σχολικό βιβλίο, οι Πύργοι του Ανόι. Άρα, όσο υπάρχει αυτό το παράδειγμα στο βιβλίο, κανείς δεν μπορεί να θεωρήσει λάθος την μεταβίβαση σταθερών σε διαδικασίες.
Σύμφωνα και με έναν από τους συγγραφείς του βιβλίου, αν κάποιος θέλει να περάσει μεταβλητή *με τιμή* σε διαδικασία, την κάνει έκφραση βάζοντάς την π.χ. σε παρένθεση (πωπω πάνε 7-8 χρόνια από τότε που τους έπαιρνα τηλέφωνο για να μου πουν τι ισχύει για να υλοποιήσω το Διερμηνευτή, και ακόμα δεν έχουμε κοινή αντιμετώπιση σε πολλά θέματα... έλεος με αυτές τις ασάφειες  :()
https://alkisg.mysch.gr/ΓΛΩΣΣΑ/Μεταβίβαση_παραμέτρων (https://alkisg.mysch.gr/%CE%93%CE%9B%CE%A9%CE%A3%CE%A3%CE%91/%CE%9C%CE%B5%CF%84%CE%B1%CE%B2%CE%AF%CE%B2%CE%B1%CF%83%CE%B7_%CF%80%CE%B1%CF%81%CE%B1%CE%BC%CE%AD%CF%84%CF%81%CF%89%CE%BD)
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: Laertis στις 14 Μαρ 2010, 01:47:22 ΜΜ
Έχει δίκιο ο Άλκης. Υπάρχει διχογνωμία για το πέρασμα σταθερών στα υποπρογράμματα κάτι που δεν ξεκαθαρίζει σαφώς το βιβλίο. Στο βιβλίο αναφέρεται ρητά ότι οι λίστες παραμέτρων στις διαδικασίες είναι μια λίστα μεταβλητών , των οποίων οι τιμές κλπ (σελ 214).
Στο τετράδιο όμως υπάρχει το παράδειγμα που αναφέρει ο Άλκης που αναιρεί ότι ισχυρίζεται το βιβλίο.
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: P.Tsiotakis στις 14 Μαρ 2010, 07:58:39 ΜΜ
άρα το τετράδιο μαθητή έχει λάθος στο παράδειγμα 2 (Ανόι) και πρέπει να αλλάξει
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: evry στις 14 Μαρ 2010, 08:27:46 ΜΜ
ή το βιβλίο έχει λάθος και πρέπει να αλλάξει  :D
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: Γιάννης Σ. στις 15 Μαρ 2010, 12:59:43 ΠΜ
Το λέω γιατί σε όλα τα βοηθήματα που έχω δει θεωρούν ότι δεν γίνεται.
:)
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: Laertis στις 15 Μαρ 2010, 10:15:20 ΠΜ
Απλά για τις εξετάσεις κράτα αυτό που σου είπα.
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: ntzios kostas στις 15 Μαρ 2010, 11:22:54 ΠΜ
Όχι όμως την αναίρεση του τετραδίου μαθητή.  :)
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: Laertis στις 15 Μαρ 2010, 11:43:24 ΠΜ
Παράθεση από: ntzios kostas στις 15 Μαρ 2010, 11:22:54 ΠΜ
Όχι όμως την αναίρεση του τετραδίου μαθητή.  :)

Αυτό δεν το είπα εγώ Κώστα  :)
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: Γιάννης Αναγνωστάκης στις 15 Μαρ 2010, 02:06:39 ΜΜ
Tελικά τι από τα δύο θα λέμε στους μαθητές; Μπορούν ή δεν μπορούν να στέλνουν  στις συναρτήσεις ως παραμέτρους
σταθερές τιμές?
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: P.Tsiotakis στις 15 Μαρ 2010, 03:19:11 ΜΜ
στις συναρτήσεις ναι, στις διαδικασίες όχι
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: alkisg στις 15 Μαρ 2010, 03:37:25 ΜΜ
Παράθεση από: janag79 στις 15 Μαρ 2010, 02:06:39 ΜΜ
Tελικά τι από τα δύο θα λέμε στους μαθητές; Μπορούν ή δεν μπορούν να στέλνουν  στις συναρτήσεις ως παραμέτρους
σταθερές τιμές?

Σύμφωνα και με τους συγγραφείς και με το διδακτικό πακέτο, και στις συναρτήσεις και στις διαδικασίες ναι.

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

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

Σόρρυ για την ευθεία απάντηση, απλά ήθελα να φανεί ξεκάθαρα ότι όταν δεν υπάρχει ομοφωνία, δεν έχει νόημα να περιμένουμε τη λύση από ένα φόρουμ... Έχουμε κάνει άπειρες προσπάθειες για τη λύση τους στο παρελθόν, μέχρι και στο Π.Ι. στείλαμε τις ασάφειες, αλλά ως μη επίσημος φορέας δεν πήραμε απάντηση. Μόνο με έγγραφο μπορεί να απαντηθεί η ερώτηση.
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: Laertis στις 15 Μαρ 2010, 04:05:22 ΜΜ
Και θεωρείς Άλκη ότι αυτό είναι δουλειά του κάθε εκπαιδευτικού να αποστέλει ερωτήματα προς το Υπουργείο που αφορά παρερμηνείες ή ασάφειες; Το βιβλίο υπάρχει εδώ και 11 χρόνια ...
Οι σύμβουλοι τι δουλειά κάνουν ;
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: evry στις 15 Μαρ 2010, 04:24:01 ΜΜ

  Το μόνο σίγουρο είναι πως αν κάποιος μαθητής χρησιμοποιήσει κάτι τέτοιο στις εξετάσεις δεν πιστεύω πως θα βρεθεί βαθμολογητής που θα του κόψει.
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: P.Tsiotakis στις 15 Μαρ 2010, 05:30:39 ΜΜ
εγώ αν βαθμολογούσα θα του έκοβα, γιατί απλά δεν έχει καταλάβει οτι οι τιμές των τυπικών παραμέτρων μεταβιβάζονται στις πραγματικές.
Είναι το ίδιο με το να προσπαθεί ο μαθητής να αλλάζει τιμή σε συμβολική σταθερά στη ΓΛΩΣΣΑ.

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

Το μόνο επιχείρημα για την κλήση με χρήση παραμέτρων με αναφορά στην τιμή με χρήση σταθερών είναι το παράδειγμα το Ανόι. Ενώ όλο το ύφος του υπόλοιπου διδακτικού πακέτου είναι αντίθετο. Λες και δεν υπάρχουν και άλλα σημεία στο διδακτικό πακέτο με λάθη.
Και είναι να απορεί κανείς πως έχει εντυπωθεί η pascal στο DNA μας.
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: ntzios kostas στις 15 Μαρ 2010, 08:08:46 ΜΜ
Και εγώ να συμφωνήσω με τον Παναγιώτη ότι αν το έβλεπα στις εξετάσεις θα του έκοβα κάποια μόρια. Στις σελίδες 217 και 218 του σχολικού περιγράφεται αναλυτικά το πέρασμα τιμών.

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


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


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

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

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

Παράθεση από: Τσιωτάκης Παναγιώτης στις 15 Μαρ 2010, 05:30:39 ΜΜ
Και είναι να απορεί κανείς πως έχει εντυπωθεί η pascal στο DNA μας.
Η μεταβίβαση παραμέτρων έχει επιρροές από Basic, όχι από Pascal. :)
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: gthal στις 18 Μαρ 2010, 09:40:04 ΠΜ
Παράθεση από: alkisg στις 18 Μαρ 2010, 08:43:56 ΠΜ
Η μεταβίβαση παραμέτρων έχει επιρροές από Basic, όχι από Pascal. :)
Ναι αλλά μάλλον ο Παναγιώτης εννοεί ότι θα θέλαμε να έχει επιρροές από  Pascal. 
Και εγώ συμφωνώ, και ως τώρα έτσι τις έβλεπα και τις δίδασκα. Δεν είχα καν παρατηρήσει τη λεπτομέρεια που λέτε. (άρα έχω την Pascal στο DNA μου)
Αλήθεια, από ποια basic υπήρξαν συναρτήσεις και διαδικασίες ως υποπρογράμματα? εγώ θυμάμαι μόνο routines και subroutines, που ... ας μη μιλήσουμε για τη μεταβίβαση παραμέτρων τους  :D
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: Νίκος Αδαμόπουλος στις 18 Μαρ 2010, 09:47:27 ΠΜ
VB! Οι συγγραφείς αυτήν πρέπει να είχαν στο μυαλό τους. Π.χ., όπως έχουμε πει, η Για...από...μέχρι...με_βήμα βασίζεται στην For...to...step
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: ntzios kostas στις 18 Μαρ 2010, 10:56:52 ΠΜ
ΠαράθεσηΠαράθεση από: ntzios kostas στις 15 Μαρ 2010, 08:08:46 pm (https://alkisg.mysch.gr/steki/index.php?topic=2700.msg23987#msg23987)<blockquote>Αν στείλουμε την απορία στους συμβούλους από εκεί να πάει στο ΠΙ, τότε  τέλος_αν.
Δεν ξέρω έχει νόημα η δομή επιλογής χωρίς να περιλαμβάνει στο εσωτερικό της εντολές;

</blockquote>

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

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


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

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

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

Το ότι δεν αναφέρθηκε κάτι δεν είναι απόδειξη ότι δεν ισχύει.
Αντίθετα, τα παράδειγματα όπως αυτό του Ανόι αποτελούν απόδειξη...
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: gthal στις 18 Μαρ 2010, 02:00:35 ΜΜ
χμμμ
Δηλαδή η by reference μεταβίβαση δεν υφίσταται, σύμφωνα με το βιβλίο ...
Το ότι πίστευα ότι υφίσταται (όπως και άλλοι συνάδελφοι που ξέρω) οφείλεται σε κεκτημένη ταχύτητα.
(και πάλι επειδή στο DNA μας είναι η Pascal :) )
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: ntzios kostas στις 18 Μαρ 2010, 04:50:58 ΜΜ
Στις σελίδες 217 και 218 το βιβλίο λέει πεντακάθαρα και με το σχήμα που χρησιμοποιεί, ότι όσες τιμές στέλνει το κύριο πρόγραμμα στη διαδικασία τόσες και οι τιμές που στέλνει η διαδικασία στο κύριο πρόγραμμα, είτε άλλαξαν είτε δεν άλλαξαν τιμή. Που θα στέλνει το υποπρόγραμμα τις τιμές αν για παραμέτρους έχουμε σταθερές ή εκφράσεις;

Η άποψη μου Άλκη είναι αυτή που είπε και ο Παναγιώτης, ότι δηλαδή το παράδειγμα με τους πύργους του Ανόι πρέπει να διορθωθεί.
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: alkisg στις 18 Μαρ 2010, 06:00:47 ΜΜ
Προφανώς οι τιμές που δεν μπορούν να επιστραφούν απορρίπτονται.
Στις συναρτήσεις δηλαδή πώς θα ήταν το σχήμα; Ή, γιατί δεν έχει ξεχωριστό σχήμα για τις συναρτήσεις;

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

Το ίδιο συμβαίνει και σε πολλές άλλες έννοιες, π.χ. στην ΓΡΑΨΕ δεν αναφέρεται ότι επιτρέπονται εκφράσεις - όταν όμως τους είχα πει ότι κάποιοι συνάδελφοι θεωρούν λάθος την ΓΡΑΨΕ χ+1, δεν μπορούσαν να πιστέψουν ότι υπήρχε τέτοια παρανόηση... Τέλος πάντων, δεν νομίζω ότι μπορώ να προσφέρω κάτι άλλο στη συζήτηση, τα έχουμε πει δεκάδες φορές τα τελευταία χρόνια. Απλά καλό θα είναι να ζητηθεί επίσημη διευκρίνηση από κάποιον που διδάσκει φέτος το μάθημα για να μην γίνονται λάθη στις βαθμολογήσεις.
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: ntzios kostas στις 20 Μαρ 2010, 11:15:09 ΠΜ
Έστω η διαδικασία:

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

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

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

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

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

Δεν νομίζω παντως ότι είναι η ίδια περίπτωση με το γράψε. Επίσης η διευκρίνηση πρέπει να έρθει όχι μόνο για αυτόν που διδάσκει πρώτη φορά το μάθημα, αλλά και για όλους, γιατί όπως βλέπω διαφορετικά το αντιλαμβανόμαστε και εμείς που το διδάσκουν 10 χρόνια το μαθημα.
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: evry στις 20 Μαρ 2010, 11:24:09 ΠΜ
  λογικά θα είναι

  Ν' <-- Ν' + 1

όπου Ν' = Ν-1

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

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

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

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

αν βγει τροποποίηση απο ΠΙ θα συμφωνήσω Αλκη 100%
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: axi στις 20 Μαρ 2010, 11:48:00 ΜΜ
Εδώ νομίζω ότι ο Άλκης έχει πέρα για πέρα δίκιο. Απλά τους ξέφυγε.
Εξάλου μέσα στο βιβλίο υπάρχει η αναδρομή.
Θα κάνεις αναδρομή χωρίς να στείλεις έκφραση;
καταντάει βαρετό και ασύμφορο να θέλεις να στείλεις μια τιμή
και να πρέπει να ορίσεις μια μεταβλητή για το λόγο αυτό.
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: ntzios kostas στις 22 Μαρ 2010, 09:11:16 ΠΜ
Γιατί πρέπει να έχεις έκφραση για να κάνεις αναδρομή δεν το καταλαβαίνω.

Ρε παιδιά διαβάζοντας το σχολικό βιβλίο στις σελίδες που προανέφερα δεν χωράει αμφιβολία για το τι πρέπει να ισχύει. Και αν το πάρουμε και αλλιώς μου φαίνεται και λίγο μπασταρδεμένη η εκδοχή να επιτρέπεται. Δηλαδή έχουμε by reference μεταβίβαση τιμών αλλά αν είναι έκφραση είναι by value. Εγώ αυτό δεν το έχω ξαναδεί. 
Τίτλος: Απ: Παράμετροι : Τιμές και μεταβλητές
Αποστολή από: alkisg στις 22 Μαρ 2010, 10:17:07 ΠΜ
Δεν έχουμε μεταβίβαση παραμέτρων by reference.

Το βιβλίο μιλάει για αντιγραφή των τιμών των παραμέτρων (και επαναφορά τους κατά το ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ), όχι για μεταβίβαση των διευθύνσεών τους στη RAM.
Για να είχαμε by reference θα έπρεπε να είχαν πει για pointers, και προφανώς αυτό ήταν που ήθελαν να αποφύγουν...

Παράδειγμα:
Κώδικας [Επιλογή]

Κυρίως πρόγραμμα:
  α <- 1
  ΚΑΛΕΣΕ Διαδικασία1(α)

Διαδικασία1(β)
  β <- 2
  ****ΕΔΩ*****
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ


Στο σημείο "ΕΔΩ" της διαδικασίας, η μεταβλητή α του κυρίως προγράμματος ΔΕΝ έχει αλλάξει (μπορείς να το δεις και από την παρακολούθηση μεταβλητών του Διερμηνευτή). Σύμφωνα με το βιβλίο, αλλάζει με το ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ, όχι πιο πριν. Δηλαδή πρόκειται για διαφορετικές μεταβλητές, όπως περιγράφει και το σχήμα του βιβλίου.
Αν ήταν by reference, τότε η "β" θα ήταν η ίδια μεταβλητή με την "α", οπότε στο σημείο "ΕΔΩ" θα άλλαζαν ταυτόχρονα και οι δύο, δεν θα περιμέναμε το ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ...

Να ξαναδώσω το link της βοήθειας του Διερμηνευτή στο οποίο τα περιγράφω αναλυτικά:
https://alkisg.mysch.gr/ΓΛΩΣΣΑ/Μεταβίβαση_παραμέτρων/ (https://alkisg.mysch.gr/%CE%93%CE%9B%CE%A9%CE%A3%CE%A3%CE%91/%CE%9C%CE%B5%CF%84%CE%B1%CE%B2%CE%AF%CE%B2%CE%B1%CF%83%CE%B7_%CF%80%CE%B1%CF%81%CE%B1%CE%BC%CE%AD%CF%84%CF%81%CF%89%CE%BD/)