Αποστολέας Θέμα: Σχόλια και θέσεις για το 3 θέμα  (Αναγνώστηκε 1711 φορές)

Βρακόπουλος Αθανάσιος Λ.

  • Θαμώνας
  • ***
  • Μηνύματα: 35
Σχόλια και θέσεις για το 3 θέμα
« στις: 05 Ιούν 2007, 04:15:32 μμ »
Αγαπητοί συνάδελφοι θα ήθελα να κάνω μια παρατήρηση, όχι στα θέματα, αλλά στην λύση του 3ου θέματος, όπως αυτή προτάθηκε από την επιτροπή επιλογής θεμάτων.
Πρέπει να τονίσουμε, ότι δεν υπάρχουν μοναδικοί αλγόριθμοι,  που να επιλύουν ένα πρόβλημα., αλλά όμως κατά την σύνταξη ενός αλγόριθμου πρέπει να τηρούνται κατά την γνώμη μου κάποιοι κανόνες.
Α. Αν υπάρχει στο πρόβλημα δομή επανάληψης, πως θα αποδοθεί αυτή. (Για, Όσο, Μέχρισ_ότου)
Β. Οι εντολές ενός αλγόριθμου που κάνουν την ίδια λειτουργία, πρέπει να γράφονται μια μόνο φορά αν είναι δυνατόν. (πχ. Διάβασε Τιμή)
Γ. Αν οι εντολές μιας επανάληψης πρέπει να εκτελεστούν τουλάχιστον μια φορά πρέπει να χρησιμοποιηθεί η δομή επανάληψης «Μέχρις_Ότου». Αυτό τονίζουμε πάντοτε στους μαθητές μας.
Κατά την άποψή μου ο προτεινόμενος αλγόριθμος του 3ου Θέματος των Πανελλαδικών Εξετάσεων,  θα έπρεπε να ήταν γραμμένος με την εντολή  «Μέχρις_Ότου» και όχι με την «Όσο». Έτσι σαν λύση προτείνω τον αλγόριθμο με   την παρακάτω μορφή.

Π_Α<--0                 ! Ποσό Αγορών
Τ_Γ<--0                         ! Τιμή γραμματόσημου
Π_ΕΛ<--0              ! Πλήθος Ελληνικών γραμματοσήμων
Π_ΞΕ<--0              ! Πλήθος Ξένων γραμματοσήμων
Χ_Π<-- «Ξένο Ελληνικό»   ! Χώρα προέλευσης
Αρχή_Επανάληψης
         Π_Α<--Π_Α+Τ_Γ
     Αν Χ_Π= «Ελληνικό» τότε
              Π_ΕΛ<--Π_ΕΛ+1
     Αλλιώς_Αν Χ_Π= «Ξένο» τότε
              Π_ΞΕ<--Π_ΞΕ+1
     Τέλος_Αν
   Διάβασε Τ_Γ
   Διάβασε Χ_Π
Μέχρις_Ότου Π_Α+Τ_Γ>1500

Γράψε «Τέλος Αγορών»
Γράψε «Ξοδευτήκαν για την αγορά», Π_Α, «χρήματα»
Γράψε «Συνολικό Πλήθος Ελληνικών γραμματοσήμων»,Π_ΕΛ
Γράψε «Συνολικό Πλήθος Ξένων  γραμματοσήμων»,Π_ΞΕ

Π<--1500-Π_Α
Αν Π=0 τότε
   Γράψε «Εξαντλήθηκε όλο το ποσό»
Αλλιώς
   Γράψε «Περίσσεψαν»,Π, «Ευρώ»
Τέλος_Αν

Περιμένω τα σχόλιά σας επί του θέματος.
Βρακόπουλος Λ. Αθανάσιος
http://users.sch.gr/vraa8


johnny_xp

  • Θαμώνας
  • ***
  • Μηνύματα: 39
  • Null Argument Exception
Απ: Σχόλια και θέσεις για το 3 θέμα
« Απάντηση #1 στις: 05 Ιούν 2007, 06:12:38 μμ »
Με την επόμενη σύνταξη:

Κώδικας: [Επιλογή]
flag <- Αληθής

Όσο flag = Αληθής επανέλαβε
     [Εντολές]
Τέλος_επανάληψης

o βρόχος Όσο εκτελείται άνευ όρων τουλάχιστον μια φορά και από αυτή τη σκοπιά είναι πλήρως ισοδύναμος με ένα βροχο Μέχρις_ότου. Επομένως καλό είναι να μην είμαστε τόσο απόλυτοι.

Στο συγκεκριμένο θέμα, κατά τη γνώμη μου, τόσο ο Όσο όσο και ο Μέχρις_ότου είναι το ίδιο "νόμιμο" και ορθό να χρησιμοποιηθούν.

Muldy

  • Οπαδός
  • **
  • Μηνύματα: 16
Απ: Σχόλια και θέσεις για το 3 θέμα
« Απάντηση #2 στις: 06 Ιούν 2007, 03:59:53 πμ »
οι περισσότεροι στην όσο έλεξαν το γεγονός να τελειώνει η επαναληπτική διαδικασία, είτε με λογική είτε με συνθήκη ανάμεσα στο ποσό που μένει και που ήδη έχουν χρησιμοποιήσει. Οπότε πιστεύω η όσο ήταν πιο αντιπροσωπευτική από την μεχρις_ότου, καθώς άλλωστε δεν είμαστε και σίγουροι ότι η επαναληψη θα γίνει έστω και μία φορά, αν το γραμματόσημο είναι 1501 ευρώ;

P.Tsiotakis

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3270
  • agent romanoff you miss me?
    • P.Tsiotakis
Απ: Σχόλια και θέσεις για το 3 θέμα
« Απάντηση #3 στις: 06 Ιούν 2007, 05:48:43 μμ »
Θανάση γεια σου,

Καταρχάς η λύση σου έχει ένα λαθάκι νομίζω μετράει ένα ξένο γραμματόσημο παραπάνω. Επίσης, αν το πρώτο γραμματόσημο κοστίζει πάνω από 1500, τότε το αγοράζεις... Εκτός αυτού η αρχικοποίηση με προβληματίζει...

Φυσικά οι δυο δομές Όσο και Μέχρις_ότου είναι ΙΣΟΔΥΝΑΜΕΣ, και μπορούν να χρησιμοποιηθούν αλλά η κάθε μια έχει το λεπτό της σημείο και πρέπει να είμαστε ιδιαίτερα προσεκτικοί

Μία λύση είναι η χρήση λογικής μεταβλητής και ο έλεγχος εντός του βρόχου
Σύνολο + επόμενο <= 1500
για την συνέχεια/τερματισμό της επανάληψης

Ωστόσο αυτή η συνθήκη μπορεί να είναι η συνθήκη του Όσο με κατάλληλη διαμόρφωση των εντολών

Δείτε και http://users.kor.sch.gr/ptsiotakis/aepp/aepp_panel_en_2007.htm Θέμα 3

P.Tsiotakis

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3270
  • agent romanoff you miss me?
    • P.Tsiotakis