Αποστολέας Θέμα: Εμφάνιση τιμών - Υποπρογράμματα  (Αναγνώστηκε 1247 φορές)

frijos

  • Νέος
  • *
  • Μηνύματα: 6
  • Γράψτε το προσωπικό σας σλόγκαν!
Εμφάνιση τιμών - Υποπρογράμματα
« στις: 11 Μάι 2017, 01:09:41 μμ »
Τι θα εμφανιστεί στην οθόνη?

Πρόγραμμα ...
...
α <-- 1
Κάλεσε Δ(α,α)
Γράψε α
..
Τέλος_Προγράμματος

Διαδικασία Δ(χ,β)
...
χ<-- χ+1
β<-- β+2
Τέλος_διαδικασίας

nikolasmer

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 562
  • There can be only one...may it be AEPP.
Απ: Εμφάνιση τιμών - Υποπρογράμματα
« Απάντηση #1 στις: 11 Μάι 2017, 01:16:40 μμ »
3
Το λογικό. (Ποιο λογικό; :D)

Βέβαια ο Διερμηνευτής βγαζει 2 .
Αλλού δεν το έτρεξα.

« Τελευταία τροποποίηση: 11 Μάι 2017, 01:38:56 μμ από nikolasmer »
Απ' τα τσακάλια δεν γλυτώνεις μ'ευχές ή παρακάλια
(Κ. Βάρναλης)

Μερεντίτης Νικόλαος
Καθηγητής Πληροφορικής - Φροντιστής

Καρκαμάνης Γεώργιος

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1128
Απ: Εμφάνιση τιμών - Υποπρογράμματα
« Απάντηση #2 στις: 15 Μάι 2017, 03:45:57 μμ »
Το ερώτημα αυτό  μπορεί να απαντηθεί, μονο αν μπορούμε αποτυπώσουμε το περιεχόμενο μιας μεταβλητής μετα απο δυο εκχωρήσεις που εκτελούνται ταυτόχρονα....


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

Οποτε νομιζω οτι δεν μπορούμε να απαντήσουμε..

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3510
  • to Iterate is human to Recurse divine
Απ: Εμφάνιση τιμών - Υποπρογράμματα
« Απάντηση #3 στις: 15 Μάι 2017, 06:53:53 μμ »
Στην ADA που χρησιμοποιείται ο ίδιος μηχανισμός μεταβίβασης παραμέτρων αν δοκιμάσει κάποιος το παρακάτω πρόγραμμα :
Κώδικας: Ada
  1. with Ada.Text_IO; use Ada.Text_IO;
  2.  
  3. procedure Hello is
  4.     procedure ATest (A, B, C: in out Integer) is
  5.     begin
  6.        C := C + 1;
  7.        B := B + 2;
  8.        A := A + 3;
  9.     end ATest;
  10. X : integer;
  11. begin
  12.     Put_Line ("Hello, world!");
  13.     X := 5;
  14.     ATest(X, X, X);
  15. end Hello;

σε έναν online compiler όπως ο παρακάτω:
http://rextester.com/l/ada_online_compiler
θα πάρουμε ένα μεγαλοπρεπές compiler error!!!

Error(s):
source.adb:18:11: writable actual for "A" overlaps with actual for "B"
gnatmake: "source_file.adb" compilation error
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5444
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: Εμφάνιση τιμών - Υποπρογράμματα
« Απάντηση #4 στις: 16 Μάι 2017, 11:23:10 πμ »
3
Το λογικό. (Ποιο λογικό; :D)

Βέβαια ο Διερμηνευτής βγαζει 2 .
Αλλού δεν το έτρεξα.

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

nikolasmer

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 562
  • There can be only one...may it be AEPP.
Απ: Εμφάνιση τιμών - Υποπρογράμματα
« Απάντηση #5 στις: 16 Μάι 2017, 12:06:17 μμ »
Με βάση το βιβλίο, πρέπει να βγάλει 2. Η εξήγηση είναι στη βοήθεια του Διερμηνευτή, στο https://alkisg.mysch.gr/ΓΛΩΣΣΑ/Μεταβίβαση_παραμέτρων/, τελευταία κουκκίδα.
Αχα !
Απ' τα τσακάλια δεν γλυτώνεις μ'ευχές ή παρακάλια
(Κ. Βάρναλης)

Μερεντίτης Νικόλαος
Καθηγητής Πληροφορικής - Φροντιστής

Sergio

  • Αστέριος Φανίκος, Καθηγητής Πληροφορικής, fanikosaATschDOTgr
  • Δεινόσαυρος
  • *****
  • Μηνύματα: 802
  • Κάλλιο γνώση, παρά γρόσι.. (ΛΑΪΚΗ ΠΑΡΟΙΜΙΑ)
    • Προσωπική Σελίδα
Απ: Εμφάνιση τιμών - Υποπρογράμματα
« Απάντηση #6 στις: 16 Μάι 2017, 12:43:22 μμ »
Δεν παίζει ρόλο η σειρά με την οποία αντιγράφονται οι τυπικές παραμέτρους στις πραγματικές μετά την ολοκλήρωση της διαδικασίας;

Αν επιστραφούν με τη σειρά που είναι δηλωμένες (χ, β) υποθέτω πως αρχικά θα αντιγραφεί χ (2) και στη συνέχεια το β (3) οπότε τελικά το α του κύριου προγράμματος θα έχει την τιμή 3.

Αν, πάλι, επιστραφούν με ανάποδη σειρά, αρχικά θα αντιγραφεί το β (3) και στη συνέχεια το χ (2) οπότε τελικά το α του κύριου προγράμματος θα έχει την τιμή 2.

Η τελευταία κουκίδα Άλκη, αν την κατάλαβα καλά, δε λέει ποιό από τα 2 θα γίνει..
Απ τη μια η θητεία μου σε σχολικές αίθουσες: να φλυαρώ - να ελπίζω πως κατι κατάλαβαν - να εξερευνώ - να μαθαίνω. Απ την άλλη, σχεδόν συνομήλικη, η Διδακτική της Πληροφορικής: ερευνά διαδικασίες μάθησης - φλερτάρει με την Ψυχολογία - με καλεί να αφήσω το βλέμμα του Πληροφορικού και να δω με τα μάτια του δασκάλου. Τέκνα των 2, οι απόψεις μου.. (προσαρμοσμένο από τον πρόλογο του βιβλίου "Το μακρόν Φυσική προ του βραχέως διδάσκω" του Ανδρέα Κασσέτα)

Sergio

  • Αστέριος Φανίκος, Καθηγητής Πληροφορικής, fanikosaATschDOTgr
  • Δεινόσαυρος
  • *****
  • Μηνύματα: 802
  • Κάλλιο γνώση, παρά γρόσι.. (ΛΑΪΚΗ ΠΑΡΟΙΜΙΑ)
    • Προσωπική Σελίδα
Απ: Εμφάνιση τιμών - Υποπρογράμματα
« Απάντηση #7 στις: 16 Μάι 2017, 01:17:30 μμ »
Άκυρο Άλκη, μόλις είδα το https://alkisg.mysch.gr/steki/index.php?topic=289.msg1877#msg1877

Παράθεση
ο Διερμηνευτής..κάνει push από αριστερά προς τα δεξιά και pop αντίθετα..
Απ τη μια η θητεία μου σε σχολικές αίθουσες: να φλυαρώ - να ελπίζω πως κατι κατάλαβαν - να εξερευνώ - να μαθαίνω. Απ την άλλη, σχεδόν συνομήλικη, η Διδακτική της Πληροφορικής: ερευνά διαδικασίες μάθησης - φλερτάρει με την Ψυχολογία - με καλεί να αφήσω το βλέμμα του Πληροφορικού και να δω με τα μάτια του δασκάλου. Τέκνα των 2, οι απόψεις μου.. (προσαρμοσμένο από τον πρόλογο του βιβλίου "Το μακρόν Φυσική προ του βραχέως διδάσκω" του Ανδρέα Κασσέτα)