Αποστολέας Θέμα: Θέμα 1Α από επαναληπτικές ημερησίων 2003  (Αναγνώστηκε 4812 φορές)

Wizard

  • Επισκέπτης
Θέμα 1Α από επαναληπτικές ημερησίων 2003
« στις: 03 Οκτ 2008, 06:09:27 μμ »
Δίνεται η παρακάτω αλληλουχία εντολών:
Κώδικας: [Επιλογή]
Διάβασε α, β
Αν α > β  τότε
      c ← α / (β - 2)
Τέλος_αν
Εκτύπωσε c
α. Να απαντήσετε στο τετράδιό σας με Ναι ή Όχι αν η παραπάνω αλληλουχία εντολών ικανοποιεί όλα τα αλγοριθμικά κριτήρια.
β. Να αιτιολογήσετε την απάντησή σας.

1) Στο ερώτημα β', πρέπει ο μαθητής να γράψει έστω ένα κριτήριο που παραβιάζεται ή να αναφέρει ξεχωριστά κάθε κριτήριο και να εξηγήσει αν παραβιάζεται ή όχι;
2) Όταν έχουμε αλληλουχίες εντολών και όχι ολόκληρους αλγόριθμους μπορούμε να συζητάμε για είσοδο και έξοδο;
3) Στο προηγούμενο παράδειγμα, επειδή η μεταβλητή c μπορεί να μη λάβει τιμή, παραβιάζεται κάποιο κριτήριο με την εντολή Εκτύπωσε c ;

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

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1133
Απ: Θέμα 1Α από επαναληπτικές ημερησίων 2003
« Απάντηση #1 στις: 04 Οκτ 2008, 01:17:34 πμ »
1. Αν ο μαθητής απαντήσει ΝΑΙ τότε νομίζω πως πρέπει  να δικαιολογήσει πως ικανοποιείται το κάθε κριτήριο ξεχωριστά. Αν απαντήσει ΟΧΙ , τότε ποιο λογικό ακούγεται να γράψει το  κριτήριο που δεν ικανοποιείται και να το δικαιολογήσει. Δεν θυμάμαι και τι λύση και οδηγίες είχαν δοθεί από την επιτροπή εξετάσεων. Ας μας διαφωτίσει κάποιος παλιότερος.

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

3. Κανονικά η καθοριστικότητα εφόσον προσπαθεί να εκτυπωθεί μια μεταβλητή που σε ορισμένες περιπτώσεις θα έχει απροσδιόριστη τιμή. Όμως δεν θυμάμαι τι έγινε εκείνη την χρονιά στην βαθμολόγηση

Wizard

  • Επισκέπτης
Απ: Θέμα 1Α από επαναληπτικές ημερησίων 2003
« Απάντηση #2 στις: 04 Οκτ 2008, 09:43:21 πμ »
Δεν μπορούμε να πούμε τότε ότι παραβιάζεται και το κριτήριο της εξόδου αφού μπορεί η μεταβλητή c να μην πάρει τιμή;

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2313
Απ: Θέμα 1Α από επαναληπτικές ημερησίων 2003
« Απάντηση #3 στις: 04 Οκτ 2008, 12:30:23 μμ »
Δεν μπορούμε να πούμε τότε ότι παραβιάζεται και το κριτήριο της εξόδου αφού μπορεί η μεταβλητή c να μην πάρει τιμή;

Αυτή η περίπτωση που λες νομίζω ότι παραβιάζει την καθοριστικότητα και όχι την έξοδο
Και αυτό γιατί η εντολή "Εκτύπωσε" μπορεί να αμφισβητηθεί, αφού μπορεί να προκύψει πρόβλημα στην εκτέλεση της λόγω μη ύπαρξης τιμής για την μεταβλητή
Και φυσικά παραβιάζεται η καθοριστικότητα λόγω της απουσίας ελέγχου για τον παρονομαστή
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

Wizard

  • Επισκέπτης
Απ: Θέμα 1Α από επαναληπτικές ημερησίων 2003
« Απάντηση #4 στις: 04 Οκτ 2008, 03:16:40 μμ »
Δεν μπορούμε να πούμε τότε ότι παραβιάζεται και το κριτήριο της εξόδου αφού μπορεί η μεταβλητή c να μην πάρει τιμή;

Αυτή η περίπτωση που λες νομίζω ότι παραβιάζει την καθοριστικότητα και όχι την έξοδο
Και αυτό γιατί η εντολή "Εκτύπωσε" μπορεί να αμφισβητηθεί, αφού μπορεί να προκύψει πρόβλημα στην εκτέλεση της λόγω μη ύπαρξης τιμής για την μεταβλητή
Και φυσικά παραβιάζεται η καθοριστικότητα λόγω της απουσίας ελέγχου για τον παρονομαστή

Και ποια είναι όμως τότε η έξοδος;

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5705
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: Θέμα 1Α από επαναληπτικές ημερησίων 2003
« Απάντηση #5 στις: 04 Οκτ 2008, 05:00:19 μμ »
Δεν μπορούμε να πούμε τότε ότι παραβιάζεται και το κριτήριο της εξόδου αφού μπορεί η μεταβλητή c να μην πάρει τιμή;
Όχι, αφού υπάρχει εντολή εξόδου. Όμως, στο ερώτημα

Και ποια είναι όμως τότε η έξοδος;
δεν μπορούμε να απαντήσουμε (σκουπίδια της ram κτλ) και έτσι παραβιάζεται η καθοριστικότητα.

Αν το "Εκτύπωσε c" ήταν μέσα στην Αν, τότε θα παραβιαζόταν το κριτήριο της εξόδου:

Παράθεση από: Βιβλίο καθηγητή, σελίδες 64-65
Αλγόριθμος Πρόβλημα_2.
Δεδομένα // α, β, γ, δ //
χ ← α*(β+γ)
Αν δ≠0 τότε y ← χ/δ
Αποτελέσματα // y //
Τέλος Πρόβλημα_2

...

   Ωστόσο στον αλγόριθμο Πρόβλημα_2 παραμένει ένα ανοικτό ζήτημα. Ποιο εί-
ναι το αποτέλεσμα στην περίπτωση δ=0;

   Η αντιμετώπιση του ζητήματος αυτού επιδέχεται αρκετές λύσεις.

α)   Με τη χρήση της εντολής Αν...τότε...αλλιώς εμφανίζουμε ένα σχετικό μήνυ-
     μα. Π.χ.

Αλγόριθμος Πρόβλημα_2α.
Δεδομένα // α, β, γ, δ //
χ ← α*(β+γ)
Αν δ≠0 τότε
   y ← χ/δ
αλλιώς
   Γράψε “Αδύνατο”
Τέλος_αν
Αποτελέσματα // y //
Τέλος Πρόβλημα_2α

β) Υιοθετούμε μία λογική μεταβλητή με την οποία καθορίζεται στα αποτελέσμα-
   τα, αν υπάρχει λύση ή όχι. Π.χ.

Αλγόριθμος Πρόβλημα_2β.
Δεδομένα // α, β, γ, δ //
flag ← Αληθής
χ ← α*(β+γ)
Αν δ≠0 τότε
     y ← χ/δ
αλλιώς
   flag ← Ψευδής
Τέλος_αν
Αποτελέσματα // y, αν flag=αληθής, αλλιώς αδύνατο //
Τέλος Πρόβλημα_2β

γ) Παρόμοια με το (β), αλλά τα αποτελέσματα είναι δύο, το y και το flag. Π.χ.

Αλγόριθμος Πρόβλημα_2γ.
Δεδομένα // α, β, γ, δ //
flag ← Αληθής
χ ← α*(β+γ)
Αν δ≠0 τότε
     y ← χ/δ
αλλιώς
   flag ← Ψευδής
Τέλος_αν
Αποτελέσματα // y, flag //
Τέλος Πρόβλημα_2γ

    Από τις παραπάνω τρεις εναλλακτικές προτάσεις, η πλέον προφανής για το
μαθητή είναι η πρώτη. Άλλωστε είναι δυνατό μετά τον υπολογισμό του αποτελέ-
σματος y, να ακολουθεί η εντολή “Γράψε y”. Επίσης αντί για τη γραμμή Δεδομένα,
να υπάρχει η εντολή “Διάβασε α, β, γ, δ”. Ωστόσο χωρίς να απορρίπτουμε την
προσέγγιση αυτή, προτιμότερη είναι η τρίτη πρόταση για τους εξής λόγους:
I)   Ο αλγόριθμος λύνει το πρόβλημα και δεν ασχολείται με τον τρόπο εισαγωγής
     δεδομένων και παρουσίασης αποτελεσμάτων.
ΙΙ)  Αν ο αλγόριθμος υλοποιηθεί ως υποπρόγραμμα ή συνάρτηση, τότε είναι προ-
     τιμότερο να μην έχει εντολές εισόδου-εξόδου. Οι γραμμές Δεδομένα και Απο-
     τελέσματα παραπέμπουν ακριβώς στο πέρασμα παραμέτρων στη διαδικα-
     σία.

(οι δύο τελευταίες παράγραφοι είναι χρήσιμοι σαν επεξηγήσεις και σε άλλα παρόμοια ζητήματα)

ʼσχετη απορία: πόσοι από εμάς θα κόβαμε μονάδες για το
  Αποτελέσματα // y, αν flag=αληθής, αλλιώς αδύνατο //
που φαίνεται παραπάνω στο βιβλίο καθηγητή;  :D

P.Tsiotakis

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3305
  • agent romanoff you miss me?
    • P.Tsiotakis
Απ: Θέμα 1Α από επαναληπτικές ημερησίων 2003
« Απάντηση #6 στις: 04 Οκτ 2008, 06:00:06 μμ »
1) Συμφωνώ και γω οτι το ενδεχόμενο να μην ορίζεται η προς εκτύπωση μεταβλητή (c) είναι λάθος που πρέπει να καταγραφεί

2) Στην κωδικοποίηση:

Κώδικας: [Επιλογή]
Διάβασε α, β
Αν α > β  τότε
      c ← α / (β - 2)
      Εκτύπωσε c
Τέλος_αν

δεν παραβιάζεται το κριτήριο της εξόδου, καθώς πρόκειται για τμήμα αλγορίθμου. Μπορεί να εκτυπώνεται κάτι παρακάτω. Δε θα είχε νόημα να ρωτάει μια άσκηση αν παραβιάζει τα κριτήρια εισόδου/εξόδου μια αλληλουχία εντολών...

Wizard

  • Επισκέπτης
Απ: Θέμα 1Α από επαναληπτικές ημερησίων 2003
« Απάντηση #7 στις: 04 Οκτ 2008, 09:15:46 μμ »
1) Συμφωνώ και γω οτι το ενδεχόμενο να μην ορίζεται η προς εκτύπωση μεταβλητή (c) είναι λάθος που πρέπει να καταγραφεί

2) Στην κωδικοποίηση:

Κώδικας: [Επιλογή]
Διάβασε α, β
Αν α > β  τότε
      c ← α / (β - 2)
      Εκτύπωσε c
Τέλος_αν

δεν παραβιάζεται το κριτήριο της εξόδου, καθώς πρόκειται για τμήμα αλγορίθμου. Μπορεί να εκτυπώνεται κάτι παρακάτω. Δε θα είχε νόημα να ρωτάει μια άσκηση αν παραβιάζει τα κριτήρια εισόδου/εξόδου μια αλληλουχία εντολών...


Αν δεν συζητάμε για είσοδο/έξοδο σε αλληλουχία εντολών, γιατί συζητάμε για παραβίαση καθοριστικότητας της Εκτύπωσε; Δεν μπορεί η μεταβλητή c να έχει λάβει ήδη τιμή από προηγούμενες εντολές;

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

P.Tsiotakis

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3305
  • agent romanoff you miss me?
    • P.Tsiotakis
Απ: Θέμα 1Α από επαναληπτικές ημερησίων 2003
« Απάντηση #8 στις: 04 Οκτ 2008, 09:18:45 μμ »
σωστό

Γιαννούλης Γιώργος

  • Βετεράνος
  • ****
  • Μηνύματα: 75
Απ: Θέμα 1Α από επαναληπτικές ημερησίων 2003
« Απάντηση #9 στις: 09 Μάι 2010, 01:53:59 πμ »
Αν δεν συζητάμε για είσοδο/έξοδο σε αλληλουχία εντολών, γιατί συζητάμε για παραβίαση καθοριστικότητας της Εκτύπωσε; Δεν μπορεί η μεταβλητή c να έχει λάβει ήδη τιμή από προηγούμενες εντολές;

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

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