Αποστολέας Θέμα: Συναρτήσεις+εντολή εκχώρησης τιμής στο όνομα  (Αναγνώστηκε 2182 φορές)

tomemeto1

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

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

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

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





koniordos

  • Ομάδα διαγωνισμάτων 2008
  • *
  • Μηνύματα: 94
  • Το Α είναι Β και το Β είναι Α
Απ: Συναρτήσεις+εντολή εκχώρησης τιμής στο όνομα
« Απάντηση #1 στις: 29 Ιαν 2008, 05:31:34 μμ »
Δεν είναι υποχρεωτικό η εκχώρηση να είναι μία. Είναι απλά μία σύνηθης τακτική, που 'ελαφραίνει' λίγο τον κώδικα οπτικά.
Ταυτόχρονα, με μία εκχώρηση στο τέλος εξασφαλίζεται σε κάποιον βαθμό (εκτός κιαν η παράσταση στα δεξιά περιέχει απροσδιόριστη μεταβλητή), πως η συνάρτηση δε θα επιστρέψει χωρις να έχει υπολογίσει τιμή.
Τσορώνης Τάκης
Ηλ.Μηχ. & Μηχ. Η/Υ ΕΜΠ

sstergou

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 983
  • Program or be Programmed
    • pseudoglossa.gr
Απ: Συναρτήσεις+εντολή εκχώρησης τιμής στο όνομα
« Απάντηση #2 στις: 29 Ιαν 2008, 05:43:32 μμ »
Ωπ, κάποιος με πρόλαβε...

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

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

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

http://alkisg.mysch.gr/steki/index.php?topic=377.15
Στάθης Στέργου - sstergouATgmailDOTcom - http://www.pseudoglossa.gr