Αποστολέας Θέμα: Παράμετροι : Τιμές και μεταβλητές  (Αναγνώστηκε 7684 φορές)

axi

  • Θαμώνας
  • ***
  • Μηνύματα: 20
  • There are no Dumb Questions!
Απ: Παράμετροι : Τιμές και μεταβλητές
« Απάντηση #30 στις: 20 Μάρ 2010, 11:48:00 μμ »
Εδώ νομίζω ότι ο Άλκης έχει πέρα για πέρα δίκιο. Απλά τους ξέφυγε.
Εξάλου μέσα στο βιβλίο υπάρχει η αναδρομή.
Θα κάνεις αναδρομή χωρίς να στείλεις έκφραση;
καταντάει βαρετό και ασύμφορο να θέλεις να στείλεις μια τιμή
και να πρέπει να ορίσεις μια μεταβλητή για το λόγο αυτό.

ntzios kostas

  • Καθηγητής Πληροφορικής
  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 600
    • Ανάπτυξη Εφαρμογών
Απ: Παράμετροι : Τιμές και μεταβλητές
« Απάντηση #31 στις: 22 Μάρ 2010, 09:11:16 πμ »
Γιατί πρέπει να έχεις έκφραση για να κάνεις αναδρομή δεν το καταλαβαίνω.

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

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5194
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: Παράμετροι : Τιμές και μεταβλητές
« Απάντηση #32 στις: 22 Μάρ 2010, 10:17:07 πμ »
Δεν έχουμε μεταβίβαση παραμέτρων by reference.

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

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

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

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

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