Εμφάνιση τιμών - Υποπρογράμματα

Ξεκίνησε από frijos, 11 Μαΐου 2017, 01:09:41 ΜΜ

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

frijos

Τι θα εμφανιστεί στην οθόνη?

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

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

nikolasmer

#1
3
Το λογικό. (Ποιο λογικό; :D)

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

Μερεντίτης Νικόλαος
Πληροφορικός

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

Το ερώτημα αυτό  μπορεί να απαντηθεί, μονο αν μπορούμε αποτυπώσουμε το περιεχόμενο μιας μεταβλητής μετα απο δυο εκχωρήσεις που εκτελούνται ταυτόχρονα....


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

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

evry

Στην 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
θα πάρουμε ένα μεγαλοπρεπές 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

Παράθεση από: nikolasmer στις 11 Μαΐου 2017, 01:16:40 ΜΜ
3
Το λογικό. (Ποιο λογικό; :D)

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

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

nikolasmer

Παράθεση από: alkisg στις 16 Μαΐου 2017, 11:23:10 ΠΜ
Με βάση το βιβλίο, πρέπει να βγάλει 2. Η εξήγηση είναι στη βοήθεια του Διερμηνευτή, στο https://alkisg.mysch.gr/ΓΛΩΣΣΑ/Μεταβίβαση_παραμέτρων/, τελευταία κουκκίδα.
Αχα !
Μερεντίτης Νικόλαος
Πληροφορικός

Sergio

Δεν παίζει ρόλο η σειρά με την οποία αντιγράφονται οι τυπικές παραμέτρους στις πραγματικές μετά την ολοκλήρωση της διαδικασίας;

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

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

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

Sergio

Άκυρο Άλκη, μόλις είδα το https://alkisg.mysch.gr/steki/index.php?topic=289.msg1877#msg1877

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