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

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

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

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/ΓΛΩΣΣΑ/Μεταβίβαση_παραμέτρων/