Αποστολέας Θέμα: πέρασμα δισδιάστατου πίνακα σε δισδιάστατο  (Αναγνώστηκε 464 φορές)

ΣΧΟΙΝΑΣ ΚΩΣΤΑΣ

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 170
ερώτηση
Μπορεί στο κύριο πρόγραμμα
να έχω ορίσει τετραγωνικό πίνακα Α[4,4] και να μεταβιβάσώ τον πίνακα Α σε πίνακα μεγαλύτερο Β[8,8] μέσω διαδικασιας;
Καθηγητής πληροφορικής ΠΕ20

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2352
Απ: πέρασμα δισδιάστατου πίνακα σε δισδιάστατο
« Απάντηση #1 στις: 19 Φεβ 2021, 01:37:57 πμ »
Σκοτεινό σημείο, αλλά καλό θα είναι να απαντήσουμε όχι...
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

ΣΧΟΙΝΑΣ ΚΩΣΤΑΣ

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 170
Απ: πέρασμα δισδιάστατου πίνακα σε δισδιάστατο
« Απάντηση #2 στις: 19 Φεβ 2021, 12:55:57 μμ »
στην γλώσσα πάντως δεν δουλεύει  ο πίνακας που μεταβιβάζει το κύριο πρόγραμμα στο υποπρογραμμα πρέπει να είναι αναγκαία του ίδιου μεγέθους, άσχετα αν το υποπρογραμμα  χρησιμοποιεί όλες τις θέσεις του
Καθηγητής πληροφορικής ΠΕ20

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5927
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: πέρασμα δισδιάστατου πίνακα σε δισδιάστατο
« Απάντηση #3 στις: 19 Φεβ 2021, 01:03:48 μμ »
Στην τρέχουσα υλοποίηση του Διερμηνευτή δεν επιτρέπεται. Αυτό επειδή η συνήθης διάταξη ενός πίνακα 4x4 στη RAM είναι:
1234 1234 1234 1234
Έτσι αν κάποιος πάει να περάσει έναν πίνακα 3x3 όταν η διαδικασία έχει δηλωμένο 4x4, τότε θα μπλεχτούν οι δείκτες και τα περιεχόμενα ως εξής:
1231 2312 3xxx xxxx

Δηλαδή το A[2,1] θα είναι 2 αντί για 1. Δηλαδή ισχύει ο τύπος σειριοποίησης i*N+j, και αν το N είναι διαφορετικό από το M, ο πίνακας διαβάζεται λάθος.

Υπάρχει τεχνικά η δυνατότητα να παρακαμφθεί αυτό το θέμα, αλλά δεν είναι κάτι φυσικό, χρειάζεται αποθήκευση των διαστάσεων των πινάκων σε κρυφό χώρο στην αρχή τους.

Btw, στο ερωτηματολόγιο για τις ασάφειες της ΑΕΠΠ, είχα την παρακάτω ερώτηση:

"Θα ήθελα μια διαδικασία Ταξινόμηση(Α, Ν) να μπορώ να την καλέσω για πίνακες διαφορετικού μεγέθους"

65.96% είπαν ΝΑΙ
34.04% είπαν ΟΧΙ