Για ποιο λόγο θες μια συνάρτηση να επιστρέφει τις θέσεις ενός δυσδιάστατου πίνακα; Πώς μπορεί να αξιοποιηθεί μια τέτοια συνάρτηση; Όταν λες τις θέσεις τι εννοείς? Τα στοιχεία του?
Όταν λέω θέσεις εννοώ θέσεις... (έστω πως σε αναζήτηση που βρίσκεται μέσα σε συνάρτηση βρίσκουμε πως η τιμή που ψάχνουμε είναι στην 3 γραμμή και 5 στήλη να επιστρέψει το 3 και το 5, τις θέσεις του στοιχείου)
Μια τέτοια συνάρτηση δεν μπορεί να αξιοποιηθεί κάπου απλώς να φανεί πως ναι η συνάρτηση μπορεί να επιστρέψει παραπάνω από μια τιμές. Μόνο σε ασκήσεις, να τσιμπήσει τους 'μεθοδολόγους' που έχουν κατά νου ότι
συνάρτηση = 1 αποτέλεσμα. Τι θα έκαναν οι περισσότεροι άμα κάποιος τους ζήταγε να μεταφέρουν δύο στοιχεία μέσω συνάρτησης ? Blackout.
Εννοείς μέσα στη συνάρτηση να επιστρέφει: Αποτ <- (γρ-1)*στήλες+στ
Ναι. Αυτό ακριβώς.
Αν και η αρχική μου σκέψη ήταν διαφορετική. Για 9x9 σκέφτηκα :
Μέσα στην συνάρτηση έστω ότι βρίσκουμε ότι i=3 και j=4 (όπου i γραμμές και j στήλες)
συνάρτηση <- i*10 + j
Στο πρόγραμμα τώρα έχουμε:
κ <- συνάρτηση (...)
i <- kdiv10
j <- κmod10
(όπου κ μια μεταβλητή)
Σε μεγαλύτερους πίνακες έχει λίγο πιο περίπλοκη σκέψη.
Δουλεύουμε όπως στον 9x9 μόνο που τώρα πολλαπλασιάζουμε στην συνάρτηση με 100, 1000 κ.ο.κ. ανάλογα με το μέγεθος του πίνακα.
Και επειδή θα γυρνάει ένα αποτέλεσμα της μορφής 345024 (σε πίνακα 1000x1000)
Θα το χωρίσουμε σε 345 και 024 και στην συνέχεια μέσω άλλου υποπρογράμματος διώχνουμε το 0. (εύκολο με έλενχο div10 για 0 - div100 σε περίπτωση αριθμού 002)
Πάντως να επιστρέψει δύο τιμές δεν γίνεται
Μόλις έγινε.
