πέρασμα δισδιάστατου πίνακα σε δισδιάστατο

Ξεκίνησε από ΣΧΟΙΝΑΣ ΚΩΣΤΑΣ, 18 Φεβ 2021, 06:47:27 ΜΜ

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

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

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

petrosp13

Σκοτεινό σημείο, αλλά καλό θα είναι να απαντήσουμε όχι...
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

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

στην γλώσσα πάντως δεν δουλεύει  ο πίνακας που μεταβιβάζει το κύριο πρόγραμμα στο υποπρογραμμα πρέπει να είναι αναγκαία του ίδιου μεγέθους, άσχετα αν το υποπρογραμμα  χρησιμοποιεί όλες τις θέσεις του
Καθηγητής πληροφορικής ΠΕ20

alkisg

Στην τρέχουσα υλοποίηση του Διερμηνευτή δεν επιτρέπεται. Αυτό επειδή η συνήθης διάταξη ενός πίνακα 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% είπαν ΟΧΙ