Μάθημα : Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον - Γ ΟΠ3
Κωδικός : 3751010541
3751010541 - ΜΑΡΙΑ ΓΡΑΒΑΛΙΔΟΥ
Περιγραφή Μαθήματος
Πληροφορική
Ομάδας Προσανατολισμού Σπουδών Οικονομίας και Πληροφορικής
2.4.1 Δομή Ακολουθίας
Η ακολουθιακή δομή χρησιμοποιείται μόνο για λίγα, απλά προβλήματα, όπου είναι δεδομένη η σειρά εκτέλεσης όλων των ενεργειών.
Αναπαράσταση Αλγορίθμων με κωδικοποίηση
1) Σε Ψευδογλώσσα:
2) Σε γλώσσα προγραμματισμού "ΓΛΩΣΣΑ"
7.8 Εντολή εκχώρησης & 7.9 Εντολές εισόδου-εξόδου
7.10 Δομή προγράμματος
Βλέπε ΠΑΡΑΡΤΗΜΑ Α - ΟΔΗΓΙΕΣ ΜΕΛΕΤΗΣ ΜΑΘΗΤΗ ΣΕΛ 7 -9 & 18
6.7 Προγραμματιστικά περιβάλλοντα
Τα σύγχρονα προγραμματιστικά περιβάλλοντα τα οποία δημιουργούν ένα πρόγραμμα γραμμένο σε κάποια γλώσσα προγραμματισμού, το μετατρέπουν σε εντολές γλώσσας μηχανής, δηλ. μορφή αναγνωρίσιμη και εκτελέσιμη από τον υπολογιστή.
Για τη δημιουργία, τη μετάφραση και την εκτέλεση ενός προγράμματος απαιτούνται τουλάχιστον τρία προγράμματα: ο συντάκτης, ο μεταγλωττιστής ή διερμηνευτής και ο συνδέτης. Τα σύγχρονα προγραμματιστικά περιβάλλοντα παρέχουν αυτά τα προγράμματα με ενιαίο τρόπο.
Συντάκτης : ειδικό πρόγραμμα για την αρχική σύνταξη - διόρθωσή του προγράμματος (αρχικό ή πηγαίο)
Μεταγλωττιστής: ειδικό μεταφραστικό πρόγραμμα, το οποίο δέχεται ως είσοδο ένα αρχικό ή πηγαίο πρόγραμμα και παράγει ένα ισοδύναμο πρόγραμμα σε γλώσσα μηχανής (αντικείμενο πρόγραμμα). Εκτός από τους μεταγλωττιστές υπάρχουν και οι διερμηνευτές (interpreters). Ο διερμηνευτής διαβάζει μία προς μία τις εντολές του αρχικού προγράμματος και για καθεμία εκτελεί αμέσως μια ισοδύναμη ακολουθία εντολών μηχανής. Ο μεταγλωττιστής ή ο διερμηνευτής ανιχνεύει λοιπόν τα συντακτικά λάθη. Η χρήση μεταγλωττιστή έχει το μειονέκτημα ότι, ένα πρόγραμμα πριν χρησιμοποιηθεί, πρέπει να περάσει και από τη διαδικασία της σύνδεσης. Από την άλλη μεριά η χρήση διερμηνευτή έχει το πλεονέκτημα της άμεσης εκτέλεσης - διόρθωσης, αλλά η εκτέλεση του προγράμματος ειναι πιο αργή, από εκείνη του ισοδύναμου εκτελέσιμου προγράμματος που παράγει ο μεταγλωττιστής. Στα σύγχρονα προγρ/στικά περιβάλλοντα χρησιμοποιείται διερμηνευτής κατά τη φάση δημιουργίας του προγράμματος και μεταγλωττιστής για την τελική έκδοση του προγράμματος
Συνδέτης ή φορτωτής : πρόγραμμα που δέχεται το αντικείμενο πρόγραμμα το οποιο είναι μεν σε μορφή κατανοητή, αλλά συνήθως δεν μπορεί να εκτελεστεί. Χρειάζεται να συμπληρωθεί και να συνδεθεί από τον συνδέτη με άλλα τμήματα προγράμματος απαραίτητα για την εκτέλεσή του, τμήματα που είτε τα γράφει ο προγραμματιστής είτε βρίσκονται στις βιβλιοθήκες (libraries) της γλώσσας. Το αποτέλεσμα του συνδέτη είναι η παραγωγή του
εκτελέσιμου προγράμματος (executable), το οποίο είναι το τελικό πρόγραμμα που εκτελείται από τον υπολογιστή.
Προσοχή! Η δημιουργία του εκτελέσιμου προγράμματος γίνεται μόνο στην περίπτωση που το αρχικό πρόγραμμα δεν περιέχει συντακτικά λάθη. Τα λάθη του προγράμματος είναι γενικά δύο ειδών, λογικά και συντακτικά. Τα συντακτικά λάθη εμφανίζονται στο στάδιο της μεταγλώττισης, ενώ τα λογικά λάθη μόνο στην εκτέλεση.
6.3 Φυσικές και τεχνητές γλώσσες
Φυσικές γλώσσες δημιουργήθηκαν φυσικά με την εξέλιξη του ανθρώπινου είδους και χρησιμοποιούνται για την επικοινωνία μεταξύ των ανθρώπων.
Τεχνητές γλώσσες δημιουργούνται τεχνητά και για συγκεκριμένο σκοπό. Οι γλώσσες προγραμματισμού είναι τεχνητές γλώσσες και αναπτύχθηκαν για την επικοινωνία του ανθρώπου και της μηχανής.
Κοινά Χαρακτηριστικά για Τεχνητές - Φυσικές γλώσσες
Οι τεχνητές γλώσσες, ακολουθούν τις βασικές έννοιες και αρχές της γλωσσολογίας, επιστήμη που μελετά τις φυσικές γλώσσες.Μία γλώσσα προσδιορίζεται από:
| Το Αλφάβητο | σύνολο των στοιχείων που χρησιμοποιείται από τη γλώσσα. Πχ η ελληνική γλώσσα περιέχει τα εξής στοιχεία: Τα γράμματα του αλφαβήτου πεζά- κεφαλαία 48 (Α-Ω και α-ω), τα 10 ψηφία (0-9) και όλα τα σημεία στίξης. |
| Το λεξιλόγιο | αποτελείται από ένα υποσύνολο όλων των ακολουθιών που δημιουργούνται από τα στοιχεία του αλφαβήτου, τις λέξεις που είναι δεκτές από τη γλώσσα. |
|
Η Γραμματική
|
Το Τυπικό ορίζει τις μορφές με τις οποίες μία λέξη είναι αποδεκτή. Το Συντακτικό είναι οι κανόνων που καθορίζουν την διάταξη & σύνδεση των λέξεων για τη δημιουργία προτάσεων. |
| Η σημασιολογία | είναι οι κανόνες που καθορίζουν το νόημα των λέξεων-εκφράσεων- προτάσεων που χρησιμοποιούνται σε μία γλώσσα. |
Διαφορές φυσικών - τεχνητών γλωσσών
Μία βασική διαφορά μεταξύ φυσικών και τεχνητών γλωσσών είναι η δυνατότητα εξέλιξής τους. Οι φυσικές γλώσσες εξελίσσονται συνεχώς με την πάροδο του χρόνου, ακολουθώντας τις ανάγκες στην ανθρώπινη επικοινωνία. Αντίθετα οι τεχνητές γλώσσες χαρακτηρίζονται από στασιμότητα, αφού κατασκευάζονται συνειδητά για ένα συγκεκριμένο σκοπό.
Οι γλώσσες προγραμματισμού με την δημιουργία νεότερων εκδόσεων τους, συχνά βελτιώνονται και μεταβάλλονται από τους δημιουργούς τους, με σκοπό να διορθωθούν αδυναμίες και να καλυφθούν νέες ανάγκες.
6.1 Η έννοια του προγράμματος
Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία στάδια:
1.Προσδιορισμό του προβλήματος.
2.Ανάπτυξη του αντίστοιχου αλγορίθμου.
3.Διατύπωση του αλγορίθμου σε κατανοητή μορφή από τον υπολογιστή
Ο Προγραμματισμός ασχολείται με το τρίτο αυτό στάδιο, δηλ. με τη δημιουργία του προγράμματος
Το πρόγραμμα αποτελείται από εντολές που είναι κατανοητές απ΄τον υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος. Το πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.
Οι γλώσσες προγραμματισμού αναπτύχθηκαν με σκοπό την επικοινωνία του ανθρώπου με τον υπολογιστή. Οι γλώσσες προγραμματισμού είναι "τεχνητές γλώσσες".
Προσοχή:
Το πρόγραμμα δεν είναι απλά η υλοποίηση του αλγορίθμου αλλά βασικό στοιχείο του είναι τα δεδομένα και οι δομές δεδομένων επί των οποίων ενεργεί. Αλγόριθμοι και δομές δεδομένων είναι μια αδιάσπαστη ενότητα.
Ο προγραμματισμός είναι αυτός που δημιουργεί την ψευδαίσθηση ότι οι υπολογιστές είναι έξυπνες μηχανές που επιλύουν τα πολύπλοκα προβλήματα. Ο υπολογιστής είναι μία μηχανή που καταλαβαίνει μόνο δύο καταστάσεις, δύο αριθμούς, το 0 και το 1, τα ψηφία του δυαδικού συστήματος και μπορεί να κάνει είναι στοιχειώδεις ενέργειες (αποθήκευση, ανάκτηση, εκτέλεση αριθμ. πράξεων, σύγκριση) σε ακολουθίες αυτών των δύο ψηφίων, με ασύλληπτη ταχύτητα.
6.4 Τεχνικές σχεδίασης προγραμμάτων
1 Ιεραρχική σχεδίαση προγράμματος: Η τεχνική της ιεραρχικής σχεδίασης ή σχεδίασης "από επάνω προς τα κάτω" στοχεύει στη διάσπαση του προβλήματος σε μια σειρά από απλούστερα υποπροβλήματα, τα οποία να είναι εύκολο να επιλυθούν, οδηγώντας στην επίλυση του αρχικού προβλήματος. Για την υποβοήθηση χρησιμοποιούνται διαγραμματικές τεχνικές.
2 Τμηματικός προγραμματισμός: Η ιεραρχική σχεδίαση προγράμματος υλοποιείται με τον τμηματικό προγραμματισμό. Μετά την ανάλυση του προβλήματος σε αντίστοιχα υποπροβλήματα, κάθε υποπρόβλημα αποτελεί ανεξάρτητη ενότητα (module), έτσι γράφονται ξεχωριστά αντίστοιχα τμήματα προγράμματος.
3 Δομημένος προγραμματισμός: Ο δομημένος προγραμματισμός στηρίζεται στη χρήση τριών και μόνο στοιχειωδών λογικών δομών, της ακολουθίας, της επιλογής και της επανάληψης. Όλα τα προγράμματα μπορούν να γραφούν χρησιμοποιώντας μόνο αυτές τις τρεις δομές καθώς και συνδυασμό τους. Κάθε πρόγραμμα όπως και κάθε ενότητα προγράμματος έχει μόνο μία είσοδο και μόνο μία έξοδο. Ο όρος δομημένος προγραμματισμός περιέχει τόσο την ιεραρχική σχεδίαση όσο και τον τμηματικό προγραμματισμό.
Ο δομημένος προγραμματισμός δημιουργήθηκε για να μειώσει τη χρήση της εντολής GOTO, η οποία αλλάζει τη ροή εκτέλεσης προγράμματος. Αντι για σειριακή εκτέλεση, η GOTO διαμορφώνει εκτέλεση με διακλαδώσεις.
Πλεονεκτήματα δομημένου προγραμματισμού
- Δημιουργία απλούστερων προγραμμάτων.
- Περιορισμός των λαθών κατά την ανάπτυξη του προγράμματος.
- Διευκόλυνση στην ανάγνωση και κατανόηση του προγράμματος από τρίτους.
- Άμεση μεταφορά των αλγορίθμων σε προγράμματα.
- Διευκόλυνση ανάλυσης του προγράμματος σε τμήματα.
- Ευκολότερη διόρθωση και συντήρηση.
6.5 Αντικειμενοστραφής προγραμματισμός:
Η αντικειμενοστραφής σχεδίαση εκλαμβάνει ως πρωτεύοντα δομικά στοιχεία ενός προγράμματος τα δεδομένα, από τα οποία δημιουργούνται με κατάλληλη μορφοποίηση τα αντικείμενα (objects). Αυτή η σχεδίαση αποδείχθηκε ότι αποδίδει καλύτερα,πιο ευέλικτα και επαναχρησιμοποιήσιμα προγράμματα. Ο αντικειμενοστραφής προγραμματισμός χρησιμοποιεί την ιεραρχική σχεδίαση, τον τμηματικό προγραμματισμό και ακολουθεί τις αρχές του δομημένου προγραμματισμού.
Διαφορά αντικειμενούς προγραμματισμού - λοιπών τεχνικών: Η αντικειμενοστραφής σχεδίαση εκλαμβάνει ως πρωτεύοντα δομικά στοιχεία ενός προγράμματος τα δεδομένα, από τα οποία δημιουργούνται με κατάλληλη μορφοποίηση τα αντικείμενα (objects). Οι άλλες τεχνικές εκλαμβάνουν ως δομικά στοιχεία τις ενέργειες που εφαρμόζονται πάνω στα δεδομένα
4.1 Ανάλυση προβλημάτων
Η δημιουργία ενός αλγορίθμου αποσκοπεί στην επίλυση ενός προβλήματος. Ένα πρόβλημα πολλές φορές δεν επιλύεται με μία μόνο λύση αλλά με περισσότερες, οι οποίες έχουν προέλθει από ποικίλες και διαφορετικές προσεγγίσεις, τεχνικές και μεθόδους. Στόχος μας πάντα είναι η πρόταση των πιο έξυπνων/ αποδοτικών λύσεων (αλγορίθμων). Γι'αυτό είναι απαραίτητο να γίνεται μία καλή ανάλυση του κάθε προβλήματος.
Η ανάλυση ενός προβλήματος σε ένα σύγχρονο υπολογιστικό περιβάλλον περιλαμβάνει τα εξης στάδια:
την καταγραφή της υπάρχουσας πληροφορίας για το πρόβλημα,
την αναγνώριση των ιδιαιτεροτήτων του προβλήματος,
την αποτύπωση των συνθηκών και προϋποθέσεων υλοποίησής του
την πρόταση επίλυσης με χρήση κάποιας μεθόδου (σχεδίαση αλγορίθμου)
την τελική επίλυση με χρήση υπολογιστικών συστημάτων (δημιουργία Προγράμματος με βάση τον Αλγόριθμο)
Προσοχή : Δεν υπάρχει ένας ενιαίος κανόνας, μία γενική φόρμουλα για την επίλυση όλων των προβλημάτων!
Υπάρχουν όμως "συγγενή" προβλήματα, δηλαδή προβλήματα που μπορούν να αναλυθούν με παρόμοιο τρόπο και να αντιμετωπισθούν με αντίστοιχες μεθόδους και τεχνικές.
Η ανάλυσης των προβλημάτων μπορεί:
να παρέχει ένα γενικό πρότυπο κατάλληλο για την επίλυση προβλημάτων σε ευρείας κλίμακας,
να αναπαρασταθεί με κοινές δομές δεδομένων και ελέγχου(που υποστηρίζονται από τις περισσότερες σύγχρονες γλώσσες προγραμματισμού),
παρέχουν τη δυνατότητα καταγραφής των απαιτήσεων της μεθόδου επίλυσης, έτσι ώστε να μπορεί να γίνει επακριβής εκτίμηση των αποτελεσμάτων.
2.1 Τι είναι αλγόριθμος
Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος.
Κριτήρια Αλγορίθμου
Κάθε σειρά ενεργειών απαραίτητα πρέπει να ικανοποιεί 5 κριτήρια ώστε να αποτελεί Αλγόριθμο
| Είσοδος | Κατά την εκκίνηση εκτέλεσης του αλγορίθμου καμία, μία ή περισσότερες τιμές δεδομένων πρέπει να δίνονται ως είσοδοι στον αλγόριθμο |
| Έξοδος | Στο τέλος πρέπει να εξάγει κάποιο αποτέλεσμα μετά την επεξεργασία των δεδομένων. Μπορούν να είναι περισσότερες από μία. |
| Καθοριστικότητα | Κάθε εντολή δεν πρέπει να αφήνει περιθώρια ασάφειας ή παρερμηνείας. Πρέπει να είναι δηλαδή αυστηρά καθορισμένη |
| Περατότητα | Ο αλγόριθμος να τελειώνει μετά από πεπερασμένα βήματα εκτέλεσης των εντολών του. Μία διαδικασία που δεν τελειώνει μετά από ένα συγκεκριμένο αριθμό βημάτων, λέγεται απλά υπολογιστική διαδικασία |
| Αποτελεσματικότητα | Κάθε εντολή του αλγορίθμου πρέπει να είναι απλή. Δεν αρκεί να έχει ορισθεί, αλλά πρέπει να είναι και εκτελέσιμη. |
2.2 Σπουδαιότητα αλγορίθμων
Η έννοια του αλγορίθμου είναι θεμελιώδης για την επιστήμη της Πληροφορικής. Η Πληροφορική, λοιπόν, μπορεί να ορισθεί ως η επιστήμη που μελετά τους αλγορίθμους από τις ακόλουθες 4 σκοπιές:
| Υλικού | Η ταχύτητα εκτέλεσης ενός αλγορίθμου επηρεάζεται από τις διάφορες τεχνολογίες και αρχιτεκτονικές υλικού |
| Γλωσσών Προγραμματισμου | Το είδος της γλώσσας προγραμματισμού που χρησιμοποιείται αλλάζει τη δομή και τον αριθμό των εντολών ενός αλγορίθμου. Μία γλώσσα που είναι χαμηλότερου επιπέδου είναι ταχύτερη από μία υψηλοτέρου επιπέδου |
| Θεωρητική | Η προσέγγιση αυτή ασχολείται με την εξέταση του ερωτήματος αν πράγματι υπάρχει ή όχι κάποιος πιο αποδοτικός αλγόριθμος για την επίλυση ενός προβλήματος |
| Αναλυτικη | Μελετώνται οι υπολογιστικοί πόροι που απαιτούνται από κάθε αλγόριθμο |
2.3 Περιγραφή και αναπαράσταση αλγορίθμων
Τέσσερις είναι οι βασικοί τρόποι αναπαράστασης ενός αλγορίθμου:
- Ελεύθερο κείμενο, που αποτελεί τον πιο αδόμητο τρόπο παρουσίασης αλγορίθμου. Πρόβλημα: αποτελεσματικότητα.
- Διάγραμμα ροής, που συνιστά έναν πιο γραφικό τρόπο παρουσίασης του αλγορίθμου. Σπανίζει η αποκλειστική τους χρήση.
- Φυσική γλώσσα που εκτελείται κατά βήματα. Πρόβλημα: καθοριστικότητα.
- Κωδικοποίηση του αλγορίθμου σε ψευδογλώσσα ή γλώσσα προγραμματισμού.
2.4 Βασικές συνιστώσες/εντολές ενός αλγορίθμου (Εισαγωγή)
Για τις βασικές εντολές ενός αλγορίθμου με αναπαράσταση διάγραμμα ροής χρησιμοποιούμε τα εξής σχήματα:
1.1 Η έννοια πρόβλημα
Πρόβλημα: Με τον όρο Πρόβλημα εννοείται μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής.
1.2 Κατανόηση προβλήματος
Για την αντιμετώπιση κάθε προβλήματος πρέπει προηγουμένως να έχει προηγηθεί η κατανόησή του. Αποτελεί συνάρτηση δύο παραγόντων:
α. Σωστή διατύπωση εκ μέρους του δημιουργού του,
β. Σωστή ερμηνεία από αυτόν που θα το επιλύσει.
Δεδομένο: Με τον όρο δεδομένο δηλώνεται οποιοδήποτε στοιχείο μπορεί να γίνει αντιληπτό από έναν τουλάχιστον παρατηρητή με μία από τις πέντε αισθήσεις του.
Πληροφορία: Με τον όρο πληροφορία αναφέρεται οποιοδήποτε γνωσιακό στοιχείο προέρχεται από επεξεργασία δεδομένων.
Επεξεργασία Δεδομένων: Ο όρος επεξεργασία δεδομένων δηλώνει εκείνη τη διαδικασία κατά την οποία ένας “μηχανισμός” (πχ ανθρώπινος εγκέφαλος,Η/Υ) δέχεται δεδομένα, τα επεξεργάζεται σύμφωνα με έναν προκαθορισμένο τρόπο και αποδίδει πληροφορίες.
Οι απαιτούμενες ενέργειες για την αντιμετώπιση του προβλήματος (όσο αναφορά τα δεδομένα) είναι
Εισοδος: Καταχώριση δεδομένων προβλήματος
Έλεγχος: Τα δεδομένα ελέγχονται ως προς την ορθότητά τους και γίνονται οι απαραίτητες διορθώσεις, αν απαιτείται.
Επεξεργασία :Γίνονται οι απαραίτητοι υπολογισμοί προκειμένου να βρεθούν τα ζητούμενα αποτελέσματα.
Έξοδος: Εξαγωγή αποτελεσμάτων
1.3 Δομή προβλήματος
Δομή προβλήματος: Με τον όρο δομή ενός προβλήματος αναφερόμαστε στα συστατικά του μέρη, στα επιμέρους τμήματα που το αποτελούν καθώς επίσης και στον τρόπο που αυτά τα μέρη συνδέονται μεταξύ τους. Η καταγραφή της δομής ενός προβλήματος σημαίνει ότι έχει ήδη αρχίσει η ανάλυση του προβλήματος.
Ανάλυση προβλήματος: Το αρχικό πρόβλημα αναλύεται σε άλλα απλούστερα (υπό)προβλήματα. Με την σειρά τους τα νέα προβλήματα αναλύονται σε άλλα ακόμη πιο απλά. Η διαδικασία αυτή σταματά όταν τα προβλήματα που προέκυψαν είναι αρκετά απλά και η αντιμετώπιση τους χαρακτηριστεί δυνατή.
Όσο περισσότερο προχωράει η ανάλυση τόσο ελαττώνεται η δυσκολία αντιμετώπισής τους. Η ανάλυση του προβλήματος σε απλούστερα, αναδύει τη δομή του προβλήματος.
Η ανάλυση μπορεί να γίνει είτε φραστικά είτε γραφικά.
Διαγραμματική αναπαράσταση: Είναι μία συχνά χρησιμοποιούμενη γραφική απεικόνιση της δομής:
- Το αρχικό πρόβλημα αναπαρίσταται από ένα ορθογώνιο παραλληλόγραμμο.
- Κάθε ένα από τα υποπροβλήματα, στα οποία αναλύεται το αρχικό, αναπαρίσταται επίσης από ένα παραλληλόγραμμο.
- Τα παραλληλόγραμμα που αντιστοιχούν στα υποπροβλήματα, σχηματίζονται ένα επίπεδο χαμηλότερα.
1.4 Καθορισμός απαιτήσεων
Καθορισμός απαιτήσεων: Είναι η διαδικασία κατά την οποία πρέπει να κάνουμε:
α. τον επακριβή προσδιορισμό των δεδομένων που παρέχει το πρόβλημα καθώς και
β. την λεπτομερειακή καταγραφή των ζητούμενων που αναμένονται σαν αποτελέσματα της επίλυσης.
Τα δεδομένα δεν είναι πάντα εύκολο να διακριθούν. (Σε πολλά προβλήματα τα δεδομένα θα πρέπει να «ανακαλυφθούν»
μέσα στα λεγόμενα).
Στάδια αντιμετώπισης προβλήματος:
- Κατανόηση (απαιτείται η σωστή και πλήρης αποσαφήνιση των δεδομένων και των ζητούμενων)
- Ανάλυση (το αρχικό πρόβλημα διασπάται σε επιμέρους απλούστερα προβλήματα)
- Επίλυση (μέσω της λύσης των επιμέρους προβλημάτων, υλοποιείται η λύση).
Ημερολόγιο
Ανακοινώσεις
Όλες...- - Δεν υπάρχουν ανακοινώσεις -