Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Γ΄ Λυκείου => Μήνυμα ξεκίνησε από: frijos στις 11 Μαΐου 2017, 01:09:41 ΜΜ

Τίτλος: Εμφάνιση τιμών - Υποπρογράμματα
Αποστολή από: frijos στις 11 Μαΐου 2017, 01:09:41 ΜΜ
Τι θα εμφανιστεί στην οθόνη?

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

Διαδικασία Δ(χ,β)
...
χ<-- χ+1
β<-- β+2
Τέλος_διαδικασίας
Τίτλος: Απ: Εμφάνιση τιμών - Υποπρογράμματα
Αποστολή από: nikolasmer στις 11 Μαΐου 2017, 01:16:40 ΜΜ
3
Το λογικό. (Ποιο λογικό; :D)

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

Τίτλος: Απ: Εμφάνιση τιμών - Υποπρογράμματα
Αποστολή από: Καρκαμάνης Γεώργιος στις 15 Μαΐου 2017, 03:45:57 ΜΜ
Το ερώτημα αυτό  μπορεί να απαντηθεί, μονο αν μπορούμε αποτυπώσουμε το περιεχόμενο μιας μεταβλητής μετα απο δυο εκχωρήσεις που εκτελούνται ταυτόχρονα....


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

Οποτε νομιζω οτι δεν μπορούμε να απαντήσουμε..
Τίτλος: Απ: Εμφάνιση τιμών - Υποπρογράμματα
Αποστολή από: evry στις 15 Μαΐου 2017, 06:53:53 ΜΜ
Στην ADA που χρησιμοποιείται ο ίδιος μηχανισμός μεταβίβασης παραμέτρων αν δοκιμάσει κάποιος το παρακάτω πρόγραμμα :
Κώδικας (ada) [Επιλογή]

with Ada.Text_IO; use Ada.Text_IO;

procedure Hello is
    procedure ATest (A, B, C: in out Integer) is
    begin
       C := C + 1;
       B := B + 2;
       A := A + 3;
    end ATest;
X : integer;
begin
    Put_Line ("Hello, world!");
    X := 5;
    ATest(X, X, X);
end Hello;


σε έναν online compiler όπως ο παρακάτω:
http://rextester.com/l/ada_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
Τίτλος: Απ: Εμφάνιση τιμών - Υποπρογράμματα
Αποστολή από: alkisg στις 16 Μαΐου 2017, 11:23:10 ΠΜ
Παράθεση από: nikolasmer στις 11 Μαΐου 2017, 01:16:40 ΜΜ
3
Το λογικό. (Ποιο λογικό; :D)

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

Με βάση το βιβλίο, πρέπει να βγάλει 2. Η εξήγηση είναι στη βοήθεια του Διερμηνευτή, στο https://alkisg.mysch.gr/ΓΛΩΣΣΑ/Μεταβίβαση_παραμέτρων/ (https://alkisg.mysch.gr/%CE%93%CE%9B%CE%A9%CE%A3%CE%A3%CE%91/%CE%9C%CE%B5%CF%84%CE%B1%CE%B2%CE%AF%CE%B2%CE%B1%CF%83%CE%B7_%CF%80%CE%B1%CF%81%CE%B1%CE%BC%CE%AD%CF%84%CF%81%CF%89%CE%BD/), τελευταία κουκκίδα.
Τίτλος: Απ: Εμφάνιση τιμών - Υποπρογράμματα
Αποστολή από: nikolasmer στις 16 Μαΐου 2017, 12:06:17 ΜΜ
Παράθεση από: alkisg στις 16 Μαΐου 2017, 11:23:10 ΠΜ
Με βάση το βιβλίο, πρέπει να βγάλει 2. Η εξήγηση είναι στη βοήθεια του Διερμηνευτή, στο https://alkisg.mysch.gr/ΓΛΩΣΣΑ/Μεταβίβαση_παραμέτρων/ (https://alkisg.mysch.gr/%CE%93%CE%9B%CE%A9%CE%A3%CE%A3%CE%91/%CE%9C%CE%B5%CF%84%CE%B1%CE%B2%CE%AF%CE%B2%CE%B1%CF%83%CE%B7_%CF%80%CE%B1%CF%81%CE%B1%CE%BC%CE%AD%CF%84%CF%81%CF%89%CE%BD/), τελευταία κουκκίδα.
Αχα !
Τίτλος: Απ: Εμφάνιση τιμών - Υποπρογράμματα
Αποστολή από: Sergio στις 16 Μαΐου 2017, 12:43:22 ΜΜ
Δεν παίζει ρόλο η σειρά με την οποία αντιγράφονται οι τυπικές παραμέτρους στις πραγματικές μετά την ολοκλήρωση της διαδικασίας;

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

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

Η τελευταία κουκίδα Άλκη, αν την κατάλαβα καλά, δε λέει ποιό από τα 2 θα γίνει..
Τίτλος: Απ: Εμφάνιση τιμών - Υποπρογράμματα
Αποστολή από: Sergio στις 16 Μαΐου 2017, 01:17:30 ΜΜ
Άκυρο Άλκη, μόλις είδα το https://alkisg.mysch.gr/steki/index.php?topic=289.msg1877#msg1877 (https://alkisg.mysch.gr/steki/index.php?topic=289.msg1877#msg1877)

Παράθεσηο Διερμηνευτής..κάνει push από αριστερά προς τα δεξιά και pop αντίθετα..