Καλησπέρα!
Το ακόλουθο είναι σωστό; Δηλαδή, μπορούμε να καλέσουμε διαδικασία με ένα στοιχείο του πίνακα και να ενημερωθεί η τιμή του στη συγκεκριμένη θέση μετά το τέλος της διαδικασίας;
...
ΚΑΛΕΣΕ Διαθέσιμο(ΑΝΤΙΤΥΠΑ[θέση])
...
ΔΙΑΔΙΚΑΣΙΑ Διαθέσιμο(χ)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: χ
ΑΡΧΗ
ΑΝ χ > 0 ΤΟΤΕ
ΓΡΑΨΕ 'ΔΙΑΘΕΣΙΜΟ'
χ <-- χ -1
ΑΛΛΙΩΣ
ΓΡΑΨΕ 'ΜΗ ΔΙΑΘΕΣΙΜΟ'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
Προφανώς και μπορεί να γίνει αφού κάθε στοιχείο ενός πίνακα συμπεριφέρεται σαν μια απλή μεταβλητή. Το διδακτικό βιβλίο εξάλλου δεν απαγορεύει κάτι τέτοιο.
Ναι γίνεται, αν και θα το προτιμούσα έτσι, γιατί η ΓΛΩΣΣΑ δε διευκρινίζει αν μπορεί στη λίστα παραμέτρων να γραφεί απ'ευθείας στοιχείο πίνακα (αν και θα μπορούσε)
...
y<--ΑΝΤΙΤΥΠΑ[θέση]
ΚΑΛΕΣΕ Διαθέσιμο(y)
ΑΝΤΙΤΥΠΑ[θέση] <-- y
...
ΔΙΑΔΙΚΑΣΙΑ Διαθέσιμο(χ)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: χ
ΑΡΧΗ
ΑΝ χ > 0 ΤΟΤΕ
.....
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
Και οι 2 προσεγγίσεις που αναφέρατε είναι σωστές.
Αλλά και η παρακάτω είναι αποδεκτή.
ΚΑΛΕΣΕ Διαθέσιμο(ΑΝΤΙΤΥΠΑ,θέση)
...
ΔΙΑΔΙΚΑΣΙΑ Διαθέσιμο(Π, θ)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Π[100],θ
ΑΡΧΗ
ΑΝ Π[θ] > 0 ΤΟΤΕ
.....
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
Ανδρέας
Όλα τα παραπάνω είναι σωστά.
Αν και ανδρέα το αρχικό μήνυμα έλεγε να περαστεί ένα μόνο στοιχέιο του πίνακα
άλλωστε η αντιμετάθεσε (που είναι εντολή στην ψευδογλώσσα, αλλά στην ουσία είναι ΔΙΑΔΙΚΑΣΙΑ) αυτό κάνει