Αποστολέας Θέμα: συναρτηση μεσα σε συναρτηση?  (Αναγνώστηκε 4231 φορές)

programmer

  • Θαμώνας
  • ***
  • Μηνύματα: 44
Απ: συναρτηση μεσα σε συναρτηση?
« Απάντηση #15 στις: 09 Φεβ 2015, 08:32:44 μμ »
(Συνάρτηση πολύ πιο μέσα σε συνάρτηση)

Τι εμφανίζει το παρακάτω πρόγραμμα;
Ποια λειτουργία επιτελεί η συνάρτηση;

Κώδικας: [Επιλογή]
ΠΡΟΓΡΑΜΜΑ mesa
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: kamia
ΑΡΧΗ
  ΓΡΑΨΕ S(100)
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΣΥΝΑΡΤΗΣΗ S(N): ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: N
ΑΡΧΗ
  ΑΝ Ν=0 ΤΟΤΕ
      S <- 0
  ΑΛΛΙΩΣ
      S <- N + Σ(Ν-1)
  ΤΕΛΟΣ_ΑΝ 
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

ΣΥΝΑΡΤΗΣΗ Σ(N): ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: N
ΑΡΧΗ
  ΑΝ Ν=0 ΤΟΤΕ
      Σ <- 0
  ΑΛΛΙΩΣ
      Σ = N + S(Ν-1)
  ΤΕΛΟΣ_ΑΝ 
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ


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


το προγραμμα συτο εμφανιζει το αθροισμα της αριθμητικης προοδου 0+1+2+3+..+100
Η συναρτηση S παιζει το ρολο του αθροιστη ξεκιναει απο το τελευταιο στοιχειο(στην περιπτωση μας τον αριθμο 100) και με τη βοηθεια της Σ υπολογιζει
αναποδα το αποτελεσμα δηλαδη:100+99+98+..+1+0

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3044
  • to Iterate is human to Recurse divine
Απ: συναρτηση μεσα σε συναρτηση?
« Απάντηση #16 στις: 09 Φεβ 2015, 09:57:50 μμ »
Πραγματικά εξαιρετικό παράδειγμα Στάθη, πολύ έξυπνο, για την αμοιβαία (κρυφή) ή έμμεση όπως τη λέω εγώ αναδρομή

Για αμοιβαία αναδρομή μου αρέσει αυτό το παράδειγμα:

What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr