Άσκηση Ουρές

Ξεκίνησε από akalest0s, 13 Φεβ 2020, 04:08:03 ΠΜ

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

akalest0s

Το λιγότερο που μπορώ να δεχθώ, είναι ότι έπρεπε η εκφώνηση της Ε6 να το λέει, ή έστω να υπήρχε άλλη εξήγηση στην λύση, από αυτήν που παρέθεσα παραπάνω.
Όπως και να έχει, συμφωνώ και εγώ, το έγραψα και παραπάνω: αν περιγράφεται ρητά η υλοποίηση της ολίσθησης, μπορεί να συμπεριληφθεί στις εξετάσεις. Με την ίδια λογική που μπορεί να ζητήσουν insertionsort αλγόριθμο, ενώ δεν υπάρχει στο βιβλίο.
Από κει και πέρα, εγώ κατ' αρχάς κατέθεσα μια άσκηση/λύση σε ολίσθηση. Το πρόβλημα της Ε6 είχε ήδη θιχτεί από άλλους εδώ μέσα, και δεν είχα σκοπό να κάνω ντόρο, αλλά βγήκε από μόνο του.. ίσως για καλό, ειδικά αν κρίνω την ιδέα του Άλκη στο άλλο θέμα.

υγ> Το ενίοτε υπερβάλλον θυμικό μου, συμπαθάτε το.
"Abstraction is not the first stage, but the last stage, in a mathematical development." MK
"I don't want to write about a high level thing, unless I fully understand about a low level thing" DK

epsilonXi

Παράθεση από: Λαμπράκης Μανώλης στις 13 Φεβ 2020, 09:27:27 ΠΜ
Καλημέρα σε όλους

να ρωτήσω και εγώ κάτι γενικά, "ολίσθηση ουράς", από αυτά που έχουν οι λύσεις του βιβλίου, εκτελούμε μόνο όταν ισχύει πίσω=μέγαθος ουράς αλλά υπάρχουν κενές θέσεις στο μπροστά τμήμα ?? δεν θα μπορούσε  κάποιος υλοποιήσει ολίσθηση κάθε φορά που βγαίνει κάποιος από την ουρά (όπως πχ στην τράπεζα, όταν βγαίνει κάποιος μεταφέρονται όλοι ένα βήμα μπροστά) ??? υποθέτω δεν είναι κάτι λάθος έτσι ?? δηλαδή κάτι του στυλ


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

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

συνήθως έτσι καταλαβαίνουν ότι δεν είναι ό,τι καλύτερο

Λαμπράκης Μανώλης

Παράθεση από: epsilonXi στις 15 Φεβ 2020, 08:03:29 ΜΜ
τα περισσότερα παιδιά αυτό μού λένε ότι τους φαίνεται «φυσικό», να μετακινούνται όλοι μία θέση μπροστά όταν φύγει ο μπροστινός, όπως συμβαίνει στην πραγματικότητα...

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

συνήθως έτσι καταλαβαίνουν ότι δεν είναι ό,τι καλύτερο

Καλησπέρα σε όλους
Συνάδελφε να πω την αλήθεια δεν καταλαβαίνω ακριβώς πως το θέτεις, πως συνδέεις το νούμερο προτεραιότητας με την θέση στην ουρά και γιατί δεν είναι ο,τι καλύτερο..οπως και να χει συμφωνώ πως όλα αυτά είναι τροφή για σκέψη  >:D :police:

alkisg

#18
Οι άνθρωποι που προχωρούν μπροστά από μόνοι τους σε μια ουρά τραπέζης, αντιστοιχούν σε Ν επεξεργαστές που ο καθένας κάνει μόνο μια κίνηση. Υπερ-παράλληλος προγραμματισμός.
Εμείς προγραμματίζουμε με έναν επεξεργαστή.
Ας προτείνουμε λοιπόν στον ίδιο τον μαθητή (=1 επεξεργαστής) σε κάθε ολίσθηση να τους κουβαλάει αυτός σαν να είναι κούκλες! Και θα καταλάβει γιατί η υλοποίηση ουράς με ολίσθηση είναι μη αποδοτική! :)
Μάλιστα σε αυτό το παράδειγμα δεν χρειάζεται καν δείκτης front αφού είναι πάντα ίσος με 1.

Ένα πιο δόκιμο παράδειγμα θα ήταν, "αν στην τράπεζα αντί για όρθια ουρά είχαμε 10 καρέκλες, πώς θα οργανώναμε την καθιστή ουρά, ώστε να μην χρειάζεται να αλλάζουν καρέκλα;"
Οι καρέκλες αντιστοιχούν καλύτερα σε υλοποίηση ουρών με πίνακα και χρειάζονται δείκτη front.

Και το το παράδειγμα με τους αριθμούς προτεραιότητας καλούτσικο είναι, αποφεύγει την ολίσθηση. Δυστυχώς όμως προϋποθέτει "πίνακα" με άπειρα στοιχεία, αν θέλουμε να αποφύγουμε να αναφερθούμε στον "κύκλο" του να ξαναμηδενίζονται κάποτε τα νούμερα, όπου τότε γίνεται ισοδύναμο με τις καρέκλες.

petrosp13

#19
...
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

alkisg

Συνάδελφοι όπως ζητήσατε μετέφερα τα μηνύματα που αφορούσαν επικοινωνία με το Υπουργείο κλπ στο Συγκρούσεις-Αντιφάσεις στη Νέα Ύλη 2019.
Αν κατάλαβα ή έκανα κάτι λάθος φωνάξτε. :)

pvs

Θα ήθελα τη βοήθεια σας στο παρακάτω κομμάτι κώδικα. Προσπάθησα να υλοποιήσω την ουρά με ολίσθηση με βάση τον κώδικα του βιβλίου έτσι ώστε στους μαθητές να τους έρθει πιο εύκολο καθώς θα χρειάζεται να μάθουν απλά μία μικρή παραλλαγή. Η ερώτηση μου είναι απλή είναι σωστή η συγκεκριμένη υλοποίηση ή βλέπετε κάπου λάθος? Ευχαριστώ πολύ για το χρόνο σας.
!ΕΣΤΩ ΟΤΙ ΥΠΑΡΧΟΥΝ ΔΕΚΑ ΣΤΟΙΧΕΙΑ ΣΤΗΝ ΟΥΡΑ
FRONT ← 1
REAR ← 10

Αρχή_επανάληψης
  Αν FRONT = 0 και REAR = 0 τότε
    Γράψε 'ΟΥΡΑ ΑΔΕΙΑ'
  αλλιώς_αν FRONT = REAR τότε
    Γράψε 'ΕΞΕΡΧΕΤΑΙ ΤΟ ΣΤΟΙΧΕΙΟ ', Α[FRONT]
    FRONT ← 0
    REAR ← 0
  αλλιώς
    Γράψε 'ΕΞΕΡΧΕΤΑΙ ΤΟ ΣΤΟΙΧΕΙΟ ', Α[FRONT]
    Για Ι από 2 μέχρι REAR !ΜΕΤΑΚΙΝΗΣΗ ΤΩΝ ΣΤΟΙΧΕΙΩΝ ΜΙΑ ΘΕΣΗ ΜΠΡΟΣΤΑ
      Α[Ι - 1] ← Α[Ι]
    Τέλος_επανάληψης
    REAR ← REAR - 1
  Τέλος_αν
Μέχρις_ότου FRONT = 0 και REAR = 0

johnk

Εγώ έτσι ακριβώς το έκανα και πέρυσι. Θεωρώ πως είναι μια χαρά. Οι λύσεις του βιβλίου είναι πολύ κακογραμμένες.
Απλά μετά τη ΓΙΑ στο Α[rear] εκχωρώ το κενό (αν είναι πίνακας χαρακτήρων) ή το 0 (αν έχει αριθμούς) για να φαίνεται και εντάξει ο πίνακας

pvs

Παράθεση από: johnk στις 02 Δεκ 2020, 11:48:15 ΠΜ
Εγώ έτσι ακριβώς το έκανα και πέρυσι. Θεωρώ πως είναι μια χαρά. Οι λύσεις του βιβλίου είναι πολύ κακογραμμένες.
Απλά μετά τη ΓΙΑ στο Α[rear] εκχωρώ το κενό (αν είναι πίνακας χαρακτήρων) ή το 0 (αν έχει αριθμούς) για να φαίνεται και εντάξει ο πίνακας
Δεν έβαλα " " ή το 0 στη λογική ότι "παίζουμε" με τον rear αλλά θα το χρησιμοποιώ από εδώ και στο εξής

bugman

#24
Φυσική ερμηνεία της ουράς με ολίσθηση είναι:
1. Ο σωρός της τράπουλας στο καζίνο, που τραβάμε φύλλο από κάτω, και προσθέτουμε από πάνω (πάνω είναι το rear, κάτω το front που έχει "κολλήσει" στο ίδιο νούμερο)
2. Το πατατοθέσιο, στα πολεμικά καράβια, όπου οι πατάτες μπαίνουν σε ένα είδος ντουλάπας, στο πλάι του καταστρώματος, και υπάρχει από πάνω ένα άνοιγμα για να προσθέτεις τις φρέσκιες, και από κάτω ένα άνοιγμα να πάρεις τις παλιές.
3. Σιλό καλαμποκιού και άλλον τροφών για ζώα. Και εδώ η νέα τροφή μπαίνει από πάνω, και η παλιά βγαίνει πρώτη!
Σε κάθε περίπτωση η ολίσθηση γίνεται με την βαρύτητα!
Υπάρχει και η περίπτωση με σπρώξιμο:
4. Γκισέ παραλαβής δίσκου φαγητού σε φοιτητική λέσχη. Αυτό το έχω δει! Σπρώχνουν τους δίσκους και δεν κοιτάνε καν αν τον έπιασε κανείς, γιατί είναι τόσος ο κόσμος που κάποιος θα τον πάρει!
:D

George Eco

Παράθεση από: akalest0s στις 13 Φεβ 2020, 04:08:03 ΠΜ
(υγ> φανταστικοί moderators... ένα υποφόρουμ για στοίβες/ουρές;)


alkisg

Εεε..., το φτιάξαμε, το ονομάσαμε "Δομές δεδομένων" αντί για "ουρές/στοίβες", και μετάφεραμε το παρόν μήνυμα σε αυτό. He's right, and we've fixed it half a year ago...

George Eco

Παράθεση από: alkisg στις 04 Δεκ 2020, 06:48:50 ΠΜ
Εεε..., το φτιάξαμε, το ονομάσαμε "Δομές δεδομένων" αντί για "ουρές/στοίβες", και μετάφεραμε το παρόν μήνυμα σε αυτό. He's right, and we've fixed it half a year ago...
Θα το επισκευτώ ASAP!