ΠΡΟΓΡΑΜΜΑ Β2
ΣΤΑΘΕΡΕΣ
Ν = 100
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Π[Ν, Ν]
ΑΡΧΗ
ΚΑΛΕΣΕ ΔΙΑΔ(Π, Ν)
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΔ(Π, Ν)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ι, J, Π[Ν, Ν]
ΑΡΧΗ
.......
Σε αυτόν τον κώδικα γιατί δε δίνει τιμή η πραγματική Ν στην τυπική Ν;
Έχουμε κάποιο συντακτικό λάθος προαφανώς αλλα ποιό και γιατί;
Βγάζει:
Άγνωστο αναγνωριστικό: «Ν»
Επειδή το Ν είναι σταθερά ( συμβολική).
Αντρέα κανονικά δεν έπρεπε να το αναγνωρίζει σας λάθος σε συντακτικό επίπεδο.
Το Ν του κυρίως προγράμματος περνά στο υποπρόγραμμα μόνο ως παράμετρος (με τιμή), όχι ως "σταθερά δήλωσης πίνακα". Νομίζω οτι το συμφωνήσαμε οτι στη διαδικασία αυτό μπορεί να γίνει.
Μέσα στο υποπρόγραμμα το Ν είναι τυπική παράμετρος δηλαδή ΜΕΤΑΒΛΗΤΗ και πρέπει να δηλωθεί (προφανώς στις ΑΚΕΡΑΙΕΣ) για να είναι ορατή στο υποπρόγραμμα.
Και έτσι όμως (παρότι θα δέχεται σωστά την τιμή) δεν μπορεί να χρησιμοποιηθεί για τη δήλωση μεγέθους πίνακα, ως μεταβλητή που είναι.
Δεν υφίσταται δήλωση τυπικής παραμέτρου ως σταθερά.
Προφανώς το να θέλουμε να περάσουμε το μέγεθος ενός πίνακα σε υποπρόγραμμα, αν και θα ήταν πάρα πολύ χρήσιμο, δεν υποστηρίζεται από τη ΓΛΩΣΣΑ.
Παράθεση από: ssimaiof στις Χθες στις 07:45:16 ΜΜΠροφανώς το να θέλουμε να περάσουμε το μέγεθος ενός πίνακα σε υποπρόγραμμα, αν και θα ήταν πάρα πολύ χρήσιμο, δεν υποστηρίζεται από τη ΓΛΩΣΣΑ.
Σωστά.
Anyway, πάντως έτσι δουλεύει κανονικά (πρόγραμμα που υπολογίζει το άθροισμα Ν στοιχείων πίνακα Π[10] με Νε[1,10].
ΠΡΟΓΡΑΜΜΑ ΤΑΔΕ
ΣΤΑΘΕΡΕΣ
Ν = 5 ! [1,10]
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ι
ΠΡΑΓΜΑΤΙΚΕΣ: Π[10], Σ
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Ν
ΔΙΑΒΑΣΕ Π[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΚΑΛΕΣΕ ΑΘΡ(Π, Ν, Σ)
ΓΡΑΨΕ Σ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΔΙΑΔΙΚΑΣΙΑ ΑΘΡ(Α, Ν, Σ)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ν, i, j
ΠΡΑΓΜΑΤΙΚΕΣ: Α[10], Σ
ΑΡΧΗ
Σ <- 0
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν
Σ <- Σ + Α[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Αυτό σημαίνει οτι περνιέται η πραγματική στην τυπική. Απλά χρειάζεται να δηλωθεί το μέγεθος του πίνακα στο υποπρόγραμμα.