Συναρτήσεις+εντολή εκχώρησης τιμής στο όνομα

Ξεκίνησε από tomemeto1, 29 Ιαν 2008, 05:18:46 ΜΜ

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

tomemeto1

Στη σελίδα 213 του σχολικού βιβλίου, λέει ότι:Στις εντολές του σώματος της συνάρτησης πρέπει υποχρεωτικά να υπάρχει μια εντολή εκχώρησης τιμής στο όνομα της συνάρτησης.
Δεν διεκρινίζει όμως αν πρέπει υποχρεωτικά να υπάρχει μόνο μια εντολή εκχώρησης. Δηλαδή κατι τέτοιο είναι λάθος?

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

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

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






koniordos

Δεν είναι υποχρεωτικό η εκχώρηση να είναι μία. Είναι απλά μία σύνηθης τακτική, που 'ελαφραίνει' λίγο τον κώδικα οπτικά.
Ταυτόχρονα, με μία εκχώρηση στο τέλος εξασφαλίζεται σε κάποιον βαθμό (εκτός κιαν η παράσταση στα δεξιά περιέχει απροσδιόριστη μεταβλητή), πως η συνάρτηση δε θα επιστρέψει χωρις να έχει υπολογίσει τιμή.
Τσορώνης Τάκης
Ηλ.Μηχ. & Μηχ. Η/Υ ΕΜΠ

sstergou

Ωπ, κάποιος με πρόλαβε...

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

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

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

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