Συνάδελφε, όταν προσπαθεί κάποιος να γίνει καλύτερος σ' αυτό που κάνει, καμία ερώτηση δεν είναι αφελής.
Ίσα ίσα, είναι προς τιμήν του. Και αυτό είναι που βρίσκω σπουδαίο εδώ στο Στέκι, τόσο σ' αυτούς που ρωτάνε όσο και σ' αυτούς που απαντάνε.
Για άλλη μια φορά μπράβο σ' αυτό που γίνεται εδώ και σ' όσους συμμετέχουν.
Λοιπόν, στην ερώτησή σου...
Δεν μεταβιβάζεται πίσω στο πρόγραμμα η τιμή της μεταβλητής Μ που περιέχει η έκφραση. Όλα τρέχουν κανονικά να φανταστώ, απλά όπως την παίρνει την τιμή την επιστρέφει κιόλας.
... θα πρέπει να καταλάβεις ότι στη συγκεκριμένη κλήση που κάνεις ΔΙΑΔ(Α, Μ -1) η διαδικασία δεν "παραλαμβάνει" καθόλου τη μεταβλητή Μ
Κατά την κλήση αυτή, η διαδικασία, στη μεταβλητή Κ παραλαμβάνει
το αποτέλεσμα της έκφρασης Μ -1 , που εν προκειμένω είναι ο αριθμός -1. Αφού λοιπόν δεν την παραλαμβάνει, δεν έχει και πρόσβαση σε αυτή, οπότε η Μ μένει άθικτη. Η τιμή της Κ στο τέλος της διαδικασίας, δεν μπορεί φυσικά να επιστραφεί στην τιμή -1 (ούτε στην έκφραση Μ-1) και απλά "χάνεται".
Να το σπρώξω λίγο ακόμα: έστω ότι αλλάζω την κλήση που κάνεις σε ΚΑΛΕΣΕ ΔΙΑΔ(Α, Μ-1+i+j)
τώρα, η μεταβλητή Κ της διαδικασίας θα πάρει σαν αρχική τιμή το αποτέλεσμα της έκφρασης Μ-1+i+j=0-1+6+6 δηλαδή το 11. Και εδώ, η Κ δεν "ξέρει" ότι οφείλει την τιμή της σε μια έκφραση που συμμετείχαν τρεις μεταβλητές (γιατί κι αν το "ήξερε"

, σε ποια απ' όλες θα αντέγραφε την τιμή της?)
Φυσικά, αν η πρόθεση είναι (που απ' ότι καταλαβαίνω, αυτή είναι) να πάρεις στην Μ το άθροισμα των στοιχείων του πίνακα, τότε η κλήση θα πρέπει να γίνει με τη Μ μόνη της : ΚΑΛΕΣΕ ΔΙΑΔ(Α, Μ). Τότε, (επειδή η Μ είναι μεταβλητή και όχι έκφραση ή σταθερή), στο τέλος της διαδικασίας, η τιμή της Κ πράγματι θα αντιγραφεί στην Μ.
Και ναι, στην τελευταία σου ερώτηση, ο πίνακας Α, σαν μεταβλητή που είναι, στο τέλος θα παραλάβει τα περιεχόμενα του Π και αν ο Π είχε αλλάξει μέσα στη διαδικασία, θα άλλαζαν και τα περιεχόμενα του Α.