ερώτηση
Μπορεί στο κύριο πρόγραμμα
να έχω ορίσει τετραγωνικό πίνακα Α[4,4] και να μεταβιβάσώ τον πίνακα Α σε πίνακα μεγαλύτερο Β[8,8] μέσω διαδικασιας;
Σκοτεινό σημείο, αλλά καλό θα είναι να απαντήσουμε όχι...
στην γλώσσα πάντως δεν δουλεύει ο πίνακας που μεταβιβάζει το κύριο πρόγραμμα στο υποπρογραμμα πρέπει να είναι αναγκαία του ίδιου μεγέθους, άσχετα αν το υποπρογραμμα χρησιμοποιεί όλες τις θέσεις του
Στην τρέχουσα υλοποίηση του Διερμηνευτή δεν επιτρέπεται. Αυτό επειδή η συνήθης διάταξη ενός πίνακα 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% είπαν ΟΧΙ