1 Τμηματικός προγραμματισμός

1.1 Ορισμός

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

  • Διαχείριση ενός καταστήματος ενοικίασης κασετών βίντεο και δίσκων DVD.
  • Διαχείριση ενός υποκαταστήματος μίας τράπεζας.
  • Διαχείριση των στοιχείων των μαθητών σε ένα σχολείο.
  • Μισθοδοσία υπαλλήλων μίας επιχείρησης.

Τα παραπάνω προβλήματα φαίνονται αρκετά σύνθετα. Ένας καλός τρόπος να αντιμετωπιστεί ένα δύσκολο πρόβλημα και να γραφεί το αντίστοιχο πρόγραμμα είναι η ιεραρχική προσέγγιση, δηλαδή η ανάλυσή του από επάνω προς τα κάτω (top-down analysis). Σύμφωνα με αυτήν:

  • Κάθε πρόβλημα διαιρείται σε μικρότερα επιμέρους προβλήματα
  • Κάθε ένα από αυτά διαιρείται σε ακόμα απλουστέρα και μικρότερα
  • Η διάσπαση αυτή συνεχίζεται μέχρι να καταλήξουμε στο τέλος σε αρκετά απλά υπο προβλήματα

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

Όλα τα παραπάνω αποτελούν αποτέλεσμα του τμηματικού προγραμματισμού. Δηλαδή:

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

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

Τα τμήματα προγράμματος τα οποία επιτελούν ένα αυτόνομο έργο και γράφονται χωριστά από το υπόλοιπο πρόγραμμα ονομάζονται Υποπρογράμματα .

Όπως το κυρίως πρόγραμμα έτσι και τα υποπρογράμματα έχουν όλα τα χαρακτηριστικά ενός κανονικού προγράμματος (Δήλωση Ονόματος, Δήλωση Σταθερών και Μεταβλητών, Δήλωση αρχής εντολών, Εντολές, Δήλωση τέλους εντολών και προγράμματος). Υπάρχουν μερικές μικρές διαφοροποιήσεις που θα δούμε αναλυτικά στην ενότητα 10.2 και 10.5

Η φιλοσοφία της ιεραρχικής σχεδίασης που υλοποιείται στον τμηματικό προγραμματισμό μας υποδηλώνει ότι ένα υποπρόγραμμα μπορεί να ενεργοποιηθεί όχι μόνο από το κυρίως πρόγραμμα αλλά και από ένα άλλο υποπρόγραμμα .(Σχήμα 1)

Οργανόγραμμα

Σχήμα1 : Ιεραρχική σχεδίαση και τμηματικός προγραμματισμός.

Τα υποπρογράμματα μπορεί να σχεδιάζονται πριν ή και ταυτόχρονα με το κυρίως πρόγραμμα, όπως φαίνεται στο παραπάνω σχήμα, έτσι ώστε να έχουν σωστή «συνεργασία» με αυτό, γράφονται όμως και τοποθετούνται μετά το τέλος του κυρίου προγράμματος (Σχήμα 2).

 

Σχήμα 2: Συγγραφή Κυρίως Προγράμματος και Υποπρογραμμάτων

Δραστηριότητα 1

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

Κάνετε κλικ εδώ [ΑΠΑΝΤΗΣΗ] για να διαβάσετε τη δική μας απάντηση

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

1.2 Πως θα αναλύω σωστά ένα πρόβλημα σε απλούστερα;

1.2.1 Η σωστή εφαρμογή του τμηματικού προγραμματισμού

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

Η σωστή εφαρμογή του τμηματικού προγραμματισμού απαιτεί
•  Μελέτη στη μεθοδολογία ανάλυσης ενός προβλήματος
•  Εμπειρία στον προγραμματισμό
•  Ταλέντο και φυσική ικανότητα λύσης προβλημάτων
•  Γνώσεις

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

1.2.2   Μία προτεινόμενη «τμηματοποίηση»

Ωστόσο υπάρχει μία μεθοδολογία τμηματοποίησης που θεωρείται αρκετά αποτελεσματική και απλή ταυτόχρονα. Στηρίζεται στο γεγονός ότι σχεδόν σε κάθε πρόβλημα, συναντάμε τρία βασικά τμήματα, τα παρακάτω:

  • Εισαγωγή δεδομένων (καταχώρηση, έλεγχος)
  • Επεξεργασία δεδομένων (πράξεις - υπολογισμοί)
  • Έξοδος δεδομένων (εκτύπωση ή εμφάνιση)

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

1.2.3   Μεθοδολογία για αρχάριους

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

  • Να γράψετε το πρόγραμμα που λύνει το πρόβλημα σας
  • Να ψάξετε για κομμάτια στο πρόγραμμα που μπορούν να γραφούν κάπως ανεξάρτητα
  • Να αποφασίσετε τι τύπου υποπρόγραμμα ταιριάζει να χρησιμοποιηθεί για καθένα από αυτά
  • Να τα απομακρύνετε από το αρχικό πρόγραμμα προσαρμόζοντας-μετατρέποντας τα σε υποπρογράμματα. Ορισμένες φορές οι εντολές που λύνουν ένα πρόβλημα δεν είναι γραμμένες όλες μαζί, επομένως πρέπει να είσαστε πολύ προσεκτικοί..
  • Να ενεργοποιήσετε στο αρχικό πρόγραμμα, στο σημείο που βρισκόταν τα τμήματα προγράμματος που απομακρύνθηκαν, τα αντίστοιχα υποπρογράμματα που δημιουργήσατε.
Παράδειγμα 2

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

1 η λύση

2 η λύση

 

ΠΡΟΓΡΑΜΜΑ Πρόβλημα
Δηλώσεις Σταθερών και Μεταβλητών
ΑΡΧΗ
Εντολές που λύνουν προβληματάκι1
Εντολές που λύνουν προβληματάκι2
Εντολές που λύνουν προβληματάκι3
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

 

 

 

Επεξήγηση με σύννεφο: Η ενεργοποίηση ενός υποπρογράμματος λέγεται συνήθως κλήση υποπρογράμματος. Θα λέμε λοιπόν   ΚΑΛΕΣΕ Υποπρόγραμμα αντί για ΕΝΕΡΓΟΠΟΙΗΣΕ Υποπρόγραμμα

 


! Κυρίως Πρόγραμμα

ΠΡΟΓΡΑΜΜΑ Πρόβλημα
Δηλώσεις Σταθερών και Μεταβλητών που
χρησιμοποιούνται στο τρέχων πρόγραμμα
ΑΡΧΗ
ΚΑΛΕΣΕ προβληματάκι1
ΚΑΛΕΣΕ προβληματάκι2
ΚΑΛΕΣΕ προβληματάκι3
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Μετά το κυρίως πρόγραμμα ακολουθούν τα
υποπρογράμματα

ΥΠΟΠΡΟΓΡΑΜΜΑ προβληματάκι1
Δηλώσεις Σταθερών και Μεταβλητών που
χρησιμοποιούνται στο τρέχων υποπρόγραμμα
ΑΡΧΗ
Εντολές που λύνουν προβληματάκι1
ΤΕΛΟΣ_ΥΠΟΠΡΟΓΡΑΜΜΑΤΟΣ

ΥΠΟΠΡΟΓΡΑΜΜΑ προβληματάκι2
Δηλώσεις Σταθερών και Μεταβλητών που
χρησιμοποιούνται στο τρέχων υποπρόγραμμα
ΑΡΧΗ
Εντολές που λύνουν προβληματάκι2
ΤΕΛΟΣ_ΥΠΟΠΡΟΓΡΑΜΜΑΤΟΣ

ΥΠΟΠΡΟΓΡΑΜΜΑ προβληματάκι3
Δηλώσεις Σταθερών και Μεταβλητών που
χρησιμοποιούνται στο τρέχων υποπρόγραμμα
ΑΡΧΗ
Εντολές που λύνουν προβληματάκι3
ΤΕΛΟΣ_ΥΠΟΠΡΟΓΡΑΜΜΑΤΟΣ

Δραστηριότητα 2

Τώρα γυρίσετε στη σελίδα 88 του τετραδίου του μαθητή και διαβάσετε πάλι το πρόβλημα του παραδείγματος 1 και τη λύση του. Νομίζετε ότι είναι αρκετά απλό; Επιχειρήσετε να το χωρίσετε σε ακόμα απλούστερα προβλήματα και καταγράψετέ τα, πριν διαβάσετε τη δική μας απάντηση στο τέλος του κεφαλαίου.

Κάνετε κλικ εδώ [ΑΠΑΝΤΗΣΗ] για να διαβάσετε τη δική μας απάντηση


Παράδειγμα 3

Ας δούμε τώρα με πιο ακριβώς τρόπο πρέπει να δουλέψουμε προκειμένου να γράψουμε το πρόγραμμα της προηγούμενης δραστηριότητας με τμηματικό προγραμματισμό

Ακολουθούμε τις οδηγίες που δόθηκαν παραπάνω. Το αποτέλεσμα για το κυρίως πρόγραμμα και το 1ο υποπρόγραμμα φαίνεται παρακάτω:

ΠΡΟΓΡΑΜΜΑ ΕισπράξειςΕταιρειών
ΜΕΤΑΒΛΗΤΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ: Εισπράξεις[50], ΜΟ
  ΑΚΕΡΑΙΕΣ: Ν
  ΧΑΡΑΚΤΗΡΕΣ: Εταιρείες[50]
ΑΡΧΗ
    ΚΑΛΕΣΕ ΕισαγωγήΑριθμού για μεταβλητή Ν
    ΚΑΛΕΣΕ ΕισαγωγήΣτοιχείωνΠινάκων για πίνακες: Εταιρείες, Εισπράξεις
    ΚΑΛΕΣΕ ΥπολογισμόΜέσουΟρου για τον πίνακα Εισπράξεις
    ΚΑΛΕΣΕ ΕμφάνισηΑποτελεσμάτων από τον πίνακα Εταιρείες, Εισπράξεις
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΥΠΟΠΡΟΓΡΑΜΜΑ ΕισαγωγήΑριθμού x
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: x
ΑΡΧΗ
  ΓΡΑΨΕ ‘δωσε θετική και ακέραια τιμή μέχρι το 50:'
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΔΙΑΒΑΣΕ x
  ΜΕΧΡΙΣ_ΌΤΟΥ ( x > 0) ΚΑΙ ( x <=50)
ΤΕΛΟΣ_ΥΠΟΠΡΟΓΡΑΜΜΑΤΟΣ


 

Δραστηριότητα 3

Προσπαθήσετε τώρα να ακολουθήσετε το υπόδειγμα των δύο προηγουμένων παραδειγμάτων και να ολοκληρώσετε τη λύση χρησιμοποιώντας τη φιλοσοφία του τμηματικού προγραμματισμού.
Παρατηρήσεις:
•  Ονομάσετε τα υποπρογράμματα με ονόματα κατανοητά και ενδεικτικά του τι κάνουν
•  Ίσως χρειαστεί να γράψετε ίδιες ομάδες εντολών (π.χ. την επαναληπτική δομή που χρησιμοποιείται για την προσπέλαση ενός πίνακα), σε διαφορετικά υποπρογράμματα.
Σε περίπτωση που δεν ξέρετε πως να γράψετε σωστά τα υποπρογράμματα, μελετήσετε πάλι την ενότητα 10.1.2 και επαναλάβετε την δραστηριότητα αυτή.
Σε περίπτωση που η απάντησή σας διαφοροποιείται από τη δική μας, μην απογοητεύεστε. Έχουν μείνει αδιευκρίνιστα κάποια στοιχεία σχετικά με την πλήρη και σωστή σύνταξη των υποπρογραμμάτων, τα οποία θα απαντηθούν αργότερα και γι αυτό δεν έχουμε δώσει ακόμα μεγάλη σημασία
Κάνετε κλικ εδώ [ΑΠΑΝΤΗΣΗ] για να διαβάσετε τη δική μας απάντηση

Στο τέλος της προηγούμενης δραστηριότητας ίσως να σας έχουν μείνει κάποιες απορίες ή και να έχουν δημιουργηθεί καινούργιες (όπως για παράδειγμα, τι εξυπηρετεί η πολλαπλή δήλωση των μεταβλητών σε κάθε υποπρόγραμμα). Η ιδιαιτερότητα της νέας τεχνικής προϋποθέτει σπειροειδής προσέγγιση του θέματος. Περισσότερες λεπτομέρειες επομένως για τις μεταβλητές αυτές, το ρόλο τους και τον τρόπο που χρησιμοποιούνται αλλά και για τον τρόπο που «σχετίζονται» στο πρόγραμμα και τα υποπρογράμματα θα δοθούν στις ενότητες 2 και 3.
Αν εφαρμόσετε την παραπάνω τεχνική μερικές φορές ακόμα σε άλλα προγράμματα που είναι λυμένα στο βιβλίο σας ή έχετε λύσει εσείς, θα διαπιστώσετε ότι σταδιακά βλέποντας ένα πρόβλημα θα σας έρχεται στο μυαλό πως θα γίνει η διάσπαση και τι υποπρογράμματα θα χρειαστεί να χρησιμοποιήσετε.

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

1.3   Πλεονεκτήματα από τη χρήση τμηματικού προγραμματισμού

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

1.3.1   Διευκολύνει την ανάπτυξη του αλγορίθμου και του αντιστοίχου προγράμματος

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

Το πλεονέκτημα αυτό έρχεται ως βασική και προφανή συνέπεια της σωστής χρήσης των αρχών του τμηματικού προγραμματισμού και αναδύεται σε όλες τις προηγούμενες δραστηριότητες.

1.3.2   Διευκολύνει την κατανόηση και διόρθωση του προγράμματος.

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

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

1.3.3   Απαιτεί λιγότερο χρόνο και προσπάθεια στη συγγραφή του προγράμματος.

Πολύ συχνά χρειάζεται η ίδια λειτουργία σε διαφορετικά σημεία ενός προγράμματος. Από τη στιγμή που ένα υποπρόγραμμα έχει γραφεί, μπορεί το ίδιο να καλείται από πολλά σημεία του προγράμματος. Έτσι μειώνονται το μέγεθος του προγράμματος, ο χρόνος που απαιτείται για τη συγ­γραφή του και οι πιθανότητες λάθους, ενώ ταυτόχρονα το πρόγραμμα γίνεται πιο εύληπτο και κατανοητό.

Παράδειγμα 4

Θεωρήσετε ότι καλείστε να λύσετε το παρακάτω πρόβλημα:
Ο Παναθηναϊκός συμμετέχει στο πρωτάθλημα μπάσκετ της Α1 και έχει δώσει μέχρι τώρα 12 αγώνες. Να γίνει πρόγραμμα που:
Α)   Για κάθε ένα από τους δώδεκα αγώνες να ζητά πόσους πόντους πέτυχε, πόσα φάουλ έκανε, πόσα εύστοχα τρίποντα είχε στον αγώνα. Όλα τα δεδομένα είναι θετικοί ακέραιοι αριθμοί.
Β)   Να υπολογίζει και να εμφανίζει ….

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

ΠΡΟΓΡΑΜΜΑ Παναθηναικός
ΜΕΤΑΒΛΗΤΕΣ:
  ΠΡΑΓΜΑΤΙΚΕΣ:α
  ΑΚΕΡΑΙΕΣ: Αγώνα, Πόντοι, Φάουλ, Τρίποντα
ΑΡΧΗ
  ΓΙΑ Αγώνα ΑΠΟ 1 ΜΕΧΡΙ 12
    ΚΑΛΕΣΕ ΕισαγωγήΘετικούΑκεραίου για Πόντοι
    ΚΑΛΕΣΕ ΕισαγωγήΘετικούΑκεραίου για Φάουλ
    ΚΑΛΕΣΕ ΕισαγωγήΘετικούΑκεραίου για Τρίποντα
    ΥΠΟΛΟΓΙΣΕ ….
    ΥΠΟΛΟΓΙΣΕ ….
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ


ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΥΠΟΠΡΟΓΡΑΜΜΑ ΕισαγωγήΘετικούΑκεραίου x
ΜΕΤΑΒΛΗΤΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ:α
  ΑΚΕΡΑΙΕΣ: x
ΑΡΧΗ
  ΓΡΑΨΕ ‘Δώσε θετική και ακέραια τιμή:'
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΔΙΑΒΑΣΕ α
  ΜΕΧΡΙΣ_ΌΤΟΥ α >=0 ΚΑΙ α = Α_Μ(α)
   x <- Α_Μ(α)
ΤΕΛΟΣ_ΥΠΟΠΡΟΓΡΑΜΜΑΤΟΣ

1.3.4   Επεκτείνει τις δυνατότητες των γλωσσών προγραμματισμού.

Ένα υποπρόγραμμα που έχει γραφεί μπορεί να χρησιμοποιηθεί πολύ εύκολα και σε άλλα προγράμματα. Από τη στιγμή που έχει δημιουργηθεί, η χρήση του δεν διαφέρει από τη χρήση των ενσωματωμένων συναρτήσεων που παρέχει η γλώσσα προγραμματισμού, όπως για τον υπολογισμό του ημίτονου ή του συνημίτονου ή την εντολή με την οποία εκτελεί μία συγκεκριμένη διαδικασία, για παράδειγμα γράφει στην οθόνη (εντολή ΓΡΑΨΕ).



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

Οι διαπιστώσεις της μικρής επανάληψης του κάνατε σε σχέση με το αντικείμενο του τρέχοντος κεφαλαίου είναι ότι:
  • Έχουμε ήδη χρησιμοποιήσει υποπρογράμματα (οι οκτώ ενσωματωμένες συναρτήσεις), με τη διαφορά ότι αυτά υπήρχαν ήδη και δε χρειάστηκε να τα φτιάξουμε εμείς. Όταν τα γνωρίσαμε βέβαια δεν προβληματιστήκαμε περισσότερο γιατί το αποτέλεσμα που υπολογίζανε ήταν οικείο σε εμάς από τα μαθηματικά
  • Τα έτοιμα υποπρογράμματα μιας γλώσσας προγραμματισμού, έχουν γραφεί σε ειδικά αρχεία που ονομάζονται βιβλιοθήκες. Οι βιβλιοθήκες συνδέονται με τη βοήθεια ειδικού προγράμματος του Συνδέτη-Φορτωτή, με το πρόγραμμα που χρησιμοποιεί τα υποπρογράμματα κατά την μετατροπή του από αντικείμενο σε εκτελέσιμο.
  • Μπορούμε να ορίσουμε και να δημιουργήσουμε και εμείς οι ίδιοι υποπρογράμματα τα οποία στη συνέχεια θα είναι εύκολο να χρησιμοποιούμε σε πολλά διαφορετικά προβλήματα. Το υποπρόγραμμα αντιμετάθεσε είναι μόνο ένα μικρό παράδειγμα.
Παράδειγμα 4

Παρακάτω μπορείτε να δείτε μερικές ενέργειες που χρησιμοποιούνται συχνά σε μεγάλη ποικιλία προβλημάτων:

Εύρεση του μικρότερου/ μεγαλύτερου από δύο αριθμούς Χ, Υ

  • Εμφάνιση όλων των στοιχείων ενός πίνακα Α με Ν στοιχεία
  • Ταξινόμηση με αύξουσα/ φθίνουσα σειρά ενός πίνακα Α με Ν στοιχεία
  • Αναζήτηση ενός στοιχείου Χ αν υπάρχει στον πίνακα Α με Ν στοιχεία
  • Αντιμετάθεση των τιμών των Χ και Υ

Όλες οι παραπάνω ενέργειες δεν υποστηρίζονται απευθείας από τη γλώσσα προγραμματισμού μας. Υπάρχει όμως η δυνατότητα να γραφούν αντίστοιχα υποπρογράμματα. Τα υποπρογράμματα αυτά μπορούν να τοποθετηθούν σε μία Βιβλιοθήκη Υποπρογραμμάτων. Αν στην αρχή του προγράμματος μας, δηλώσουμε ότι χρησιμοποιούμε τη βιβλιοθήκη αυτή, μπορούμε στη συνέχεια να ενεργοποιούμε κανονικά οποιοδήποτε υποπρόγραμμά της, σαν να το είχαμε γράψει ως υποπρόγραμμα στο δικό μας πρόγραμμα.

Με τον τρόπο αυτό ουσιαστικά επεκτείνετε ως προς τις δυνατότητές της η ίδια η γλώσσα προγραμματισμού.

Δραστηριότητα 4

Αναφέρετε επιγραμματικά ποια είναι τα πλεονεκτήματα της χρήσης του τμηματικού προγραμματισμού. Αναπτύξετε ένα από αυτά και δώσετε αντίστοιχο παράδειγμα.
Κάνετε κλικ εδώ [ΑΠΑΝΤΗΣΗ] για να διαβάσετε τη δική μας απάντηση