Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Γ΄ Λυκείου => Μήνυμα ξεκίνησε από: ΣΧΟΙΝΑΣ ΚΩΣΤΑΣ στις 18 Φεβ 2021, 06:47:27 μμ

Τίτλος: πέρασμα δισδιάστατου πίνακα σε δισδιάστατο
Αποστολή από: ΣΧΟΙΝΑΣ ΚΩΣΤΑΣ στις 18 Φεβ 2021, 06:47:27 μμ
ερώτηση
Μπορεί στο κύριο πρόγραμμα
να έχω ορίσει τετραγωνικό πίνακα Α[4,4] και να μεταβιβάσώ τον πίνακα Α σε πίνακα μεγαλύτερο Β[8,8] μέσω διαδικασιας;
Τίτλος: Απ: πέρασμα δισδιάστατου πίνακα σε δισδιάστατο
Αποστολή από: petrosp13 στις 19 Φεβ 2021, 01:37:57 πμ
Σκοτεινό σημείο, αλλά καλό θα είναι να απαντήσουμε όχι...
Τίτλος: Απ: πέρασμα δισδιάστατου πίνακα σε δισδιάστατο
Αποστολή από: ΣΧΟΙΝΑΣ ΚΩΣΤΑΣ στις 19 Φεβ 2021, 12:55:57 μμ
στην γλώσσα πάντως δεν δουλεύει  ο πίνακας που μεταβιβάζει το κύριο πρόγραμμα στο υποπρογραμμα πρέπει να είναι αναγκαία του ίδιου μεγέθους, άσχετα αν το υποπρογραμμα  χρησιμοποιεί όλες τις θέσεις του
Τίτλος: Απ: πέρασμα δισδιάστατου πίνακα σε δισδιάστατο
Αποστολή από: alkisg στις 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% είπαν ΟΧΙ