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

Γενικό Λύκειο => Γ΄ Λυκείου => Τμηματικός προγραμματισμός => Μήνυμα ξεκίνησε από: tomemeto1 στις 29 Ιαν 2008, 05:18:46 ΜΜ

Τίτλος: Συναρτήσεις+εντολή εκχώρησης τιμής στο όνομα
Αποστολή από: tomemeto1 στις 29 Ιαν 2008, 05:18:46 ΜΜ
Στη σελίδα 213 του σχολικού βιβλίου, λέει ότι:Στις εντολές του σώματος της συνάρτησης πρέπει υποχρεωτικά να υπάρχει μια εντολή εκχώρησης τιμής στο όνομα της συνάρτησης.
Δεν διεκρινίζει όμως αν πρέπει υποχρεωτικά να υπάρχει μόνο μια εντολή εκχώρησης. Δηλαδή κατι τέτοιο είναι λάθος?

ΣΥΝΑΡΤΗΣΗ Μεγαλύτερος (α,β):ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
    ΠΡΑΓΜΑΤΙΚΕΣ: α,β
ΑΡΧΗ
    ΑΝ α>β ΤΟΤΕ
         Μεγαλύτερος <- α
    ΑΛΛΙΩΣ
        Μεγαλύτερος <- β
    ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Ή πρέπει οπωσδήποτε να γράψουμε τη συνάρτηση έτσι?

ΣΥΝΑΡΤΗΣΗ Μεγαλύτερος (α,β):ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
    ΠΡΑΓΜΑΤΙΚΕΣ: α,β,μ
ΑΡΧΗ
    ΑΝ α>β ΤΟΤΕ
         μ<- α
    ΑΛΛΙΩΣ
        μ<- β
    ΤΕΛΟΣ_ΑΝ
     Μεγαλύτερος <- μ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ





Τίτλος: Απ: Συναρτήσεις+εντολή εκχώρησης τιμής στο όνομα
Αποστολή από: koniordos στις 29 Ιαν 2008, 05:31:34 ΜΜ
Δεν είναι υποχρεωτικό η εκχώρηση να είναι μία. Είναι απλά μία σύνηθης τακτική, που 'ελαφραίνει' λίγο τον κώδικα οπτικά.
Ταυτόχρονα, με μία εκχώρηση στο τέλος εξασφαλίζεται σε κάποιον βαθμό (εκτός κιαν η παράσταση στα δεξιά περιέχει απροσδιόριστη μεταβλητή), πως η συνάρτηση δε θα επιστρέψει χωρις να έχει υπολογίσει τιμή.
Τίτλος: Απ: Συναρτήσεις+εντολή εκχώρησης τιμής στο όνομα
Αποστολή από: sstergou στις 29 Ιαν 2008, 05:43:32 ΜΜ
Ωπ, κάποιος με πρόλαβε...

Είναι σωστό. Μάλλον το γράφει για να διευκρινήσει ότι δεν μπορεί να υπάρξει συνάρτηση χωρίς τέτοια εντολή (που να μην επιστρέφει δηλαδή τίποτε).

Το μόνο που πρέπει να προσέξεις είναι το όνομα της συνάρτησης να μην εμφανίζεται δεξιά της εντολής εκχώρησης γιατί τότε προκαλείται αναδρομή.

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

https://alkisg.mysch.gr/steki/index.php?topic=377.15