Αποστολέας Θέμα: ΣΥΝΑΡΤΗΣΗ - ΔΙΑΔΙΚΑΣΙΑ  (Αναγνώστηκε 14490 φορές)

klitos

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 133
ΣΥΝΑΡΤΗΣΗ - ΔΙΑΔΙΚΑΣΙΑ
« στις: 13 Φεβ 2006, 09:44:45 πμ »
Συναδελφοι ... στην ΔΙΑΔΙΚΑΣΙΑ, συμφωνα με το σχολικό βιβλίο, μπορούμε να χρησιμοποιούμε ΟΛΕΣ τις εντολές που χρησιμοποιούμε στο κυρίως πρόγραμμα. Στις συναρτήσεις, απο οτι γνωρίζω, ΔΕΝ μπορούμε να χρησιμοποιούμε τις εντολες ΔΙΑΒΑΣΕ και ΓΡΑΨΕ. Οταν ειναι απαραίτητο να χρησιμοποιήσουμε αυτές τις δυο εντολές τότε ειμαστε υποχρεωμένοι να "κατασκευάζουμε" σαν υποπρόγραμμα ΔΙΑΔΙΚΑΣΙΑ και οχι ΣΥΝΑΡΤΗΣΗ. Προσφατα σε βιβλία σχετικά με το μάθημα βρήκα ασκήσεις και παραδείγματα που αναγράφουν στο κυρίως σώμα της ΣΥΝΑΡΤΗΣΗΣ  την εντολή ΔΙΑΒΑΣΕ ...Μήπως γνωρίζετε κατι τις ....????
κλητος χατζηγεωργιου

P.Tsiotakis

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3304
  • agent romanoff you miss me?
    • P.Tsiotakis
Απ: ΣΥΝΑΡΤΗΣΗ - ΔΙΑΔΙΚΑΣΙΑ
« Απάντηση #1 στις: 13 Φεβ 2006, 09:51:08 πμ »

1. Συμφωνώ απόλυτα μαζί σου, αν και το βιβλίο δεν αναφέρει οτι απαγορεύεται σε συνάρτηση η χρήση των εντολών ΔΙΑΒΑΣΕ και ΓΡΑΨΕ. Λέει, οτι λειτουργούν αντίστοιχα με τις συναρτήσεις της ΓΛΩΣΣΑΣ (πχ Τ_Ρ) οπότε πιστεύω και γω οτι δεν πρέπει να συμβαίνει

2. Τα βοηθήματα του μαθήματος δεν αποτελούν σημείο αναφοράς για το μάθημα. Μόνο το ΔΙΔΑΚΤΙΚΟ ΠΑΚΕΤΟ - όσες ατέλειες κι αν έχει

(ελπίζω να μην έχω κάνει και γω τέτοια πατατούλα)

andreas_p

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1057
Απ: ΣΥΝΑΡΤΗΣΗ - ΔΙΑΔΙΚΑΣΙΑ
« Απάντηση #2 στις: 13 Φεβ 2006, 11:21:49 πμ »
Πιστεύω ότι μπορείς αλλά προφανώς δεν έχει νόημα.
Χρησιμοποιούμε ΣΥΝΑΡΤΗΣΗ μόνο για τον υπολογισμό και επιστροφή ΜΙΑΣ τιμής με το όνομά της και όχι για εισαγωγή (ΔΙΑΒΑΣΕ) ή εμφάνιση στοιχείων (ΓΡΑΨΕ). Γιατί αν θέλαμε κάτι τέτοιο απλά θα κάναμε χρήση ΔΙΑΔΙΚΑΣΙΑΣ.

Ανδρέας

EleniK

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 708
Απ: ΣΥΝΑΡΤΗΣΗ - ΔΙΑΔΙΚΑΣΙΑ
« Απάντηση #3 στις: 13 Φεβ 2006, 05:38:31 μμ »
Σχετικά με το θέμα συμφωνώ ότι το διάβασε και το γράψε δεν πρέπει να χρησιμοποιούνται σε συνάρτηση.

Ήθελα να ρωτήσω μέσα στην ίδια ενότητα, στο βιβλίο αναφέρεται (διορθώστε με αν κάνω λάθος) ότι ένα υποπρόγραμμα μπορεί να καλέσει ένα άλλο. Μια διαδικασία μπορεί να καλέσει συνάρτηση, μια συνάρτηση μπορεί να καλέσει μια διαδικασία; Μέχρι τώρα το απέτρεπα για κάποιο λόγο, αλλά δεν είμαι και σίγουρη. Εσεις τι γνώμη έχετε;
Ελένη Κοκκίνου
Καθηγήτρια Πληροφορικής, ΠΕ19

P.Tsiotakis

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3304
  • agent romanoff you miss me?
    • P.Tsiotakis
Απ: ΣΥΝΑΡΤΗΣΗ - ΔΙΑΔΙΚΑΣΙΑ
« Απάντηση #4 στις: 13 Φεβ 2006, 07:11:58 μμ »

Σελίδα 215, βιβλίο μαθητή: "Κάθε διαδικασία ή συνάρτηση μπορεί να καλείται από το κύριο πρόγραμμα ή από άλλη διαδικασία ή συνάρτηση..."

Νομίζω οτι είσαι σαφές...

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5658
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: ΣΥΝΑΡΤΗΣΗ - ΔΙΑΔΙΚΑΣΙΑ
« Απάντηση #5 στις: 14 Φεβ 2006, 12:09:19 πμ »
...και γεννάται το ερώτημα: εφόσον μια συνάρτηση μπορεί να καλέσει μια διαδικασία, και η διαδικασία μπορεί να περιλαμβάνει ΓΡΑΨΕ, γιατί άραγε η ίδια η συνάρτηση να μην περιλαμβάνει ΓΡΑΨΕ;

Πάντως σε ασκήσεις που βάζουμε στους μαθητές (και στα βοηθήματα κτλ) νομίζω θα είναι καλύτερα να κρατήσουμε τις συναρτήσεις στο επίπεδο του βιβλίου, δηλαδή για απλούς υπολογισμούς, χωρίς είσοδο/έξοδο...

bagelis1

  • Επισκέπτης
Απ: ΣΥΝΑΡΤΗΣΗ - ΔΙΑΔΙΚΑΣΙΑ
« Απάντηση #6 στις: 14 Φεβ 2006, 09:43:09 πμ »
Να γραφεί υποπρόγραμμα που διαβάζει την ακτίνα ενός κύκλου.

Κατά τη γνώμη μου εκτός από διαδικασία σε αυτή τη περίπτωση, εξίσου σωστή είναι και η συνάρτηση.
Πάντως και εγώ παροτρύνω τους μαθητές μου να χρησιμοποιούν διαδικασία σε αυτές τις περιπτώσεις.

klitos_1

  • Επισκέπτης
Απ: ΣΥΝΑΡΤΗΣΗ - ΔΙΑΔΙΚΑΣΙΑ
« Απάντηση #7 στις: 14 Φεβ 2006, 10:21:26 πμ »
Αρα... καταλήγουμε στο ότι η συνάρτηση χρησιμοποιείται ΚΥΡΙΩΣ για υπολογισμούς τιμών και επιστροφή των τιμών στο πρόγραμμα.
Σε κάθε περίπτωση που πρέπει να διαβάζει ή να εμφανίζει τιμές το υποπρόγραμμα τότε προτείνουμε να κατασκευαστεί διαδικασία.  

andreas_p

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1057
Απ: ΣΥΝΑΡΤΗΣΗ - ΔΙΑΔΙΚΑΣΙΑ
« Απάντηση #8 στις: 14 Φεβ 2006, 11:49:24 πμ »
Ακριβώς ...

Ανδρέας

dozb

  • Θαμώνας
  • ***
  • Μηνύματα: 45
Απ: ΣΥΝΑΡΤΗΣΗ - ΔΙΑΔΙΚΑΣΙΑ
« Απάντηση #9 στις: 14 Φεβ 2006, 10:14:15 μμ »
Καλησπέρα σε όλους
Όσον αφορά στην ερώτηση του συναδέλφου, μπορείς πιστεύω, να χρησιμοποιήσεις τη ΔΙΑΒΑΣΕ για να δώσεις τιμή σε μια μεταβλητή που χρειάζεσαι στη ΣΥΝΑΡΤΗΣΗ,  αλλά όχι για να δώσεις τιμή σε κάποια από τις τυπικές πραμέτρους, μια που δεν μπορείς να επιστρέψεις την τιμή της στο κυρίως πρόγραμμα... (!!!!)

Να κάνω άλλη ερώτηση μια που μιλάμε για υποπρογράμματα.
Είναι ασφαλές να πω στους μαθητές να ΜΗ χρησιμοποιούν μεταβλητές που δεν έχουν πάρει τιμή, σαν παραμέτρους συναρτήσεων?? Ή τελικά όλα επιτρέπονται ? ???


« Τελευταία τροποποίηση: 15 Φεβ 2006, 12:18:48 πμ από dozb »

P.Tsiotakis

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3304
  • agent romanoff you miss me?
    • P.Tsiotakis
Απ: ΣΥΝΑΡΤΗΣΗ - ΔΙΑΔΙΚΑΣΙΑ
« Απάντηση #10 στις: 15 Φεβ 2006, 09:28:34 πμ »
Όλες οι παράμετροι σε μια συνάρτηση είναι παράμετροι εισόδου. Αν κάποια από αυτές δεν έχει λάβει τιμή στο τμήμα προγράμματος που καλεί την συνάρτηση, τότε θα είναι απροσδιόριστη και η τιμή της εντός της συνάρτησης.

Άρα, στην ουσία δεν μπορεί να χρησιμοποιηθεί. Επομένως, δεν χρειάζεται να είναι στις παραμέτρους...

Το αν επιτρέπεται ή όχι είναι ένα άλλο θέμα. Ίσως η παραπάνω σκέψη αρκεί...


klitos

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 133
Απ: ΣΥΝΑΡΤΗΣΗ - ΔΙΑΔΙΚΑΣΙΑ
« Απάντηση #11 στις: 15 Φεβ 2006, 02:19:40 μμ »
Συνάδελφε dozb
1ο Αν θεωρήσουμε οτι ο ρόλος της ΣΥΝΑΡΤΗΣΗΣ ειναι να υπολογίζει και να επιστρέφει μια τιμή τότε δεν μπορείς να χρησιμοποιήσεις την ΔΙΑΒΑΣΕ μεσα στην ΣΥΝΑΡΤΗΣΗ. Αν πρέπει να δώσεις μια τιμη σε μια μεταβλητή τότε πρέπει να φροντίσει το ΠΡΟΓΡΑΜΜΑ να την μεταβιβάσει. Διαφορετικά αν μπορούσαμε να χρησιμοποιήσουμε την ΔΙΑΒΑΣΕ τοτε θα μπορούσαμε να χρησιμοποιήσουμε και την ΓΡΑΨΕ ( αφού θα την χρειαζόμασταν για να περιγράψουμε το τι πρόκειται να πληκτρολογηθεί ) ...αρα θα μπορούμε να χρησιμοποιούμε ολες τις εντολές ( πράγμα που επιτρέπεται στις ΔΙΑΔΙΚΑΣΙΕΣ )
2ο Οσον αφορα την ερωτηση σου για τις μεταβλητές που περνάνε σε μια συνάρτηση αυτές πρέπει να ειναι ορισμένες ( να εχουν πάρει τιμή ) διαφορετικά θα ειναι απροσδιόριστες ... συμφωνώ δηλαδή με τον ptsiotaki

κλητος
κλητος χατζηγεωργιου

dozb

  • Θαμώνας
  • ***
  • Μηνύματα: 45
Απ: ΣΥΝΑΡΤΗΣΗ - ΔΙΑΔΙΚΑΣΙΑ
« Απάντηση #12 στις: 15 Φεβ 2006, 02:53:56 μμ »
"τότε θα είναι απροσδιόριστη και η τιμή της εντός της συνάρτησης."
Στις Διαδικασίες όμως επιτρέπεται, έτσι?

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5658
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: ΣΥΝΑΡΤΗΣΗ - ΔΙΑΔΙΚΑΣΙΑ
« Απάντηση #13 στις: 15 Φεβ 2006, 07:08:17 μμ »
Στις διαδικασίες υπάρχουν παράμετροι εισόδου, παράμετροι εξόδου, και πιθανώς (αν και προτιμούμε να το αποφεύγουμε στη ΓΛΩΣΣΑ) παράμετροι ταυτόχρονα εισόδου και εξόδου.

Προφανώς οι παράμετροι εξόδου δε χρειάζεται να αρχικοποιηθούν.

Π.χ. στη Διαδικασία Μέγιστος(α, β, μέγιστος)
που επιστρέφει το μεγαλύτερο από τα α και β, το μέγιστος δε χρειάζεται να έχει αρχικοποιηθεί.

klitos

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 133
Απ: ΣΥΝΑΡΤΗΣΗ - ΔΙΑΔΙΚΑΣΙΑ
« Απάντηση #14 στις: 16 Φεβ 2006, 08:48:44 πμ »
Συνάδελφε dozb
Ναι ... ετσι ακριβως ειναι . Στις ΔΙΑΔΙΚΑΣΙΕΣ επιτρεπεται αυτη η απροσδιοριστια των μεταβλητών εξόδου, επειδή θα χρησιμοποιηθούν για να μεταφερθεί το αποτέλεσμα στο κυρίως ΠΡΟΓΡΑΜΜΑ.
κλητος χατζηγεωργιου