Γενικό Λύκειο > Μονοδιάστατοι πίνακες

Δήλωση πίνακα Ν στοιχείων

<< < (2/5) > >>

pvs:
Στο Διερμηνευτή η μόνη περίπτωση που δέχεται γράμμα με σκοπό τη δήλωση του μέγεθους του πίνακα είναι η παρακάτω. Αλλά και πάλι πρέπει να ορίσεις πόσο είναι το Ν

ΣΤΑΘΕΡΕΣ
Ν=1000
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Α[Ν]

George Eco:

--- Παράθεση από: alkisg στις 23 Οκτ 2021, 08:38:14 μμ ---Δηλώνεις όλους τους πίνακες π.χ. με 1000 στοιχεία, και θέτεις περιορισμό το Ν να είναι <= 1000...

--- Τέλος παράθεσης ---

Άλκη διαφωνώ. Το σημείο αυτό στο βιβλίο πρέπει να διορθωθεί. Εγώ στα παιδιά μου ΔΕ διδάσκω αυτούς τους αλγορίθμους σε ψευδογλώσσα γι' αυτό το λόγο. Πάω κατ' ευθείαν σε ΓΛΩΣΣΑ κι εξηγώ.
Οι αλγόριθμοι σε ψευδογλώσσα που έχει, αντιμετωπίζουν τους πίνακες ως δυναμικές δομές, μετά η ΓΛΩΣΣΑ απαιτεί ως στατική δομή τους πίνακες και τη συνέχεια σε αλγορίθμους πάνω σε πίνακες που πρέπει να μάθουν τα παιδιά για αναζήτηση και ταξινόμηση έρχεται η ρήξη.

Akis73 ας πούμε πως υποθέτεις πως το Ν είναι προκαθορισμένη σταθερά, μπας και τα καταφέρουμε...

Δυστυχώς η  εντολή σε ψευδογλώσσα

ΔΕΔΟΜΕΝΑ // //

όπως ορίζεται στα πλαίσια του μαθήματος υπονοεί
ΔΙΑΒΑΣΕ Ν
ή
Σταθερά Ν με συγκεκριμένη τιμή στη καλύτερη, που πρέπει όμως να δοθεί σε ΓΛΩΣΣΑ ρητά πριν την ΑΡΧΗ,
οπότε έρχεται κι η ρήξη με τη ΓΛΩΣΣΑ.


Η ΓΛΩΣΣΑ είναι ασύμβατη με τη ψευδογλώσσα.

Pvs δεν είχα δει την απάντησή σου κι έδωσα διπλότυπο κατεβατό. Σωστός, πολύ σωστός.

pgrontas:

--- Παράθεση από: George Eco στις 23 Οκτ 2021, 10:24:08 μμ ---Οι αλγόριθμοι σε ψευδογλώσσα που έχει, αντιμετωπίζουν τους πίνακες ως δυναμικές δομές, μετά η ΓΛΩΣΣΑ απαιτεί ως στατική δομή τους πίνακες και τη συνέχεια σε αλγορίθμους πάνω σε πίνακες που πρέπει να μάθουν τα παιδιά για αναζήτηση και ταξινόμηση έρχεται η ρήξη.

Akis73 ας πούμε πως υποθέτεις πως το Ν είναι προκαθορισμένη σταθερά, μπας και τα καταφέρουμε...

Δυστυχώς η  εντολή σε ψευδογλώσσα

ΔΕΔΟΜΕΝΑ // //

όπως ορίζεται στα πλαίσια του μαθήματος υπονοεί
ΔΙΑΒΑΣΕ Ν
ή
Σταθερά Ν με συγκεκριμένη τιμή στη καλύτερη, που πρέπει όμως να δοθεί σε ΓΛΩΣΣΑ ρητά πριν την ΑΡΧΗ,
οπότε έρχεται κι η ρήξη με τη ΓΛΩΣΣΑ.


Η ΓΛΩΣΣΑ είναι ασύμβατη με τη ψευδογλώσσα.

Pvs δεν είχα δει την απάντησή σου κι έδωσα διπλότυπο κατεβατό. Σωστός, πολύ σωστός.

--- Τέλος παράθεσης ---

Η εντολή δεδομένα ΔΕΝ είναι ισοδύναμη με το τμήμα δηλώσεων.
Δείχνει κάποιες τιμές τις οποίες 'γνωρίζει' ο αλγόριθμος πριν ξεκινήσει την εκτέλεση. Δεν μας ενδιαφέρει το πώς τα γνωρίζει καθώς έχει στόχο ακριβώς να απαλλάξει τον αλγόριθμο από τέτοιες λεπτομέρειες.
Κατά συνέπεια όταν σε κάποιον αλγόριθμο εμφανίζεται ΔΕΔΟΜΕΝΑ //Π,Ν// όπου Π πίνακας, εννοείται ότι το Ν είναι γνωστό  ΠΡΙΝ την εκτέλεση και ΔΕΝ χρειάζεται να ξαναδιαβαστεί από τον αλγόριθμο και ότι ο πίνακας έχει Ν στοιχεία προσυμπληρωμένα και ούτε αυτά χρειάζεται να ξαναδιαβαστούν.
Άρα η εντολή δεδομένα δεν αναιρεί την στατικότητα της δομής.

George Eco:

--- Παράθεση από: pgrontas στις 24 Οκτ 2021, 10:47:52 πμ ---Η εντολή δεδομένα ΔΕΝ είναι ισοδύναμη με το τμήμα δηλώσεων.

--- Τέλος παράθεσης ---
Προφανώς, δεν είπε ποτέ κανείς κάτι τέτοιο.


--- Παράθεση από: pgrontas στις 24 Οκτ 2021, 10:47:52 πμ ---Κατά συνέπεια όταν σε κάποιον αλγόριθμο εμφανίζεται ΔΕΔΟΜΕΝΑ //Π,Ν// όπου Π πίνακας, εννοείται ότι το Ν είναι γνωστό  ΠΡΙΝ την εκτέλεση και ΔΕΝ χρειάζεται να ξαναδιαβαστεί από τον αλγόριθμο και ότι ο πίνακας έχει Ν στοιχεία προσυμπληρωμένα και ούτε αυτά χρειάζεται να ξαναδιαβαστούν.

--- Τέλος παράθεσης ---
Κι αφού αυτό είναι ΑΔΥΝΑΤΟ με ΓΛΩΣΣΑ έρχεται σε ρήξη.
Η εντολή ΔΕΔΟΜΕΝΑ είναι ασύμβατη με τη ΓΛΩΣΣΑ εδώ. Δε γίνεται να γεμίσεις πίνακα στο τμήμα δηλώσεων συνάδελφε. Κι ούτε να δώσεις τη διάστασή του μετά την ΑΡΧΗ, λόγω στατικότητας στα πλαίσια του μαθήματος. Αυτό λέω. Ακόμα κι αν προσπαθήσουμε να συνηγορήσουμε με Ν = σταθερά κι ορισμένη στο τμήμα δηλώσεων, ε δε γίνεται να πάρει τιμή από το χρήστη.

Πώς λοιπόν επέρχεται το συμπέρασμα πως η εντολή ΔΕΔΟΜΕΝΑ δεν αναιρεί την στατικότητα της δομής κατά την υλοποίηση σε ΓΛΩΣΣΑ; Μια χαρά την αναιρεί, δυστυχώς, όταν κληθούμε να κάνουμε υλοποίηση στη ΓΛΩΣΣΑ.

Αν το Ν είναι γνωστή τιμή τότε θα έπρεπε εξ αρχής να ξεκαθαρίζεται στο μαθητή.
Για παράδειγμα θα μπορούσαν να πουν:
"Ο παρακάτω αλγόριθμος κάνει αναζήτηση σε ένα πίνακα εκατό στοιχείων."
Γιατί να μπουρδουκλώνουν τα πράγματα με ένα ΓΕΝΙΚΟ αλγόριθμο που δεν υλοποιείται γενικά σε ΓΛΩΣΣΑ;

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

pgrontas θα συμφωνήσω όμως μαζί σου. Η ΔΕΔΟΜΕΝΑ δε δημιουργεί πρόβλημα στη στατικότητα, αν μελετήσουμε τη ψευδογλώσσα μόνη της. Πολύ καλά το λες. Το πρόβλημα είναι στη ΓΛΩΣΣΑ και στον ορισμό της στο βιβλίο. Τι να κάνουμε; Άσε που όποιο παιδί ξέρει τη REDIM της Visual Basic έχει άμεσα απορίες που απαντώνται στο κλίμα, "Ε, τι να κάνουμε, η ΓΛΩΣΣΑ ως εργαλείο, όπως την όρισαν, αντιμετωπίζει τον πίνακα ως στατική δομή". Κι όταν τα παιδιά ρωτάνε γιατί δε κάνουμε Python όπως στα ΕΠΑΛ, ή Java (υπάρχουν παιδιά που ρωτούν τέτοια), τότε δε ξέρω τι να απαντήσω...
 

pgrontas:

--- Παράθεση από: George Eco στις 24 Οκτ 2021, 12:32:19 μμ ---Προφανώς, δεν είπε ποτέ κανείς κάτι τέτοιο.

--- Τέλος παράθεσης ---
Μπορεί να μην γράφτηκε ρητά αλλά πλανάται στην συζήτηση, οπότε θεωρησα καλό να ξεκαθαριστεί. Έπρεπε να το βάλω πάνω από το quote για να γίνει πιο σαφές.


--- Παράθεση από: George Eco στις 24 Οκτ 2021, 12:32:19 μμ ---Η εντολή ΔΕΔΟΜΕΝΑ είναι ασύμβατη με τη ΓΛΩΣΣΑ εδώ. Δε γίνεται να γεμίσεις πίνακα στο τμήμα δηλώσεων συνάδελφε. Κι ούτε να δώσεις τη διάστασή του μετά την ΑΡΧΗ, λόγω στατικότητας στα πλαίσια του μαθήματος. Αυτό λέω. Ακόμα κι αν προσπαθήσουμε να συνηγορήσουμε με Ν = σταθερά κι ορισμένη στο τμήμα δηλώσεων, ε δε γίνεται να πάρει τιμή από το χρήστη.

Πώς λοιπόν επέρχεται το συμπέρασμα πως η εντολή ΔΕΔΟΜΕΝΑ δεν αναιρεί την στατικότητα της δομής κατά την υλοποίηση σε ΓΛΩΣΣΑ; Μια χαρά την αναιρεί, δυστυχώς, όταν κληθούμε να κάνουμε υλοποίηση στη ΓΛΩΣΣΑ.

--- Τέλος παράθεσης ---
Δεν μπορούμε να κρίνουμε αν είναι ασύμβατα δύο ΔΙΑΦΟΡΕΤΙΚΑ πράγματα.

Στον αλγόριθμο ενδιαφερόμαστε για την περιγραφή της λύσης, στο πρόγραμμα ενδιαφερόμαστε για την εκτέλεση της λύσης.
Κατά συνέπεια στον πρώτο μπορούμε να κρύψουμε κάποιες λεπτομέρειες, όπως πχ. πως αποκτούμε κάποια δεδομένα. Στο πρόγραμμα θα πρέπει να τις προσδιορίσουμε.
Η στατικότητα δεν πρέπει καν να μας απασχολεί στον αλγόριθμο. Είναι μια λεπτομέρεια υλοποίησης που θα την κρίνει η τελική γλώσσα προγραμματισμού. Δηλαδή ένας αλγόριθμος με ΔΕΔΟΜΕΝΑ //Π,Ν// μπορεί να υλοποιηθεί κάλλιστα τόσο με στατική (όπως προτάθηκε) όσο και με δυναμική δομή.


--- Παράθεση από: George Eco στις 24 Οκτ 2021, 12:32:19 μμ ---Αν το Ν είναι γνωστή τιμή τότε θα έπρεπε εξ αρχής να ξεκαθαρίζεται στο μαθητή.
Για παράδειγμα θα μπορούσαν να πουν:
"Ο παρακάτω αλγόριθμος κάνει αναζήτηση σε ένα πίνακα εκατό στοιχείων."

--- Τέλος παράθεσης ---
Είναι νομίζω προφανές πως αν έλεγαν ότι ο αλγόριθμος αφορά πίνακα 100 στοιχείων, τότε εύλογα προκύπτει η ερώτηση: "Με 101 στοιχεία δεν ισχύει ο αλγόριθμος?". 

Πλοήγηση

[0] Λίστα μηνυμάτων

[#] Επόμενη σελίδα

[*] Προηγούμενη σελίδα

Μετάβαση στην πλήρη έκδοση