Αποστολέας Θέμα: εισαγωγη της λογικης των κλειδιων σε ασκησεις  (Αναγνώστηκε 3749 φορές)

nekis

  • Βετεράνος
  • ****
  • Μηνύματα: 76
  • U R NT A #
Καλημέρα
Θέλω να προτείνω και να ρωτήσω συνάμα την παρέα πως βλέπει την εισαγωγή της λογικής των κλειδιών των βάσεων στο μάθημα, ως εξής:

Ας υποθέσουμε ότι έχουμε έναν μονοδιάστατο πίνακα ονομάτων, έναν δισδιάστατο πίνακα τιμών και έναν ακόμα μονοδιάστατο πίνακα στον οποίο υπολογίζουμε πχ τους μέσους όρους. Έστω ότι θέλουμε να ταξινομήσουμε αυτόν τον πίνακα των ΜΟ και θέλουμε πχ να εμφανίσουμε πληροφορία του τύπου:
Το όνομα Ο[ι] είχε τις τιμές Α[ι,1] ,… Α[ι,κ] και μέσο όρο ΜΟ[ι] κατά αύξουσα ή φθίνουσα σειρά.
Έχουμε πάντα την επιλογή να ταξινομήσουμε ολόκληρη τη δομή, αλλά θα μπορούσαμε επίσης  να δημιουργήσουμε αντί για πίνακα μιας στήλης ΜΟ, εναν πχ ΜΟ[100,2] όπου η δεύτερη στήλη να περιέχει τους αριθμούς των γραμμών ώστε να αναφέρομαι, όπως και με τα κλειδία των βάσεων δεδομένων στους κόμβους της δομής χωρίς συνολική ταξινόμηση πχ
Το όνομα Ο[J] είχε τις τιμές Α[J,1] ,… Α[J,κ] και μέσο όρο ΜΟ[1,J] κλπ
Παρακαλώ για τις ιδέες σας
ΝΚυριακου

nekis

  • Βετεράνος
  • ****
  • Μηνύματα: 76
  • U R NT A #
Απ: εισαγωγη της λογικης των κλειδιων σε ασκησεις
« Απάντηση #1 στις: 05 Απρ 2006, 09:03:51 πμ »
Επίσης πιστεύω ότι η παραπανω λογική έχει εφαρμογή σε αρκετά άλλα παραδείγματα που μπορούμε να δημιουργήσουμε και είναι αρκετά εκπαιδευτική για τους μαθητές, αφού τους παρέχει περισσότερες παραστάσεις από πιο "ρεαλιστικά" παραδείγματα

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2392
  • I 'm not young enough to know everything
Απ: εισαγωγη της λογικης των κλειδιων σε ασκησεις
« Απάντηση #2 στις: 05 Απρ 2006, 11:09:34 πμ »
Ουσιαστικά είναι σαν να προσπαθείς να λύσεις την παρακάτω άσκηση:

Δίνεται πίνακας μονοδιάστατος. Να φτιάξεις ένα άλλο πίνακα (πχ με όνομα «σειρά») ίδιου μεγέθους που σε κάθε θέση του να έχει τη σειρά του αντίστοιχου στοιχείου του αρχικού πίνακα, (όπως θα προέκυπτε μετά από ταξινόμηση).

Μπορώ να σκεφτώ μερικούς τρόπους για λύση. Πχ να χρησιμοποιήσεις ένα πίνακα λογικών μεταβλητών (έστω με όνομα «ελέγχθηκε») που αρχικά έχει τιμή «ψευδής» σε όλα τα στοιχεία. Κάνεις μια σάρωση στον αρχικό πίνακα, βρίσκεις το μεγαλύτερο στοιχείο, βάζεις το 1 στην αντίστοιχη θέση του πίνακα «σειρά» και θέτεις «Αληθής» την τιμή στην αντίστοιχη θέση του πίνακα «ελέγχθηκε».

Μετά κάνεις δεύτερη σάρωση στον αρχικό πίνακα, βρίσκεις το δεύτερο μεγαλύτερο στοιχείο, βάζεις το 2 στην αντίστοιχη θέση του πίνακα «σειρά» και θέτεις «Αληθής» την τιμή στην αντίστοιχη θέση του πίνακα «ελέγχθηκε».

Κάθε φορά ελέγχεις μεταξύ αυτών που δεν έχουν ελεγχθεί (το βλέπεις από τον πίνακα «ελέγχθηκε»), βρίσκεις το μεγαλύτερο από τα μη ελεγμένα στοιχεία και βάζεις τη σειρά του στον πίνακα «σειρά».

Μετά από αυτό θα πρέπει να ενσωματωθεί αυτή η τεχνική στους πίνακες 2 διαστάσεων. Γίνεται αλλά δεν ξέρω αν είναι για το επίπεδο του μαθήματος. Θα το σκεφτώ. Στο μεταξύ ας τοποθετηθούν και οι άλλοι.

Επίσης να θέσω ένα ακόμα ερώτημα σε αυτή την κατεύθυνση.

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

Δεν το έχω σκεφτεί ακόμα. Τι λέτε και οι υπόλοιποι;
 
Γιώργος Παπαργύρης (gpapargi@hotmail.com)

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 4278
    • alkisg@im.sch.gr
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: εισαγωγη της λογικης των κλειδιων σε ασκησεις
« Απάντηση #3 στις: 05 Απρ 2006, 11:57:30 πμ »
Η άσκηση που αναφέρει ο Νεκτάριος νομίζω ότι γενικεύεται στην εξής:
Χρησιμοποιείστε έναν πίνακα σαν δείκτη σε άλλο πίνακα
Δηλαδή σαν λύση χρειάζεται κάτι της μορφής A[key[ι]] για τους μονοδιάστατους και Α[key1[ι, κ], key2[ι, κ]] για τους δισδιάστατους.

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

Έστω ότι προσπαθούμε να λύσουμε την άσκηση που είπε ο Γιώργος (που είναι πιο απλή):
Παράθεση
Δίνεται πίνακας μονοδιάστατος. Να φτιάξεις ένα άλλο πίνακα (πχ με όνομα «σειρά») ίδιου μεγέθους που σε κάθε θέση του να έχει τη σειρά του αντίστοιχου στοιχείου του αρχικού πίνακα, (όπως θα προέκυπτε μετά από ταξινόμηση).

1) Δηλώνουμε έναν πίνακα ακεραίων key[N] και τον αρχικοποιούμε ώστε να περιέχει τις τιμές 1, 2, ..., Ν.
2) Κάνουμε κανονικά την ταξινόμηση, με τις παρακάτω δύο διαφορές:
2α) Σε κάθε προσπέλαση του πίνακα Α, αντί για Α[ι] βάζουμε A[key[ι]]
2β) Σε κάθε αντιμετάθεση της ταξινόμησης, αντί να αντιμεταθέτουμε το A[ι] με το Α[ι-1], αντιμεταθέτουμε το key[ι] με το key[ι-1].

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

Για το χειρισμό αλφαριθμητικών: αν και μπορούν να προκύψουν ενδιαφέρουσες ασκήσεις είμαι λίγο σκεπτικιστής, γιατί κάποιοι συνάδελφοι θεωρούν αμφιλεγόμενο ακόμα και τον τελεστή συνένωσης (+) των αλφαριθμητικών...

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2392
  • I 'm not young enough to know everything
Απ: εισαγωγη της λογικης των κλειδιων σε ασκησεις
« Απάντηση #4 στις: 05 Απρ 2006, 10:57:01 μμ »
Για τα strings, είχα στο νου μου  την αποθήκευση κάθε χαρακτήρα σε ξεχωριστή θέση. Δεν το σκέφτηκα πάρα πολύ αλλά νομίζω ότι με αυτό το τρόπο μπορούμε να κάνουμε σχεδόν τα πάντα. Βασικά νομίζω ότι δεν μπορούμε να εκτυπώσουμε οριζόντια τη φράση. Θα μπορούσαμε αν είχαμε μια «Γράψε» που να μη βάζει χαρακτήρα τέλους γραμμής ή τελεστή συνένωσης των αλφαριθμητικών. Τα άλλα νομίζω πως μπορούμε να τα παρακάμψουμε, εύκολα ή δύσκολα.
Γιώργος Παπαργύρης (gpapargi@hotmail.com)

nekis

  • Βετεράνος
  • ****
  • Μηνύματα: 76
  • U R NT A #
Απ: εισαγωγη της λογικης των κλειδιων σε ασκησεις
« Απάντηση #5 στις: 06 Απρ 2006, 09:07:56 πμ »
Γιώργο με αυτόν τον τρόπο κάνω αρκετές ασκήσεις όπως συχνότητα εμφάνισης γραμματων σε μια πρόταση η αν μια πρόταση είναι καρκινική-συμμετρική. Συμφωνώ ότι δεν μπορώ να τυπώσω σε μια γραμμή.Αντιστοιχο πρόβλημα είναι το παράδειγμα του ΟΤΕ στο 3 Κεφ (κάτω από το wirth) που αφήνεται η λύση στον αναγνώστη. Εκεί χρειάζεται ο χρήστης να δίνει την είσοδο του πρωτου γράμματος του ονόμτος που ψαχνει 2 φορές μια ξεχωριστά ώστε να γίνεται η αναζήτηση στον πίνακα των θέσεων και μια για την αναζήτηση από τον πίνακα των ονομάτων. Δεν έχω σκεφτεί καποια καλύτερη λύση. Αν έχετα σας παρακαλώ νατην αναφέρετε.
ΝΚυριακου

Επισκέπτης

  • Επισκέπτης
Απ: εισαγωγη της λογικης των κλειδιων σε ασκησεις
« Απάντηση #6 στις: 06 Απρ 2006, 04:20:53 μμ »

Θέμα 3, εσπερινά 2005

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2392
  • I 'm not young enough to know everything
Απ: εισαγωγη της λογικης των κλειδιων σε ασκησεις
« Απάντηση #7 στις: 07 Απρ 2006, 12:10:28 πμ »
Στο παράδειγμα του ΟΤΕ μπορείς να χρησιμοποιήσεις το ότι πχ 'Κ' < 'ΚΥΡΙΑΚΟΥ' < 'Λ'.

Παιχνίδια πολλά με την ταχύτητα δεν μπορείς να κάνεις στα πλαίσια της σχολικής ύλης γιατί είναι έξω η δυαδική αναζήτηση. Αν ήταν μέσα υπάρχουν κόλπα. Βέβαια από κάποιο σημείο και μετά αρχίζουν να μετράνε και τι άλλα κάνεις εκτός από αναζήτηση. Αν κάνεις εισαγωγές/ διαγραφές το πράγμα αλλάζει. Όλα αυτά είναι στο αντικείμενο του μαθήματος "Οργάνωση αρχείων και εισαγωγή στις βάσεις δεδομένων". Έχει πολύ ψωμί η ιστορία, αλλά αυτα όλα δεν έχουν σχέση με το μάθημα. 
Γιώργος Παπαργύρης (gpapargi@hotmail.com)

nekis

  • Βετεράνος
  • ****
  • Μηνύματα: 76
  • U R NT A #
Απ: εισαγωγη της λογικης των κλειδιων σε ασκησεις
« Απάντηση #8 στις: 07 Απρ 2006, 08:58:08 πμ »
Ναι αυτό εννοώ με έναν πίνακα ΓΡΑΜΜΑΤΑ[24,2] στον οποίο υπάρχουν στην πρώτη στήλη τα γράμματα και στην δευτερη οι θέσεις του πίνακα ΟΝΟΜΑΤΑ που αρχίζει το κάθε αρχικό γράμμα των ονομάτων χρησιμοποιώντας βέβαια την διάταξη που ανέφερες.
Ευχαριστώ