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

Γενικό Λύκειο => Γ΄ Λυκείου => Τμηματικός προγραμματισμός => Μήνυμα ξεκίνησε από: JR στις 11 Απρ 2011, 04:39:06 ΜΜ

Τίτλος: Συνάρτηση να εμφανίζει 2 τιμές....!
Αποστολή από: JR στις 11 Απρ 2011, 04:39:06 ΜΜ
Την προηγούμενη βδομάδα έλυνα ασκήσεις και μου ήρθε αυτή η (όμορφη για εμένα) ιδέα!

Δεν μου πήρε πάνω από 10 δευτερόλεπτα να σκεφτώ άμα είναι πραγματοποιήσιμο... αμέσως μου φάνηκε εύκολο και τέλειο για να μπερδέψει (ίσως) κάποιους.  >:D

Δεν αναφέρω σκόπιμα το πως γίνεται (αν και σχεδόν όλοι θα έχετε ήδη μπει στην σκέψη μου!  ;) ).

Πιστεύω θα μπορούσε να χρησιμοποιηθεί σε κατευθυνόμενες ασκήσεις τύπου 'Να φτιαχτεί συνάρτηση που να επιστρέφει τις θέσεις ενός δυσδιάστατου πίνακα.' 

Δεν γνωρίζω άμα έχει γίνει ξανασυζητηθεί, πάντως από λίγο search δεν βρήκα κάτι.

Ήθελα να δώσω απλώς αυτή την ιδέα μου. Πως σας φάνηκε εσάς;

Γιάννης

Peace
Τίτλος: Απ: Συνάρτηση να εμφανίζει 2 τιμές....!
Αποστολή από: andreas_p στις 11 Απρ 2011, 05:26:46 ΜΜ
Τι σημαίνει  τις θέσεις ενός δυισδιάστατου πίνακα   ;

Πωώς να μας φανεί ;

δεν βρήκα κάτι

Δεν γνωρίζω

Υ.Γ. 
  Χτυπάω (ή και χτυπώ) πού και πού !

Α.Π.
Τίτλος: Απ: Συνάρτηση να εμφανίζει 2 τιμές....!
Αποστολή από: sstergou στις 11 Απρ 2011, 06:03:49 ΜΜ
Αν εννοείς να επιστρέφει πίνακα δεν νομίζω ότι αυτό είναι εφικτό χωρίς προσθήκες στο υπάρχον συντακτικό της γλώσσας.
Τίτλος: Απ: Συνάρτηση να εμφανίζει 2 τιμές....!
Αποστολή από: JR στις 11 Απρ 2011, 10:52:11 ΜΜ
Παράθεση από: andreas_p στις 11 Απρ 2011, 05:26:46 ΜΜ
Τι σημαίνει  τις θέσεις ενός δυισδιάστατου πίνακα   ;

Πωώς να μας φανεί ;

δεν βρήκα κάτι

Δεν γνωρίζω

Wow, thanks for the tips, νομίζω ήταν άκρως απαραίτητα, κρίμα όμως που ήταν άκυρα με το θέμα.


Παράθεση από: sstergou στις 11 Απρ 2011, 06:03:49 ΜΜ
Αν εννοείς να επιστρέφει πίνακα δεν νομίζω ότι αυτό είναι εφικτό χωρίς προσθήκες στο υπάρχον συντακτικό της γλώσσας.

Όχι, θέσεις πίνακα.
Τίτλος: Απ: Συνάρτηση να εμφανίζει 2 τιμές....!
Αποστολή από: andreas_p στις 11 Απρ 2011, 11:18:44 ΜΜ
Αλλά ;
Τίτλος: Απ: Συνάρτηση να εμφανίζει 2 τιμές....!
Αποστολή από: tom στις 11 Απρ 2011, 11:50:58 ΜΜ
Παράθεση από: JR στις 11 Απρ 2011, 04:39:06 ΜΜ
Πιστεύω θα μπορούσε να χρησιμοποιηθεί σε κατευθυνόμενες ασκήσεις τύπου 'Να φτιαχτεί συνάρτηση που να επιστρέφει τις θέσεις ενός δυσδιάστατου πίνακα.' 
Για ποιο λόγο θες μια συνάρτηση να επιστρέφει τις θέσεις ενός δυσδιάστατου πίνακα; Πώς μπορεί να αξιοποιηθεί μια τέτοια συνάρτηση; Όταν λες τις θέσεις τι εννοείς? Τα στοιχεία του?
Τίτλος: Απ: Συνάρτηση να εμφανίζει 2 τιμές....!
Αποστολή από: odysseas στις 12 Απρ 2011, 12:47:42 ΠΜ
Νομίζω αναφέρεται στην απεικόνιση δισδιάστατου πίνακα σε μονοδιάστατο. Πως οι 2 συντεταγμένες ενός στοιχείου στον μεν μπορεί να "κωδικοποιηθούν" σε έναν μοναδικό ακέραιο (ώστε να επιστραφούν από συνάρτηση).
Τίτλος: Απ: Συνάρτηση να εμφανίζει 2 τιμές....!
Αποστολή από: Νίκος Αδαμόπουλος στις 12 Απρ 2011, 01:03:46 ΠΜ
Παράθεση από: odysseas στις 12 Απρ 2011, 12:47:42 ΠΜ
Νομίζω αναφέρεται στην απεικόνιση δισδιάστατου πίνακα σε μονοδιάστατο. Πως οι 2 συντεταγμένες ενός στοιχείου στον μεν μπορεί να "κωδικοποιηθούν" σε έναν μοναδικό ακέραιο (ώστε να επιστραφούν από συνάρτηση).

Χμμ...

Εννοείς μέσα στη συνάρτηση να επιστρέφει:  Αποτ <- (γρ-1)*στήλες+στ

Ενώ στο σημείο κλήσης:

θ <- Αποτ(...)
γρ <- (θ-1) div στήλες +1,
στ <- (θ-1) mod στήλες +1

(όπου γρ και στ οι θέσεις στον δισδιάστατο πίνακα και στήλες το πλήθος των στηλών του)

Βλ. και https://alkisg.mysch.gr/steki/index.php?topic=3763.0
Τίτλος: Απ: Συνάρτηση να εμφανίζει 2 τιμές....!
Αποστολή από: spantoulis στις 12 Απρ 2011, 01:04:02 ΜΜ
Μήπως εννοείς το πλήθος των θέσεων του πίνακα? Δηλ. τόσες γραμμές επί τόσες στήλες?
Πάντως να επιστρέψει δύο τιμές δεν γίνεται, εκτός αν τις βάλεις σε μια φράση και την επιστρέψει σαν  μία τιμή τύπου χαρακτήρα  :D
Τίτλος: Απ: Συνάρτηση να εμφανίζει 2 τιμές....!
Αποστολή από: evry στις 12 Απρ 2011, 01:14:38 ΜΜ
Αν το ψήφιο κάθε αριθμού θεωρηθεί μια τιμή τότε ένας αριθμός μπορεί να αναπαραστήσει πολλές διαφορετικές πληροφορίες.
Γενικά μπορείς να δουλέψεις σε οποιοδήποτε αριθμητικό σύστημα θέλεις αλλά αυτό πρέπει να το ξέρει αυτός που χρησιμοποιεί τη συνάρτηση ώστε να κάνει την αντίστοιχη μετατροπή

Επίσης η μετατροπή μονοδιάστους σε 2Δ είναι μια καλή και ενδιαφέρουσα ιδέα γιατί έτσι δείχνεις σε έναν μαθητή πως υλοποιούνται εσωτερικά οι πίνακες 2 διαστάσεων.
Τίτλος: Απ: Συνάρτηση να εμφανίζει 2 τιμές....!
Αποστολή από: JR στις 12 Απρ 2011, 07:14:13 ΜΜ
Παράθεση από: tom στις 11 Απρ 2011, 11:50:58 ΜΜ
Για ποιο λόγο θες μια συνάρτηση να επιστρέφει τις θέσεις ενός δυσδιάστατου πίνακα; Πώς μπορεί να αξιοποιηθεί μια τέτοια συνάρτηση; Όταν λες τις θέσεις τι εννοείς? Τα στοιχεία του?

Όταν λέω θέσεις εννοώ θέσεις... (έστω πως σε αναζήτηση που βρίσκεται μέσα σε συνάρτηση βρίσκουμε πως η τιμή που ψάχνουμε είναι στην 3 γραμμή και 5 στήλη να επιστρέψει το 3 και το 5, τις θέσεις του στοιχείου)

Μια τέτοια συνάρτηση δεν μπορεί να αξιοποιηθεί κάπου απλώς να φανεί πως ναι η συνάρτηση μπορεί να επιστρέψει παραπάνω από μια τιμές. Μόνο σε ασκήσεις, να τσιμπήσει τους 'μεθοδολόγους' που έχουν κατά νου ότι συνάρτηση = 1 αποτέλεσμα.  Τι θα έκαναν οι περισσότεροι άμα κάποιος τους ζήταγε να μεταφέρουν δύο στοιχεία μέσω συνάρτησης ? Blackout.

Παράθεση από: Νίκος Αδαμόπουλος στις 12 Απρ 2011, 01:03:46 ΠΜ
Εννοείς μέσα στη συνάρτηση να επιστρέφει:  Αποτ <- (γρ-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)

Παράθεση από: spantoulis στις 12 Απρ 2011, 01:04:02 ΜΜ
Πάντως να επιστρέψει δύο τιμές δεν γίνεται

Μόλις έγινε.  :'(
Τίτλος: Απ: Συνάρτηση να εμφανίζει 2 τιμές....!
Αποστολή από: sstergou στις 12 Απρ 2011, 08:02:20 ΜΜ
Άσχετο αλλά σχετικό.

Πιστεύω πως σε μια άλλη εκπαιδευτική γλώσσα (όπως λέμε σε μια άλλη ζωή) οι συναρτήσεις θα ήταν καλό να επιστρέφουν πίνακα πράγμα απολύτως λογικό αν κάποιος σκεφτεί ότι μπορούν να πάρουν σαν παράμετρο πίνακα.

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


Επίσης άσχετο : Όλα τα κλασικά θέματα με πίνακες, είναι στην ουσία συνδυασμός 2-3 τέτοιων (περίπου :) ) συναρτήσεων.

Τίτλος: Απ: Συνάρτηση να εμφανίζει 2 τιμές....!
Αποστολή από: spantoulis στις 13 Απρ 2011, 01:40:27 ΜΜ
Παράθεση από: JR στις 12 Απρ 2011, 07:14:13 ΜΜ
Μόλις έγινε.  :'(

Αυτό που έγινε είναι επιστροφή ΜΙΑΣ τιμής και παραγωγή δύο τιμών από την τιμή που επιστράφηκε.
Με αυτή τη λογική μπορώ να πάρω όσες τιμές θέλω από την ΜΙΑ τιμή που θα μου επιστρέφει η συνάρτηση.
Τίτλος: !
Αποστολή από: lykos στις 13 Απρ 2011, 11:35:33 ΜΜ
spantoulis, συμφωνώ!
Το πρόβλημα είναι η "Γλώσσα" (όνομα που βρήκαν...).
Αν δουλεύαμε με μια πραγματική γλώσσα, δεν θα ασχολούμασταν με τέτοιες  μακακίες, αλλά με προγραμματισμό.
Αν το βιβλίο ("μας") δεν μας το επέβαλαν κι' έβγαινε στό εμπόριο, πόσα αντίτυπα θα πουλούσε? 
(Ελπίζω να μην μ' απαντήσει κάποιος, πως ούτε τα θρησκευτικά θα πουλούσαν...)

Βασίλης Λυκοστράτης