Πρόβλημα με άσκηση στους Πίνακες

Ξεκίνησε από επισκέπτης, 01 Φεβ 2006, 11:27:31 ΠΜ

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

επισκέπτης

Έχω μια απορία με την άσκηση που έχει να κάνει με τον φανατικό συλλέκτηδίσκων βινυλίου και για να γίνω πιο συγκεκριμένη με το δεύτερο ερώτημα που θέλει να εκτυπώνει το πλήθος και τα ονόματα των διαφορετικών καλλιτεχνών που δίσκοι τους υπάρχουν στη συλλογή.
Δεν καταλαβαίνω γιατί παίρνετε το πίνακα ΜΟΝΑΔΙΚΟΙ και πόσο μέγεθος θα έχει αυτός? Θα υπάρχουν και κενές θέσεις στον πίνακα ????

Ευχαριστώ πολύ

evry

Δεν γνωρίζω σε ποια άσκηση αναφέρεσαι. Πάντως όταν έχουμε έναν πίνακα και ψάχνουμε όλες τις διαφορετικές τίμες σε αυτόν μια τεχνική είναι να ταξινομήσουμε τον πίνακα και στη συνέχει με μια σάρωση θα αυξάνουμε τον μετρητή όταν
   table[j] <> table[j+1],
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

P.Tsiotakis

Άσκηση 5, στην ιστοσελίδα http://users.kor.sch.gr/ptsiotakis/aepp/aepp_ask3_3.htm

Ο πίνακας ΜΟΝΑΔΙΚΟΙ περιέχει τα ονόματα των καλλιτεχνών από τον πίνακα ΚΑΛΛΙΤΕΧΝΗΣ αλλά χωρίς επαναλήψεις.

Η προσέγγιση που ακολουθείται είναι η εξής:
Αρχικά το πίνακας ΜΟΝΑΔΙΚΟΙ είναι κενός. Για κάθε ένα στοιχείο του πίνακα ΚΑΛΛΙΤΕΧΝΗΣ αναζητούμε ΑΝ υπάρχει ήδη στον πίνακα ΜΟΝΑΔΙΚΟΙ και αν δεν υπάρχει τότε το τοποθετούμε, αλλιώς δεν κάνουμε τίποτα. Η αναζήτηση θα μπορούσε να υλοποιηθεί και με Όσο (σχολικό βιβλίο).

Η προσέγγιση αναλύεται επαρκώς στην νέα άσκηση που δημιούργησα στην ιστοσέλίδα  http://users.kor.sch.gr/ptsiotakis/aepp/aepp_method_3.htm   για το ερώτημα γ

Δοκίμασε στο χαρτί με πίνακα 10 στοιχείων (με κάποια να επαναλαμβάνονται)


Ένας δεύτερος τρόπος είναι αυτός που περιγράφει ο envy όπου πρώτα ταξινομείται ο πίνακας (με ταξινόμηση φυσαλίδας) και στη συνέχεια δημιουργούμε τον πίνακα ΜΟΝΑΔΙΚΟΙ ως εξής:

ΜΟΝΑΔΙΚΟΙ[1] <- ΚΑΛΛΙΤΕΧΝΗΣ[1] ! περνάμε τον πρώτο
μετρητής <- 1 ! μετρητής του πίνακα ΜΟΝΑΔΙΚΟΙ
Για i από 2 μέχρι Πλήθος
  Αν (ΚΑΛΛΙΤΕΧΝΗΣ <> ΚΑΛΛΙΤΕΧΝΗΣ[i-1]) τότε
          μετρητής <- μετρητής + 1
          ΜΟΝΑΔΙΚΟΙ[μετρητής] <- ΚΑΛΛΙΤΕΧΝΗΣ
  Τέλος_αν
Τέλος_Επανάληψης


Με εκτίμηση,

evry

Στη δική μου προσέγγιση δεν όρισα πίνακα. Απλά με έναν μετρητή υπολόγισα πόσοι είναι οι διαφορετικοί.  Ο λόγος που δε μίλησα για 2ο πίνακα είναι ότι δε γνωρίζουμε το μέγεθος του πίνακα. Εκτός αν κάνουμε δυο σαρώσεις.
   Η προσέγγισή σου δεν μπορεί να υλοποιηθεί με πρόγραμμα στη ΓΛΩΣΣΑ, (εκτός αν ορίσεις τον πίνακα ΜΟΝΑΔΙΚΟΙ με μέγεθος όσο και ο ΚΑΛΛΙΤΕΧΝΗΣ πράγμα λίγο άκομψο)
Στην περίπτωση του αλγορίθμου δεν μπορώ να πω ότι είναι λάθος αλλά ούτε και ότι είναι σωστό. Απλά δε μου κολλάει καλά.
Δεν ξέρω, εσύ τι λες?

ΥΓ. το όνομα είναι evry και όχι envy :-)



ΠαράθεσηΆσκηση 5, στην ιστοσελίδα http://users.kor.sch.gr/ptsiotakis/aepp/aepp_ask3_3.htm

Ο πίνακας ΜΟΝΑΔΙΚΟΙ περιέχει τα ονόματα των καλλιτεχνών από τον πίνακα ΚΑΛΛΙΤΕΧΝΗΣ αλλά χωρίς επαναλήψεις.

Η προσέγγιση που ακολουθείται είναι η εξής:
Αρχικά το πίνακας ΜΟΝΑΔΙΚΟΙ είναι κενός. Για κάθε ένα στοιχείο του πίνακα ΚΑΛΛΙΤΕΧΝΗΣ αναζητούμε ΑΝ υπάρχει ήδη στον πίνακα ΜΟΝΑΔΙΚΟΙ και αν δεν υπάρχει τότε το τοποθετούμε, αλλιώς δεν κάνουμε τίποτα. Η αναζήτηση θα μπορούσε να υλοποιηθεί και με Όσο (σχολικό βιβλίο).

Η προσέγγιση αναλύεται επαρκώς στην νέα άσκηση που δημιούργησα στην ιστοσέλίδα  http://users.kor.sch.gr/ptsiotakis/aepp/aepp_method_3.htm   για το ερώτημα γ

Δοκίμασε στο χαρτί με πίνακα 10 στοιχείων (με κάποια να επαναλαμβάνονται)


Ένας δεύτερος τρόπος είναι αυτός που περιγράφει ο envy όπου πρώτα ταξινομείται ο πίνακας (με ταξινόμηση φυσαλίδας) και στη συνέχεια δημιουργούμε τον πίνακα ΜΟΝΑΔΙΚΟΙ ως εξής:

ΜΟΝΑΔΙΚΟΙ[1] <- ΚΑΛΛΙΤΕΧΝΗΣ[1] ! περνάμε τον πρώτο
μετρητής <- 1 ! μετρητής του πίνακα ΜΟΝΑΔΙΚΟΙ
Για i από 2 μέχρι Πλήθος
  Αν (ΚΑΛΛΙΤΕΧΝΗΣ <> ΚΑΛΛΙΤΕΧΝΗΣ[i-1]) τότε
          μετρητής <- μετρητής + 1
          ΜΟΝΑΔΙΚΟΙ[μετρητής] <- ΚΑΛΛΙΤΕΧΝΗΣ
  Τέλος_αν
Τέλος_Επανάληψης


Με εκτίμηση,
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

P.Tsiotakis


episkeptis

ο Πίνακας ΜΟΝΑΔΙΚΟΙ πόσων θέσεων θα είναι???? τι μέγεθος θα βάλουμε ότι θα έχει στη δήλωση των μεταβλητών αν το κάνουμε πρόγραμμα ??

P.Tsiotakis

Το μέγεθος του πίνακα ΜΟΝΑΔΙΚΟΙ δεν είναι συγκεκριμένο. Έχει ΤΟ ΠΟΛΥ όσες θέσεις έχει και ο ΚΑΛΛΙΤΕΧΝΗΣ και έτσι πρέπει να δηλωθεί και σε πρόγραμμα

Αν επιθυμούμε να τα τοποθετήσουμε σε πίνακα αυτή είναι η μοναδική λύση και είναι μια χαρά σωστό

Με εκτίμηση,

επισκέπτης

άρα αν δηλωθεί με όσες θέσεις έχει και ο πίνακας ΚΑΛΛΙΤΕΧΝΗΣ τότε θα μείνουν κάποιες θέσεις κενές στο πίνακα ΜΟΝΑΔΙΚΟΙ ???

P.Tsiotakis


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

evry

Γενικά στον προγραμματισμό όταν έχουμε να αντιμετωπίσουμε τέτοια προβλήματα ορίζουμε μια δυναμική δομή δεδομένων. π.χ. Λίστα, Vector, ή άλλες δομές που υπάρχουν σε όλες τις γλώσσες.
    Η άσκηση που έχεις στο site προφανώς και λύνεται με τον τρόπο που λες. Ο λόγος είναι ότι στη ΓΛΩΣΣΑ δεν ορίζονται δυναμικές δομές δεδομένων.
    Αυτό όμως δεν μπορεί να είναι λόγος για να μάθουν οι μαθητές να ορίζουν πάντα πίνακες ανεξάρτητα αν πρέπει ή όχι. Η γνώμη μου είναι ότι καλό θα ήταν να μην δίνουμε στα παιδιά τέτοιες ασκήσεις όπου χρειάζεται να αποθηκεύσεις σε πίνακα πολλά αντικείμενα για τα οποία δεν γνωρίζεις τον αριθμό τους.
    Θα μπορούσες να ζητήσεις πόσα είναι ώστε να αναγκάσεις τα παιδιά να χρησιμοποιήσουν έναν μετρητή αλλά μέχρι εκεί.
Για να μην παρεξηγηθώ δε λέω ότι η άσκηση είναι λάθος από πλεύρας ορθότητας.

Παράθεσηναι φίλε μου, αυτό είναι και ένα από τα μειονεκτήματα από τη χρήση πινάκων. Μπορούμε να επιζήσουμε όμως και παρ' όλες αυτές τις κενές και αχρησιμοποίητες θέσεις...
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

P.Tsiotakis


Βιβλιο μαθητή (σελίδα 186): "...πρέπει να δηλώνεται και ο αριθμός των στοιχείων που περιέχει ή καλύτερα ο μεγαλύτερος αριθμός στοιχείων που μπορεί να έχει ο συγκεκριμένος πίνακας και αυτό για να δεσμευτούν οι αντίστοιχες συνεχόμενες θέσεις μνήμης."

Ακολουθεί το παράδειγμα 2 στη σελίδα 188

Τετράδιο μαθητή:
Κεφάλαιο 9: Παράδειγμα 1, σελίδα 88
Κεφάλαιο 10: Παράδειγμα 1, σελίδα 100

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

Με εκτίμηση,