Ερωτήσεις πάνω στο παράδειγμα της στοίβας του βιβλίου 2( πλοίο )

Ξεκίνησε από gergerman, 17 Δεκ 2019, 10:53:46 ΜΜ

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

gergerman

Σχετικά με το παράδειγμα της στοίβας του βιβλίου 2 στη σελίδα 19, έχω να κάνω κάποιες ερωτήσεις:
1) Τι ρόλο έχει η μεταβλητή πλ2; ζητείται κάτι σχετικό στην εκφώνηση; Και γιατί αρχικοποιείται μέσα στην επανάληψη;
2) Συνήθως, στην επανάληψη μετά από ερώτηση , η ερώτηση αν θέλει ο χρήστης άλλη επανάληψη γίνεται στο τέλος. Υπάρχει κάποιος λόγος που εδώ γίνεται στην αρχή;(κάτω από το Αν επ=1 τοτε)
3) Επίσης γράφει, Αν τοπ<= 250 κάτι που είναι λάθος ... Επίσης ο έλεγχος ότι το πλοίο γέμισε γίνεται λίγο διαφορετικά. Δεν ήταν καλύτερο να γράψει :

Αν τοπ <= 250 τότε
.............
Αλλιώς
.... Υπερχείλιση
Τέλος_αν

για να είναι συμβατό με το παράδειγμα 2, της σελ. 16.
4) Στο παράδειγμα 2 της σελ 216 το Διάβασμα του στοιχείου προς ώθηση γίνεται πριν το έλεγχο της τιμής του δείκτη τοπ της στοίβας. Στο παράδειγμα με το πλοίο το διάβασμα γίνεται μέσα στην Αν, κάτι που πάλι είναι αντίθετο με τη φιλοσοφία του παραπάνω παραδείγματος...

Παράδειγμα 2
Διάβασε στοιχείο
Αν τοπ<10 τότε
    ......

Παραδειγμα 4
Αν τοπ <= 250 τότε
    Διάβασε αρ

tanius76

Καλησπέρα ! Ακριβώς τις ίδιες σκέψεις έκανα κι εγώ .
Συμφωνώ μαζί σου .
Για το 2ο ερώτημα μάλλον λαμβάνει υπόψιν την περίπτωση ότι μπορεί να μην επιβιβαστεί κανένα όχημα.
και 4ο λάθος ο πίνακας θα έπρεπε να έχει το όνομα ΟΧΗΜΑΤΑ.

bagelis

Λάθη - Παρατηρήσεις για την εφαρμογή του βιβλίου (πλοίο)
1. Το πλ2 όντως δεν προκύπτει πουθενά από την εκφώνηση
2. Συμφωνώ, έπρεπε να είναι με μέχρις_ότου, αλλά οκ, αυτό είναι το λιγότερο...
3. Το αν τοπ <= 250 στην αρχή μου φάνηκε λάθος, μετά είδα ότι τελειώνει το μέχρις_ότου με τιμή 250 οπότε είπα "οκ, αφού φεύγει η επανάληψη, είναι νοηματικό λάθος, αλλά τρέχει" και καταλήγω στο ότι είναι λάθος γιατί μπορεί ο χρήστης να επιλέξει εκ νέου την επιλογή 1 οπότε θα έχουμε (πως το είπαμε;) λάθος που οδηγεί σε αντικανονικό τερματισμό του προγράμματος.
4. Ο πίνακας όντως έχει λάθος όνομα.
5. Οι έλεγχοι εγκυρότητας στην ουσία θολώνουν τον κώδικα, χωρίς να προσφέρουν κάτι...


6. Όλη η εκφώνηση δεν έχει φυσικό νόημα. Ο χρήστης μπορεί να βάζει και να βγάζει όποτε θέλει οχήματα, δεν ανταποκρίνεται σε ένα δρομολόγιο ΠΕΙΡΑΙΑΣ - ΑΙΓΙΝΑ. Μήπως πρέπει να φανταστούμε ότι το πλοίο πηγαινοέρχεται; (από την Αίγινα έρχεται άδειο, δεν φορτώνει... ;D ;D ;D)

Άλλα Λάθη - Παραλείψεις στο τμήμα στοίβα του σχολικού

α) Σελίδα 14, στα παραδείγματα το δεύτερο.
Στη λύση προτείνει να τα βγάλουμε όλα από τη στοίβα και να τα βάλουμε μετά όπως εμείς επιθυμούμε. Όταν βγαίνουν τα στοιχεία από τη στοίβα που πάνε; Με κάποιο μαγικό τρόπο τα έχουμε και να χειριζόμαστε; Το ίδιο γίνεται και σε στοίβα με 10.000 θέσεις; Μπορώ να τα βγάλω όλα και με κάποιο τρόπο να τα έχω;
Νομίζω ότι είναι εντελώς εκτός πνεύματος.

β) Σελίδα 15 - Παράδειγμα 2
Στην ώθηση έχει το σχόλιο: "Θεωρούμε ότι η στοίβα δεν είναι κενή και η μεταβλητή top έχει μια έγκυρη τιμή."
Προφανώς δεν έχει κανένα νόημα
Στην απώθηση έχει το ίδιο σχόλιο. Εδώ θα ταίριαζε αλλά στον κώδικα ούτως ή άλλως το ελέγχει οπότε πάλι δεν έχει νόημα.

γ) Στην ουρά έχει άλυτες ασκήσεις το σχολικό, στην στοίβα γιατί δεν έχει;










pgrontas

Δυστυχώς θα συμφωνήσω μαζί σου ειδικά στο σημειο 5.
Παράθεση από: bagelis στις 19 Ιαν 2020, 06:37:06 ΜΜ
5. Οι έλεγχοι εγκυρότητας στην ουσία θολώνουν τον κώδικα, χωρίς να προσφέρουν κάτι...
Αντί να δοθούν παραδείγματα στα οποία το κεντρικό σημείο να είναι το πώς χρησιμοποιείται η ώθηση απώθηση σε κώδικα, όλο αυτό χάνεται μέσα σε αχρείαστους ελέγχους εγκυρότητας (ακόμα και για κεφαλαία-πεζά!).
Τελικά αυτή η άσκηση περισσότερο εστιάζει στην μέχρις ότου παρά στη στοίβα.

Και μια ακόμη παρατήρηση:
Στον αλγόριθμο της απώθησης τα στοιχεία της στοίβας ΔΕΝ διαγράφονται (δηλ. εξαφανίζονται) από τον πίνακα - απλά μετακινείται η κορυφή. Για να είμαστε ακριβείς, σε ασκήσεις και παραδείγματα που ζητούν απεικόνιση της στοίβας μετά από κάποιες απωθήσεις, τα αντιστοιχα στοιχεία δεν θα έπρεπε να έχουν εξαφανιστεί. Απλά θα έπρεπε να έχει μετακινηθεί η κορυφή και να έχουν υπάρξει αντικαταστάσεις αν μετά έχουν γίνει ωθήσεις.

Καταλαβαίνω ότι στα αρχικά παραδείγματα η εξαφάνιση του στοιχείου δίνει παραστατικά την απώθηση οπότε εξυπηρετεί κάποιον διδακτικό στόχο, αλλά τι θα συμβεί αν αυτό ζητηθεί σε κάποιον πίνακα τιμών? Είναι αποδεκτή εκεί η 'εξαφάνιση΄ των στοιχείων; Νομίζω ότι αυτό πρέπει να προβλεφθεί για την βαθμολόγηση και να δοθούν οδηγίες πριν φτάσουμε να τσακωνόμαστε στις εξετάσεις.






Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

epsilonXi


P.Tsiotakis

Παράθεση από: pgrontas στις 20 Ιαν 2020, 10:15:48 ΠΜ
Και μια ακόμη παρατήρηση:
Στον αλγόριθμο της απώθησης τα στοιχεία της στοίβας ΔΕΝ διαγράφονται (δηλ. εξαφανίζονται) από τον πίνακα - απλά μετακινείται η κορυφή. Για να είμαστε ακριβείς, σε ασκήσεις και παραδείγματα που ζητούν απεικόνιση της στοίβας μετά από κάποιες απωθήσεις, τα αντιστοιχα στοιχεία δεν θα έπρεπε να έχουν εξαφανιστεί. Απλά θα έπρεπε να έχει μετακινηθεί η κορυφή και να έχουν υπάρξει αντικαταστάσεις αν μετά έχουν γίνει ωθήσεις.
Καταλαβαίνω ότι στα αρχικά παραδείγματα η εξαφάνιση του στοιχείου δίνει παραστατικά την απώθηση οπότε εξυπηρετεί κάποιον διδακτικό στόχο, αλλά τι θα συμβεί αν αυτό ζητηθεί σε κάποιον πίνακα τιμών? Είναι αποδεκτή εκεί η 'εξαφάνιση΄ των στοιχείων; Νομίζω ότι αυτό πρέπει να προβλεφθεί για την βαθμολόγηση και να δοθούν οδηγίες πριν φτάσουμε να τσακωνόμαστε στις εξετάσεις.

ίσως η λύση της εύστοχης παρατήρησης είναι: το θέμα να φροντίζει να ζητήσει τα στοιχεία του ενεργού τμήματος της στοίβας από το μαθητή.

συμφωνώ επίσης, ότι η λογική στις στοίβα/ουρά στις ασκήσεις του βιβλίου δι-ολίσθησε λίγο

Αριστοτέλης Βιτωράτος

Στη στοίβα, κατά την απώθηση το στοιχείο δεν εξαφανίζεται από τον πίνακα. Απλώς δεν είναι δυνατό να ξαναπροσπελαστεί η τιμή του με λειτουργίες στοίβας. Ο λόγος είναι ότι ο μόνος τρόπος να ξαναπροσπελάσουμε τον κόμβο που βρίσκεται είναι να κάνουμε ώθηση.Αλλά κατά την ώθηση το στοιχείο που ωθείται θα απαλείψει εκείνο που προϋπήρχε εκεί.



petrosp13

Ο κώδικας στοίβας-ουράς είναι πολύ συγκεκριμένος, οπότε θα πρότεινα ο καθένας να δημιουργήσει ένα δικό του παράδειγμα εφαρμογής και να μην διδάξει τα παραδείγματα του βιβλίου, τα οποία είναι εξαιρετικά μεγάλα και πολύπλοκα. Αδικαιολόγητα πολύπλοκα. Σαν επίδειξη τελειότητας κώδικα μοιάζουν
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

andreas_p

 Επίσης ...
Β2/34/Ε6  ΕΛΤΑ (Ουρά)
1. Menu  επιλογής  :  3. ΈΞΟΔΟΣ (;)
2. Κόμβος #4 της λίστας. ... Όλοι οι πελάτες  (;) Ποιοι όλοι ;
     Στην εκφώνηση δεν αναφέρει ... "Να διαβάζονται  οι ώρες λειτουργίας  του καταστήματος  ΕΛΤΑ " , έτσι ώστε  πλ <- Α_Μ (ω*60) DIV 3.
Στην συνθήκη τερματισμού  της ΜΈΧΡΙΣ_ΌΤΟΥ ...
ή η επιλογή να είναι  3. (ΈΞΟΔΟ Σ ).

Δεν κάνει καμία  αναφορά  για Ολίσθηση ουράς  δηλαδή

Αν front > 1  και  rear = 30  τότε
    ...
Τέλος _αν

Συνεπώς η διατύπωση  της Ε6 χρειάζεται  ... ισχυρό  ρετουσάρισμα  (;)

Τι λέτε ;

Καλή χρονιά  !