Αποστολέας Θέμα: Κλήση υποπρογράμματος  (Αναγνώστηκε 2551 φορές)

ikariofil

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 127
  • Γράψτε το προσωπικό σας σλόγκαν!
Κλήση υποπρογράμματος
« στις: 22 Φεβ 2007, 02:37:34 μμ »
Ήθελα να ρωτήσω:
Μια διαδικασία μπορεί να καλέσει συνάρτηση. Μια συνάρτηση μπορεί να καλέσει διαδικασία;
Στο βιβλίο μου φαίνεται ότι λέει πως κάθε υποπρόγραμμα μπορεί να κληθεί από άλλο υποπρόγραμμα ή το κυρίως πρόγραμμα.
Σκέφτομαι να φτιάξω μια άσκηση, αλλά θέλω να είμαι σίγουρος.

Wizard

  • Επισκέπτης
Απ: Κλήση υποπρογράμματος
« Απάντηση #1 στις: 22 Φεβ 2007, 04:44:43 μμ »
Νομίζω ότι η απάντηση είναι ναι, αρκεί η διαδικασία να μη διαβάζει/εκτυπώνει δεδομένα.

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2225
Απ: Κλήση υποπρογράμματος
« Απάντηση #2 στις: 22 Φεβ 2007, 05:19:02 μμ »
Μπορεί να καλέσει. Γιατί να μην μπορεί;;
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3170
  • to Iterate is human to Recurse divine
Απ: Κλήση υποπρογράμματος
« Απάντηση #3 στις: 22 Φεβ 2007, 08:20:04 μμ »

  Μέσα σε μια συνάρτηση δεν πρέπει να έχουμε ανάγνωση ή εκτύπωση δεδομένων. Αυτό είναι απλά κακή πρακτική. Όχι ότι δε γίνεται, γίνεται, απλά σε αυτή την περίπτωση κακώς έχεις ορίσει συνάρτηση, θα έπρεπε να ορίσεις διαδικασία.
   Για παράδειγμα, θα μπορούσα να ορίσω μια συνάρτηση η οποία θα διαβάζει έναν πίνακα και θα τον επιστρέφει. Φαίνεται αυτό καλή πρακτική; Μάλλον όχι, αλλά γίνεται.
   Αν κάποιος πειράξει τον μετρητή i μέσα σε επανάληψη ΓΙΑ..ΑΠΟ..ΜΕΧΡΙ είναι λάθος? όχι, μπορεί να το κάνει, αλλά δεν πρέπει γιατί σε αυτή την περίπτωση θα έπρεπε να είχε χρησιμοποιήσει Όσο και όχι Για. Είναι δηλαδή κακή πρακτική όπως λέει και το τετράδιο μαθητή.
    Τώρα για όσους πάνε by the book, στη σελίδα 210 του βιβλίου λέει τι μπορεί και τι δε μπορεί να κάνει μια διαδικασία και μια συνάρτηση. Πιστεύω ότι αν και δεν το λέει ξεκάθαρα, όποιος το διαβάζει καταλαβαίνει ότι για εισαγωγή/εξαγωγή δεδομένων πρέπει να χρησιμοποιούμε διαδικασία.

Απλά είναι ένα από τα πράγματα που μπορείς να κάνεις αλλά δεν πρέπει, και το πιο δύσκολο μ'αυτό είναι ότι θα πρέπει να πείσεις τον μαθητή ότι δεν πρέπει να το κάνει και αυτός.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr