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

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

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

Γιάννης Σ.

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

ΚΑΛΕΣΕ Υπολ(1, 'Γιάννης')
......
...
ΔΙΑΔΙΚΑΣΙΑ Υπολ(Χ, Όνομα)
....
Εάν ναι, πως επιστρεφεται η τιμή;
Επίσης, Όλες οι παράμετροι επιστρέφουν τιμή;

Laertis

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

alkisg

Οι απόψεις διίστανται :)

Σύμφωνα με το βιβλίο, γίνεται αντιγραφή των τιμών των παραμέτρων στη στοίβα, δεν μεταβιβάζονται οι διεύθυνσεις τους.
Επομένως μπορείς κάλλιστα να περάσεις τιμές σε διαδικασίες.
Υπάρχει και παράδειγμα στο σχολικό βιβλίο, οι Πύργοι του Ανόι. Άρα, όσο υπάρχει αυτό το παράδειγμα στο βιβλίο, κανείς δεν μπορεί να θεωρήσει λάθος την μεταβίβαση σταθερών σε διαδικασίες.
Σύμφωνα και με έναν από τους συγγραφείς του βιβλίου, αν κάποιος θέλει να περάσει μεταβλητή *με τιμή* σε διαδικασία, την κάνει έκφραση βάζοντάς την π.χ. σε παρένθεση (πωπω πάνε 7-8 χρόνια από τότε που τους έπαιρνα τηλέφωνο για να μου πουν τι ισχύει για να υλοποιήσω το Διερμηνευτή, και ακόμα δεν έχουμε κοινή αντιμετώπιση σε πολλά θέματα... έλεος με αυτές τις ασάφειες  :()
https://alkisg.mysch.gr/ΓΛΩΣΣΑ/Μεταβίβαση_παραμέτρων

Laertis

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

P.Tsiotakis

άρα το τετράδιο μαθητή έχει λάθος στο παράδειγμα 2 (Ανόι) και πρέπει να αλλάξει

evry

ή το βιβλίο έχει λάθος και πρέπει να αλλάξει  :D
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Γιάννης Σ.

Το λέω γιατί σε όλα τα βοηθήματα που έχω δει θεωρούν ότι δεν γίνεται.
:)

Laertis

Απλά για τις εξετάσεις κράτα αυτό που σου είπα.
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

ntzios kostas

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

Laertis

Παράθεση από: ntzios kostas στις 15 Μαρ 2010, 11:22:54 ΠΜ
Όχι όμως την αναίρεση του τετραδίου μαθητή.  :)

Αυτό δεν το είπα εγώ Κώστα  :)
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

Γιάννης Αναγνωστάκης

Tελικά τι από τα δύο θα λέμε στους μαθητές; Μπορούν ή δεν μπορούν να στέλνουν  στις συναρτήσεις ως παραμέτρους
σταθερές τιμές?

P.Tsiotakis

στις συναρτήσεις ναι, στις διαδικασίες όχι

alkisg

Παράθεση από: janag79 στις 15 Μαρ 2010, 02:06:39 ΜΜ
Tελικά τι από τα δύο θα λέμε στους μαθητές; Μπορούν ή δεν μπορούν να στέλνουν  στις συναρτήσεις ως παραμέτρους
σταθερές τιμές?

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

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

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

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

Laertis

Και θεωρείς Άλκη ότι αυτό είναι δουλειά του κάθε εκπαιδευτικού να αποστέλει ερωτήματα προς το Υπουργείο που αφορά παρερμηνείες ή ασάφειες; Το βιβλίο υπάρχει εδώ και 11 χρόνια ...
Οι σύμβουλοι τι δουλειά κάνουν ;
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

evry


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

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%

axi

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

ntzios kostas

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

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

alkisg

#32
Δεν έχουμε μεταβίβαση παραμέτρων by reference.

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

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

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


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

Να ξαναδώσω το link της βοήθειας του Διερμηνευτή στο οποίο τα περιγράφω αναλυτικά:
https://alkisg.mysch.gr/ΓΛΩΣΣΑ/Μεταβίβαση_παραμέτρων/