Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Γ΄ Λυκείου => Δομές δεδομένων => Μήνυμα ξεκίνησε από: Dimitris365 στις 16 Ιαν 2024, 12:37:32 ΠΜ

Τίτλος: ΟΥΡΕΣ (2024)
Αποστολή από: Dimitris365 στις 16 Ιαν 2024, 12:37:32 ΠΜ
Έχω παρακολουθήσει τα παλαιότερα νήματα για το θέμα της ΟΥΡΑΣ και θέλω καταρχάς να πω οτι καταλαβαίνω απόλυτα τη συνάδελφο που έγραψε οτι το συμπληρωματικό διδακτικό πρέπει να διδαχθεί ως έχει -διαφορετικά είναι επικίνδυνο για τον μαθητή στις εξετάσεις κλπ.

Από την άλλη όμως, τα τμήματα προγράμματος που δίνονται στην σελίδα 26 του συμπληρωματικού βιβλίου, για την εισαγωγή και εξαγωγή στην ουρά, δεν μπορώ να τα χωνέψω. Θα τα διδάξω με μισή καρδιά.

Η δική μου απορία είναι, γιατί έγιναν οι συγκεκριμένες επιλογές για το σχολικό βιβλίο; Τα παρακάτω τμήματα κώδικα για τις λειτουργίες της ουράς δεν θα ήταν ικανοποιητικά για να διδάξουμε μια δομή FIFO;

Κώδικας [Επιλογή]
πίσω <- 1
μπρος <- 1

Κώδικας [Επιλογή]
! ΕΙΣΑΓΩΓΗ
ΑΝ πίσω > Ν ΤΟΤΕ
  ΓΡΑΨΕ 'Γεμάτη ουρά'
ΑΛΛΙΩΣ
  ΔΙΑΒΑΣΕ Α[πίσω]
  πίσω <- πίσω + 1
ΤΕΛΟΣ_ΑΝ

Κώδικας [Επιλογή]
! ΕΞΑΓΩΓΗ
ΑΝ μπρος = πίσω ΤΟΤΕ
  ΓΡΑΨΕ 'Άδεια ουρά'
  πίσω <- 1
  μπρος <- 1
ΑΛΛΙΩΣ
  ΓΡΑΨΕ Α[μπρος]
  μπρος <- μπρος + 1
ΤΕΛΟΣ_ΑΝ




Τίτλος: Απ: ΟΥΡΕΣ (2024)
Αποστολή από: ikariofil στις 16 Ιαν 2024, 09:33:48 ΠΜ
! ΕΙΣΑΓΩΓΗ
ΑΝ πίσω = Ν ΤΟΤΕ
  ΓΡΑΨΕ 'Γεμάτη ουρά'
ΑΛΛΙΩΣ
  πίσω <- πίσω + 1
Διάβασε Α[πίσω]
ΤΕΛΟΣ_ΑΝ

έχεις κάποια λάθη στον κώδικα, όπως επίσης κατά την εξαγωγή:

μπρος = πίσω δεν σημαίνει άδεια ουρά αλλά ότι η ουρά έχει ένα στοιχείο
Τίτλος: Απ: ΟΥΡΕΣ (2024)
Αποστολή από: Dimitris365 στις 16 Ιαν 2024, 11:55:21 ΠΜ
Παράθεση από: ikariofil στις 16 Ιαν 2024, 09:33:48 ΠΜέχεις κάποια λάθη στον κώδικα, όπως επίσης κατά την εξαγωγή:

μπρος = πίσω δεν σημαίνει άδεια ουρά αλλά ότι η ουρά έχει ένα στοιχείο
Όχι, είναι σωστό.

Παρατήρησε ότι ο δείκτης "πίσω" είναι πάντα μια θέση μπροστά από τον δείκτη "μπρος" γιατί ο αλγόριθμος της εισαγωγής:

Οπότε αν οι δείκτες ισούνται, η ουρά είναι άδεια.
Τίτλος: Απ: ΟΥΡΕΣ (2024)
Αποστολή από: ikariofil στις 16 Ιαν 2024, 12:44:50 ΜΜ
οταν μπρος = 0 και πισω = 0 η ουρά είναι άδεια
Τίτλος: Απ: ΟΥΡΕΣ (2024)
Αποστολή από: Dimitris365 στις 16 Ιαν 2024, 03:22:16 ΜΜ
Στην υλοποίηση που έδειξα, η ουρά είναι άδεια όταν ισχύει: μπρος=πίσω.

Η υλοποίηση αυτή είναι μια από τις μυριάδες που μπορεί κάποιος να βρει ή να σκεφτεί. Διαφέρει σε ορισμένα σημεία από αυτή του σχολικού βιβλίου:

Η υλοποίηση αυτή λειτουργεί (μπορείτε να την δοκιμάσετε π.χ. στην Γλώσσα) αλλά το θέμα δεν είναι να δείξω οτι είναι καλύτερη από κάποια άλλη. Πιθανότατα δεν είναι. Είναι όμως απλούστερη από του σχολικού βιβλίου και η ερώτησή μου είναι: γιατι δεν επιλέχθηκε μια τέτοια πιο απλή λύση; Δεν θα κάλυπτε το διδακτικό στόχο; Δεν θα ήταν αρκετή για τις ερωτήσεις/ασκήσεις των εξετάσεων;