Αποστολέας Θέμα: Πίνακας & Υποπρόγραμμα  (Αναγνώστηκε 3199 φορές)

EleniK

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 708
Πίνακας & Υποπρόγραμμα
« στις: 19 Φεβ 2007, 10:36:21 μμ »
Συνάδελφοι μου έχει δημιουργηθεί η εξής απορία:

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

ΔΙΑΔΙΚΑΣΙΑ Πίνακας (Α,Ν)
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ:Α[Ν]
ΑΚΕΡΑΙΕΣ:Ν
ΑΡΧΗ
ΜΑΧ <- Α[1]
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ Ν
ΑΝ Α[Ι]>ΜΑΧ ΤΟΤΕ
......


ή πρέπει να λάβω υπόψη τη μέγιστη πιθανή διάστασή του? π.χ.


ΔΙΑΔΙΚΑΣΙΑ Πίνακας (Α,Ν)
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ:Α[1000]
ΑΚΕΡΑΙΕΣ:Ν
ΑΡΧΗ
ΜΑΧ <- Α[1]
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ Ν
ΑΝ Α[Ι]>ΜΑΧ ΤΟΤΕ
......
κλπ. όπου Ν<=1000

Ευχαριστώ
Ελένη Κοκκίνου
Καθηγήτρια Πληροφορικής, ΠΕ19

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3180
  • to Iterate is human to Recurse divine
Απ: Πίνακας & Υποπρόγραμμα
« Απάντηση #1 στις: 19 Φεβ 2007, 10:45:17 μμ »

   Δυστυχώς το 2ο, γιατί ο αριθμός που ορίζει το μέγεθος του πίνακα πρέπει να είναι σταθερά, αφού η δέσμευση μνήμης γίνεται κατά το χρόνο μεταγλώττισης.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5252
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: Πίνακας & Υποπρόγραμμα
« Απάντηση #2 στις: 19 Φεβ 2007, 10:49:00 μμ »
Ελένη δες και σχετική παλιότερη συζήτηση εδώ:
https://alkisg.mysch.gr/steki/index.php?topic=302.0

Δεν είναι τόσο θέμα υλοποίησης, όσο θέμα ορισμού... Π.χ. η fortran το υποστηρίζει, αλλά η ΓΛΩΣΣΑ με τον copy in - copy out (ή copy by value result, πώς τον λένε) μηχανισμό όχι...

EleniK

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 708
Απ: Πίνακας & Υποπρόγραμμα
« Απάντηση #3 στις: 19 Φεβ 2007, 10:55:30 μμ »
Μάλιστα κατάλαβα. Ευχαριστώ για τη σχετική αναφορά. Το διάβασα και μάλλον επηρεάστηκα και εγώ από τη C. Δλδ θα πρέπει να φτιάξω έτσι την άσκηση  ώστε να εχω τετραγωνικό πίνακα προκειμένου να έχω ένα υποπρόγραμμα που να μπορώ να το χρησιμοποιήσω και σε κάθε γραμμή και σε κάθε στήλη του πίνακα. Κρίμα   :(
Ευχαριστώ
Ελένη Κοκκίνου
Καθηγήτρια Πληροφορικής, ΠΕ19

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5252
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: Πίνακας & Υποπρόγραμμα
« Απάντηση #4 στις: 19 Φεβ 2007, 11:04:08 μμ »
Γιατί αυτό; Αφού έτσι κι αλλιώς θα περνάς παράμετρο όλον τον πίνακα, μπορεί κάλλιστα να μην είναι τετραγωνικός...
Το δύσκολο είναι στο υποπρόγραμμα να κάνεις κάτι είτε με γραμμή είτε με στήλη (π.χ. εύρεση μεγίστου)... Ουσιαστικά θες δύο διαφορετικούς κώδικες μέσα σε ΑΝ, δεν επιτρέπει κάποια άλλη σύνταξη η ΓΛΩΣΣΑ.

EleniK

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 708
Απ: Πίνακας & Υποπρόγραμμα
« Απάντηση #5 στις: 19 Φεβ 2007, 11:12:55 μμ »
Ναι Άλκη το σκέφτηκα αυτό δλδ να παίρνει ως παράμετρο το "Γραμμή" ή "Στήλη" και να εκτελεί ανάλογα. Απλά ήθελα να δείξω τη γενικότητα των υποπρογραμμάτων με πιο κομψό τρόπο, χωρίς δλδ τη χρήση της ΑΝ. Μάλλον όμως αυτό θα κάνω στην  ασκηση την οποία θα δέιτε σύντομα στα διαγωνίσματα. :-)
Ελένη Κοκκίνου
Καθηγήτρια Πληροφορικής, ΠΕ19

andreas_p

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1017
Απ: Πίνακας & Υποπρόγραμμα
« Απάντηση #6 στις: 20 Φεβ 2007, 12:53:09 μμ »
Ελένη , καλημέρα.

Το  2ο τρόπο.

Θα δουλέψουμε με το πολύ Ν στοιχεία . δεσμεύοντας  έναν πίνακα  Α[1000]

όπου  Ν>0 και  Ν<=1000

Ανδρέας