Professional and reliable web hosting reviews and hosting guide. InMotion Reviews and testimonials customer ratings.

Υποπρογράμματα

Print
Category: Uncategorised
Published on 09 March 2012
Written by Super User Hits: 2329

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

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

Με άλλα λόγια όταν έχουμε να επιλύσουμε ένα πρόβλημα, μπορούμε να το χωρίσουμε σε επιμέρους τμήματα, όπου το κάθε ένα είναι ένα ξεχωριστό υπο-πρόβλημα.

Στη συνέχεια αναπτύσσουμε τους αλγόριθμους για το καθένα από αυτά, ξεχωριστά από το υπόλοιπο πρόβλημα, υλοποιώντας ένα υπο-πρόγραμμα για κάθε υπο-πρόβλημα.

Δηλαδή φτιάχνουμε μικρά και ανεξάρτητα υπο-προγράμματα, όπου το καθένα κάνει κάτι συγκεκριμένο και έχουμε τη δυνατότητα να τα καλούμε όταν και όσες φορές θέλουμε, από κάποιο κύριο πρόγραμμα ή άλλο υπο-πρόγραμμα. Αντιλαμβανόμαστε ότι κάθε υποπρόγραμμα επιτελεί κάτι αυτόνομο και είναι ξεχωριστά γραμμένο.

Υπάρχουν δύο (2) τύποι υποπρογραμμάτων.

1) οι Διαδικασίες και 2) οι Συναρτήσεις.

Εκτός τους ορισμούς που δίνει το σχολικό βιβλίο :

1)    είναι ένας τύπος υποπρογράμματος που μπορεί να εκτελεί όλες τις λειτουργίες ενός προγράμματος.

2)  είναι ένας τύπος υποπρογράμματος που υπολογίζει και επιστρέφει πάντα μόνο μια τιμή με το όνομά της.

Για να διακρίνεται εύκολα πότε θα χρησιμοποιήσετε Διαδικασία ή Συνάρτηση, μπορείτε να εστιάσετε στο τι σας ζητάει το υπό-πρόβλημα να βρείτε – δηλαδή τι θα σας δώσει ως επιστροφή ο αλγόριθμος :

1)      Αν πρόκειται να σας επιστρέψει  πολλές τιμές, καμία τιμή ή μία τιμή, τότε χρησιμοποιήστε Διαδικασία.

2)      Αν πρόκειται να σας επιστρέψει μία μόνο τιμή, τότε χρησιμοποιήστε Συνάρτηση.

3)      Στη περίπτωση που επιστρέψει μία μόνο τιμή, όπως καταλαβαίνετε μπορείτε να χρησιμοποιήσετε είτε Διαδικασία είτε Συνάρτηση. Επιλέξτε Συνάρτηση αν σας χρειάζεται να αποθηκεύσετε την τιμή εξόδου σε μια μεταβλητή για περαιτέρω διαχείριση ή επεξεργασία στη συνέχεια του αλγορίθμου.

ΠΑΡΑΜΕΤΡΟΙ

Από μόνα τους τα υποπρογράμματα δεν ενεργοποιούνται. Πρέπει κάποιος και με κάποιο τρόπο να τα ‘καλέσει’ όπως λέμε. Αυτός ο κάποιος είναι συνήθως κάποιο κύριο πρόγραμμα ή άλλο υποπρόγραμμα.

Το υποπρόγραμμα ως αυτόνομο και ανεξάρτητο πρέπει με κάποιο τρόπο να επικοινωνήσει με το κύριο πρόγραμμα, όταν κληθεί. Συνήθως δέχεται τιμές από το τμήμα του προγράμματος που το καλεί και μετά την εκτέλεσή του επιστρέφει σε αυτό νέες τιμές – αποτελέσματα.

Οι τιμές αυτές λοιπόν ‘περνούν’ από το πρόγραμμα στο υποπρόγραμμα – και αντιστρόφως – μέσω ειδικών μεταβλητών που τις ονομάζονται παράμετροι.

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

 

 

ΔΙΑΔΙΚΑΣΙΑ

ΣΥΝΑΡΤΗΣΗ

Ορισμός

Διαδικασία <Όνομα> (Παράμετροι)

Μεταβλητές

………

Αρχή

   Εντολές

Τέλος_Διαδικασίας

Συνάρτηση <Όνομα> (Παράμετροι) : Τύπος

Μεταβλητές

………

Αρχή

   Εντολές

   Όνομα ß Έκφραση

   Εντολές

   …….

Τέλος_Συνάρτησης

 

Εκτέλεση

Η εκτέλεση του προγράμματος διακόπτεται για να εκτελεστούν οι εντολές της Διαδικασίας. Μετά την εντολή ‘Τέλος_Διαδικασίας’ συνεχίζεται η εκτέλεση του προγράμματος στην επόμενη εντολή.

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

Η εκτέλεση του προγράμματος διακόπτεται για να εκτελεστούν οι εντολές της Συνάρτησης.

Ανεξάρτητα τι τύπο έχουν οι παράμετροι, μια Συνάρτηση μπορεί να είναι (δηλ. να επιστρέψει) όλους τους τύπους δεδομένων : Ακέραια, Πραγματική, Χαρακτήρας, Λογική.

Στις εντολές του σώματος της Συνάρτησης πρέπει υποχρεωτικά να υπάρχει τουλάχιστον μία εντολή εκχώρησης τιμής στο όνομά της. Όλες οι Συναρτήσεις εκτελούνται όπως ακριβώς και οι ενσωματωμένες συναρτήσεις της κάθε γλώσσας.

Το κύριο πρόγραμμα κατά τη κλήση της Συνάρτησης μεταβιβάζει τιμές (που ήδη γνωρίζει από πριν) στις αντίστοιχες παραμέτρους της Συνάρτησης.

Η Συνάρτηση υπολογίζει τη την ζητούμενη τιμή του προβλήματος βάσει κάποιας/ων έκφρασης/ων και αυτή η νέα τιμή εκχωρείται στο όνομα της Συνάρτησης.

Μετά το ‘Τέλος_Συνάρτησης’ γίνεται επιστροφή της νέας τιμής στο κύριο πρόγραμμα που την κάλεσε, όπου εκχωρείται στη μεταβλητή που είναι εκχωρημένο το όνομα της Συνάρτησης.

Κλήση

Εντολές προγράμματος

…..

ΚΑΛΕΣΕ  Όνομα- Διαδικασίας (Παράμετροι)

…..

Εντολές προγράμματος

…..

Εντολές προγράμματος

…..

ΝΤ ß Όνομα- Συνάρτησης (Παράμετροι)

Εντολές προγράμματος

…..

Παραδείγματα

Διαδικασία ΕΙΣΑΓ_ΒΑΘ(Β)

Μεταβλητές

   Πραγματικές : Β

Αρχή

   Αρχή_Επανάληψης

    Διάβασε Β

   Μέχρις_ότου (Β>=0) και (Β<=20)

Τέλος_Διαδικασίας

 

Πρόγραμμα ΜΕΣΟΣ

Μεταβλητές

   Ακέραιες : Ι

   Πραγματικές : ΒΑΘΜΟΣ, Σ, ΜΟ

Αρχή

   Για Ι από 1 μέχρι 30

    ΚΑΛΕΣΕ  ΕΙΣΑΓ_ΒΑΘ(ΒΑΘΜΟΣ)

    Σ ß Σ + ΒΑΘΜΟΣ

   Τέλος_Επανάληψης

   ΜΟ ß Σ/30

   Γράψε ΜΟ

Τέλος_προγράμματος

Συνάρτηση ΜΑΧ (Α, Β, Γ) : Ακέραια

Μεταβλητές

   Ακέραιες : Α, Β, Γ

Αρχή

   ΜΑΧ ß Α

   Αν Β > ΜΑΧ τότε

      ΜΑΧ ß Β

   Τέλος_Αν

   Αν Γ > ΜΑΧ τότε

      ΜΑΧ ß Γ

   Τέλος_Αν

Τέλος_Συνάρτησης

 

Συνάρτηση ΜΟ (Α, Β, Γ) : Πραγματική

Μεταβλητές

   Ακέραιες : Α, Β, Γ

Αρχή

   ΜΟ ß (Α+Β+Γ)/3

Τέλος_Συνάρτησης

 

Πρόγραμμα ΥΠΟΓΙΣΜΟΙ

Μεταβλητές

   Ακέραιες : Κ, Λ, Μ, ΜΕΓΑ

   Πραγματικές : ΜΕΣ

Αρχή

   Διάβασε Κ, Λ, Μ

   ΜΕΓΑ ß ΜΑΧ (Κ, Λ, Μ)

   Γράψε ΜΕΓ

   ΜΕΣ ß ΜΟ (Κ, Λ, Μ)

   Γράψε ΜΕΣ

Τέλος_προγράμματος

 

 

Παρατηρούμε ότι :

Στη 1η Συνάρτηση υπάρχουν περισσότερες από μια εντολές εκχώρησης στο όνομά της.

Στη 2η Συνάρτηση ενώ ο τύπος της είναι Ακέραιος, η τιμή που επιστρέφει είναι πραγματική.

Παρατηρήσεις σε ότι αφορά τις παραμέτρους, από τα παραδείγματα διαπιστώνουμε :

1.      Έχουμε τις ολικές ή πραγματικές παραμέτρους. Δηλαδή εκείνες που ορίζονται στο κύριο πρόγραμμα και έχουν ολική εμβέλεια.

2.      Έχουμε τις τοπικές ή τυπικές παραμέτρους. Δηλαδή εκείνες που ορίζονται στο υποπρόγραμμα και τοπική εμβέλεια.

3.      Έχουμε τις ολικές και τοπικές μεταβλητές που ορίζονται αντίστοιχα στο κύριο πρόγραμμα και στο υποπρόγραμμα.

4.      Μια ολική ή τοπική παράμετρος είναι βεβαίως ολική ή τοπική μεταβλητή και δηλώνεται στη περιοχή δηλώσεων των μεταβλητών.

5.      Μια ολική ή τοπική μεταβλητή εννοείται ότι δεν είναι απαραίτητα ολική ή τοπική παράμετρος.

6.      Όλες ή Κάποιες από τις μεταβλητές μπορεί να είναι και παράμετροι.

7.      Το υποπρόγραμμα που δεν επιστρέφει τιμή/ές δεν έχει παραμέτρους.

 

ΠΡΟΣΟΧΗ:

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

ΤΥΠΟ, ΣΕΙΡΑ, ΠΛΗΘΟΣ.

 

 Ερωτήσεις Σωστού - Λάθους μπορείτε να ακολουθήσετε τους συνδέσμους : ΕΔΩ και ΕΚΕΙ.

 

 

 

 

Joomla 2.5 Templates designed by Website Hosting