↑ Return to ΘΕΩΡΙΑ ΑΕΠΠ

4. Τμηματικός Προγραμματισμός

AΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΘΕΩΡΙΑ

ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ  

Ο τμηματικός προγραμματισμός ή προγραμματισμός με υποπρογράμματα ξεκινά με την διάσπαση του προβλήματος σε ένα σύνολο από μικρότερα απλούστερα προβλήματα (υποπροβλήματα) και ολοκληρώνεται με την ανάπτυξη ενός προγράμματος στο οποίο ενσωματώνονται “κλήσεις” προς άλλα μικρότερα τμήματα προγράμματος (υποπρογράμματα) κάθε ένα απ’ τα οποία έχει σχεδιασθεί για να επιλύει ένα υποπρόβλημα του αρχικού προβλήματος.

Περισσότερες πληροφορίες μπορούν να βρεθούν στο κεφάλαιο 10 του βιβλίου Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον της Γ’ τάξης των Γενικών Λυκείων. Εξετάζονται μόνο οι παράγραφοι: 10.1, 10.2, 10.3, 10.4, 10.5, 10.5.1, 10.5.2, 10.5.3, 10.6.

Σχολικό ΒιβλίοΠλήρη ΑνάπτυξηΣωστό-ΛάθοςΑντιστοίχησηΠολλαπλή ΕπιλογήΣυμπλήρωση κενών

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

Όταν ένα τμήμα προγράμματος επιτελεί ένα αυτόνομο έργο και έχει γραφεί χωριστά από το υπόλοιπο πρόγραμμα, τότε αναφερόμαστε σε υποπρόγραμμα (subprogram).

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

Ιδιότητες υποπρογραμμάτων

Κάθε υποπρόγραμμα πρέπει να μην είναι πολύ μεγάλο.

Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. 

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

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

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

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

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

Μία παράμετρος είναι μία μεταβλητή που επιτρέπει το πέρασμα της τιμής της από ένα τμήμα προγράμματος σε ένα άλλο.

ΣΥΝΑΡΤΗΣΕΙΣ

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

Οι συναρτήσεις εκτελούνται με την εμφάνιση του ονόματός τους σε οποιαδήποτε έκφραση (αριθμητική/λογική), ενώ οι διαδικασίες με χρήση της ειδικής εντολής ΚΑΛΕΣΕ και όνομα διαδικασίας.

Κάθε συνάρτηση έχει την ακόλουθη δομή.

ΣΥΝΑΡΤΗΣΗ όνομα (λίστα παραμέτρων):τύπος συνάρτησης

Τμήμα δηλώσεων

ΑΡΧΗ

….

όνομα έκφραση

…. 

ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

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

ΔΙΑΔΙΚΑΣΙΕΣ

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

Κάθε διαδικασία έχει την ακόλουθη δομή.

ΔΙΑΔΙΚΑΣΙΑ Όνομα (λίστα παραμέτρων)

Τμήμα δηλώσεων

ΑΡΧΗ

εντολές

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

Το όνομα της διαδικασίας είναι οποιοδήποτε έγκυρο όνομα της ΓΛΩΣΣΑΣ. Η λίστα παραμέτρων είναι μια λίστα μεταβλητών, των οποίων οι τιμές μεταβιβάζονται προς τη διαδικασία κατά την κλήση ή/και επιστρέφονται στο κύριο πρόγραμμα μετά το τέλος της διαδικασίας.

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

Κάθε διαδικασία εκτελείται όταν καλείται από το κύριο πρόγραμμα ή άλλη διαδικασία. Η κλήση σε διαδικασία πραγματοποιείται με την εντολή ΚΑΛΕΣΕ, που ακολουθείται από το όνομα της διαδικασίας συνοδευόμενο μέσα σε παρενθέσεις με τη λίστα παραμέτρων.

Η γενική μορφή της εντολής ΚΑΛΕΣΕ είναι:

Σύνταξη

ΚΑΛΕΣΕ όνομα-διαδικασίας (λίστα-παραμέτρων)

Λειτουργία

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

Η λίστα των παραμέτρων ορίζει τις τιμές που περνούν στη διαδικασία και τις τιμές που αυτή επιστρέφει και  δεν είναι υποχρεωτική.

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

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

Οι μεταβλητές του προγράμματος αποτελούν τις πραγματικές παραμέτρους.

Οι μεταβλητές της διαδικασίας ονομάζονται τυπικές παράμετροι.

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

Κανόνες λίστας παραμέτρων

Ο αριθμός των πραγματικών και των τυπικών παραμέτρων πρέπει να είναι ίδιος.

Κάθε πραγματική παράμετρος αντιστοιχεί στην τυπική παράμετρο που βρίσκεται στην αντίστοιχη θέση. 

Η τυπική παράμετρος και η αντίστοιχή της πραγματική πρέπει να είναι του ιδίου τύπου.

ΕΡΩΤΗΣΕΙΣ ΑΝΑΠΤΥΞΗΣ

Ποιος είναι ο καλύτερος τρόπος για να αντιμετωπισθούν προγραμματιστικά σύνθετα προβλήματα;

Ποιος είναι ο καλύτερος τρόπος για να αντιμετωπισθούν προγραμματιστικά σύνθετα προβλήματα;

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

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

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

Προβλήματα αρκετά απλά μπορούν να αναπτυχθούν σωστά σε ένα και μόνο πρόγραμμα. Ο καλύτερος τρόπος για να αντιμετωπισθούν σύνθετα προβλήματα και να γραφούν τα αντίστοιχα προγράμματα, είναι η ιεραρχική προσέγγιση, η ανάπτυξη του προγράμματος από επάνω προς τα κάτω (top-down).

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

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

Τι ονομάζεται τμηματικός προγραμματισμός;

Τι ονομάζεται τμηματικός προγραμματισμός;

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

Τίθεται το ακόλουθος πρόβλημα: Αξιολόγηση αποτελεσμάτων των μαθητών της Γ' Λυκείου στα μαθήματα ειδικότητας. Ζητείται να γίνει ανάλυση του προβλήματος σε υποπροβλήματα και διαγραμματική απεικόνιση αυτής.

Τίθεται το ακόλουθος πρόβλημα: Αξιολόγηση αποτελεσμάτων των μαθητών της Γ’ Λυκείου στα μαθήματα ειδικότητας. Ζητείται να γίνει ανάλυση του προβλήματος σε υποπροβλήματα και διαγραμματική απεικόνιση αυτής.

Το πρόβλημα με περισσότερη λεπτομέρεια μπορεί να διατυπωθεί ως εξής:
Για λόγους αξιολόγησης της εκπαιδευτικής του πολιτικής, το Υπουργείο Παιδείας χρειάζεται να ενημερωθεί για τα πρόσφατα αποτελέσματα φοίτησης των μαθητών της χώρας. Ζήτησε λοιπόν μεταξύ άλλων από την Υπηρεσία Πληροφορικής να παρουσιάσει και τα αποτελέσματα που είχαν οι μαθητές της Γ ́ τάξης της Τεχνολογικής Κατεύθυνσης των Ενιαίων Λυκείων στα μαθήματα ειδικότητας.
Το πρόβλημα που τίθεται είναι:

Αποτελέσματα επίδοσης μαθητών Γ ́ τάξης Τεχνολογικής Κατεύθυνσης στα μαθήματα ειδικότητας.

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

1. Εισαγωγή δεδομένων

2. Επεξεργασία δεδομένων

3. Εκτύπωση αποτελεσμάτων

Τα τρία αυτά τμήματα μπορούν να αναλυθούν περισσότερο. Συγκεκριμένα:

Εισαγωγή δεδομένων

Καταχώριση δεδομένων

Έλεγχος δεδομένων

Επεξεργασία δεδομένων

Υπολογισμός μέσης τιμής

Υπολογισμός τυπικής απόκλισης

Κατανομή συχνοτήτων

Δημιουργία γραφικών παραστάσεων

Εκτύπωση αποτελεσμάτων

Εκτύπωση πινάκων συχνοτήτων

Εκτύπωση γραφικών παραστάσεων

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

Η παράσταση της ανάλυσης του προβλήματος μπορεί να γίνει γραφικά με το διάγραμμα του σχήματος.

Σχ. 1 – Διαγραμματική απεικόνιση της ανάλυσης προβλήματος

Πότε αναφερόμαστε σε υποπρόγραμμα;

Πότε αναφερόμαστε σε υποπρόγραμμα;

Όταν ένα τμήμα προγράμματος επιτελεί ένα αυτόνομο έργο και έχει γραφεί χωριστά από το υπόλοιπο πρόγραμμα, τότε αναφερόμαστε σε υποπρόγραμμα (subprogram).

Τι είναι συνάρτηση;

Τι είναι συνάρτηση;

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

Ποια η δομή μιας συνάρτησης;

Ποια η δομή μιας συνάρτησης;

ΣΥΝΑΡΤΗΣΗ όνομα (λίστα παραμέτρων):τύπος συνάρτησης

Τμήμα δηλώσεων

ΑΡΧΗ

….

όνομα ← έκφραση

….

ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Ποια τα χαρακτηριστικά - ιδιότητες πρέπει να έχουν τα υποπρογράμματα;

Ποια τα χαρακτηριστικά – ιδιότητες πρέπει να έχουν τα υποπρογράμματα;

Τρεις ιδιότητες πρέπει να διακρίνουν τα υποπρογράμματα:

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

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

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

Τι είναι η παράμετρος;

Τι είναι η παράμετρος;

Μία παράμετρος είναι μία μεταβλητή που επιτρέπει το πέρασμα της τιμής της από ένα τμήμα προγράμματος σε ένα άλλο.

Ποια η διαφορά μεταξύ μεταβλητής και παραμέτρου;

Ποια η διαφορά μεταξύ μεταβλητής και παραμέτρου;

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

Τι εννοούμε όταν λέμε ότι μια μεταβλητή έχει τοπική ισχύ;

Τι εννοούμε όταν λέμε ότι μια μεταβλητή έχει τοπική ισχύ;

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

Ποια η διαφορά μεταξύ πραγματικών και τυπικών παραμέτρων;

Ποια η διαφορά μεταξύ πραγματικών και τυπικών παραμέτρων;

Οι πραγματικές παράμετροι συναντώνται στο κύριο πρόγραμμα, ενώ οι τυπικές στα υποπρογράμματα. Συνέπεια αυτού,

  •  Η λίστα των τυπικών παραμέτρων (formal parameter list) καθορίζει τις παραμέτρους στη δήλωση του υποπρογράμματος.
  •  Η λίστα των πραγματικών παραμέτρων (actual parameterlist) καθορίζει τις παραμέτρους στην κλήση του υποπρογράμματος.

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

Ποιοι οι κανόνες που πρέπει να ακολουθούν οι λίστες των παραμέτρων κατά την κλήση ενός υποπρογράμματος;

Ποιοι οι κανόνες που πρέπει να ακολουθούν οι λίστες των παραμέτρων κατά την κλήση ενός υποπρογράμματος;

 1. Ο αριθμός των πραγματικών και των τυπικών παραμέτρων πρέπει να είναι ίδιος.

 2. Κάθε πραγματική παράμετρος αντιστοιχεί στην τυπική παράμετρο που βρίσκεται στην αντίστοιχη θέση. Για παράδειγμα, η πρώτη της λίστας των τυπικών παραμέτρων στην πρώτη της λίστας των πραγματικών παραμέτρων κ.ο.κ.

 3. Η τυπική παράμετρος και η αντίστοιχή της πραγματική πρέπει να είναι του ιδίου τύπου.

Τι είναι διαδικασία;

Τι είναι διαδικασία;

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

Ποια η δομή μιας διαδικασίας;

Ποια η δομή μιας διαδικασίας;

Κάθε διαδικασία έχει την ακόλουθη δομή.

Διαδικασία Όνομα (λίστα παραμέτρων)

Τμήμα δηλώσεων

Αρχή

εντολές

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

Ποια η γενική μορφή της εντολής ΚΑΛΕΣΕ και ποια η λειτουργία της;

Ποια η γενική μορφή της εντολής ΚΑΛΕΣΕ και ποια η λειτουργία της;

Η γενική μορφή της εντολής ΚΑΛΕΣΕ είναι

ΚΑΛΕΣΕ όνομα διαδικασίας (λίστα παραμέτρων)

Ποια τα πλεονεκτήματα του τμηματικού προγραμματισμού;

Ποια τα πλεονεκτήματα του τμηματικού προγραμματισμού;

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

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

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

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

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

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

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

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

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

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

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

Έτσι μειώνονται,

1. το μέγεθος του προγράμματος,

2. ο χρόνος που απαιτείται για τη συγγραφή του,

3. οι πιθανότητες λάθους,

Τέλος το πρόγραμμα γίνεται πιο εύληπτο και κατανοητό.

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

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

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

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

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

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

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

Τι αφορά η εμβέλεια των μεταβλητών σ' ένα πρόγραμμα;

Τι αφορά η εμβέλεια των μεταβλητών σ’ ένα πρόγραμμα;

Το τμήμα του προγράμματος που ισχύουν οι μεταβλητές λέγεται εμβέλεια (scope) μεταβλητών.

Τι σημαίνει για ένα πρόγραμμα η φράση απεριόριστη εμβέλεια μεταβλητών και σταθερών;

Τι σημαίνει για ένα πρόγραμμα η φράση απεριόριστη εμβέλεια μεταβλητών και σταθερών;

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

Ποια τα μειονεκτήματα από την χρήση καθολικών μεταβλητών;

Ποια τα μειονεκτήματα από την χρήση καθολικών μεταβλητών;

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

Τι επιβάλει η αρχή της περιορισμένης εμβέλειας μεταβλητών και ποια τα πλεονεκτήματά της στον προγραμματισμό;

Τι επιβάλει η αρχή της περιορισμένης εμβέλειας μεταβλητών και ποια τα πλεονεκτήματά της στον προγραμματισμό;

Η περιορισμένη εμβέλεια υποχρεώνει όλες τις μεταβλητές που χρησιμοποιούνται σε ένα τμήμα προγράμματος, να δηλώνονται σε αυτό το τμήμα. Όλες οι μεταβλητές είναι τοπικές, ισχύουν δηλαδή για το υποπρόγραμμα στο οποίο δηλώθηκαν. Στη ΓΛΩΣΣΑ έχουμε περιορισμένη εμβέλεια.

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

Ποια τα χαρακτηριστικά των μεταβλητών με μερικώς περιορισμένη εμβέλεια; Ποια τα πλεονεκτήματα αλλά και μειονεκτήματα για τον προγραμματιστή;

Ποια τα χαρακτηριστικά των μεταβλητών με μερικώς περιορισμένη εμβέλεια; Ποια τα πλεονεκτήματα αλλά και μειονεκτήματα για τον προγραμματιστή;

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

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

Πως χρησιμοποιείται η στοίβα στην κλήση διαδικασιών ή συναρτήσεων;

Πως χρησιμοποιείται η στοίβα στην κλήση διαδικασιών ή συναρτήσεων;

Η έννοια της στοίβας είναι πολύ χρήσιμη στο ίδιο το λογισμικό των γλωσσών προγραμματισμού. Όταν μία διαδικασία ή συνάρτηση καλείται από το κύριο πρόγραμμα, τότε η αμέσως επόμενη διεύθυνση του κύριου προγράμματος, που ονομάζεται διεύθυνση επιστροφής (return address), αποθηκεύεται από το μεταφραστή σε μία στοίβα που ονομάζεται στοίβα χρόνου εκτέλεσης (execution time stack).

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

Σχ. 2 Στοίβα χρόνου εκτέλεσης

Για παράδειγμα, έστω ότι μία διαδικασία a καλεί τη διαδικασία b, που με τη σειρά της καλεί τη διαδικασία c κ.ο.κ. Στην περίπτωση αυτή οι διευθύνσεις επιστροφής εμφανίζονται στη στοίβα με σειρά c, b, a. Μετά την εκτέλεση κάθε διαδικασίας, η διεύθυνση επιστροφής απωθείται από τη στοίβα και ο έλεγχος μεταβιβάζεται στη διεύθυνση αυτή. Το παράδειγμα αυτό δείχνει μία από τις πολλές χρησιμότητες της LIFO ιδιότητας της στοίβας.

 

ΕΡΩΤΗΣΕΙΣ ΣΩΣΤΟΥ ΛΑΘΟΥΣ

  • Οι προτάσεις που ακολουθούν να χαρακτηρισθούν ως Σωστές ή Λανθασμένες.

ΕΡΩΤΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ

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

     

 

ΕΡΩΤΗΣΕΙΣ ΣΥΜΠΛΗΡΩΣΗΣ ΚΕΝΩΝ

  •  

Permanent link to this article: http://pervolischool.edu.gr/computer-science/algorithms-aepp/aepp-theory/sub-programming/