Εγκυρότητα τιμής και Αν

Ξεκίνησε από solaris, 30 Μαΐου 2006, 11:21:37 ΜΜ

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

solaris

Έχω την εξής απορία:

Στις απαντήσεις των φροντιστηρίων φαίνονται λύσεις του τύπου:

Κ.Π.:
...
...
ΔΙΑΒΑΣΕ χωρ
...
...
...

ΣΥΝΑΡΤΗΣΗ Επιτηρητές (χωρ) : ΑΚΕΡΑΙΑ
...
...
ΑΡΧΗ
ΑΝ χωρ <= 15 ΤΟΤΕ
   ....
ΑΛΛΙΩΣ_ΑΝ χωρ <= 23 ΤΟΤΕ
   ....
ΑΛΛΙΩΣ
   ....
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Πιστεύω ότι στο πρώτο σκέλος της  Αν θα έπρεπε να τίθεται ως "κάτω όριο" το 0 (ΑΝ χωρ > 0 ΚΑΙ χωρ <= 15) και στη συνέχεια να έλεγχε με 2 ΑΛΛΙΩΣ_ΑΝ. Στο τελικό ΑΛΛΙΩΣ θα έπρεπε να είχε εκχώρηση 0 στη συνάρτηση.

Το όλο θέμα βέβαια αντιμετωπιζόταν με έλεγχο εγκυρότητας κατά την εισαγωγή του χωρ στο Κ.Π. ώστε να είναι θετικός. Έτσι η Συνάρτηση παραμένει όπως φαίνεται παραπάνω.

Γνωρίζει κανένας πώς θα γίνει η βαθμολόγηση του συγκεκριμένου ζητήματος?

bagelis

Δεν χρειάζεται έλεγχος εγκυρότητας γιατί το θέμα δεν ζητάει κάτι τέτοιο

P.Tsiotakis

Ακόμη και αν ήθελε έλεγχο δεδομένων (που συμφωνώ οτι δεν θέλει)

Γιατί να μην γίνει με Μέχρις_ότου στο πρόγραμμα, ώστε η συνάρτηση να πάρει "καθαρή" τιμή;

filippos

Η συνάρτηση έπρπεπε να λυθεί χωρίς έλεγχο εγκυρότητας.

Α:ν έμπαινε επιπλέον συνθήκη στην πρώτη περίπτωση όπως προτείνει ο Solaris και έμενε έτσι η συνάρτηση, τότε η λάθος τιμή θα κατέληγε στην τρίτη περίπτωση.

Αν γινόταν και η τρίτη περίπτωση αλλιως_αν χωρ > 23, ο αλγόριθμος που υλοποιεί η συνάρτηση δε θα είχε έξοδο.

Γιατί να το μπλέκουμε περισσότερο απ' ότι πρέπει;

solaris

Τι γίνεται με τον αλγόριθμο αν κάποιος κατά την εισαγωγή (στο Κ.Π.) δώσει στο χωρ -4 για παράδειγμα? Θεωρούμε ότι απαιτείται ένας επιτηρητής, ε?

solaris

@ptsiotakis:

Αυτό ακριβώς εννοώ!!! Αν γίνει στο Κ.Π. με Μέχρις_ότου όλα κάλα...

Αν δε γίνει, τι γίνεται με την Αν της Συνάρτησης? Τι γίνεται με την εισαγωγή μιας αρνητικής τιμής στο Κ.Π.? (βλ προηγούμενο μήνυμά μου)

Τι γραμμή έχουν οι βαθμολογητές για αυτό? Γνωρίζει κανείς?

Vangelis

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

solaris

ΠΡΟΓΡΑΜΜΑ Θ3
...
...
ΑΡΧΗ

ΣΥΝΟΛΟ <-- 0

ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ

ΔΙΑΒΑΣΕ ΧΩΡ

ΑΝ ΧΩΡ > 0 ΤΟΤΕ

   ΕΠΙΤΗΡΗΤΕΣ <-- ΕΠΙΤΗΡΗΣΗ(ΧΩΡ)

   ΓΡΑΨΕ 'ΟΙ ΕΠΙΤΗΡΗΤΕΣ ΤΗΣ ΑΙΘΟΥΣΑΣ ΕΙΝΑΙ ', ΕΠΙΤΗΡΗΤΕΣ

   ΣΥΝΟΛΟ <-- ΣΥΝΟΛΟ + ΧΩΡ

ΑΛΛΙΩΣ
   
  ΓΡΑΨΕ 'ΛΑΘΟΣ ΑΡΙΘΜΟΣ ΧΩΡΗΤΙΚΟΤΗΤΑΣ

ΤΕΛΟΣ_ΑΝ

ΜΕΧΡΙΣ_ΟΤΟΥ ΣΥΝΟΛΟ >= 1500

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΣΥΝΑΡΤΗΣΗ ΕΠΙΤΗΡΗΣΗ (ΧΩΡ): ΑΚΕΡΑΙΑ
...
ΑΡΧΗ

  ΑΝ ΧΩΡ <= 15 ΤΟΤΕ
   
    ΕΠΙΤΗΡΗΣΗ <-- 1
 
  ΑΛΛΙΩΣ_ΑΝ ΧΩΡ <= 23 ΤΟΤΕ
   
    ΕΠΙΤΗΡΗΣΗ <-- 2
   
  ΑΛΛΙΩΣ
 
    ΕΠΙΤΗΡΗΣΗ <-- 3
 
  ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Κάπως έτσι φαντάζομαι εγώ τη σωστή λύση του θέματος. ΟΚ. Δε ζητουσε εγκυρότητα...

Απλά έθεσα το ερώτημα γιατί ήθελα να δω τις απόψεις σας σχετικα με τη μηδενική ή την αρνητική εισαγωγή για το χωρ.

Και γιατί θεωρείται μαγκιά η απορία σε άσκηση με τόσο ασαφή εκφώνηση??

solaris

Και παραθέτω και έναν ακόμη τρόπο επίλυσης, σωστό κατ' εμέ, για να απαντήσω στον filippo που μάλλον δεν κατάλαβε το προηγούμενο post μου

ΠΡΟΓΡΑΜΜΑ Θ3
...
ΑΡΧΗ

ΣΥΝΟΛΟ <-- 0

ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ

ΔΙΑΒΑΣΕ ΧΩΡ

ΕΠΙΤΗΡΗΤΕΣ <-- ΕΠΙΤΗΡΗΣΗ(ΧΩΡ)

ΓΡΑΨΕ 'ΑΠΑΙΤΟΥΝΤΑΙ ΓΙΑ ΤΗΝ ΑΙΘΟΥΣΑ', ΕΠΙΤΗΡΗΤΕΣ, 'ΕΠΙΤΗΡΗΤΕΣ'

ΑΝ ΧΩΡ > 0 ΤΟΤΕ
 
   ΣΥΝΟΛΟ <-- ΣΥΝΟΛΟ + ΧΩΡ

ΤΕΛΟΣ_ΑΝ

ΜΕΧΡΙΣ_ΟΤΟΥ ΣΥΝΟΛΟ >= 1500

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΣΥΝΑΡΤΗΣΗ ΕΠΙΤΗΡΗΣΗ (ΧΩΡ) : ΑΚΕΡΑΙΑ
...

ΑΡΧΗ
ΑΝ ΧΩΡ > 0 ΤΟΤΕ
   
    ΑΝ ΧΩΡ <= 15 ΤΟΤΕ
        ..........
     .......
       .......

   ΤΕΛΟΣ_ΑΝ
ΑΛΛΙΩΣ  ! ΑΝ ΧΩΡ ΑΡΝΗΤΙΚΟ Ή ΜΗΔΕΝ
   ΕΠΙΤΗΡΗΣΗ <-- 0
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Όλα αυτά βέβαια λύνονταν και με απλή εγκυρότητα στο Κ.Π. ....

Όσο για έλεγχο αλφαριθμητικών (@ Vangelis) δεν τίθεται ζήτημα μιας και το ΧΩΡ είναι ΑΚΕΡΑΙΑ δηλωμένη στο τμήμα Δηλώσεων.

Φιλικά, και χωρίς διάθεση για μαγκιά

P.s. ΙΣΩΣ ΕΔΩ ΝΑ ΚΡΎΒΟΝΤΑΙ ΤΑ ΜΟΡΙΑ ΠΟΥ ΘΑ ΞΕΧΩΡΙΣΟΥΝ ΤΟΥΣ ΑΡΙΣΤΟΥΣ ΑΠΟ ΤΟΥΣ ΠΟΛΥ ΚΑΛΟΥΣ....

bagelis

Δεν κρύβονται εκεί τα μόρια. Αυτά είναι μαζοχισμοί δικοί μας...

EleniK

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

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

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

solaris

#11
Από ότι βλέπω, οι περισσότεροι θεωρείτε άστοχο τον προβληματισμό μου...

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

Αναρωτιέμαι πάντως, όταν τον Οκτώβριο θα ξαναδιδάξουμε την ΑΝ, σε μια άσκηση με παρόμοιο πεδίο τιμών, θα θεωρήσουμε σωστή τη λύση ενός μαθητή χωρίς τον έλεγχο  > 0?
Ή θα του σημειώσουμε λάθος με την υπόδειξη "Τι θα κάνει ο αλγόριθμος αν δοθεί τιμή 0 ή και αρνητική?"

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

Ευχαριστώ

P.Tsiotakis


solaris, κάθε προβληματισμός οδηγεί σε χρήσιμα συμπεράσματα. Και μάλλον εδώ το συμπέρασμα είναι πως κάνουμε έλεγχο ΑΝ ζητείται. Στην άσκηση αυτή η έμφαση (ξεκάθαρα) ήταν στην δομή επανάληψης και στη συνάρτηση...

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

Με εκτίμηση,

klitos

@solaris
οι οδηγίες λένε οτι δεν χρειάζεται έλεγχος εγκυρότητας και πρέπει να δοθεί προσοχή στην κλήση της συνάρτησης και στην δομή επανάληψης ( είτε με ΟΣΟ ειτε με ΜΕΧΡΙΣ_ΟΤΟΥ  αρκεί να λειτουργεί σωστά )
κλητος χατζηγεωργιου

solaris