Δεν περνάει παράμετρος μέσω σταθεράς;

Ξεκίνησε από nikolasmer, Σήμερα στις 02:31:03 ΜΜ

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

nikolasmer

ΠΡΟΓΡΑΜΜΑ Β2
ΣΤΑΘΕΡΕΣ
  Ν = 100
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Π[Ν, Ν] 
ΑΡΧΗ
  ΚΑΛΕΣΕ ΔΙΑΔ(Π, Ν) 
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΔ(Π, Ν) 
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Ι, J, Π[Ν, Ν] 
ΑΡΧΗ
    .......

Σε αυτόν τον κώδικα γιατί δε δίνει τιμή η πραγματική Ν στην τυπική Ν;
Έχουμε κάποιο συντακτικό λάθος προαφανώς αλλα ποιό και γιατί;

Βγάζει:
Άγνωστο αναγνωριστικό: «Ν»
Μερεντίτης Νικόλαος
Πληροφορικός

andreas_p

Επειδή το Ν είναι σταθερά ( συμβολική).

nikolasmer

Αντρέα κανονικά δεν έπρεπε να το αναγνωρίζει σας λάθος σε συντακτικό επίπεδο.
 Το Ν του κυρίως προγράμματος περνά στο υποπρόγραμμα μόνο ως παράμετρος (με τιμή), όχι ως "σταθερά δήλωσης πίνακα". Νομίζω οτι το συμφωνήσαμε οτι στη διαδικασία αυτό μπορεί να γίνει. 
Μερεντίτης Νικόλαος
Πληροφορικός

ssimaiof

Μέσα στο υποπρόγραμμα το Ν είναι τυπική παράμετρος δηλαδή ΜΕΤΑΒΛΗΤΗ και πρέπει να δηλωθεί (προφανώς στις ΑΚΕΡΑΙΕΣ) για να είναι ορατή στο υποπρόγραμμα.
Και έτσι όμως (παρότι θα δέχεται σωστά την τιμή) δεν μπορεί να χρησιμοποιηθεί για τη δήλωση μεγέθους πίνακα, ως μεταβλητή που είναι.
Δεν υφίσταται δήλωση τυπικής παραμέτρου ως σταθερά.
Προφανώς το να θέλουμε να περάσουμε το μέγεθος ενός πίνακα σε υποπρόγραμμα, αν και θα ήταν πάρα πολύ χρήσιμο, δεν υποστηρίζεται από τη ΓΛΩΣΣΑ.
Σταύρος Σημαιοφορίδης

nikolasmer

Παράθεση από: ssimaiof στις Σήμερα στις 07:45:16 ΜΜΠροφανώς το να θέλουμε να περάσουμε το μέγεθος ενός πίνακα σε υποπρόγραμμα, αν και θα ήταν πάρα πολύ χρήσιμο, δεν υποστηρίζεται από τη ΓΛΩΣΣΑ.
Σωστά. 
Anyway, πάντως έτσι δουλεύει κανονικά (πρόγραμμα που υπολογίζει το άθροισμα Ν στοιχείων πίνακα Π[10] με Νε[1,10]. 

ΠΡΟΓΡΑΜΜΑ ΤΑΔΕ
ΣΤΑΘΕΡΕΣ
  Ν = 5  ! [1,10]
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Ι
  ΠΡΑΓΜΑΤΙΚΕΣ: Π[10], Σ
ΑΡΧΗ
  ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Ν
    ΔΙΑΒΑΣΕ Π[Ι] 
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΚΑΛΕΣΕ ΑΘΡ(Π, Ν, Σ) 
  ΓΡΑΨΕ Σ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΔΙΑΔΙΚΑΣΙΑ ΑΘΡ(Α, Ν, Σ) 
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Ν, i, j
  ΠΡΑΓΜΑΤΙΚΕΣ: Α[10], Σ
ΑΡΧΗ
  Σ <- 0
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν
    Σ <- Σ + Α[i] 
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

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