Γενικό Λύκειο > Διαδικασίες

Γέμισμα πίνακα απο υποπρόγραμμα

(1/2) > >>

Vangelis:
Στο site του καλού  συναδέλφου Παναγιώτη απο το οποίο έδωσα ασκήσεις στους μαθητές μου (αναναφέροντας βεβαίως απο που προέρχονται)  είδα μια άσκηση στα υποπρογράμματα που με προβλημάτισε και σας την μεταφέρω

10.1.9. Να γράψετε υποπρόγραμμα που να διαβάζει το πλήθος αλλά και τα στοιχεία ενός μονοδιάστατου πίνακα (μέγιστο πλήθος στοιχείων 1000) με περιεχόμενα ακέραιους αριθμούς

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

Βαγγέλης 

dozb:
Με την πρώτη σου παρατήρηση συμφωνώ.
Όσο για το δεύτερο:
Έχουμε πει ότι το διάβασμα τιμών σε μεταβλητές δεν πρέπει να γίνεται σε συνάρτηση, οπότε μάλλον εννοείς να μπει άλλη μια τυπική παράμετρος στη λίστα ορισμάτων η οποία να επιστρέφει τον γεμάτο πίνακα στο κυρίως....!!!!!!!!!!

Αλλά και πάλι, ποιο το νόημα του να δίνεις έναν άδειο, (ή γεματο) πίνακα να (ξανα)γεμίσει σε ένα υποπρόγραμμα χωρίς να επιστρέφει στο κυρίως????

Πιστεύω λοιπόν ότι η συγκεκριμένη "λειτουργία" είναι σωστή, όμως έχω μια τρίτη παρατήρηση:
Εφόσον το πλήθος γραμμών θεωρείται γνωστό (μια που δε διαβάζεται μέσα στη διαδικασία), γιατί δε δηλώνουμε τον πίνακα σαν
Πίνακας[Πλήθος_γραμμών], παρά χρησιμοποιούμε το μέγιστο μέγεθός του????


(Επίσης, αν θες, ρίξε μια ματιά στο θέμα "τοπικές μεταβλητές" να μου πεις τη γνώμη σου...Ευχαριστώ)

novulus:
Προφανώς ο έλεγχος αν εισάγεται θετικός αριθμός δεν πρέπει να υπάρχει. Από την άλλη ο Πίνακας επιστρέφεται στο κυρίως πρόγραμμα αφού είναι τυπική παράμετρος. Οσον σφορά την δήλωσή του, αφού οι πίνακες είναι στατικές δομές δεδομένων το μέγεθός τους πρέπει να δηλώνεται με αριθμό ή σταθερά και όχι με μεταβλητή όπως είναι το Πλήθος_γραμμών.

dozb:
Δυστυχώς ούτε σα σταθερά το δέχεται (το μέγεθος του πίνακα)|, τουλάχιστον η γλωσσομάθεια

Επισκέπτης:


Δεν επιστρέφεται ο πίνακας;

Στη δήλωση του πίνακα στις μεταβλητές της διαδικασίας, πρέπει να δηλωθεί νούμερο (1000) ή σταθερά που να έχει οριστεί στη διαδικασία

Πλοήγηση

[0] Λίστα μηνυμάτων

[#] Επόμενη σελίδα

Μετάβαση στην πλήρη έκδοση