Γενικό Λύκειο > Τμηματικός προγραμματισμός

ΤΥΠΟΣ ΣΥΝΑΡΤΗΣΗ

<< < (2/3) > >>

bugman:
Όταν η άσκηση ζητάει από μια συνάρτηση να επιστρέψει ένα αποτέλεσμα που μπορεί να έχει μια από δυο τιμές, τότε έχουμε επιστροφή τύπου λογικού, δηλαδή τιμές ΑΛΗΘΗΣ ή ΨΕΥΔΗΣ. Αν για ευκολία θέλουμε η επιστροφή να είναι αριθμητική πχ 1 ή 0, τότε δεν μας χάλαει κάτι να το κάνουμε. Στις καλές πρακτικές αναφέρεται ότι μια συνάρτηση καλό είναι να κάνει ένα πράγμα. Η επιστροφή 0 ή 1 αριθμητικού αντί για ΑΛΗΘΗΣ ή ΨΕΥΔΗΣ είναι δυο πράματα μαζί, γιατί πριν να βρούμε αν θέλουμε το 0 ή το 1 έχουμε βρει το ΑΛΗΘΗΣ ή ΨΕΥΔΗΣ.
(Να αναφέρω εδώ ότι σε μεγάλα προγράμματα οι καλές πρακτικές είναι σπάνιο πράγμα, και για λόγους απλοποίησης συνενόνονται συναρτήσεις σε μια αν είναι δυνατόν για να αποφευχθούν ενδιάμεσες κλήσεις συναρτήσεων - Σε ορισμένες γλώσσες ο μεταγλωττιστής αφαιρεί και τη συνάρτηση βάζοντας απευθείας - inline - τον κώδικα της συνάρτησης)

parsenopoulou:
Συνάδελφε Bugman ,θεωρείς ότι σε ένα πιθανό θέμα εξετάσεων ένας μαθητής μπορεί να έχανε μονάδες αν η συνάρτηση ήταν τύπου χαρακτήρα; Με την προϋπόθεση φυσικά ότι δεν υπήρχε κάτι δεσμευτικό στην εκφώνηση...

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

taxata:
Νομίζω η κουβέντα ξεκινά από λανθασμένη υπόθεση λόγω ασάφειας (βλ κεφ 1) στην εκφώνηση του προβλήματος και εξηγώ. Όταν τίθεται ένα πρόβλημα πρέπει να λαμβάνουμε υπόψη το πλαίσιο στο οποίο κινείται αυτός που πρέπει να το επιλύσει. Ο τμηματικός προγραμματισμός προβλέπει την ανεξαρτησία των υποπρογραμμάτων (βλ κεφ 10). Εάν υποθέσουμε πχ ότι εντάσσεται το παραπάνω πρόβλημα  σε ένα ευρύτερο όπου πχ κάποιος άλλος θα χρησιμοποιήσει τη συνάρτηση που φτιάχνουμε για να μετρήσει πχ ή να εμφανίσει τους άρτιους (θετικούς μόνο βάση του πλαισίου που κινούμαστε) ακεραίους ενός πίνακα πρέπει να μπορεί να το κάνει χωρίς να ξέρει την εσωτερική δομή της συνάρτησής μας. Πρέπει όμως να γνωρίζει τη διεπαφή της (πλήθος παραμέτρων, τύπος και τι επιστρέφει). Έτσι και τα σύγχρονα περιβάλλοντα όταν ανοίγουμε παρένθεση σε μία συνάρτηση ή πατάμε .dot σε ένα αντικείμενο εμφανίζεται μόνο το πλήθος των παραμέτρων ή και των μεθόδων και μία μικρή ή μεγάλη βοήθεια.
Τελειώνοντας συμφωνώ και διαφωνώ με όλους. Το αρχικό πρόβλημα έχει νόημα μόνο ως προς την εσωτερική δομή (Αν Χ mod 2 =0) και όχι ως προς τη διεπαφή η οποία δεν ορίζεται από το θεματοδότη. Σε επίπεδο δε εξετάσεων νομίζω είναι ελλιπές και μη ορθά διατυπωμένο (δυστυχώς ή ευτυχώς είναι μια άλλη κουβέντα) αφού οι μαθητές οδηγούνται βηματικά στην επίλυση των προβλημάτων ακολουθώντας υποχρεωτικά βήματα Δ1, Δ2, Δ3, Δ4 κλπ διατυπωμένα συνήθως με σαφήνεια σε στενό πλαίσιο χωρίς πολλούς βαθμούς ελευθερίας (σε σημείο όπου να λέμε πχ και στους μαθητές μας 'μην κάνεις επιπλέον υποπρογράμματα εάν δε στο ζητούν ακόμα και αν θεωρείς ότι θα σε βοηθήσουν') ή ακόμα χειρότερα προκαθορισμένους αλγόριθμους να συμπληρώσουν τα κενά. Ίσως φθάσουμε κάποια στιγμή το επίπεδο του συνόλου των μαθητών μας σε τέτοιο σημείο ώστε να βάζουμε ένα θέμα 5 ή 10 γραμμών που θέτει ένα γενικό πρόβλημα και λέμε λύστε το και αυτοί να μπορούν να επιλέξουν  με ποιο τρόπο θα το λύσουν και εύχομαι τότε και εμείς να έχουμε τη διαύγεια να μπορούμε χωρίς να τους αδικήσουμε να βαθμολογούμε αξιοκρατικά την πληθώρα των διαφορετικών λύσεων που θα λαμβάνουμε

George Eco:

--- Παράθεση από: parsenopoulou στις 11 Μαρ 2021, 08:33:35 μμ ---Συνάδελφε Bugman ,θεωρείς ότι σε ένα πιθανό θέμα εξετάσεων ένας μαθητής μπορεί να έχανε μονάδες αν η συνάρτηση ήταν τύπου χαρακτήρα; Με την προϋπόθεση φυσικά ότι δεν υπήρχε κάτι δεσμευτικό στην εκφώνηση...

--- Τέλος παράθεσης ---

ΌΧΙ!

Στις Εξετάσεις όμως νομίζω πως πέφτουν συνήθως πιο ρητές εκφωνήσεις.

Πλοήγηση

[0] Λίστα μηνυμάτων

[#] Επόμενη σελίδα

[*] Προηγούμενη σελίδα

Μετάβαση στην πλήρη έκδοση