ΥΛΟΠΟΙΗΣΗ ΟΥΡΑΣ (ΛΑΘΟΣ ΣΧΟΛΙΚΟΥ ΒΙΒΛΙΟΥ ? )

Ξεκίνησε από landreou, 24 Ιαν 2013, 08:57:13 ΜΜ

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

landreou

 Γειά σας φίλοι του ΣτΠ . Προκειμένου για την υλοποίηση της ουράς το σχολικό βιβλίο λέει : Για την εισαγωγή ενός νέου στοιχείου
στην ουρά αυξάνεται ο δείκτης rear κατά ένα και στη θέση αυτή αποθηκεύεται το στοιχείο.
Αντίστοιχα για τη λειτουργία της εξαγωγής, εξέρχεται το στοιχείο που δείχνει ο δείκτης front, ο οποίος στη συνέχεια αυξάνεται κατά ένα, για να δείχνει το επόμενο στοιχείο που πρόκειται να εξαχθεί.

Μήπως πρέπει κανονικά ο δείκτης front να μειωθεί κατα ένα μετά ;

petrosp13

Στην υλοποίηση με το σχήμα του βιβλίου, καλά τα λέει
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

gthal

καλά, η υλοποίηση του βιβλίου είναι τραγική γιατί με αυτόν τον τρόπο σύντομα η ουρά θα γεμίσει (ο rear θα χτυπήσει στο τέρμα) ενώ πιθανώς να υπάρχουν πολλές κενές θέσεις του πίνακα μπροστά
κανονικά θα έπρεπε κατά την εξαγωγή να σπρώχνονται όλα μπροστά και ο front να είναι πάντα στη θέση 1
Φιλικά,
Γιώργος Θαλασσινός

odysseas

Παράθεση από: landreou στις 24 Ιαν 2013, 08:57:13 ΜΜ
Αντίστοιχα για τη λειτουργία της εξαγωγής, εξέρχεται το στοιχείο που δείχνει ο δείκτης front, ο οποίος στη συνέχεια αυξάνεται κατά ένα, για να δείχνει το επόμενο στοιχείο που πρόκειται να εξαχθεί.

Δεν υπάρχει λάθος. Η πιο απλή εξήγηση που έχω να δώσω είναι η εξής: όταν μπαίνεις στο ταχυδρομείο ή στην τράπεζα και παίρνεις χαρτάκι, το νούμερο που έχει πάνω το χαρτάκι είναι η τιμή του δείκτη rear. Το νούμερο του επόμενου θα είναι κατά ένα μεγαλύτερο. Ομοίως, η μεγάλη ένδειξη πάνω από τα ταμεία είναι η τιμή του δείκτη front. Όταν ένας πελάτης εξυπηρετηθεί, το νούμερο αυτό επίσης αυξάνεται κατά ένα, έτσι δεν είναι; Αυτός που θα εξυπηρετηθεί αμέσως μετά έχει το επόμενο νούμερο. Δεν θα είχε κανένα νόημα να μειώσεις αυτόν το δείκτη.

Παράθεση από: gthal στις 25 Ιαν 2013, 12:01:05 ΠΜ
καλά, η υλοποίηση του βιβλίου είναι τραγική γιατί με αυτόν τον τρόπο σύντομα η ουρά θα γεμίσει (ο rear θα χτυπήσει στο τέρμα) ενώ πιθανώς να υπάρχουν πολλές κενές θέσεις του πίνακα μπροστά
κανονικά θα έπρεπε κατά την εξαγωγή να σπρώχνονται όλα μπροστά και ο front να είναι πάντα στη θέση 1

Το να σπρώχνονται τα στοιχεία μπροστά θα είχε τραγικά κακή απόδοση. Η περιγραφή του βιβλίου δεν είναι λάθος, αλλά αποκρύπτει (εικάζω για να μην μπερδέψει τους μαθητές) το γεγονός οτι κάθε δείκτης επιστρέφει στην τιμή 1 κάθε φορά που βγαίνει εκτός ορίων του πίνακα. Πρακτικά ο front ακολουθεί τον rear καθώς γυρίζουν γύρω-γύρω τον πίνακα, σαν σκύλος που κυνηγάει την ουρά του. Ο πίνακας γεμίζει (ή αδειάζει) κάθε φορά που οι δύο δείκτες συναντιούνται.

gthal

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

landreou

Ένας φίλος με nick stavrax απο εδώ, που εχει κάνει μιά πολυ καλή δουλειά  μαζεύοντας τη θεωρία του σχολικού βιβλίου σε ένα αρχείο .doc,  ΚΑΝΕΙ ΑΦΑΙΡΕΣΗ ΚΑΤΑ ΕΝΑ .

ntzios kostas

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

Παράθεση από: landreou στις 28 Ιαν 2013, 10:29:39 ΠΜ
Ένας φίλος με nick stavrax απο εδώ, που εχει κάνει μιά πολυ καλή δουλειά  μαζεύοντας τη θεωρία του σχολικού βιβλίου σε ένα αρχείο .doc,  ΚΑΝΕΙ ΑΦΑΙΡΕΣΗ ΚΑΤΑ ΕΝΑ .
Τι μειώνει κατά 1;
Το μάθημα Ανάπτυξη Εφαρμογών δεν έχει σαν στόχο την εκμάθηση κάποιου συγκεκριμένου προγραμματιστικού περιβάλλοντος ούτε την καλλιέργεια προγραμματιστικών δεξιοτήτων από τη μεριά των μαθητών. Δεν αποσκοπεί στη λεπτομερειακή εξέταση της δομής, του ρεπερτορίου και των συντακτικων κανόνων κάποιας γλώσσας...

landreou

#7

                                     
                                      1     2      3     4
                            ----------------------------------------------------------
                                  |  α1 | α2  | α3 | α4 |     |     |     |     |
                            ----------------------------------------------------------
Στο παραπάνω σχήμα ο front δείχνει το 1 και ο rear το 4 ( έτσι δεν είναι ;)

Εαν θέλουμε να εισάγουμε ή εξάγουμε  ένα στοιχείο μεταξύ των δύο ακραίων τί κάνουμε;


Ευχαριστώ.

beronc

Σύμφωνα με τη θεωρία και την υλοποίηση της ουράς, δεν είναι δυνατόν να επεξεργαστούμε ενδιάμεσα στοιχεία στην ουρά. Έτσι, λοιπόν, έχω την εντύπωση ότι για να επεξεργαστούμε ένα ενδιάμεσο στοιχείο, α πρέπει να εκτελέσουμε τη λειτουργία της εξαγωγής έως ότου το στοιχείο αυτό φτάσει στη θέση front.
Έγώ από την άλλη, έχω μια άλλη απορία.
Ενώ κανονικά ξέρουμε ότι η ουρά δουλεύει κυκλικά, δεν νομίζω ότι αναφέρεται η λειτουργία αυτή στο σχολικό βιβλίο. Εξάλλου, μιλάει για υλοποίηση ουράς με χρήση πίνακα. Έτσι, έχω την εντύπωση ότι ο σωστός αλγόριθμος θα ήταν να κινούνται όλα τα στοιχεία προς τα μπροστά, ώστε να δημιουργείτε χώρος στο πίσω μέρος της ουράς (κάτι σαν αυτό που συμβαίνει στις παραδοσιακές ουρές στις τράπεζες, χωρίς χαρτάκια...).
Τελικά στους μαθητές, τί θα πρέπει να δείχνουμε;

Καρκαμάνης Γεώργιος

Γιατί προσπαθούμε να ερμηνεύσουμε τον τρόπο λειτουργίας της ΟΥΡΑΣ όπως παρουσιάζεται το σχ. βιβλιο με τη λειτουργία της ΟΥΡΑΣ όπως αυτή δουλεύει στην πραγματικότητα;

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

Οπότε, νομίζω ότι πρέπει να σταθούμε στην συμπεριφορά της ΟΥΡΑΣ όπως  αυτή περιγράφεται στο σχολικό βιβλιο.

landreou

Ενα αλλο ερωτημα παιδια .

Αν μας λεει έχουμε μια ουρα η μια στοιβα πχ 6 στοιχειων εννοειται πως δεν πρέπει να έχει ήδη και τα 6 μέσα γιατι αλλιώς δε θα μπορούμε να κάνουμε εισαγωγή ( αφού ο πινακας θα είναι 6 θέσεων ).