2η ΕΝΟΤΗΤΑ 2.2.10 ΤεκμηρίωσηΘέματα Θεωρητικής Η τεκμηρίωση δεν αποτελεί μια ξεχωριστή φάση στην ανάπτυξη ενόςΕπιστήμης των Υπολογιστών αλγορίθμου, αλλά μία παράλληλη διαδικασία που συμπληρώνει όλα τα στάδια ανάπτυξής του.Οι λόγοι τεκμηρίωσης είναι:• η ευκολία ανάπτυξης αλ- Με τον όρο τεκμηρίωση εννοείται το σύνολο του γραπτού υλικού που περιγράφει τα συστατικά μέρη και τις λειτουργίες του αλγορίθ- γορίθμου σε περίπτωση μου ή τις τροποποιήσεις που έγιναν σε έναν αλγόριθμο. που ζητείται αλγόριθμος με παρόμοιες λειτουργίες Η τεκμηρίωση μπορεί να διακριθεί: με υπάρχοντα αλγόριθμο.• Η ευκολία στις τροποποι- •• Τεκμηρίωση ανάπτυξης. Αναφέρεται στις προδιαγραφές του προ- ήσεις ενός υπάρχοντος βλήματος, τι πρόκειται να κάνει ο αλγόριθμος και τη σύνδεσή του αλγορίθμου. με άλλους αλγορίθμους.• Ο περιορισμός των ελέγ- χων μόνο σε συγκεκριμέ- •• Τεκμηρίωση ελέγχου. Αναφέρεται στα δεδομένα ελέγχου που χρη- να σημεία, αφού για τα σιμοποιήθηκαν προκειμένου να δοκιμαστεί ο αλγόριθμος, αν έχουν υπόλοιπα θα υπάρχει αρ- διερευνηθεί οι ακραίες περιπτώσεις και ποιες είναι αυτές και τέλος χείο δοκιμής μαζί με απο- αν έχουν καθιερωθεί κάποιες και ποιες συμβάσεις για τη λύση του τελέσματα και συνοδευτι- προβλήματος. κά σχόλια. •• Τεκμηρίωση αλγορίθμου. Αναφέρεται στον τρόπο με τον οποίοΛέξεις κλειδιά έχουν λυθεί τα επιμέρους προβλήματα, τις υποθέσεις που έχουν γί-Αλγόριθμος, Χαρακτηριστι- νει και τους περιορισμούς που έχουν τεθεί. Ακόμα πληροφορίες γιακά αλγορίθμου, Ψευδογλώσ- «ειδικές» τεχνικές που έχουν χρησιμοποιηθεί. Πρέπει σε κάθε βήμασα, Διάγραμμα ροής, Μετα- να αναφερθεί με λεπτομέρεια, πολλές φορές κουραστική, αλλά δυ-βλητές, Εκφράσεις, Εντολή στυχώς αναγκαία, η λύση που χρησιμοποιήθηκε και τα δεδομένα μεεκχώρησης, Δομή ακολου- τα οποία ελέγχθηκε. Ένα υπόμνημα των μεταβλητών που χρησιμο-θίας, Δομή επιλογής, Δομή ποιούνται είναι χρήσιμο για την τεκμηρίωση αλλά και για την αρχι-επανάληψης, Δομές δεδομέ- κή ανάπτυξη του αλγόριθμου.νων, Πίνακας, Ουρά, Στοίβα,Γράφος, Δένδρο, Αναζήτηση, Η απλούστερη και πλέον στοιχειώδης τεκμηρίωση αυτής της μορφήςΤαξινόμηση, Εκσφαλμάτω- γίνεται με την εισαγωγή γραμμών σχολίων μέσα στον αλγόριθμο.ση, Τεκμηρίωση. Ανακεφαλαίωση Στις παραγράφους του κεφαλαίου παρουσιάστηκαν η έννοια του αλ- γορίθμου μαζί με τα χαρακτηριστικά που χρειάζεται να έχει, οι τρό- ποι παράστασης αλγορίθμων, τα συστατικά τους μέρη, οι δομές δεδο- μένων και διατυπώθηκαν βασικά στοιχεία ανάλυσης και θεωρίας αλ- γορίθμων. Επιπλέον, παρουσιάστηκε η ψευδογλώσσα ως βασικότερος τρόπος ανάπτυξης αλγορίθμων, προκειμένου να υπάρχει ανεξαρτησία από τις γλώσσες προγραμματισμού. Παρουσιάστηκαν πολλά παραδείγ- ματα απλών αλγορίθμων, ενώ αναπτύχθηκαν αλγόριθμοι αναζήτησης και ταξινόμησης. Τέλος, στο κεφάλαιο αυτό, επιχειρήθηκε να αναδει- χθεί ότι οι αλγόριθμοι και οι δομές δεδομένων έχουν ισχυρότατη σχέση και αποτελούν τα βασικά συστατικά για την ανάπτυξη προγραμμάτων.50
Ερωτήσεις - Θέματα προς συζήτηση - Δραστηριότητες ΚΕΦΑΛΑΙΟ 2.21. Τι είναι αλγόριθμος; Καταγράψτε ή συζητή- 16. Να μετατρέψετε σε εντολές εκχώρησης τις παρακάτω φράσεις:στε με τους συμμαθητές σας έναν αλγόριθμο. Α. Η μεταβλητή α έχει διπλάσια τιμή από τη μεταβλητή β2. Μέσα από παιχνίδι ρόλων να υλοποιήσετε Β. Η μεταβλητή ΜΟ είναι ο μέσος όρος των α, β, γκαι να εκτελέσετε τον αλγόριθμο του παρα- Γ. Η μεταβλητή β αυξάνεται κατά 2 Δ. Η μεταβλητή i μειώνεται κατά α και βδείγματος 2.5 σειριακά και παράλληλα. Ε. Η μεταβλητή i είναι το μισό του αθροί- σματος των α και β3. Με ποιους τρόπους γίνεται η αναπαράστασηαλγορίθμων;4. Ποια η διαφορά δεδομένου και πληροφορίας;Να δώσετε ένα παράδειγμα.5. Ποιοι είναι οι συνηθέστεροι τύποι δεδομέ-νων; Ποιος τύπος λαμβάνει τις λιγότερες τι- 17. Να επιλέξετε την τιμή της y που είναι αποτέ- λεσμα κάθε εντολής.μές;6. Τι είναι η δομή δεδομένων;7. Ποιες δομές δεδομένων είναι μη γραμμικές; Εντολές εκχώρησης Τιμή της y i. y←(A_M(7 / 2) mod 3) + 18. Ποια είναι τα είδη των τελεστών;9. Ποια είναι η χρήση της δομής ακολουθίας; ii. y←10 div 9 - 10 mod 9 A. 1 iii. y ←10 mod 2 + Α_Τ(2 - 3) B. 0Να δώσετε έναν αλγόριθμο σε ψευδογλώσσα iv. y ←Α_Μ(9 / 2 / 3)με τη χρήση της δομής ακολουθίας.10. Να περιγράψετε τη λειτουργία των τριώνεντολών επιλογής. 18. Αντιστοιχίστε τις εκφράσεις της στήλης Α με τις λογικές σταθερές της στήλης Β με δεδο-11. Να περιγράψετε τη λειτουργία των τριών μένο ότι α = 10, β = 5 και γ = 3.εντολών επανάληψης.12. Να εξηγήσετε πότε δεν μπορεί να χρησιμο-ποιηθεί η εντολή επανάληψης Για. Στήλη Α Στήλη Β i. α ≠ β και (γ - β) < 013. Ποιες είναι οι λειτουργίες ή πράξεις επί τωνδομών δεδομένων; ii. (α > β ή α > γ) και (γ > β) iii. α > β ή α > γ και γ > β14. Να περιγράψετε τον αλγόριθμο ταξινόμησης Α. Αληθήςεπιλογής σε πίνακα.15. Σημειώστε τις σωστές απαντήσεις iv. όχι (α > β) ή γ ≤ β Β. ΨευδήςΑ. Ποια από τα παρακάτω αποτελούν αριθ- v. α > β ή (β - γ) > 0 και α < 0 vi. α > β ή (β + 3) < γ και α < γμητική σταθερά; i. 2009 ii. ''2009'' iii. Εμφάνισε iv. ''Αλγόριθμος'' 19. Τι εμφανίζουν τα επόμενα τμήματα αλγορίθμ ων;Β. Η λογική πράξη ή μεταξύ δύο προτάσεωνείναι αληθής όταν: S←0 S←0 i←1 i←1 i. Οποιαδήποτε από τις προτάσεις Όσο i ≤ 9 επανάλαβε Όσο i ≤ 9 επανάλαβε είναι αληθής i←i+2 S←S+i S←S+i i←i+2 ii. Η πρώτη πρόταση είναι αληθής Τέλος_επανάληψης Τέλος_επανάληψης Εμφάνισε S Εμφάνισε S iii. Η πρώτη πρόταση είναι ψευδής iv. Και οι δύο προτάσεις είναι αληθείςΓ. Αν Α και Β ακέραιες μεταβλητές, ποιες απότις παρακάτω εκφράσεις είναι αριθμητικές; 20. Ο νόμος του Νεύτωνα για τη βαρύτητα λέει ότι κάθε σώμα στο σύμπαν έλκει κάθε άλλο i. Α + Β ^ 2 ii. Α > Β + 3 σώμα με δύναμη που δίνεται από τον τύπο iii. Α div 3 ^ Β iv. Α και Β > 3 51
2η ΕΝΟΤΗΤΑ , όπου m1 και m2 είναι οι μά- 27. Ένα επιστημονικό σωματείο έχει 1.200 μέλη. Η γενική συνέλευση του σωματείου είναι σε ζες των δύο σωμάτων (σε κιλά), r η απόστα- απαρτία όταν είναι παρόν το 1/3 των μελών ση μεταξύ τους (σε μέτρα) και G είναι η πα- του. Για να υπερψηφιστεί μια πρόταση, θα γκόσμια βαρυτική σταθερά. Να αναπτύξετε πρέπει περισσότεροι από το 1/2 των παρόντων αλγόριθμο ο οποίος θα διαβάζει τις δύο μά- μελών να ψηφίσουν υπέρ. Να αναπτύξετε αλ- ζες, την απόσταση μεταξύ τους και θα υπο- γόριθμο ο οποίος θα διαβάζει τον αριθμό των λογίζει και θα εκτυπώνει τη δύναμη. Δίνεται παρόντων μελών και αν ο αριθμός επιτρέπει ότι G = 6,67 x 10-11 N m2 kg-2. την πραγματοποίηση της ψηφοφορίας, θα δια-21. Στην περίοδο των εκπτώσεων αγοράσατε ένα βάζει τον αριθμό αυτών που ψήφισαν υπέρ της ποδήλατο με έκπτωση 25%. Το ποσό που δώ- πρότασης και θα εμφανίζει το αποτέλεσμα της σατε για το ποδήλατο ήταν 100 ευρώ. Να ψηφοφορίας, δηλαδή αν υπερψηφίστηκε, αν αναπτύξετε αλγόριθμο ο οποίος θα υπολογί- καταψηφίστηκε ή αν δεν μπορεί να ψηφιστεί. ζει την αρχική τιμή του ποδηλάτου.22. Να αναπτύξετε αλγόριθμο ο οποίος θα διαβά- 28. Ένας συνδρομητής μιας εταιρείας κινητής ζει έναν αριθμό και θα υπολογίζει και θα εμ- τηλεφωνίας έχει επιλέξει ένα πρόγραμμα με φανίζει το γινόμενο αυτού του αριθμού επί το πάγιο 50 ευρώ τον μήνα. Στο πρόγραμμα δι- τελευταίο ψηφίο του. Θεωρήστε ότι ο αριθ- καιούται τις ακόλουθες παροχές: μός είναι θετικός και ακέραιος.23. Να αναπτύξετε αλγόριθμο ο οποίος θα δια- Παροχές Πλήθος βάζει έναν πραγματικό αριθμό με 2 δεκαδικά Λεπτά ομιλίας/μήνα 1.000 ψηφία και θα τον στρογγυλοποιεί στον πλη- SMS/μήνα 1.000 σιέστερο ακέραιο. Για παράδειγμα, αν διαβα- MB/μήνα 1.000 στεί ο αριθμός 4,23, να εμφανίζει 4, ενώ αν είναι ο 4,70 να εμφανίζει 5. Ωστόσο, αν ξεπεράσει τον αριθμό 1.000 σε24. Να αναπτύξετε αλγόριθμο ο οποίος θα δια- κάποια από τις παραπάνω παροχές, τότε χρε- βάζει έναν ακέραιο αριθμό και θα υπολογίζει ώνεται ως εξής για κάθε παροχή που ξεπερ- και θα εμφανίζει τον επόμενο άρτιο. νάει τα 1.000:25. Σε έναν λογαριασμό τραπέζης παρέχεται κλι- μακωτά το ακόλουθο επιτόκιο: Επιπλέον Πλήθος Κλήσεις ομιλίας 0,0055 €/δευτερόλεπτο Ποσό Επιτόκιο SMS ≤ 5.000 1,8% το έτος MB 0,08 €/SMS > 5.000 1,5% το έτος 0,05 €/MB Να αναπτύξετε αλγόριθμο ο οποίος θα διαβά- Να αναπτύξετε αλγόριθμο ο οποίος θα διαβά- ζει το ποσό χρημάτων που έχει ο λογαριασμός ζει τα λεπτά ομιλίας, το πλήθος των SMS, το και θα υπολογίζει και θα εμφανίζει τον τόκο πλήθος των MB και ανάλογα θα εμφανίζει τη που θα λάβει μετά από ένα έτος, καθώς και το μηνιαία χρέωση του καταναλωτή. συνολικό ποσό χρημάτων μαζί με τον τόκο. 29. Να αναπτύξετε αλγόριθμο ο οποίος θα εκτυπώ-26. Να αναπτύξετε αλγόριθμο ο οποίος θα δια- νει τις τιμές της συνάρτησης f(x)=4log(5+e3x + 2) βάζει το τρέχον έτος και αν αυτό είναι από όταν το x παίρνει τις τιμές στο διάστημα [10, 50] το 2001 μέχρι και το 2099 να εμφανίζει το με βήμα 0,5. μήνυμα «21ος αιώνας». Αν το έτος είναι από 30. Να αναπτύξετε αλγόριθμο ο οποίος θα εμφα- το 2002 και πάνω, να εμφανίζει το μήνυμα νίζει όλους τους τριψήφιους αριθμούς που το «Χρήση του €». άθροισμα των ψηφίων τους είναι μεγαλύτερο ή ίσο του 12. 31. Να αναπτύξετε αλγόριθμο ο οποίος θα υπο- λογίζει το ημίτονο ενός αριθμού x με βάση52
ΚΕΦΑΛΑΙΟ 2.2 τον επόμενο τύπο ποιος είναι ο μικρότερος μέσος όρος. Θε- ωρήστε ότι είναι μοναδικός.32. Να αναπτύξετε αλγόριθμο ο οποίος θα δια- Δ. Θα εμφανίζει το μέσο όρο όλων των μα- βάζει γράμματα μέχρι να βρει τρεις φορές θητών. το γράμμα Α. Όταν σταματήσει το διάβα- Ε. Θα εμφανίζει με κατάλληλα μηνύματα το σμα γραμμάτων, ο αλγόριθμος θα εκτυπώνει ποσοστό των μαθητών με μέσο όρο μεγα- πόσα συνολικά γράμματα διαβάστηκαν. λύτερο του 18. 37. Ενοποιείστε τους αλγορίθμους των παραδειγ-33. Να αναπτύξετε αλγόριθμο ο οποίος θα δια- μάτων 2.23, 2.24 και 2.25 σε έναν ενιαίο αλ- βάζει αριθμούς, μέχρι να διαβαστεί ο αριθμός γόριθμο, στον οποίο να προτάξετε ένα μενού μηδέν. Ο αλγόριθμος θα εκτυπώνει το άθροι- επιλογής μιας λειτουργίας. (βλ. παρ. 2.17). σμα και το πλήθος των αριθμών που δόθηκαν 38. Στο πλαίσιο των εικονικών μαθητικών επιχει- και ήταν μεγαλύτεροι του 50. ρήσεων, να αναπτύξετε αλγόριθμο ο οποίος: Α. Θα διαβάζει και θα αποθηκεύει σε πίνακα34. Ένα ψηφιακό φωτογραφικό άλμπουμ έχει τις εισπράξεις μιας επιχείρησης για κάθε αποθηκευτικό χώρο Ν Μbytes. Να αναπτύ- μήνα ενός σχολικού έτους. ξετε αλγόριθμο ο οποίος θα διαβάζει το μέ- Β. θα ταξινομεί τον πίνακα των εισπράξεων γεθος της κάθε φωτογραφίας που επιχειρεί- σε φθίνουσα σειρά και θα εμφανίζει τον ται να αποθηκευτεί στο άλμπουμ, μέχρι το ταξινομημένο πίνακα. άλμπουμ να μη χωράει άλλη φωτογραφία. Ο Γ. θα εμφανίζει τη μικρότερη και τη μεγα- αλγόριθμος θα επαναλαμβάνεται και θα στα- λύτερη είσπραξη της επιχείρησης. ματά αν το μέγεθος της φωτογραφίας που 39. Τροποποιείστε τον αλγόριθμο του παραδείγ- προσπαθεί κάποιος να αποθηκεύσει είναι με- ματος 2.28, ώστε να βρίσκει το μέσο όρο γαλύτερο από τον διαθέσιμο χώρο του άλ- κάθε μαθήματος (υποδ. Απαιτείται ο υπολο- μπουμ. Όταν η εισαγωγή φωτογραφιών στα- γισμός αθροισμάτων κατά στήλη). ματήσει, ο αλγόριθμος θα εκτυπώνει το μή- 40. Ο επόμενος αλγόριθμος εκτελεί σειριακή ανα- νυμα «Δεν χωράει». Στην περίπτωση που πε- ζήτηση του στοιχείου Κ στον πίνακα Α. Εντο- ρίσσεψε χώρος να τον εκτυπώνει. Τέλος, να πίστε τις διαφορές με τον αλγόριθμο του πα- εκτυπώνει το πλήθος των φωτογραφιών που ραδείγματος 2.29. Ποιος είναι προτιμότερος αποθηκεύτηκαν. και γιατί; Να λάβετε υπόψη την περίπτωση επιτυχημένης και αποτυχημένης αναζήτησης.35. Τροποποιείστε τον αλγόριθμο του παραδείγ- ματος 2.26, ώστε να βρίσκει το γινόμενο των Αλγόριθμος Αναζήτηση2 στοιχείων του πίνακα. Δεδομένα // Α, Ν, Κ //36. Να αναπτύξετε αλγόριθμο ο οποίος: Α. Θα διαβάζει το πλήθος των μαθητών ενός Βρέθηκε ← Ψευδής λυκείου. Β. Θα διαβάζει το μέσο όρο βαθμολογίας Θέση ← 0 κάθε μαθητή ο οποίος θα εισάγεται σε πί- νακα. Ο μέσος όρος βαθμολογίας κάθε Για i από 1 μέχρι Ν μαθητή θα πρέπει να ελέγχεται ώστε να είναι μεγαλύτερος ή ίσος του (ένα) 1 και Αν Κ = Α[i] τότε μικρότερος ή ίσος του είκοσι (20). Γ. Θα εμφανίζει σε ποια θέση βρίσκεται και Θέση ← i Βρέθηκε ← Αληθής Tέλος_αν Τέλος_επανάληψης Αποτελέσματα // Βρέθηκε, Θέση // Τέλος Αναζήτηση2 41. Στον αλγόριθμο του παραδείγματος 2.29 εί- ναι γνωστό από την εκφώνηση, ότι δεν μπο- 53
2η ΕΝΟΤΗΤΑ Β. Θα διαβάζει ένα ζητούμενο όνομα. Γ. Θα καλεί αλγόριθμο, ο οποίος θα αναζη- ρεί να υπάρχει στον πίνακα δεύτερη φορά το ίδιο σχολείο. Αν σε έναν πίνακα δεν είναι τά στον πίνακα το όνομα που διαβάστη- γνωστό αν υπάρχουν ή όχι επαναλήψεις των κε στο προηγούμενο ερώτημα και θα επι- ίδιων στοιχείων, πώς πρέπει να αντιμετωπι- στρέφει το πλήθος των ατόμων που υπάρ- στεί το πρόβλημα της αναζήτησης; Δώστε χουν με το όνομα αυτό. Ο καλών αλγό- ένα σχετικό αλγόριθμο. ριθμος θα εκτυπώνει το πλήθος.42. Αν ο πίνακας Α του παραδείγματος 2.29 ήταν 46. Να εκτελέσετε το παρακάτω τμήμα αλ- ταξινομημένος, μήπως αυτή η επί πλέον γνώ- γορίθμου ση μπορεί να επιφέρει κάποια βελτίωση στον αλγόριθμο σειριακής αναζήτησης; Αν ναι, εκ- x ← 20 πονήστε τον τροποποιημένο αλγόριθμο.43. Να αναπτύξετε αλγόριθμο ο οποίος θα δια- Σ←0 βάζει τις δικαιολογημένες και τις αδικαιολό- γητες απουσίες ενός μαθητή καθώς και τον Για α από 1 μέχρι 10 με_βήμα 3 μέσο όρο του στα προφορικά και θα καλεί αλγόριθμο ο οποίος θα δέχεται τα παραπάνω x←x-α στοιχεία και θα επιστρέφει το μήνυμα: • «Έχει δικαίωμα εξέτασης τον Ιούνιο», αν Σ←Σ+x ο μαθητής έχει μέχρι 64 απουσίες ή έχει Αν Σ mod 2 = 0 τότε μέχρι 114 απουσίες από τις οποίες οι αδι- καιολόγητες δεν ξεπερνούν τις 64 ή έχει x←x+1 μέχρι 164 απουσίες από τις οποίες οι αδι- καιολόγητες δεν ξεπερνούν τις 64 και ο Τέλος_αν μέσος όρος του στα προφορικά είναι πάνω από 15. Τέλος_επανάληψης • «Έχει δικαίωμα εξέτασης τον Σεπτέμ- βριο», αν ο μαθητής έχει πάνω από 64 και Αποτελέσματα // x // μέχρι 114 απουσίες και οι αδικαιολόγητες ξεπερνούν τις 64 ή έχει πάνω από 114 και 47. Το ακόλουθο τμήμα αλγορίθμου αναπτύ- μέχρι 164 απουσίες από τις οποίες οι αδι- χθηκε για να υπολογίζει το άθροισμα 5 καιολόγητες δεν ξεπερνούν τις 64 αλλά ο αριθμών. Ωστόσο περιέχει λογικά λάθη. μέσος όρος του στα προφορικά δεν είναι Να εντοπίσετε τα λογικά λάθη και να τον πάνω από 15. διορθώσετε. • «Επανάληψη χρονιάς», σε κάθε άλλη πε- ρίπτωση. Διάβασε x Ο καλών αλγόριθμος θα εκτυπώνει το μήνυμα. Σ←044. Να αναπτύξετε αλγόριθμο ο οποίος θα διαβά- Για i από 0 μέχρι 5 ζει έναν ακέραιο θετικό αριθμό, και θα καλεί Διάβασε x αλγόριθμο ο οποίος θα υπολογίζει το πλήθος Σ←Σ+x των ψηφίων του αριθμού. Ο καλούμενος αλ- Τέλος_επανάληψης γόριθμος, θα επιστρέφει το πλήθος των ψη- Εμφάνισε Σ + x φίων του αριθμού. Ο καλών αλγόριθμος θα εκτυπώνει το πλήθος. 48. Το ακόλουθο τμήμα αλγορίθμου αναπτύ-45. Να αναπτύξετε αλγόριθμο ο οποίος: χθηκε για να ελέγχει αν ένας αριθμός εί- Α. Θα διαβάζει και θα καταχωρίζει σε έναν ναι θετικός. Ωστόσο περιέχει λογικό λά- πίνακα 1000 στοιχείων ονόματα. θος. Να το εντοπίσετε. 54 Επανάλαβε Διάβασε α Μέχρις_ότου α < 0
ΚΕΦΑΛΑΙΟ 2.3ΠρογραμματισμόςΣτόχοι του κεφαλαίου αυτού είναι να μπορούν οι μαθητές: Προερωτήσεις να δημιουργούν ευκρινές γνωσιακό και οργανωμένο νοητικό σχή- • Η δημιουργία του αλγορίθ- μα που να περιλαμβάνει τα είδη και τεχνικές προγραμματισμού, με μου αρκεί για να επιλύσεις ένα βάση την πρότερη εμπειρία τους. πρόβλημα στον υπολογιστή; • Γνωρίζεις κάποιες γλώσσες να συνδυάζουν αλγοριθμικές δομές και δεδομένα/δομές δεδομένων προγραμματισμού; για να δημιουργούν κώδικα/πρόγραμμα. • Έχεις ακολουθήσει κάποια μεθοδολογία ή τεχνική για να να διαπιστώνουν ότι οι σημερινές εφαρμογές είναι αρκετά πολύπλο- επιλύσεις ένα πρόβλημα; κες και η δημιουργία τους ακολουθεί συγκεκριμένα μοντέλα ανά- • Ποια νομίζεις ότι είναι η πτυξης εφαρμογών λογισμικού που εξελίσσονται σε συγκεκριμένες δουλειά του προγραμματιστή φάσεις. υπολογιστών;2.3.1 Αναφορά σε γλώσσες προγραμματισμού και Εντολές σε γλώσσα μηχανής «Προγραμματιστικά Υποδείγματα» που καταχωρούν το άθροι- σμα των τιμών δύο θέσεων2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού μνήμης σε μία άλλη.Για να αναπαρασταθούν οι αλγόριθμοι σε μορφή κατανοητή από τον 0000001001011010υπολογιστή αναπτύσσονται προγράμματα. 0000101001011110 0000011011011110 Πρόγραμμα είναι το σύνολο των εντολών που χρειάζεται να δο- θούν στον υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος για την Η περιγραφή των παραπάνω επίλυση του προβλήματος. εντολών είναι η εξής:Η εργασία σύνταξης των προγραμμάτων σε κάποια γλώσσα προγραμ- •• Μετάφερε στον καταχω-ματισμού ονομάζεται προγραμματισμός και τα άτομα που γράφουν ρητή το περιεχόμενο τηςκαι συντάσσουν ένα πρόγραμμα ονομάζονται προγραμματιστές. Βα- θέσης μνήμης με διεύθυν-σικό στοιχείο του προγράμματος, εκτός από τον αλγόριθμο που υλο- ση 01011010.ποιεί, είναι τα δεδομένα και οι δομές δεδομένων που επεξεργάζεται. •• Πρόσθεσε στο περιεχό-Οι γλώσσες προγραμματισμού αναπτύχθηκαν με σκοπό την επικοινω- μενο του καταχωρητήνία του ανθρώπου (προγραμματιστή) με τη μηχανή (υπολογιστή). Ο το περιεχόμενο της θέ-υπολογιστής κάνει στοιχειώδεις ενέργειες σε ακολουθίες των δύο ψη- σης μνήμης με διεύθυνσηφίων 0 και 1 (δυαδικά ψηφία, bits), αλλά αυτές τις ενέργειες τις εκτελεί 01011110.με ασύλληπτη ταχύτητα. Συγκεκριμένα μπορεί να αποθηκεύει στη μνή-μη τις ακολουθίες των δυαδικών ψηφίων, να τις ανακτά, να κάνει στοι- •• Μετάφερε και αποθήκευ-χειώδεις αριθμητικές πράξεις με αυτές και να τις συγκρίνει. σε το περιεχόμενο του καταχωρητή στη θέση μνήμης με διεύθυνση 11011110. 55
2η Αρχικά τα προγράμματα γράφονταν σε γλώσσα μηχανής, δηλαδή ακο- λουθίες δυαδικών ψηφίων, που αποτελούν εντολές προς τον επεξερ-Θέματα Θεωρητικής γαστή για στοιχειώδεις λειτουργίες. Ο συγκεκριμένος τρόπος γραφήςΕπιστήμης των Υπολογιστών προγραμμάτων είναι επίπονος και ελάχιστοι μπορούν να τον κατανο- ήσουν και να τον υλοποιήσουν, αφού απαιτεί βαθιά γνώση του υλικούΕντολές σε συμβολική και της αρχιτεκτονικής του υπολογιστή.γλώσσα που καταχωρούν τοάθροισμα των τιμών δύο θέ- Στη συνέχεια αναπτύχθηκαν οι συμβολικές γλώσσες οι οποίες κάνουνσεων μνήμης σε μία άλλη. χρήση εντολών που αποτελούνται από συμβολικά ονόματα τα οποίαLDA B αντιστοιχούν σε εντολές της γλώσσας μηχανής. Το έργο της μετάφρα-ADD C σης των εντολών σε γλώσσα μηχανής το αναλαμβάνει ένα ειδικό πρό-STA A γραμμα, ο συμβολομεταφραστής (assembler).Η περιγραφή των παραπάνωεντολών είναι η εξής: Οι συμβολικές γλώσσες ήταν σαφώς μια εξέλιξη αλλά παραμένουν•• Μετάφερε στον καταχω- στενά συνδεδεμένες με την αρχιτεκτονική του κάθε υπολογιστή. Επι- πλέον η έλλειψη εντολών σύνθετων λειτουργιών στις παραπάνω γλώσ- ρητή το περιεχόμενο της σες οδηγεί σε μακροσκελή προγράμματα που είναι δύσκολο να γρα- θέσης μνήμης με όνομα Β. φούν και να συντηρηθούν. Ακόμη, δεν είναι δυνατό να μεταφερθούν•• Πρόσθεσε στο περιεχό- και να εκτελεστούν σε υπολογιστή διαφορετικής αρχιτεκτονικής. μενο του καταχωρητή το περιεχόμενο της θέσης Οι παραπάνω ανεπάρκειες και η προσπάθεια για καλύτερη επικοινω- μνήμης με όνομα C. νία ανθρώπου – μηχανής οδήγησαν στην εμφάνιση των γλωσσών υψη-•• Μετάφερε και αποθήκευ- λού επιπέδου. Σε σχέση με τις συμβολικές γλώσσες στις γλώσσες υψη- σε το περιεχόμενο του λού επιπέδου: καταχωρητή στη θέση μνήμης με όνομα Α. •• είναι φυσικότερος και πιο ανθρώπινος ο τρόπος έκφρασης των προβλημάτων.Εντολή στη γλώσσα BASICπου καταχωρεί το άθροισμα •• υπάρχει δυνατότητα μεταφοράς, «μεταφερσιμότητα» δηλαδή,των τιμών δύο μεταβλητών Β εκτέλεσης των προγραμμάτων σε οποιοδήποτε υπολογιστή.και C στη μεταβλητή Α.Α=Β+C •• είναι εύκολη η εκμάθηση, η διόρθωση των λαθών και η συντή- ρηση των προγραμμάτων. 56 Έτσι αναπτύχθηκαν γλώσσες όπως οι ακόλουθες: •• FORTRAN (FORrmula TRANslation, Μετάφραση Τύπων). Το 1957 η ΙΒΜ ανέπτυξε την πρώτη γλώσσα υψηλού επιπέδου. Αναπτύχθηκε ως γλώσσα κατάλληλη για την επίλυση μαθηματι- κών και επιστημονικών προβλημάτων. •• COBOL (COmmon Business Oriented Language, Κοινή Γλώσ- σα Προσανατολισμένη στις Επιχειρήσεις). Κατάλληλη για ανά- πτυξη εμπορικών και γενικά διαχειριστικών εφαρμογών. Χρησι- μοποιείται από επιχειρήσεις και από τη δημόσια διοίκηση. •• LISP (LISt Processor, Επεξεργαστής Λίστας). Συναρτησιακή γλώσσα η οποία προσανατολίζεται σε χειρισμό λιστών από σύμ- βολα. Χρησιμοποιείται στο χώρο της τεχνητής νοημοσύνης, σε έμπειρα συστήματα, παιχνίδια, επεξεργασία φυσικών γλωσσών. •• PROLOG (PROgramming in LOGic, Λογικός Προγραμματι- σμός). H γλώσσα PROLOG χρησιμοποιεί μεθόδους λογικής για
να αναπαραστήσει τη γνώση και να επιλύσει προβλήματα. Χρη- ΚΕΦΑΛΑΙΟ 2.3 σιμοποιείται όπως και η LISP στο χώρο της τεχνητής νοημο- σύνης, σε έμπειρα συστήματα, παιχνίδια, επεξεργασία φυσικών Προγραμματισμός γλωσσών. •• BASIC (Beginner’s All Purpose Symbolic Instruction Code, Εικόνα 2.25 Συμβολικός Κώδικας Εντολών Γενικής Χρήσης για Αρχάριους). Ντένις Ρίτσι (Dennis Γλώσσα που αναπτύχθηκε για την εκπαίδευση αρχαρίων στον Ritchie). O δημιουργός της προγραμματισμό. Σχεδιάστηκε για να γράφονται σύντομα προ- γλώσσας προγραμματισμού γράμματα τα οποία εκτελούνται με τη βοήθεια διερμηνευτή. Η C και o βασικός συντελεστής ανάπτυξη των μικροϋπολογιστών και η τυποποίησή της από τη στην ανάπτυξη του λειτουρ- Microsoft, την καθιέρωσε ως πρότυπο για ανάπτυξη εφαρμογών γικού συστήματος UNIX. σε προσωπικούς υπολογιστές. «Το UNIX είναι βασικά ένα •• PASCAL. Είναι μια γλώσσα γενικής χρήσης. Διέπεται από τις απλό λειτουργικό σύστημα, αρχές του δομημένου προγραμματισμού. Γνώρισε τεράστια εξά- πρέπει όμως να είσαι ιδιο- πλωση, και επηρέασε την ανάπτυξη άλλων γλωσσών όπως η φυία για να καταλάβεις την ADA. απλότητά του». •• C και η μετεξέλιξη της C++. Γλώσσα η οποία δημιουργήθηκε στα τα εργαστήρια BELL και χρησιμοποιήθηκε για την ανάπτυ- Σε ένα οπτικό περιβάλλον ξη του λειτουργικού συστήματος UNIX. Είναι γλώσσα με ισχυ- προγραμματισμού υπάρχει η ρά χαρακτηριστικά. Η C++ είναι γλώσσα αντικειμενοστρεφούς δυνατότητα να δημιουργείται προγραμματισμού. γραφικά ολόκληρο το περι- •• JAVA. Γλώσσα αντικειμενοστρεφής που αναπτύχθηκε από τη βάλλον της εφαρμογής, όπως SUN με σκοπό την ανάπτυξη εφαρμογών για το διαδίκτυο. για παράδειγμα τα πλαίσια διαλόγου ή τα μενού.Η εμφάνιση των γραφικών περιβαλλόντων εργασίας δημιούργησε τηνανάγκη για προγράμματα που να εκμεταλλεύονται τον γραφικό τρόπο Αρχικά υπήρχαν τα περιβάλ-επικοινωνίας χρήστη – υπολογιστή. Έτσι γλώσσες όπως η BASIC, η λοντα Γραμμής Εντολών,C++, η PASCAL που είναι μεν κειμενικές, εξελίχθηκαν (Visual Basic, όπου ο χρήστης είχε τη δυνα-Visual C++, Delphi) ώστε να διαθέτουν και οπτικό περιβάλλον προ- τότητα να πληκτρολογεί τιςγραμματισμού. εντολές και να τις βλέπει στην οθόνη ενώ στα γραφικά πε-Αναπτύχθηκαν όμως και γλώσσες όπως η SCRATCH – BYOB και ριβάλλοντα εργασίας τα προ-η Google AppInvertor που είναι αποκλειστικά οπτικές γλώσσες προ- γράμματα και οι πληροφορίεςγραμματισμού (Visual Programming Languageς, VPL). Οι συγκεκρι- εμφανίζονται στην οθόνη μεμένες δίνουν τη δυνατότητα στον προγραμματιστή να δημιουργήσει γραφικά και σχήματα.προγράμματα μέσα από το γραφικό χειρισμό προγραμματιστικών στοι-χείων (αντί κειμένου). Εικόνα 2.26. Λογότυπο της γλώσσας Google AppInvertor.Η χρήση των υπολογιστών σχεδόν σε όλες τις εκφάνσεις της ανθρώπι-νης δραστηριότητας δημιούργησε την ανάγκη για γλώσσες κατάλλη- 57λες στην επίλυση συγκεκριμένων προβλημάτων. Έτσι αναπτύχθηκανγλώσσες όπως η LOGO ή η GameMaker για εκπαιδευτικούς σκο-πούς, η LabView που χρησιμοποιείται από τους επιστήμονες και τουςμηχανικούς στο σχεδιασμό, τον έλεγχο και τη δοκιμή καταναλωτικώνπροϊόντων κ.ά..Οι γλώσσες υψηλού επιπέδου χαρακτηρίζονται ως γλώσσες τρίτης γε-νιάς ενώ οι συμβολικές ως δεύτερης γενιάς ή χαμηλού επιπέδου. Από
2η ΕΝΟΤΗΤΑ την άλλη ένα πρόγραμμα σε γλώσσα μηχανής είναι κωδικοποιημένο σε γλώσσα πρώτης γενιάς.Θέματα ΘεωρητικήςΕπιστήμης των Υπολογιστών Οι παραπάνω γενιές γλωσσών προγραμματισμού απευθύνονται μόνο σε προγραμματιστές και ο χρήστης δεν έχει τη δυνατότητα να επιφέρει αλ-SELECT ENAME, JOB, SAL λαγές σε κάποιο πρόγραμμα, προκειμένου να ικανοποιήσει μια νέα ανά-FROM EMPLOYES γκη του. Σταδιακά όμως πολλές γλώσσες εφοδιάστηκαν με εργαλεία προ-WHERE DEPTNO = 20 γραμματισμού που αποκρύπτουν πολλές λεπτομέρειες από τις τεχνικέςAND SAL > 1000; υλοποίησης και με αυτά ο χρήστης μπορεί να επιλύει μόνος του μικρά προβλήματα εφαρμογών. Αυτή η αυξανόμενη τάση απόκρυψης της αρχι-Με την ερώτηση αυτή σε τεκτονικής του υλικού και της τεχνικής του προγραμματισμού οδήγησεSQL εκτελείται αναζήτη- στις γλώσσες τέταρτης γενιάς. Η SQL (Structured Query Language, Δο-ση στη βάση δεδομένων μημένη Γλώσσα Ερωτοαποκρίσεων) είναι μία γλώσσα τέταρτης γενιάςEMPLOYES και επιστρέφει η οποία χρησιμοποιείται για την ανάκτηση και τη διαχείριση δεδομένωντο όνομα, τη θέση και τον μι- καθώς και την παραγωγή πληροφοριών σε σχεσιακές βάσεις δεδομένων.σθό των υπαλλήλων της δι-εύθυνσης 20 που κερδίζουν 2.3.1.2 Προγραμματιστικά Υποδείγματαπάνω από 1000 ευρώ. Αναφέρθηκε προηγουμένως ότι κάποιες γλώσσες ακολουθούν τον αντικειμενοστρεφή προγραμματισμό και άλλες είναι συναρτησιακές ή χρησιμοποιούν μεθόδους λογικής για να επιλύσουν προβλήματα. Η ανάπτυξη λοιπόν ενός προγράμματος σε κάποια γλώσσα προγραμματι- σμού βασίζεται σε ένα πρότυπο ή μία καθορισμένη μεθοδολογία. Ως «Προγραμματιστικό Υπόδειγμα» εννοείται ένα πρότυπο ανάπτυ- ξης προγραμμάτων, δηλαδή μία καθορισμένη μεθοδολογία με βάση την οποία αναπτύσσονται η δομή και τα στοιχεία του προγράμματος. Εικόνα 2.27 Οι δυνατότητες και οι μεθοδολογίες ανάπτυξης προγραμμάτων που πα- ρέχει μία γλώσσα προγραμματισμού, καθορίζονται από το προγραμμα-Η Άντα Λάβλεϊς (Ada τιστικό υπόδειγμα που ακολουθεί. Υπάρχουν όμως γλώσσες που έχουνLovelace), κόρη του Λόρ- σχεδιαστεί να υποστηρίζουν περισσότερα από ένα υποδείγματα.δου Βύρωνα, έγραψε το πρώ-το πρόγραμμα υπολογι- Τα κυριότερα προγραμματιστικά υποδείγματα είναι:στή κατά τον 19ο αιώνα γιατην Αναλυτική Μηχανή του •• Ο προστακτικός προγραμματισμός όπου τα προγράμματα ανα-Τσαρλς Μπάμπατζ (Charles πτύσσονται με απλές εντολές σε προστακτική (Διάβασε, Εμφά-Babbage), πολύ πριν από νισε, Επανάλαβε) που ζητούν από τον υπολογιστή να εκτελέσειτην εμφάνιση ηλεκτρονι- συγκεκριμένες ενέργειες και να ακολουθήσει βήματα με μία λο-κών υπολογιστών. Η γλώσ- γική σειρά για να επιλύσει το πρόβλημα που έχει δοθεί. Γλώσ-σα προγραμματισμού ADA σες, όπως η FORTRAN, η BASIC, η PASCAL, η C, ακολουθούνέχει ονομαστεί έτσι προς τι- αυτό το υπόδειγμα.μήν της. •• Ο δηλωτικός προγραμματισμός όπου, σε αντίθεση με τον προ- στακτικό προγραμματισμό, το πρόβλημα επιλύεται δηλώνοντας απλώς τις επιθυμητές ιδιότητες του αποτελέσματος. Το πρόγραμ- μα περιέχει λογικές εκφράσεις, ενώ κατά την εκτέλεσή του γίνε- ται έλεγχος για το ποιες ακριβώς ικανοποιούνται. Παραδείγμα- τα γλωσσών που τον ακολουθούν είναι η PROLOG και η SQL.58
•• Ο συναρτησιακός προγραμματισμός επιλύει το πρόβλημα με τη ΚΕΦΑΛΑΙΟ 2.3 χρήση μαθηματικών συναρτήσεων. Οι συναρτήσεις παράγουν αποτελέσματα με βάση τα δεδομένα εισόδου τους. Παράδειγμα Προγραμματισμός συναρτησιακής γλώσσας είναι η LISP. Εικόνα 2.28•• Ο αντικειμενοστρεφής προγραμματισμός βασίζεται στην έν- Γκρέις Χόπερ (Grace Hop- νοια του αντικειμένου. Τα αντικείμενα δημιουργούνται από τις per). Αμερικανίδα καθηγή- κλάσεις. Μία κλάση ορίζει τα χαρακτηριστικά και τη συμπερι- τρια μαθηματικών και αξι- φορά ενός τύπου αντικειμένου, λειτουργεί δηλαδή ως πρότυ- ωματικός του αμερικανι- πο. Ένα αντικείμενο είναι μία δομή δεδομένων η οποία περιέχει κού ναυτικού, η οποία ηγή- τόσο τα δεδομένα (χαρακτηριστικά που την περιγράφουν) όσο θηκε της ομάδας που ανέ- και τις διαδικασίες (μεθόδους) που επενεργούν σε αυτά. Τα αντι- πτυξε την πρώτη προηγμένη κείμενα μπορούν να αλληλεπιδρούν μεταξύ τους. Αντικειμενο- γλώσσα προγραμματισμού στραφείς γλώσσες είναι η C++ και η JAVA. με προορισμό τον επιχειρη- ματικό κόσμο, την Common•• Ο λογικός προγραμματισμός όπου τα προγράμματα είναι γραμ- Business Oriented Language μένα ως ένα σύνολο από προτάσεις σε μορφή λογικών εκφράσε- (COBOL) ων. Το συγκεκριμένο υπόδειγμα βασίζεται στα γεγονότα, στους κανόνες και στις ερωτήσεις και ακολουθείται κυρίως στο πεδίο Εικόνα 2.30. Νίκλαους Βιρθ της Τεχνητής Νοημοσύνης. Παράδειγμα γλώσσας που τον ακο- (Niklaus Wirth) λουθεί είναι η PROLOG. Δημιουργός της γλώσσας•• Ο παράλληλος προγραμματισμός στον οποίο τα προγράμματα εκμε- PASCAL, η οποία ονομάστη- ταλλεύονται την ύπαρξη υπολογιστών που διαθέτουν περισσότερους κε έτσι προς τιμήν του Γάλ- από έναν επεξεργαστές. Έτσι επιτυγχάνεται η αύξηση των υπολογι- λου επιστήμονα Μπλεζ Πα- στικών επιδόσεων και η μείωση του χρόνου εκτέλεσης της εφαρμο- σκάλ (Blaise Pascal). γής. Θα πρέπει όμως το πρόβλημα προς επίλυση να διαιρεθεί σε τμή- ματα που μπορούν να επιλυθούν παράλληλα. Μία γλώσσα που υπο- 59 στηρίζει τον παράλληλο προγραμματισμό είναι η Occam. Ðñïãñáììáôéóôéêü Õðüäåéãìá åßíáé ïÐñïóôáêôéêüò Ðñïãñáììáôéóìüò åßíáé ï åßíáé ïÄçëùôéêüò Ðñïãñáììáôéóìüò åßíáé ï ÐáñÜëëçëïò Ðñïãñáììáôéóìüò åßíáé ï åßíáé ïáêïëïõèåßôáé áðü Ëïãéêüò Ðñïãñáììáôéóìüò Óõíáñôçóéáêüò Ðñïãñáììáôéóìüòáêïëïõèåßôáé áðü áêïëïõèåßôáé áðü ÁíôéêåéìåíïóôñåöÞò ÐñïãñáììáôéóìüòFORTRAN, BASIC, PASCAL, C áêïëïõèåßôáé áðü áêïëïõèåßôáé áðü áêïëïõèåßôáé áðü OccamPROLOG, SQL LISP PROLOG C++, JAVA Εικόνα 2.29. Προγραμματιστικά Υποδείγματα.2.3.1.3 Δομημένος ΠρογραμματισμόςΜία μεθοδολογία ανάλυσης, σχεδίασης και συγγραφής προγραμμάτωνπου αναπτύχθηκε και διαδόθηκε ευρύτατα στον χώρο της πληροφορι-
2η ΕΝΟΤΗΤΑ κής είναι ο δομημένος προγραμματισμός (structured programming) ο οποίος χρησιμοποιείΘέματα ΘεωρητικήςΕπιστήμης των Υπολογιστών •• την ιεραρχική σχεδίαση για την ανάπτυξη του αλγορίθμου που επιλύει το πρόβλημα.Ο δομημένος προγραμματι-σμός προτάθηκε ως έννοια το •• τον τμηματικό προγραμματισμό για τη σχεδίαση του προγράμμα-1966 από την ανάγκη να πε- τος και για τη δημιουργία των ενοτήτων του.ριοριστεί η χρήση των εντο-λών GOTO (Πήγαινε). •• τρεις βασικές συνιστώσες για τη συγγραφή των επιμέρους ενοτή- των που καθιστούν άσκοπη τη χρήση της εντολής GOTO (Πήγαινε).Υποπρόγραμμα είναι τοτμήμα προγράμματος που Η ιεραρχική σχεδίαση ή ανάλυση «από πάνω προς τα κάτω» χρησιμο-επιτελεί ένα αυτόνομο έργο ποιεί τη στρατηγική της συνεχούς διαίρεσης του προβλήματος σε υπο-και έχει γραφεί χωριστά από προβλήματα. Αυτά είναι πιο εύκολο να επιλυθούν οδηγώντας τελικάτο υπόλοιπο πρόγραμμα. στην επίλυση του αρχικού προβλήματος.Στον δομημένο προγραμμα- Ο τμηματικός προγραμματισμός υλοποιεί την ιεραρχική σχεδίασητισμό γίνεται χρήση υποπρο- όπου κάθε υποπρόβλημα αποτελεί ανεξάρτητη ενότητα που ονομάζε-γραμμάτων όπως οι διαδικα- ται υποπρόγραμμα. Τα υποπρογράμματα πρέπει να χαρακτηρίζονταισίες και οι συναρτήσεις. από όσο το δυνατόν μεγαλύτερο βαθμό ανεξαρτησίας και από υψηλό βαθμό συνεκτικότητας, δηλαδή να υλοποιούν μια μόνο συγκεκριμένηΤα υποπρογράμματα που διαδικασία ή λειτουργία. Το πρόγραμμα τελικά είναι η σύνθεση όλωναναπτύσσονται μπορούν να των υποπρογραμμάτων.αποτελέσουν σύνθετες εντο-λές προς τον υπολογιστή. Τέλος, όλες οι ενότητες του προγράμματος μπορούν να αναπτυχθούν μόνο με τρεις βασικές συνιστώσες: τη δομή ακολουθίας, τη δομή επι-Κάθε υποπρόγραμμα έχει λογής και τη δομή επανάληψης ή συνδυασμό τους. Οι τρεις αυτές συ-μόνο μία είσοδο και μόνο μία νιστώσες ομαδοποιούν τις εντολές και καθορίζουν τη σειρά εκτέλεσηςέξοδο. Δηλαδή, όταν ενεργο- τους. Οι εντολές λοιπόν του προγράμματος οργανώνονται σε μία δομή.ποιείται, δέχεται κατά βάσηκάποια δεδομένα και, αφού Σε αντίθεση, η χρήση της εντολής GOTO έχει ως αποτέλεσμα την αλ-ολοκληρώσει τη λειτουργία λαγή της ροής του προγράμματος, δηλαδή της διακλάδωσης σε μίατου, επιστρέφει κάποια απο- άλλη εντολή του προγράμματος εκτός από την επόμενη. Έτσι αυξάνε-τελέσματα. Κατά τη διάρκεια ται η δυσκολία στην αρχική σχεδίαση της λύσης, στην παρακολούθη-όμως της εκτέλεσής του δεν ση και κατανόηση του προγράμματος και τέλος στη συντήρησή του.εκτελείται καμία άλλη εντο-λή του προγράμματος πέρα Ο δομημένος προγραμματισμός αποτελεί λοιπόν μια μεθοδολογία σύ-από αυτές που συμπεριλαμ- νταξης προγραμμάτων που έχει σκοπό να βοηθήσει τον προγραμματι-βάνονται στο συγκεκριμένο στή στην ανάπτυξη σύνθετων προγραμμάτων, να μειώσει τα λάθη, ναυποπρόγραμμα. διευκολύνει την κατανόηση των προγραμμάτων, τις διορθώσεις και τις αλλαγές σε αυτά. Οι γλώσσες στις οποίες αναπτύσσονται προγράμματα με τη μεθοδολο- γία του δομημένου προγραμματισμού ακολουθούν κατά βάση το υπό- δειγμα του προστακτικού προγραμματισμού. Παράδειγμα 2.32. Να γραφεί πρόγραμμα το οποίο θα διαβάζει αριθ- μούς και θα υπολογίζει το μέσο όρο τους. Η διαδικασία εισαγωγής αριθμών θα σταματά αν διαβαστεί ο αριθμός 0, χωρίς να συνυπολογί- ζεται. Αν ο πρώτος αριθμός που θα διαβαστεί είναι το μηδέν, θα εκτυ-60
πώνει το μήνυμα «Δεν δόθηκε άλλο στοιχείο εκτός του μηδενός». Το ΚΕΦΑΛΑΙΟ 2.3πρόγραμμα να υλοποιηθεί: Προγραμματισμός 1. στο προγραμματιστικό περιβάλλον Διερμηνευτής Ψευδογλώσ- σας (ViALGOL). Το προγραμματιστικό περι- βάλλον Διερμηνευτής Ψευ- 2. στη γλώσσα προγραμματισμού PASCAL. δογλώσσας (ViALGOL) υποστηρίζει τις εντολές της ψευδογλώσσας που ορίστη- κε στο προηγούμενο κεφά- λαιο και ακολουθεί τις αρχές του δομημένου προγραμμα- τισμού. Στο πρόγραμμα αυτό θα ει- σαχθεί άγνωστο πλήθος αριθ- μών προς επεξεργασία. Αυτό θα επιτευχθεί με την εντολή Όσο. Επίσης είναι απαραίτη- το να ελεγχθεί αν δόθηκε ένα τουλάχιστον στοιχείο διαφο- ρετικό από το μηδέν ή όχι. Για το συγκεκριμένο έλεγχο θα χρησιμοποιηθεί η εντολή σύνθετης επιλογής. Το προγραμματιστικό περι- βάλλον στο οποίο υλοποι- ήθηκε το πρόγραμμα στη γλώσσα PASCAL μπορεί να βρεθεί στη διεύθυνση http://www.freepascal.org/. Η εντολή Όσο υλοποιείται με την εντολή While και η σύν- θετη εντολή επιλογής με την εντολή If…else Η σχεδίαση προγραμμάτων στη γλώσσα PASCAL ακο- λουθεί τον δομημένο προ- γραμματισμό. 61
2η ΕΝΟΤΗΤΑ 2.3.2 Σχεδίαση και συγγραφή κώδικαΘέματα Θεωρητικής Οι περισσότερες γλώσσες προγραμματισμού υποστηρίζονται από προ-Επιστήμης των Υπολογιστών γραμματιστικά περιβάλλοντα τα οποία παρέχουν εργαλεία που διευκο- λύνουν την εργασία του προγραμματιστή. Για τη σύνταξη του πηγαίουΤο πρόγραμμα που γράφε- προγράμματος χρησιμοποιείται ένα ειδικό πρόγραμμα το οποίο ονο-ται σε κάποια γλώσσα προ- μάζεται συντάκτης (editor). Στη συνέχεια το πηγαίο πρόγραμμα πρέ-γραμματισμού ονομάζεται πει να μεταφραστεί σε μορφή αναγνωρίσιμη και εκτελέσιμη από τονπηγαίο πρόγραμμα (source υπολογιστή δηλαδή σε εντολές γλώσσας μηχανής. Το έργο της μετά-program). φρασης το αναλαμβάνουν δύο προγράμματα ο μεταγλωττιστής ή ο δι- ερμηνευτής.Οι μεταγλωττιστές(compilers) δέχονται στην εί- Για να μεταφραστεί το πηγαίο πρόγραμμα σε εντολές γλώσσας μηχα-σοδο ένα πρόγραμμα γραμ- νής δεν θα πρέπει να ανιχνευθούν λάθη. Τα λάθη που εμφανίζονταιμένο σε γλώσσα υψηλού επι- κατά τη μετάφραση ονομάζονται συντακτικά. Τα συντακτικά λάθηπέδου και παράγουν ένα ισο- μπορεί να οφείλονται σε αναγραμματισμούς, σε λανθασμένη σύνταξηδύναμο πρόγραμμα σε γλώσ- εντολών, παράλειψη δήλωσης μεταβλητών κ.ά.. Ο μεταφραστής ανι-σα μηχανής. Το πρόγραμ- χνεύει τα λάθη και εμφανίζει κατάλληλα διαγνωστικά μηνύματα. Στημα που παράγεται ονομάζε- συνέχεια ακολουθεί η διόρθωσή τους από τον προγραμματιστή.ται αντικείμενο (object) πρό-γραμμα. Το αντικείμενο πρό- Ðçãáßï ÌåôáãëùôôéóôÞò Áíôéêåßìåíï ÓõíäÝôçò ÅêôåëÝóéìïγραμμα δεν είναι σε θέση ðñüãñáììá ðñüãñáììá ðñüãñáììáνα εκτελεστεί. Χρειάζεταινα συνδεθεί με άλλα τμήμα- Εικόνα 2.31. Μεταγλώττιση και Σύνδεση Προγράμματος.τα προγράμματος τα οποίαείτε τα γράφει ο προγραμ- Πέρα όμως από τα συντακτικά λάθη υπάρχουν και τα λογικά που δενματιστής, είτε βρίσκονται είναι δυνατό να ανιχνευθούν από τα μεταφραστικά προγράμματα. Ταστις βιβλιοθήκες (libraries) περισσότερα όμως προγραμματιστικά περιβάλλοντα παρέχουν εργα-της γλώσσας. Το πρόγραμμα λεία εκσφαλμάτωσης που βοηθούν τον προγραμματιστή να εκτελέσειπου επιτρέπει αυτή τη σύν- το πρόγραμμα εντολή προς εντολή μέχρι συγκεκριμένο σημείο ή να πα-δεση ονομάζεται συνδέτης ρακολουθεί τις τιμές των μεταβλητών έτσι ώστε να εντοπίσει τα λάθη– φορτωτής (linker - loader). στην υλοποίηση του αλγορίθμου.Το αποτέλεσμα είναι η πα-ραγωγή του εκτελέσιμου Παράδειγμα 2.33. Με σκοπό να αναπτυχθεί πρόγραμμα το οποίο θα(executable) προγράμματος αντιμεταθέτει το περιεχόμενο δύο μεταβλητών γράφτηκαν οι ακόλου-(Εικόνα 2.31). Το τελευταίο θες εντολές στο προγραμματιστικό περιβάλλον Διερμηνευτής Ψευδο-μπορεί να εκτελείται οποτε- γλώσσας (ViALGOL).δήποτε από τον υπολογιστήκαι είναι τελείως ανεξάρτη-το από το πηγαίο πρόγραμμα.Οι διερμηνευτές(interpreters) διαβάζουν μίαπρος μία τις εντολές του πη-γαίου προγράμματος και γιακαθεμία εκτελούν αμέσωςμια ισοδύναμη ακολουθίαεντολών μηχανής.62
ΚΕΦΑΛΑΙΟ 2.3 ΠρογραμματισμόςΤι θα συμβεί κατά τη μετάφραση του προγράμματος; Στο προγραμματιστικό περι- βάλλον Διερμηνευτής Ψευ-Απάντηση δογλώσσας, το χρώμα των γραμμάτων διαφοροποιεί-Υπάρχουν δύο συντακτικά λάθη στις εντολές που έχουν γραφεί. Το ται σε μπλε για τις δεσμευμέ-πρώτο βρίσκεται στην πέμπτη γραμμή του προγράμματος και οφείλε- νες λέξεις, σε μαύρο για τιςται σε αναγραμματισμό της εντολής Διάβασε και το δεύτερο στην ένα- μεταβλητές και πράσινο γιατη γραμμή και οφείλεται στην παράλειψη των διπλών εισαγωγικών στο τις αλφαριθμητικές σταθερέςτέλος της αλφαριθμητικής έκφρασης. Το προγραμματιστικό περιβάλ- ώστε να διακρίνονται εύκολαλον Διερμηνευτής Ψευδογλώσσας (ViALGOL) χρησιμοποιεί διερμη- τα διάφορα στοιχεία του προ-νευτή για τη μετάφραση του πηγαίου προγράμματος. Έτσι αρχικά θα γράμματος.εντοπιστεί το πρώτο συντακτικό λάθος με ένα μήνυμα της μορφής: Το ερώτημα αν οι μηχανέςΣυντακτικό Λάθος - Περίμενα την εντολή εκχώρησης μπορούν να σκέφτονται έχειΒρήκα: β την ίδια σημασία με το ερώ- τημα αν τα υποβρύχια μπο-Ο διερμηνευτής αναγνωρίζει τη λέξη Διάβαεσ ως το όνομα κάποιας με- ρούν να κολυμπούν.ταβλητής και περιμένει στη συνέχεια να δει το αριστερό βέλος της εντο- Έντσγκερ Ντάικστρα (Edsgerλής εκχώρησης, κάτι το οποίο όμως δεν συμβαίνει. Επίσης εντοπίζει Dijkstra), Επιστήμονας Πλη-μόνο το πρώτο συντακτικό λάθος. Εφόσον αυτό διορθωθεί, ο διερμη- ροφορικήςνευτής βρίσκει το επόμενο λάθος και εμφανίζει ένα μήνυμα της μορφής:Συντακτικό Λάθος - Περίμενα το χαρακτήρα. ''Παράδειγμα 2.34. Με σκοπό να αναπτυχθεί πρόγραμμα το οποίο θααντιμεταθέτει το περιεχόμενο δύο μεταβλητών γράφτηκαν οι ακόλου-θες εντολές στο προγραμματιστικό περιβάλλον FreePascal. 63
2η ΕΝΟΤΗΤΑΘέματα ΘεωρητικήςΕπιστήμης των ΥπολογιστώνΗ γλώσσα PASCAL είναι μίααπό τις γλώσσες για τη συγ-γραφή κώδικα στον Πανελ-λήνιο Διαγωνισμό Πληροφο-ρικής. http://www.pdp.grΣτη γλώσσα προγραμματι- Τι θα συμβεί κατά τη μετάφραση του προγράμματος;σμού PASCAL απαιτείται ηδήλωση του τύπου των μετα- Απάντησηβλητών που χρησιμοποιού-νται από το πρόγραμμα. Το μεταφραστικό πρόγραμμα στο συγκεκριμένο προγραμματιστικό πε- ριβάλλον είναι μεταγλωττιστής. Έτσι θα εμφανιστεί το εξής μήνυμα. Εντοπίζονται όλα τα συντακτικά λάθη που υπάρχουν. Τα δύο οφείλο- νται σε παράλειψη δήλωσης της μεταβλητής c και το άλλο οφείλεται σε λανθασμένη σύνταξη της εντολής εκχώρησης της τιμής της μεταβλη- τής b στη μεταβλητή a. Η διαδικασία μετάφρασης λοιπόν ενός προγράμματος σε προγραμμα- τιστικά περιβάλλοντα που διαθέτουν είτε διερμηνευτή είτε μεταγλωτ- τιστή φαίνεται στην εικόνα 2.32. ÄéåñìçíåõôÞò Ðçãáßï Ðñüãñáììá ÌåôáãëùôôéóôÞò ÁíÜëõóç - ¸ëåã÷ïò ÅíôïëÞ 1 Áíß÷íåõóç - ÅêôÝëåóç ÅíôïëÞò 1 ÁíÜëõóç - ¸ëåã÷ïò ÅíôïëÞ 2 Ìåôáãëþôôéóç Áíß÷íåõóç - ÅêôÝëåóç Öüñôùóç . Óýíäåóç ÅíôïëÞò 2 . . üëùí ôùí åíôïëþí ÁíÜëõóç - ¸ëåã÷ïò ÅíôïëÞ n Áíß÷íåõóç - ÅêôÝëåóç ÅêôÝëåóç ïëüêëçñïõ ÅíôïëÞò n ôïõ ðñïãñÜììáôïò Εικόνα 2.32. Διαδικασία Μετάφρασης και Εκτέλεσης ενός προγράμματος.64
Παράδειγμα 2.35. Nα αναπτυχθεί πρόγραμμα το οποίο θα αντιμετα- ΚΕΦΑΛΑΙΟ 2.3θέτει το περιεχόμενο δύο μεταβλητών στο προγραμματιστικό περιβάλ-λον SCRATCH. ΠρογραμματισμόςΠαράδειγμα 2.36. Εύρεση μέγιστου κοινού διαιρέτη δύο θετικών ακέ- Η γλώσσα οπτικού προγραμραιων αριθμών με τον επαναληπτικό αλγόριθμο του Ευκλείδη σε γλώσ- ματισμού SCRATCH έχεισα SCRATCH. δημιουργ ηθεί στο MIT. http://scratch.mit.edu Στη γλώσσα SCRATCH ο προγραμματισμός γίνεται με χρήση εντολών που μοιά- ζουν με κομμάτια ενός παζλ (Πλακίδια – blocks). Κάθε εντολή έχει το δικό της χαρα- κτηριστικό σχήμα και μπο- ρεί να συνδυαστεί με άλλες μόνο με συγκεκριμένο τρόπο που αποκλείει τα συντακτι- κά λάθη. Οι εντολές όταν συνδυά- ζονται δημιουργούν σενά- ρια ενεργειών που πρέπει να εκτελεστούν από αντικεί- μενα που λέγονται μορφές (sprites). Η πιο χαρακτηρι- στική μορφή είναι η γάτα. Εικόνα 2.33. Η μορφή της γάτας. Η εντολή Όσο της ψευδο- γλώσσας και η εντολή While της PASCAL δεν υπάρ- χει στη γλώσσα SCRATCH. Υπάρχει όμως η εντολή επανάλαβε ώσπου στην οποία οι εντολές εκτε- λούνται όσο η συνθήκη είναι ψευδής. Το πρόγραμμα αρχικά εξα- σφαλίζει ότι οι τιμές που πληκτρολογούνται είναι θε- τικές. 65
2η ΕΝΟΤΗΤΑ Παράδειγμα 2.37. Να γραφεί πρόγραμμα για την εύρεση του μέγιστου κοινού διαιρέτη δύο θετικών ακεραίων αριθμών με τον αναδρομικό αλ-Θέματα Θεωρητικής γόριθμο του Ευκλείδη στη γλώσσα LOGO. Ο κώδικας να αναπτυχθείΕπιστήμης των Υπολογιστών ως διαδικασία στο περιβάλλον MicroWorlds Pro.Αρκετές φορές οι αλγόριθμοι για μκδ :χ :ψχρειάζεται να τροποποιηθούν ΑνΔιαφορετικά :ψ = 0ώστε να μπορούν να εκτελε- [στούν από κάποια γλώσσαπρογραμματισμού. κάνε ''ζ :χΓια να εκτελεστεί το διπλανό ανακοίνωση (φρ[ο μέγιστος κοινός διαιρέτης είναι] :ζ)πρόγραμμα και να ανακοινώ- ]σει το μέγιστο κοινό διαιρέτη [των αριθμών 27 και 6, αρκεί κάνε ''χ υπόλοιπο :χ :ψνα πληκτρολογήσει ο χρή- μκδ :ψ :χστης στo κέντρο εντολών του ]περιβάλλοντος την εντολή: τέλοςμκδ 27 6Οι μεταβλητές χ και ψ ονο- Πολλές φορές κάποια προγράμματα μπορούν να χρησιμοποιήσουν κώδι-μάζονται παράμετροι. κα που έχει γραφτεί προηγουμένως. Η επαναχρησιμοποίηση κώδικα εί-Η σύνθετη επιλογή υλοποιεί- ναι αρκετά συνηθισμένη πρακτική η οποία περιορίζει τα λάθη και μειώ-ται με την εντολή νει το χρόνο που απαιτείται για τη συγγραφή του προγράμματος. Προ-ΑνΔιαφορετικά. γραμματιστικά γίνεται συνήθως με τη δημιουργία κατάλληλων υποπρο- γραμμάτων, δηλαδή διαδικασιών ή συναρτήσεων ανάλογα με τη γλώσσαΑν χ, ψ είναι δύο θε- προγραμματισμού. Αρκετές φορές ο προγραμματιστής μπορεί να γράψειτικοί ακέραιοι τότε ή να χρησιμοποιήσει βιβλιοθήκες (libraries). Οι βιβλιοθήκες μιας γλώσ-ΜΚΔ(χ,ψ)*ΕΚΠ(χ,ψ) = χ*ψ σας προγραμματισμού είναι μία συλλογή από έτοιμα υποπρογράμματα που μπορούν να χρησιμοποιούνται κατά τη συγγραφή νέων προγραμμά-Το πρόγραμμα στη γλώσσα των. Μία βιβλιοθήκη μπορεί να χρησιμοποιηθεί τόσο από τον δημιουρ-LOGO περιλαμβάνει τρεις γό της όσο και από άλλους προγραμματιστές. Αποτελεί επίσης πρακτι-διαδικασίες: μία για τον υπο- κή πολλών προγραμματιστών να βελτιώνουν υπάρχουσες βιβλιοθήκες,λογισμό του μέγιστου κοι- ώστε να επεκτείνουν τις δυνατότητες των προγραμμάτων τους.νού διαιρέτη η οποία επανα-χρησιμοποιείται, μία για τον Παράδειγμα 2.38. Να γραφεί πρόγραμμα που θα δέχεται δύο θετικούςυπολογισμό του ελάχιστου ακέραιους αριθμούς και θα εμφανίζει το μέγιστο κοινό διαιρέτη και τοκοινού πολλαπλάσιου που ελάχιστο κοινό πολλαπλάσιο τους. Η υλοποίηση να γίνει στο περιβάλ-καλεί τη διαδικασία του μέγι- λον MicroWorlds Pro.στου κοινού διαιρέτη και μίαπου καλεί τη διαδικασία υπο- για μκδ :χ :ψλογισμού του ελάχιστου κοι- ΑνΔιαφορετικά :ψ = 0νού πολλαπλάσιου και εμφα- [νίζει τα αποτελέσματα. κάνε ''ζ :χ 66 ] [ κάνε ''χ υπόλοιπο :χ :ψ μκδ :ψ :χ ] τέλος
για εκπο :χ :ψ ΚΕΦΑΛΑΙΟ 2.3 μκδ :χ :ψ κάνε “εκ :χ * :ψ / :ζ Προγραμματισμός τέλος Οι τιμές των μεταβλητών για υπολογισμός :χ :ψ στη LOGO είναι διαθέσι- εκπο :χ :ψ μες σε όλες τις διαδικασί- ανακοίνωση (φρ[ο μέγιστος κοινός διαιρέτης είναι] :ζ) ες. Οι μεταβλητές αυτές ονο- ανακοίνωση (φρ[το ελάχιστο κοινό πολλαπλάσιο είναι] :εκ) μάζονται καθολικές. Σε άλ- τέλος λες γλώσσες προγραμματι- σμού υπάρχουν και οι τοπι-Παράδειγμα 2.39. Να γραφεί πρόγραμμα σε γλώσσα SCRATCH το κές μεταβλητές, οι οποίεςοποίο θα αναζητά αν υπάρχει ένα όνομα σε μία λίστα και θα εμφανίζει μπορούν να προσπελαστούνκατάλληλο μήνυμα σχετικά με την εύρεσή του. μόνο στο πρόγραμμα ή το υποπρόγραμμα το οποίο δη- λώνονται. Ο τρόπος επικοινωνίας με- ταξύ των ενοτήτων ή υπο- προγραμμάτων (διαδικασι- ών ή συναρτήσεων) και των προγραμμάτων διαφέρει από γλώσσα σε γλώσσα προγραμ- ματισμού. Κατά βάση αυτή η επικοινωνία επιτυγχάνεται με τη χρήση των παραμέτρων, δηλαδή μεταβλητών που επι- τρέπουν το πέρασμα της τι- μής τους από ένα τμήμα προ- γράμματος σε ένα άλλο. Η δομή δεδομένων, που εί- ναι αποθηκευμένα τα ονόμα- τα στο παράδειγμα 2.39, εί- ναι μία λίστα με το όνομα names. Ο αλγόριθμος που κωδικο- ποιείται είναι αυτός της σει- ριακής αναζήτησης κατάλλη- λα τροποποιημένος.Παράδειγμα 2.40. Σε ένα ραδιοφωνικό σταθμό το κόστος ενός διαφη-μιστικού μηνύματος σε σχέση με τα δευτερόλεπτα μετάδοσης, υπολο-γίζεται κλιμακωτά σύμφωνα με τον παρακάτω πίνακα.Χρονική Διάρκεια διαφήμισης Κόστος (δευτερόλεπτα) (€ / δευτερόλεπτο) Μέχρι 15 90 Μέχρι 30 75 Πάνω από 30 50 67
2η ΕΝΟΤΗΤΑ A. Να αναπτύξετε πρόγραμμα στο προγραμματιστικό περιβάλλον Δι- ερμηνευτής Ψευδογλώσσας (ViALGOL) το οποίοΘέματα Θεωρητικής i. να διαβάζει το πλήθος των διαφορετικών μηνυμάτων που πρό-Επιστήμης των Υπολογιστών κειται να μεταδώσει ο σταθμός την επόμενη εβδομάδα ii. να διαβάζει τη χρονική διάρκεια κάθε μηνύματος και να υπολο-Η χρήση της δομής του πίνα- γίζει καλώντας κατάλληλο υποπρόγραμμα το κόστος τουκα, όταν αυτή δεν κρίνεται iii. να εμφανίζει με κατάλληλο μήνυμα τα συνολικά έσοδα τουαπαραίτητη, επαφίεται στη σταθμού καθώς και το ποσοστό (%) των μηνυμάτων με χρονικήλογική του προγραμματιστή. διάρκεια άνω των 30 δευτερολέπτων.Κατά βάση όμως στις εφαρ-μογές λογισμικού τα δεδομέ- Β. Να γράψετε τον αλγόριθμο για τον υπολογισμό του κόστους τουνα αποθηκεύονται σε δομές κάθε μηνύματος.δεδομένων. Ο κώδικας του προγράμματος είναι:Κατά την κλήση του αλγο-ρίθμου Κόστος, η μεταβλητήχδ μεταβιβάζει την τιμή τηςστη μεταβλητή δ και ότανολοκληρώνεται η εκτέλεσητου αλγορίθμου η μεταβλη-τή κ μεταβιβάζει την τιμή τηςστη μεταβλητή κμ. Ο κώδικας του υποπρογράμματος είναι68
Παράδειγμα 2.41. Να γραφεί πρόγραμμα στο προγραμματιστικό περιβάλ- ΚΕΦΑΛΑΙΟ 2.3λον Διερμηνευτής Ψευδογλώσσας (ViALGOL) το οποίο να δέχεται ένανπίνακα που περιέχει τα ονόματα των μαθητών ενός τμήματος και έναν πα- Προγραμματισμόςράλληλο πίνακα με το βαθμό απολυτηρίου τους. Το πρόγραμμα να ταξινο-μεί τον πίνακα με τα ονόματα σε φθίνουσα σειρά με βάση τους βαθμούς. Οι πίνακες στους οποίουςΤέλος να εμφανίζει το όνομα του κάθε μαθητή και δίπλα τον βαθμό του. χρησιμοποιούνται αντίστοι- χοι δείκτες θέσης για την αποθήκευση συσχετιζόμενων τιμών ονομάζονται παράλλη- λοι πίνακες. Με την εντολή Δεδομένα //Ν, ΟΝ, Β// γνωστοποιούνται το μέγεθος και οι τιμές των πινάκων στο πρόγραμμα. Στο πρόγραμμα του παρα- δείγματος 2.41 εφαρμόζε- ται ο αλγόριθμος της ταξινό- μησης με επιλογή. Έχει τρο- ποποιηθεί όμως σε σχέση με τον αλγόριθμο που παρου- σιάστηκε στο προηγούμενο κεφάλαιο, ώστε να βρίσκει κάθε φορά το μέγιστο στοι- χείο.Παράδειγμα 2.42. Να αναπτυχθεί πρόγραμμα στο προγραμματιστι-κό περιβάλλον Διερμηνευτής Ψευδογλώσσας (ViALGOL) το οποίο ναδιαβάζει τους βαθμούς των μαθητών ενός τμήματος και να εμφανίζειμε κατάλληλα μηνύματα το μέσο όρο των βαθμών καθώς και πόσοι απόαυτούς είναι μεγαλύτεροι από το μέσο όρο. Να γίνεται έλεγχος ότι οιβαθμοί που εισάγονται είναι ακέραιες τιμές μεταξύ του 0 και του 20.Μετά την εισαγωγή κάθε βαθμού το πρόγραμμα να ερωτά τον χρή-στη αν θέλει να συνεχίσει την καταχώρηση εμφανίζοντας το μήνυμα«Θα συνεχίσετε; Πληκτρολογήστε Ν ή Ο» και ανάλογα με την απάντη-σή του (αποδεκτές τιμές μόνο τα γράμματα του ελληνικού αλφαβήτου«Ν», «ν», «Ο» και «ο» ), να συνεχίζει την καταχώριση ή να εμφανίζειτα αποτελέσματα της επεξεργασίας. 69
2η ΕΝΟΤΗΤΑΘέματα ΘεωρητικήςΕπιστήμης των ΥπολογιστώνΚατά την ανάπτυξη αυτούτου προγράμματος θα χρησι-μοποιηθεί η δομή δεδομένωντου πίνακα, γιατί διαφορετι-κά δεν θα υπάρχει η δυνατό-τητα να γίνει η επεξεργασίαγια τον υπολογισμό του πλή-θους αυτών που είναι πάνωαπό το μέσο όρο.Γενικά η χρήση πινάκων εί-ναι απαραίτητη αν τα δεδο-μένα που εισάγονται σε έναπρόγραμμα πρέπει να διατη-ρούνται στη μνήμη μέχρι τοτέλος της εκτέλεσης. 2.3.3 Κύκλος ζωής εφαρμογής λογισμικού Ένα πρόγραμμα αρχίζει την ζωή του από την στιγμή που θα καθορι- στούν οι απαιτήσεις του, οι προδιαγραφές του και παύει να ζει όταν εξαντληθούν όλα τα περιθώρια συντήρησής του (προσθήκες, αλλαγές, βελτιώσεις). Ο Κύκλος Ζωής ενός προγράμματος περιλαμβάνει διάφο- ρες φάσεις οι οποίες αλληλεπιδρούν μεταξύ τους. Οι φάσεις απεικονί- ζονται στο διάγραμμα της εικόνας 2.34. 70
ÁíÜëõóç ΚΕΦΑΛΑΙΟ 2.3 Προγραμματισμός Ó÷åäßáóç Õëïðïßçóç Στα διάφορα πακέτα λογισμι- κού, είτε είναι γλώσσες προ- Ëåéôïõñãßá êáé γραμματισμού, είτε πακέτα ÓõíôÞñçóç εφαρμογών, είτε λειτουργικά συστήματα, δίπλα στο εμπο- Εικόνα 2.34. Κύκλος Ζωής Προγράμματος. ρικό όνομα του λογισμικού, συνηθίζεται να υπάρχει oΣτη φάση Ανάλυσης που ακολουθεί τον προσδιορισμό του προβλήματος αριθμός της έκδοσής του. Οαπό τον πελάτη, καταγράφονται αναλυτικά τα δεδομένα και τα ζητούμε- αριθμός έκδοσης του πακέ-να του προβλήματος και ζητούνται οι απαραίτητες διευκρινήσεις από τον του λογισμικού δείχνει ακρι-πελάτη, σε όσα σημεία οι προδιαγραφές παρουσιάζουν ασάφεια. βώς τις αλλαγές που έχουν πραγματοποιηθεί από την αρ-Στη φάση της Σχεδίασης καθορίζεται η δομή του προγράμματος, οι χική του εμφάνιση.ενότητες (υποπρογράμματα) από τις οποίες θα αποτελείται το πρό-γραμμα και αναζητούνται έτοιμες ενότητες (modules) από παλιότερα Όταν οι αλλαγές είναι σημα-προγράμματα που μπορούν να χρησιμοποιηθούν και σ’ αυτό το πρό- ντικές, δηλαδή έχουν προ-γραμμα. Ακόμη επιλέγονται οι αλγόριθμοι και οι δομές δεδομένων που στεθεί νέες λειτουργίες, εντο-θα χρησιμοποιηθούν σε κάθε ενότητα. λές, προγράμματα, ο αριθμός έκδοσης αυξάνει κατά ακέ-Στην επόμενη φάση της Υλοποίησης του προγράμματος επιλέγεται η ραιο αριθμό (GeoGebra 3.0,κατάλληλη γλώσσα προγραμματισμού για το συγκεκριμένο πρόγραμ- GeoGebra 4.0), ενώ, ότανμα όπου συντάσσεται το πηγαίο πρόγραμμα και μεταφράζεται από έναν οι αλλαγές είναι μικρότε-μεταγλωττιστή, ώστε αυτό να γίνει κατανοητό από τον υπολογιστή. Η ρες, αυξάνεται κατά δέκαταμετάφραση θα εντοπίσει πιθανά συντακτικά λάθη. Τα λάθη διορθώνο- ή εκατοστά (GeoGebra 4.1,νται και ακολουθεί ξανά μετάφραση του προγράμματος, έως την ορι- GeoGebra 4.2).στική εξάλειψή τους. Το πρόγραμμα που προκύπτει είναι το εκτελέσι- http://www.geogebra.orgμο πρόγραμμα. Oι εκδόσεις beta μιας εφαρ-Στην επόμενη φάση της Λειτουργίας και Συντήρησης θα γίνουν όλες μογής λογισμικού που ανα-οι προσαρμογές και βελτιώσεις που χρειάζονται προκειμένου το πρό- πτύσσει μια εταιρεία δίνονταιγραμμα να συνεχίσει να χρησιμοποιείται. Αυτές ζητούνται όταν διαφο- για έλεγχο συνήθως στουςροποιούνται τα δεδομένα του προβλήματος, όταν ο χρήστης ζητήσει πελάτες της. Οι beta testersνέες λειτουργίες ή προκύψουν κάποια λογικά λάθη που δεν είχαν δια- παίρνουν την τελική έκδοσηπιστωθεί στον έλεγχο του αλγορίθμου και μπορεί, για παράδειγμα, να δωρεάν ή με σημαντική έκ-αφορούν την επικοινωνία των ενοτήτων. Για την υλοποίηση των αλλα- πτωση.γών μπορεί να επαναληφθεί η εκτέλεση της φάσης της ανάλυσης καισχεδίασης και άρα όλων των υπολοίπων φάσεων. Έτσι πραγματοποιεί-ται συνολικός έλεγχος του προγράμματος που έχει ως συνέπεια και τηνκαταγραφή σχετικών σχολίων για την τεκμηρίωση. 71
2η ΕΝΟΤΗΤΑ Παράδειγμα 2.43. Ανάπτυξη μιας εφαρμογής αριθμομηχανής για κινη- τά τηλέφωνα με λειτουργικό Android.Θέματα ΘεωρητικήςΕπιστήμης των Υπολογιστών Αρχικά στο στάδιο της ανάλυσης θα πρέπει να καταγραφούν οι απαιτή- σεις από την αριθμομηχανή, δηλαδή τι είδους πράξεις θα είναι σε θέση Εικόνα 2.35. Λογότυπο του να διεκπεραιώσει. Στη συνέχεια, στη φάση της σχεδίασης θα καθορι- Λειτουργικού Συστήματος στούν οι ενότητες από τις οποίες θα αποτελείται η εφαρμογή, όπως ενό- τητα που θα υλοποιεί τις απλές αριθμητικές πράξεις ή ενότητα που θα Android. υπολογίζει τριγωνομετρικούς αριθμούς ή τιμές μαθηματικών συναρτή-Στην ιστοσελίδα σεων. Επίσης θα επιλεγούν οι αλγόριθμοι και οι δομές δεδομένων πουhttp://www.code.org θα χρησιμοποιηθούν σε κάθε ενότητα. Στη φάση της υλοποίησης θαυπάρχουν αρκετές δραστη- πρέπει να επιλεγεί αρχικά η γλώσσα προγραμματισμού στην οποία θαριότητες κατάλληλες για την συνταχθεί το πρόγραμμα. Μία γλώσσα οπτικού προγραμματισμού κα-εκμάθηση οπτικού προγραμ- τάλληλη για ανάπτυξη εφαρμογών για Android είναι η Google AppIn-ματισμού από μαθητές. ventor. Αφού συνταχθούν όλες οι ενότητες, θα γίνει έλεγχος για τη σω-Ο συντονιστής του έργου στή τους επικοινωνία. Η αριθμομηχανή είναι έτοιμη για να δοθεί στονανάπτυξης μιας εφαρμογής τελικό χρήστη. Σε περίπτωση που στη φάση της Λειτουργίας και τηςλογισμικού (project manager) Συντήρησης κάποιος χρήστης ζητήσει την επέκταση των δυνατοτήτωνδημιουργεί και ενημερώνει της αριθμομηχανής, όπως να προστεθεί στατιστική επεξεργασία δεδο-το πλάνο εργασίας, στελεχώ- μένων, τότε θα πρέπει ο προγραμματιστής πιθανότατα να επαναλάβεινει το έργο, και παρακολουθεί όλες τις φάσεις ώστε να καλύψει τις νέες απαιτήσεις.και ελέγχει την πρόοδό του.Πληροφορίες σχετικά με το Ωστόσο μια εφαρμογή λογισμικού με σύνθετες λειτουργίες υλοποιείταιΛογισμικό Ανοικτού Κώδικα κατά βάση από μία ομάδα προγραμματιστών που εργάζονται παράλλη-μπορούν να βρεθούν στις δι- λα ώστε να μειωθεί ο χρόνος και το κόστος της υλοποίησης. Το κάθεευθύνσεις: μέλος της ομάδας ανάπτυξης του λογισμικού αναλαμβάνει τη συγγρα-http://www.ellak.gr/ φή συγκεκριμένων ενοτήτων. Υπάρχουν ταυτόχρονα και μέλη τα οποίαhttp://www.fsf.org/ είναι υπεύθυνα για το συντονισμό της διαδικασίας ανάπτυξης, τη συ-http://opensource.org/ νένωση των ενοτήτων σε μία ενιαία εφαρμογή ή για τους ελέγχους του προϊόντος. Τα μεγάλα έργα πληροφορικής εμπλέκουν πολλά διαφορε-Εικόνα 2.36. Λίνους Τόρβαλντς τικά και εξειδικευμένα πρόσωπα, ενώ αποτελούνται από δραστηριότη- (Linus Torvalds) τες των οποίων η σειρά είναι σημαντική.Δημιουργός και συντονιστής Οι εφαρμογές που αναπτύσσονται από εταιρείες λογισμικού είναι συ-της ομάδας εργασίας του λει- νήθως Κλειστού Κώδικα (proprietary – closed source). Δεν υπάρχει ητουργικού συστήματος ανοι- δυνατότητα για τον χρήστη να δει τον κώδικα ή να επιφέρει κάποια αλ-χτού κώδικα Linux λαγή σε αυτόν. Οι βελτιώσεις στα κλειστά λογισμικά γίνονται μέσωhttp://www.linux.org/ αναβαθμίσεων που παρέχονται κατά καιρούς από τις εταιρείες κατα- σκευής τους, κυρίως μέσω διαδικτύου. Επίσης υπάρχει συνήθως κό- στος απόκτησης και απαγόρευση της αναδιανομής της εφαρμογής. Αντίθετα στις εφαρμογές Ελεύθερου Λογισμικού / Λογισμικού Ανοι- κτού Κώδικα (ΕΛ / ΛΑΚ free / open source) ο κώδικας είναι διαθέσι- μος, συνεπώς ο καθένας μπορεί ελεύθερα να χρησιμοποιεί, να μελε- τά τον τρόπο λειτουργίας, να αντιγράφει, να διανέμει και να τροποποι- εί την εφαρμογή προσθέτοντας δικές του βελτιώσεις ή νέες λειτουργί- ες. Με βάση αυτήν τη φιλοσοφία δημιουργούνται ομάδες προγραμμα-72
τιστών που μοιράζονται τις αλλαγές που κάνουν στον κώδικα με σκο- ΚΕΦΑΛΑΙΟ 2.3πό τη βελτίωσή του. Έτσι δημιουργείται ένα παγκόσμιο ανοικτό δίκτυοπρογραμματιστών, οι οποίοι συνεργάζονται κυκλοφορώντας νέες εκδό- Προγραμματισμόςσεις λογισμικού και συμβάλλοντας καθημερινά στη δημιουργία νέωνκοινών αγαθών. Το Διαδίκτυο αποτελεί το βασικό μέσο συνεργασίαςτων προγραμματιστών αλλά και του τρόπου πρόσβασης στο διαθέσιμοΕλεύθερο Λογισμικό.ΑνακεφαλαίωσηΣτην ενότητα αυτή επιχειρήθηκε να εξηγηθεί τι είναι πρόγραμμα και Εικόνα 2.37. Σέυμουρ Παπέρτέγινε αναφορά στις διάφορες γενιές γλωσσών προγραμματισμού και (Seymour Papert)στα βασικά Προγραμματιστικά Υποδείγματα. Επισημάνθηκαν οι αρ-χές του Δομημένου Προγραμματισμού και τα πλεονεκτήματα αυτής Επινόησε τη γλώσσα προ-της μεθοδολογίας συγγραφής προγραμμάτων. Επίσης αναλύθηκε η δι- γραμματισμού LOGO ως ένααδικασία μετάφρασης των προγραμμάτων και οι τρόποι εύρεσης και δι- τεχνολογικό εργαλείο που θαόρθωσης συντακτικών λαθών. Με παραδείγματα ανάπτυξης προγραμ- βελτιώνει τους τρόπους μεμάτων σε διάφορα προγραμματιστικά περιβάλλοντα παρουσιάστηκε η τους οποίους τα παιδιά σκέ-επαναχρησιμοποίηση κώδικα μέσω διαδικασιών ή συναρτήσεων. Ακό- πτονται και επιλύουν προ-μη χρησιμοποιήθηκαν βασικοί αλγόριθμοι του προηγούμενου κεφαλαί- βλήματα.ου οι οποίοι κωδικοποιήθηκαν σε προγράμματα. Τέλος περιγράφηκε οΚύκλος Ζωής ενός προγράμματος και έγινε διάκριση μεταξύ των εφαρ-μογών κλειστού και ανοικτού κώδικα.Ερωτήσεις - Θέματα προς συζήτηση - Δραστηριότητες1. Τι είναι πρόγραμμα;2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες προηγούμενης γενιάς;3. Ποια η διαφορά των γλωσσών του οπτικού προγραμματισμού με αυτές που διαθέτουν οπτικό περιβάλλον προγραμματισμού;4. Τι εννοούμε με τη φράση «Προγραμματιστικό Υπόδειγμα»;5. Τι είναι ο δομημένος προγραμματισμός και ποια είναι τα τρία κύ- ρια χαρακτηριστικά του;6. Ποια είναι τα πλεονεκτήματα του Δομημένου Προγραμματισμού;7. Σε τι χρησιμεύουν τα μεταφραστικά προγράμματα;8. Ποιες οι διαφορές του μεταγλωττιστή και του διερμηνευτή στην εύ- ρεση των συντακτικών λαθών;9. Τι εργαλεία πρέπει να περιέχει ένα προγραμματιστικό περιβάλλον;10. Πώς επιτυγχάνεται η επαναχρησιμοποίηση κώδικα και ποια τα πλε- ονεκτήματά της;11. Ποιες είναι φάσεις του Κύκλου Ζωής ενός προγράμματος;12. Ποιες δυνατότητες έχει ο χρήστης με τα Λογισμικά Ανοικτού Κώδικα;13. Να χαρακτηρίσετε με Σωστό ή Λάθος τις παρακάτω προτάσεις: Α. Οι εντολές στις συμβολικές γλώσσες αποτελούνται από ακο- λουθίες 0 και 1. 73
2η ΕΝΟΤΗΤΑ B. Η μεταφερσιμότητα είναι χαρακτηριστικό των γλωσσών υψη-Θέματα Θεωρητικής λού επιπέδου.Επιστήμης των Υπολογιστών Γ. Η SQL αποκρύπτει τις τεχνικές του προγραμματισμού.Εικόνα 2.38. Ρίτσαρντ Φάινμαν (Richard Feynman) Βραβείο Δ. Η γλώσσα LOGO αναπτύχθηκε για εκπαιδευτικού σκοπούς. Νόμπελ Φυσικής. Ε. Μία εφαρμογή λογισμικού με σύνθετες λειτουργίες υλοποιείται«Η επιστήμη υπολογιστώνδεν είναι τόσο παλιά όσο η κατά βάση από μία ομάδα προγραμματιστών.φυσική, υστερεί χρονικά με-ρικούς αιώνες. Ωστόσο, αυτό 14. Να επιλέξετε για κάθε μία από τις παρακάτω φράσεις το γράμμαδεν σημαίνει ότι υπάρχουνλιγότερα στο πιάτο του επι- που οδηγεί σε σωστή πρόταση:στήμονα των υπολογιστώναπ’ ότι σε αυτό του φυσικού: Α. Οι εντολές ενός προγράμματος γράφονται σε ένα πρόγραμμαμπορεί να είναι νεότερη αλλάείχε μια πολύ πιο έντονη γέν- που ονομάζεται:νηση!» i. Συντάκτης ii. ΜεταγλωττιστήςΛέξεις κλειδιάΠρόγραμμα, Γλώσσες Προ- iii. Διερμηνευτής iv. Συνδέτηςγραμματισμού, Προγραμμα-τιστικό Υπόδειγμα, Δομημέ- Β. Ο μεταγλωττιστής επισημαίνει:νος Προγραμματισμός, Συντά-κτης, Μετάφραση Προγράμ- i. όλα τα λάθη του προγράμματοςματος, Μεταγλωττιστής, Διερ-μηνευτής, Αντικείμενο Πρό- ii. μόνο τα λογικά λάθη του προγράμματοςγραμμα, Συνδέτης, Εκτελέ-σιμο Πρόγραμμα, Συντακτι- iii. μόνο τα συντακτικά λάθη του προγράμματοςκά Λάθη, Διαδικασίες, Συναρ-τήσεις, Βιβλιοθήκες, Κύκλος iv. μόνο τα λάθη που οφείλονται σε αναγραμματισμούς εντολώνΖωής, Ανοικτό Λογισμικό Γ. Σε μία εφαρμογή ανοικτού κώδικα: i. δεν είναι δυνατόν να προσπελάσει ο χρήστης τον κώδικα ii. πρέπει ο χρήστης να περιμένει τις αναβαθμίσεις από την εταιρεία κατασκευής της. iii. ο χρήστης δεν μπορεί να προσθέσει λειτουργίες. iv. ο χρήστης μπορεί να δει τον κώδικα και να προσθέσει λειτουργίες. 15. Να πραγματοποιήσετε συζήτηση στην τάξη για το πώς θα μπορού- σε να υλοποιηθεί προγραμματιστικά το υπολογιστικό πρόβλημα που περιγράφεται στο παράδειγμα 2.1. στο κεφάλαιο 2.1. 16. Να πραγματοποιήσετε συζήτηση στην τάξη σχετικά με το επάγγελμα του προγραμματιστή. Αναζητήστε πληροφορίες στη διεύθυνση http:// www.eoppep.gr 17. Να αναπτύξετε πρόγραμμα στο προγραμματιστικό περιβάλλον Δι- ερμηνευτής Ψευδογλώσσας (ViALGOL) το οποίο Α. να δέχεται τα ονόματα 20 εταιρειών καθώς και τα έσοδα τους για το προηγούμενο έτος. B. να εκτυπώνει το μέσο όρο των εσόδων. Γ. να εκτυπώνει το όνομα της εταιρείας με τα μεγαλύτερα έσοδα. Δ. να διαβάζει το όνομα μιας εταιρείας και να εμφανίζει τα έσοδα της. Αν η εταιρεία δεν υπάρχει να εμφανίζει κατάλληλο μήνυμα. 18. Να αναπτύξετε κατάλληλα υποπρογράμματα για τα ερωτήματα Β και Γ της δραστηριότητας 17 και να γράψετε τον αντίστοιχο κώδικα του προγράμματος. Τα υποπρογράμματα θα πρέπει να επιστρέφουν το μέσο όρο και το όνομα της εταιρείας αντίστοιχα.74
ΕΝΟΤΗΤΑ 3ηΘέματα ΕφαρμοσμένηςΕπιστήμης των ΥπολογιστώνΚΕΦΑΛΑΙΑ3.1. Λειτουργικά Συστήματα3.2. Πληροφοριακά Συστήματα3.3. Δίκτυα3.4. Τεχνητή Νοημοσύνη
3η ΕΝΟΤΗΤΑΘέματα ΕφαρμοσμένηςΕπιστήμης των Υπολογιστών 76
ΚΕΦΑΛΑΙΟ 3.1 Λειτουργικά Συστήματα ΠροερωτήσειςΣτόχος του κεφαλαίου αυτού είναι οι μαθητές να εντάξουν τις γνώ- • Πώς συντονίζεται το υλικόσεις τους για τα Λειτουργικά Συστήματα στο σχήμα της Εφαρμοσμέ- σε ένα σύγχρονο υπολογιστι-νης Επιστήμης των Υπολογιστών. κό σύστημα; • Πώς γίνεται η διαχείριση των3.1.1 Λογισμικό και Υπολογιστικό Σύστημα πληροφοριών, της μνήμης, της Κεντρικής Μονάδας Επεξερ-Ένα σύγχρονο υπολογιστικό σύστημα αποτελείται από: το υλικό, τα γασίας και των περιφερειακώνηλεκτρονικά μέρη του υπολογιστή και το λογισμικό, το σύνολο των συσκευών;προγραμμάτων που αξιοποιούν και διαχειρίζονται τις λειτουργίες του • Ποια είναι τα πιο γνωστάυλικού του υπολογιστή. Το λογισμικό χωρίζεται στο λειτουργικό σύ- Λειτουργικά Συστήματα;στημα, το οποίο θα μελετηθεί στη συνέχεια και στο λογισμικό εφαρ- • Ποια είναι τα βασικά χαρα-μογών, τα οποία αποτελούν το σύνολο των προγραμμάτων που επιλύ- κτηριστικά του Λειτουργικούουν τα προβλήματα των χρηστών. Συστήματος που χρησιμοποι- είτε συχνότερα;3.1.2 Το Λειτουργικό Σύστημα και οι Αρμοδιότητές του Κατά την εξέλιξή τους έχουν εμφανιστεί διάφορες κατηγο- Λειτουργικό Σύστημα (Λ.Σ.) (Operating System – OS) είναι το σύ- ρίες Λ.Σ.: Τα Λ.Σ. ομαδικής νολο των προγραμμάτων ενός υπολογιστικού συστήματος το οποίο επεξεργασίας (1η γενιά - δε- λειτουργεί ως σύνδεσμος ανάμεσα στα προγράμματα του χρήστη καετία ‘50), πολυπρογραμ- και το υλικό. Το Λ.Σ. είναι υπεύθυνο για τη δημιουργία του περιβάλ- ματισμού (2η γενιά - δεκαε- λοντος επικοινωνίας του χρήστη με το σύστημα, τη διαχείριση και τία ‘60), καταμερισμού χρό- το συντονισμό των εργασιών του συστήματος, καθώς και για την νου (3η γενιά - δεκαετία ‘70) κατανομή των διαθέσιμων πόρων. και κατανεμημένης επεξερ- γασίας (4η γενιά - δεκαετίαΤα Λ.Σ. παρέχουν ένα περιβάλλον στο οποίο εκτελούνται διάφορα προ- ‘80 μέχρι σήμερα).γράμματα, τα οποία στοχεύουν στην ομαλή λειτουργία του υπολογιστικούσυστήματος. Οι βασικές αρμοδιότητες ενός Λ.Σ. είναι να: Εικόνα 3.1. Διαστρωμάτωση ενός Λ.Σ. •• Λειτουργεί ως ενδιάμεσος μεταξύ του ανθρώπου και της μηχα- νής, μεταφέροντας εντολές ή απαιτήσεις του χρήστη στο υπολο- 77 γιστικό σύστημα. •• Διαχειρίζεται τους διαθέσιμους πόρους και να τους κατανέμει στις διάφορες διεργασίες. •• Ελέγχει την εκτέλεση των προγραμμάτων.
3η •• Διαχειρίζεται τη λειτουργία των συσκευών εισόδου και εξόδου και να ελέγχει τη ροή των δεδομένων και την έξοδο των πληρο-Θέματα Εφαρμοσμένης φοριών.Επιστήμης των Υπολογιστών •• Οργανώνει και να διαχειρίζεται τα αρχεία του συστήματος. •• Ανιχνεύει και να εντοπίζει πιθανά λάθη ή δυσλειτουργίες του υπολογιστικού συστήματος και να ενημερώνει τον χρήστη. •• Εφαρμόζει μηχανισμούς που βελτιώνουν την ασφάλεια του υπο- λογιστικού συστήματος από διάφορους κινδύνους. Εικόνα 3.2. Επικοινωνία 3.1.3 Η Δομή και η Ιεραρχία του Λειτουργικού με απευθείας εντολές Συστήματος (Λ.Σ. MS DOS) Τα σύγχρονα Λ.Σ. είναι δομημένα σε ιεραρχικά τοποθετημένα επίπεδα Εικόνα 3.3. Επικοινωνία με (layers). Κάθε επίπεδο εκτελεί μια συγκεκριμένη εργασία και συνεργάζε-γραφικό περιβάλλον Διεπαφής ται με τα δύο γειτονικά του. Στα κατώτερα επίπεδα γίνεται η διαχείριση της μνήμης και της επικοινωνίας με τις περιφερειακές συσκευές του υπολογι- (Λ.Σ. MS Windows) στή, ενώ στα ανώτερα γίνεται η διαχείριση των προγραμμάτων που εκτε- λούν οι χρήστες. Σε ένα Λ.Σ. υπάρχουν τα ακόλουθα επίπεδα (Εικόνα 3.1): •• Ο Πυρήνας (Kernel), βρίσκεται πλησιέστερα προς το υλικό και αποτελεί τον ενδιάμεσο για να επιτευχθεί η επικοινωνία των προ- γραμμάτων με το υλικό. Ο πυρήνας «φορτώνεται» πρώτος στην κύρια μνήμη όταν ξεκινάει ο υπολογιστής. •• Το Σύστημα Αρχείων (File System) διαχειρίζεται τα αρχεία (δί- νοντάς τους ονομασία, καταχωρώντας τα, κτλ.) και φροντίζει για τη διάθεσή τους στους χρήστες. •• Ο Διερμηνευτής Εντολών (Command Interpreter) ή Φλοιός (Shell) είναι το σύνολο των προγραμμάτων, το οποίο επιτρέπει στο χρήστη και τις εφαρμογές του να επικοινωνεί με το Λ.Σ. Η επικοινωνία γίνεται είτε με απευθείας εντολές (command mode - Εικόνα 3.2) είτε μέσω ενός γραφικού περιβάλλοντος διεπαφής (GUI - Graphical User Interface – Εικόνα 3.3).Μια από τις βασικές έννοιες 3.1.4 Βασικές Εργασίες ενός Λ.Σ.στα Λ.Σ. είναι η έννοια τηςδιεργασίας (process). Εργασίες ενός Λ.Σ. αποτελούν η Διαχείριση της Κεντρικής Μονάδας Επεξεργασίας (Κ.Μ.Ε.), η Διαχείριση της Κεντρικής Μνήμης, η Δια-Μια διεργασία είναι ένα πρό- χείριση του Συστήματος Αρχείων και η Διαχείριση των Λειτουργιώνγραμμα ή ένα αυτόνομο τμή- Εισόδου/Εξόδου.μα προγράμματος υπό εκτέ-λεση από το σύστημα. 3.1.4.1 Διαχείριση της Κ.Μ.Ε.Το πρόγραμμα διαφέρει απότη διεργασία στο ότι είναι μι- Το χαρακτηριστικό των σύγχρονων Λ.Σ. είναι ο πολυπρογραμματι-κρότερο, μιας και η διεργα- σμός (multiprogramming) και η πολυδιεργασία (multitasking). Στηνσία περιέχει, εκτός από το πρώτη περίπτωση το Λ.Σ. μπορεί να εκτελεί ταυτόχρονα περισσότεραπρόγραμμα, και στοιχεία συ- από ένα προγράμματα (για παράδειγμα, την ώρα που η Κ.Μ.Ε. περιμένειστήματος για την εκτέλεσητου κώδικα. 78
απάντηση από μια περιφερειακή συσκευή, αυτός o χρόνος «αναμονής» 3.1μπορεί να αξιοποιηθεί από ένα άλλο πρόγραμμα που είναι φορτωμένοστην κύρια μνήμη), ενώ στη δεύτερη περίπτωση το Λ.Σ. μπορεί να εκτε- Λειτουργικάλεί ταυτόχρονα περισσότερες από μία εργασίες (για παράδειγμα, μπορεί Συστήματανα γίνονται παράλληλα εκτυπώσεις και υπολογισμοί). Η όλη διαδικασίαβασίζεται σε έναν αλγόριθμο χρονοπρογραμματισμού, ο οποίος στοχεύ- Κάθε πρόγραμμα προτούει στη μεγιστοποίηση της αποδοτικότητας και της «δίκαιης» χρήσης της εκτελεστεί από την κεντρικήΚ.Μ.Ε. από το μέγιστο αριθμό των επεξεργαζόμενων διεργασιών. μνήμη βρίσκεται στην περι- φερειακή μνήμη (σκληρός δί-3.1.4.2 Διαχείριση της Μνήμης σκος), ενώ κατά τη διάρκεια εκτέλεσής του στην κεντρικήΗ πολυδιεργασία προϋποθέτει ότι στην κεντρική μνήμη είναι φορτωμένα μνήμη το πρόγραμμα διαβά-περισσότερα του ενός προγράμματα προς εκτέλεση από την Κ.Μ.Ε. Θα ζει από αυτήν και γράφει δε-πρέπει, λοιπόν, να γίνει η διαχείριση της κύριας μνήμης με τέτοιο τρό- δομένα σε αυτήν.πο, ώστε να επιτευχθεί ο αποτελεσματικός διαμοιρασμός της μεταξύ τωνδιαφόρων προγραμμάτων. Το τμήμα του Λ.Σ. που διαχειρίζεται την κύ- Σ’ έναν υπολογιστή οι πλη-ρια μνήμη είναι ο διαχειριστής μνήμης (memory manager). Οι εργασίες ροφορίες αποθηκεύονται σεπου επιτελεί ο διαχειριστής μνήμης είναι: περιφερειακές μονάδες (π.χ. σε σκληρούς δίσκους) όπου •• Η διάθεση τμημάτων μνήμης σε διεργασίες. τα στοιχεία διατηρούνται και •• Η παρακολούθηση της κατάστασης χρήσης της μνήμης, ώστε να μετά τη διακοπή της παροχής ρεύματος. Εκεί αποθηκεύο- γνωρίζει τα ελεύθερα ή μη τμήματα κάθε στιγμή και να τα διανέ- νται τα στοιχεία ως συλλογές μει σε διεργασίες. δεδομένων (αρχεία-files), τη •• Η ελευθέρωση μνήμης από διεργασίες που δεν τη χρειάζονται. διαχείριση των οποίων ανα- •• Η ανταλλαγή (swapping) δεδομένων μεταξύ της κύριας μνήμης λαμβάνει μέρος του Λ.Σ. που και της περιοχής του δίσκου (περιφερειακή μνήμη) που χρησιμο- καλείται Σύστημα Αρχείων ποιείται ως βοηθητική περιοχή της κύριας μνήμης. (file system).3.1.4.3 Διαχείριση του Συστήματος Αρχείων Με τον όρο Είσοδος (Input) αναφερόμαστε στη ροή δεδο-Το σύστημα αρχείων είναι το μέρος του Λ.Σ. με το οποίο ο χρήστης έρ- μένων προς την Κ.Μ.Ε. ενώχεται σε άμεση επαφή. Το Λ.Σ. συνήθως οργανώνει τα αρχεία του σε με τον όρο Έξοδος (Output)καταλόγους ή φακέλους (directories ή folders). Κάθε κατάλογος απο- αναφερόμαστε στη ροή δεδο-τελείται από αρχεία, υποκαταλόγους ή υποφακέλους, δημιουργώντας μένων από την Κ.Μ.Ε. προςμία δενδροειδή μορφή. τις περιφερειακές συσκευές.Ένα σύστημα αρχείων του Λ.Σ. προσφέρει στον χρήστη ένα εικονικό 79περιβάλλον διαχείρισης, το οποίο του δίνει τη δυνατότητα να εκτελείμία σειρά από πράξεις όπως η δημιουργία (με προσδιορισμό ονόματοςκαι τύπου), η διαγραφή, η μετονομασία, η αντιγραφή και το κλείσιμοαρχείων. Επιπλέον, είναι δυνατή η τροποποίηση του περιεχομένου ή ηαντιγραφή του περιεχομένου ενός αρχείου σε ένα άλλο.3.1.4.4 Διαχείριση Λειτουργιών Εισόδου/ΕξόδουΤο τμήμα του Λ.Σ. το οποίο ασχολείται με τις διαδικασίες εισόδου/εξόδου μεταξύ του κεντρικού μέρους και των εξωτερικών προς αυτόσυσκευών εξασφαλίζει τη διασύνδεση των συσκευών με το κεντρικό
3η ΕΝΟΤΗΤΑ σύστημα και την ομαλή επικοινωνία. Επίσης, αναλαμβάνει να διαχειρι- στεί τις εντολές που εκτελούνται και τα σφάλματα που παρουσιάζονται.Θέματα ΕφαρμοσμένηςΕπιστήμης των Υπολογιστών Στις αρμοδιότητες του συγκεκριμένου μέρους του Λ.Σ. είναι η αποδοτική διαχείριση των περιφερειακών μονάδων και ο ορισμός της σειράς ικα- Εικόνα 3.4. Το Λ.Σ. Linux νοποίησης των διαφόρων δραστηριοτήτων, όπως των αιτημάτων εγγρα- είναι ΕΛ/ΛΑΚ και μπορεί να φής ή ανάγνωσης. Έτσι, οι συσκευές διακρίνονται σε διαμοιραζόμενες τρέξει μέσα από οπτικό δίσκο (shared) και αποκλειστικές (dedicated). Τις διαμοιραζόμενες συσκευές (LiveCD) χωρίς να απαιτείται μπορούν να τις χρησιμοποιούν πολλοί χρήστες ταυτόχρονα, όπως οι δί- σκοι, ενώ τις αποκλειστικές μπορεί να τις χρησιμοποιεί ένας χρήστης μόνιμη εγκατάσταση. κάθε στιγμή, όπως οι εκτυπωτές οι οποίοι κατά τη διάρκεια της χρήσης τους δεν επιτ ρέπεται να χρησιμοποιούνται από άλλο πρόγραμμα. Εικόνα 3.5. Λ.Σ. OS X της Apple. 3.1.5 Γνωστά Λειτουργικά Συστήματα Εικόνα 3.6. Λ.Σ. Android Έχουν αναπτυχθεί διάφορα Λ.Σ. τα οποία αξιοποιούν κατάλληλα την της Google αρχιτεκτονική των επεξεργαστών. Στη συνέχεια παρατίθενται τα πιο γνωστά από αυτά. 80 Το Unix αναπτύχθηκε στα εργαστήρια Bell Labs της ΑΤ&Τ το 1969. Το μεγαλύτερο μέρος του έχει αναπτυχθεί σε γλώσσα προγραμματι- σμού C. Το Unix αποτελεί ένα Λ.Σ. πολυδιεργασίας, καταμερισμού χρόνου (timesharing), πολλών χρηστών (multiuser), και με φορητότη- τα (portability) - δηλαδή εύκολη εγκατάσταση σε διαφορετικού τύπου συστήματα. Το MS-DOS (Microsoft Disk Operating System) είναι Λ.Σ. στο οποίο οι εντολές του χρήστη πληκτρολογούνται σε μία γραμμή. Αναπτύχθη- κε από την εταιρεία Microsoft το 1981 για λογαριασμό της εταιρείας ΙΒΜ (Εικόνα 3.2). Τα MS Windows της Microsoft διαθέτουν γραφικό περιβάλλον διεπαφής χρήστη παραθυρικού τύπου (Εικόνα 3.3). Πρόκειται για Λ.Σ. πολλαπλών διεργασιών και πολλαπλών χρηστών. Από το 1985 μέχρι σήμερα έχουν αναπτυχθεί διάφορες εκδόσεις των Windows (π.χ. 95, 98, XP, 7, 8.1 κ.α.). Το Linux είναι ένα λειτουργικό σύστημα τύπου Unix, το οποίο δημι- ουργήθηκε από τον Linus Torvalds το 1991. Ο πηγαίος κώδικάς του εί- ναι «ανοικτός», με αποτέλεσμα να αναπτύσσεται συνεχώς από μια με- γάλη κοινότητα χρηστών (Εικόνα 3.4). Το Mac OS X έχει ως βάση το Λ.Σ. Unix και διανέμεται αποκλειστικά για χρήση με τους υπολογιστές Mac της εταιρείας Apple. Το Mac OS X είναι η εξέλιξη του Mac OS το οποίο ήταν το αρχικό Λ.Σ. της Apple (1984-1999). Τα OS X διακρίνονται για τα πρωτότυπα γραφικά περι- βάλλοντα διεπαφής τους (Εικόνα 3.5). Το Android χρησιμοποιείται κυρίως σε συσκευές κινητής τηλεφωνίας και tablets και τρέχει τον πυρήνα του Λ.Σ. Linux. Αρχικά αναπτύχθη-
κε από την Google (2007) και αργότερα από την Open Handset Alliance ΚΕΦΑΛΑΙΟ 3.1(Εικόνα 3.6). ΛειτουργικάΑνακεφαλαίωση ΣυστήματαΈνα Λ.Σ αποτελείται από ένα σύνολο προγραμμάτων τα οποία ελέγ- Χρήσιμοι Υπερσύνδεσμοιχουν ένα υπολογιστικό σύστημα, και λειτουργεί ως ενδιάμεσος ανάμε- http://www.android.comσα στο σύστημα και τον χρήστη. Τα χαρακτηριστικά των συγχρόνων Διαδικτυακός τόπος για τοΛ.Σ. είναι ο πολυπρογραμματισμός και η πολυδιεργασία. Έχουν ανα- Λ.Σ. Android.πτυχθεί διάφορα Λ.Σ. τα οποία εξελίσσονται παράλληλα με την εξέλι- http://www.linux.gr/newsξη της αρχιτεκτονικής των σύγχρονων επεξεργαστών. Διαδικτυακός τόπος της ελ- ληνικής κοινότητας Linux.Ερωτήσεις - Δραστηριότητες - Θέματα προς συζήτηση Λέξεις κλειδιά1. Ποιο ρόλο επιτελεί το Λειτουργικό Σύστημα σε έναν υπολογιστή; Διεπαφή, Σύστημα Αρχείων,2. Να αναφέρετε ονομαστικά τις μεθόδους διαχείρισης των περιφερει- Διαχείριση Κ.Μ.Ε., Είσοδος/ Έξοδος, Πυρήνας. ακών συσκευών από το Λ.Σ.3. Δείτε ποια Λ.Σ. διαθέτει το εργαστήριο υπολογιστών του σχολείου σας και εντοπίστε ομοιότητες και διαφορές.4. Αν στην τάξη σας βρίσκονται μαθητές με διαφορετική καταγω- γή, μελετήστε τις ασυμβατότητες των Λ.Σ. μεταξύ διαφορετικών γλωσσών.5. Αναζητήστε το LiveCD του Linux και δοκιμάστε το σε κάποιους υπολογιστές του σχολικού εργαστηρίου.6. Αναζητήστε πληροφορίες για Λ.Σ. τα οποία είναι φιλικά στη χρήση τους από Άτομα με Αναπηρία (ΑμεΑ).7. Ποια από τα παρακάτω αποτελούν εργασίες ενός Λ.Σ.; Α. Εκτύπωση Β. Διαχείριση μνήμης Γ. Επεξεργασία κειμένου Δ. Διαχείριση Κ.Μ.Ε. 81
3η ΕΝΟΤΗΤΑΘέματα ΕφαρμοσμένηςΕπιστήμης των Υπολογιστών 82
ΚΕΦΑΛΑΙΟ 3.2Πληροφοριακά Συστήματα ΠροερωτήσειςΣτόχοι του κεφαλαίου είναι οι μαθητές: • Ποια είναι τα στάδια υλο- ποίησης μιας παραγγελίας Να εντάξουν τις γνώσεις τους για θέματα σχετικά με τη διαχείριση δε- μέσω διαδικτύου; δομένων, τη δημιουργία, την αποθήκευση και την ανάκτηση πληροφο- • Πώς επιδρά η εξάπλωση του ριών στο σχήμα της Εφαρμοσμένης Επιστήμης των Υπολογιστών. Διαδικτύου και των δικτύων στη λειτουργία ενός οργανι- Να αιτιολογούν ότι τα δεδομένα αποθηκεύονται σε οργανωμένες δομές σμού ή μιας επιχείρησης; και ανακτώνται μέσω συγκεκριμένων συστημάτων και μεθοδολογιών. • Πώς εκτελούνται οι λει- τουργίες παραγγελιών, παρα-3.2.1 Τι είναι τα Πληροφοριακά Συστήματα γωγής και μεταφοράς προϊό- ντων σε συνθήκες παγκοσμι-Τα τελευταία χρόνια έχουν διαμορφωθεί νέες απαιτήσεις για θέματα οποίησης;που αφορούν τη διαχείριση των δεδομένων, τη δημιουργία, αποθήκευ-ση, ανάκτηση και χρήση της πληροφορίας. Οι απαιτήσεις αυτές οδηγούν Η οντότητα (entity) είναι μίαστην ανάπτυξη βάσεων δεδομένων και νέων πληροφοριακών αρχιτεκτο- αυτόνομη μονάδα του φυσι-νικών. Τα Πληροφοριακά Συστήματα και οι Βάσεις Δεδομένων εντάσσο- κού κόσμου, για παράδειγμανται στο σχήμα της Εφαρμοσμένης Επιστήμης των Υπολογιστών. ένα αντικείμενο, ένα πρόσω- πο, μία κατάσταση και γενικά Πληροφοριακό σύστημα (Π.Σ.) ονομάζεται ένα σύνολο αλλη- οτιδήποτε μπορεί να προσδι- λοσυσχετιζόμενων και αλληλεπιδρώντων οντοτήτων που συλ- οριστεί ως ανεξάρτητη ύπαρ- λέγουν, επεξεργάζονται, αποθηκεύουν, ανακτούν και διανέμουν ξη. Για παράδειγμα, σε ένα πληροφορίες για την υποστήριξη των αποφάσεων και ελέγχου σε σχολείο, οντότητες μπορεί μια επιχείρηση ή σε έναν οργανισμό. να είναι τα ονόματα ή τα στοιχεία των μαθητών, τωνΈνα Π.Σ. λειτουργεί μέσα σε ένα περιβάλλον, επηρεάζεται από αυτό καθηγητών, οι αίθουσες δι-και το επηρεάζει. Μέσα σ’ αυτό λειτουργεί και το ανθρώπινο δυναμικό δασκαλίας, τα βιβλία κάθεμε την τεχνολογική υποδομή που διαθέτει (Εικόνα 3.7). τάξης, οι βαθμολογίες κ.ά. ÅÐÉ×ÅÉÑÇÓÅÉÓ/ÏÑÃÁÍÉÓÌÏÉ Για μια επιχείρηση που διανέ- ÄïìÞ, êáíïíéóìïß ëåéôïõñãßáò, μει διάφορα είδη προϊόντων ο ìÝãåèïò, ó÷Ýóåéò ìå åôÝñïõò, προγραμματισμός των εργασι- ών της, η παράδοση των αγα- óõíåñãáóßåò θών και τα έξοδα διανομής κα- θορίζουν σε μεγάλο βαθμό τηνÄÉÅÑÃÁÓÉÅÓ ÔÅ×ÍÏËÏÃÉÁ κερδοφορία της. Έτσι, η εφο- (Ôå÷íïëïãéêÞ διαστική αλυσίδα (logistics) παίζει σπουδ αίο ρόλο στις ÕðïäïìÞ) δραστηριότητ ές της. Η αξιο- ποίηση ενός Π.Σ. γύρω από ÁÍÈÑÙÐÉÍÏ ÄÕÍÁÌÉÊÏ αυτά τα ζητήματα είναι καθο- Åîåéäßêåõóç, åìðåéñßá, êßíçôñá, ριστικής σημασίας για την επι- χείρηση. äéáðñïóùðéêÝò êáé åðáããåëìáôéêÝò ó÷Ýóåéò 83Εικόνα 3.7. Το μοντέλο αλληλεπίδρασης ενός Π. Σ.
3η Κάθε Π.Σ. αποτελείται από Δεδομένα ή Διαδικασίες που αφορούν την επιχείρηση ή τον οργανισμό, Τεχνολογίες Πληροφορικής (υλικό και λογι-Θέματα Εφαρμοσμένης σμικό) και Ανθρώπους (ανθρώπινο δυναμικό και διοίκηση) (Εικόνα 3.8).Επιστήμης των Υπολογιστών Σε ένα Π.Σ. συντελείται: Συλλογή Δεδομένων, Αποθήκευση Δεδομένων, ÔÅ×ÍÏËÏÃÉÁ Επεξεργασία Δεδομένων και Παρουσίαση της Πληροφορίας. Η διαχεί- ριση των δεδομένων ενός Π.Σ. είναι σημαντική για έναν οργανισμό ή μια ÐËÇÑÏÖÏÑÉÁÊÏ επιχείρηση. Για το λόγο αυτό απαιτείται η δημιουργία ειδικής υπηρεσί- ÓÕÓÔÇÌÁ ας που θα καθορίζει α) τις ανάγκες και β) την δυνατότητα πρόσβασης σε δεδομένα και πληροφορίες.ÅÐÉ×ÅÉÑÇÓÇ ÄÉÏÉÊÇÓÇ ¹ 3.2.2 Αρχιτεκτονικές ΑποθήκευσηςÏÑÃÁÍÉÓÌÏÓ Κάθε επιχείρηση ακολουθεί διαφορετικούς τρόπους αποθήκευσης των δε- δομένων σύμφωνα με τις ανάγκες της και τις τεχνολογίες που μπορεί ναΕικόνα 3.8. Τα συστατικά μέρη υποστηρίξει. Οι αρχιτεκτονικές αποθήκευσης κατηγοριοποιούνται ανάλο- ενός Π.Σ. γα με τις μεθόδους που χρησιμοποιούν. Στις αρχιτεκτονικές αποθήκευ- σης άμεσης πρόσβασης είναι δυνατή η άμεση πρόσβαση στα δεδομένα ή Εικόνα 3.9. Συσκευή τα εμπορεύματα μέσω συσκευών εισόδου. Οι καταχωρήσεις στο σύστη- γραμμοκώδικα με χρήση μα αποθήκευσης μπορούν να γίνονται με συσκευές αναγνώρισης (Εικόνα 3.9). Στις Αρχιτεκτονικές αποθήκευσης βασισμένες σε δίκτυο η πρόσβα- πλακέτας Arduino. ση στα δεδομένα γίνεται μέσω ενός δικτύου υπολογιστών, όπου τα δεδο-Οι σύγχρονοι εξυπηρετητές μένα αποθηκεύονται είτε τοπικά είτε σε κάποια άλλη τοποθεσία της επι-διαθέτουν πλατφόρμα δεδο- χείρησης. Έτσι δίνεται η δυνατότητα απομακρυσμένης πρόσβασης σε όλαμένων άμεσης πρόσβασης τα δεδομένα. Οι Αρχιτεκτονικές αποθήκευσης βασισμένες στο σύννεφογια διαχείριση και δόμηση στηρίζονται στο Διαδίκτυο και χρησιμοποιούν τις υποδομές ενός παρόχουεπιχειρησιακών λύσεων βα- υπηρεσιών σύννεφου (Cloud Service Provider, CSP). Περιλαμβάνουν λει-σισμένες στο σύννεφο. τουργικό σύστημα για υπηρεσίες σύννεφου και τις απαραίτητες διαδικτυα- κές υπηρεσίες που εξασφαλίζουν τη διασυνδεσιμότητα και τη διαλειτουρ-Σήμερα, κάθε λογαριασμός γικότητα. Για τη συγκεκριμένη αρχιτεκτονική υπάρχει η δυνατότητα αύξη-μπορεί να περιέχει έως και σης σε πραγματικό χρόνο του αποθηκευτικού χώρου και διατίθενται υπη-100TB από Blobs (Binary ρεσίες που επιτρέπουν την αποθήκευση μεγάλων ποσοτήτων μη δομημέ-Large OΒject). Ένα Blob νης πληροφορίας, η οποία είναι προσβάσιμη μέσω του διαδικτύου, χωρίςμπορεί να έχει μέγεθος εκα- την ανάγκη τοπικής αποθήκευσης και επεξεργασίας.τοντάδων gigabyte. 3.2.3 Βάσεις Δεδομένων B.Ä. ÌáèçôÝò Η αποτελεσ ματική και αποδοτική διαχείριση των δεδομένων ενός Π.Σ. ÊáèçãçôÝò απαιτεί την οργάνωσή τους με δομημένο τρόπο. Για το σκοπό αυτό χρησιμοποιούνται Βάσεις Δεδομένων (Data Bases, D.B.) που αποτε- ÔÜîåéò λούν το λειτουργικό πυρήνα του Π.Σ.. Σε μία Β.Δ. καταγράφονται ολο- κληρωμένες συλλογές δεδομένων που συσχετίζονται (Εικόνα 3.10).Εικόνα 3.10. Μία Β.Δ. με τρεις συλλογές δεδομένων. Βάση Δεδομένων (Β.Δ.) είναι μία οργανωμένη συλλογή από συ- σχετιζόμενα δεδομένα, επεξεργασμένα και αποθηκευμένα με τέ- 84 τοιο τρόπο, ώστε να μπορούν να χρησιμοποιούνται σε όλες τις εφαρμογές ενός οργανισμού ή μιας επιχείρησης.
Η πιο συνηθισμένη μορφή Β.Δ. είναι οι Σχεσιακές Βάσεις Δεδομένων 3.2(Σ.Β.Δ.), όπου τα δεδομένα οργανώνονται σε συσχετιζόμενους πίνακεςμε βάση το Σχεσιακό Μοντέλο Δεδομένων. Για παράδειγμα, στην εικό- Πληροφοριακάνα 3.11 το κοινό στοιχείο των 2 πινάκων είναι o κωδικός του μαθήματος. Συστήματα Σχεσιακό Μοντέλο Δεδομέ- νων (Relation Data Model, RDM) είναι το είδος του λογι- κού μοντέλου βάσεων δεδομέ- νων που μπορεί να συνδυάζει τα δεδομένα ενός πίνακα με τα δεδομένα ενός άλλου, αρκεί οι δυο πίνακες να έχουν ένα κοι- νό στοιχείο δεδομένων. Εικόνα 3.11. Σχεσιακό Μοντέλο Δεδομένων με ένα κοινό στοιχείο. SELECT ENAME, JOB, SAL FROM EMPLOYES WHEREΗ διαχείριση των συσχετιζόμενων δεδομένων μίας Β.Δ. γίνεται με ένα DEPTNO = 20σύνολο κατάλληλων προγραμμάτων το οποίο καλείται Σύστημα Δι- AND SAL > 1000;αχείρισης της Βάσης Δεδομένων - ΣΔΒΔ (Database ManagementSystem, DBMS) (Εικόνα 3.12). Με την ερώτηση αυτή σε SQL εκτελείται αναζήτηση στη βάση B.Ä. δεδομένων EMPLOYES και επι- ÌáèçôÝò στρέφει το όνομα, τη θέση και ÊáèçãçôÝò τον μισθό των υπαλλήλων της διεύθυνσης 20 που κερδίζουν ÔÜîåéò πάνω από 1000 ευρώ. Εικόνα 3.12. Δεδομένα και Σ.Δ.Β.Δ.Τα συστήματα διαχείρισης βάσεων δεδομένων αλληλεπιδρούν με τονχρήστη μέσα από γλώσσες ερωταποκρίσεων.3.2.4 Γλώσσες Ερωτοαποκρίσεων (SQL, XML) Εικόνα 3.13. Τμήμα XML κειμένου για μία δανειστικήΜία από τις δημοφιλέστερες γλώσσες ερωτοαποκρίσεων είναι η SQL(Structured Query Language, Δομημένη Γλώσσα Ερωταποκρίσεων), βιβλιοθήκη.η οποία αναπτύχθηκε το 1971 από την ΙΒΜ. /library/book[copies>10]/titleΆλλη μια σημαντική γλώσσα ερωτοαποκρίσεων είναι η XML, (ExtensibleMarkup Language, Επεκτάσιμη Γλώσσα Σήμανσης). Η XML χρησι- Με αυτή την έκφρασημοποιώντας ένα σύνολο κανόνων καθιστά εφικτή τη δημιουργία οποιασ- διαδρομής επιλέγονται καιδήποτε ετικέτας απαιτείται για την περιγραφή των δεδομένων και της δο- επιστρέφονται οι τίτλοι τωνμής τους (Εικόνα 3.13). βιβλίων της βιβλιοθήκης με περισσότερα από 10Η δομή των δεδομένων όπως αυτά αναπαρίστανται από την XML, αντίτυπα. Από την παραπάνωοπτικά έχει τη μορφή ενός ανάποδου δέντρου το οποίο ξεκινάει από βιβλιοθήκη θα επιστραφεί ομια ρίζα και εκτείνεται προς τα κάτω με πολλαπλά κλαδιά. Η XML πε- τίτλος Networks.ριλαμβάνει τη γλώσσα ερωταποκρίσεων “Xpath”, η οποία επιτρέπειτην διατύπωση ερωτημάτων σε μορφή έκφρασης διαδρομής ή μονο- 85
3η ΕΝΟΤΗΤΑ πατιού (path expression) και αποκρίνεται επιστρέφοντας τα δεδομ ένα τα οποία πληρούν τα κριτήρια που έχει θέσει ο χρήστης.Θέματα ΕφαρμοσμένηςΕπιστήμης των Υπολογιστών ΑνακεφαλαίωσηΧρήσιμοι Υπερσύνδεσμοι Στα Π.Σ. η οργάνωση και η διαχείριση δεδομένων σε επιχειρησιακήhttp://www.w3.org/standards/ βάση έχει εμπλουτιστεί με τη χρήση βάσεων δεδομένων και τεχνικέςxml/core βασισμένες στο δίκτυο. Η αξιοποίηση των δυνατοτήτων του σύννεφουΔιαδικτυακός τόπος για τις (cloud) επιτρέπει την ανάπτυξη ενός οργανισμού ή μιας επιχείρησηςπροδιαγραφές xml. χωρίς επενδύσεις σε υπολογιστική υποδομή. Οι γλώσσες ερωτοαποκρί-http://www.w3schools.com/ σεων ενός συστήματος διαχείρισης βάσεων δεδομένων όπως η SQL καιXPath/ η XML αξιοποιούνται σε ένα ευρύ φάσμα επιχειρησιακών εφαρμογών.Διαδικτυακός τόπος τωνπροδιαγραφών Xpath. Ερωτήσεις - Θέματα προς συζήτηση - ΔραστηριότητεςΛέξεις κλειδιά 1. Οργανώστε δεδομένα και πληροφορίες που αφορούν την τάξη σαςΑρχιτεκτονικές Αποθήκευ- ή το σχολείο σας (πόσοι μαθητές, πόσες μαθήτριες, πόσες τάξεις)σης, Γλώσσες Ερωταποκρί- και διαμορφώστε ένα μικρό αληθινό Π.Σ. που να αφορά τη ζωή στοσεων, Συστήματα αποθήκευ- σχολείο.σης πληροφοριών, ΓλώσσεςΣήμανσης, Δικτυακές Σχεσι- 2. Ενημερωθείτε από συμμαθητές σας για τα συστήματα οργάνωσηςακές Βάσεις Δεδομένων. των δημοσίων οργανισμών άλλων χωρών. 3. Ποια τα πλεονεκτήματα της χρήσης και της αξιοποίησης της τεχνι- κής αποθήκευσης δεδομένων στο σύννεφο; 4. Με ποιες γλώσσες προγραμματίζονται τα σύγχρονα περιβάλλοντα των Πληροφοριακών Συστημάτων; 5. Επισκεφτείτε μια επιχείρηση της περιοχής σας και ενημερώστε τους συμμαθητές σας για τη διαδικασία οργάνωσής της. Πώς οργανώνο- νται οι προμήθειές της, πώς γίνεται η διακίνηση των εμπορευμάτων ή των υπηρεσιών που παρέχει και πώς έχει οργανωθεί το τμήμα του λογιστηρίου. 6. Να χαρακτηρίσετε με Σωστό ή Λάθος τις παρακάτω προτάσεις: Α. Ένα Π.Σ. λειτουργεί μέσα σε ένα περιβάλλον που το επηρεάζει και από το οποίο επηρεάζεται. Β. Στις αρχιτεκτονικές αποθήκευσης βασισμένες στο σύννεφο εί- ναι αναγκαία η τοπική αποθήκευση των δεδομένων. Γ. Η διαχείριση των συσχετιζόμενων δεδομένων μίας Β.Δ. γίνεται μέσω του συστήματος διαχείρισης της Β.Δ.. Δ. Μέσω του σχεσιακού μοντέλου δεδομένων συνδυάζονται τα δεδομένα ενός πίνακα με τα δεδομένα ενός άλλου, αρκεί να έχουν ένα κοινό στοιχείο δεδομένων. Ε. Τα Π.Σ. αναπτύσσονται με σκοπό την υποστήριξη των αποφά- σεων και τον έλεγχο μιας επιχείρησης.86
ΚΕΦΑΛΑΙΟ 3.3ΔίκτυαΣτόχοι του κεφαλαίου είναι: Προερωτήσεις Οι μαθητές να εντάξουν τις γνώσεις τους για θέματα επικοινωνίας • Πώς επιτυγχάνεται η επι- και δικτύωσης συστημάτων στο σχήμα της Εφαρμοσμένης Επιστή- κοινωνία των υπολογιστικών μης των Υπολογιστών. συστημάτων; • Ποια υποδομή απαιτείται Οι μαθητές να οργανώσουν σε νοητικό μοντέλο τα βασικά θέματα για να επιτευχθεί η επικοι- που αφορούν τα δίκτυα επικοινωνίας. νωνία μεταξύ των διαφόρων τμημάτων σε ένα Πληροφο-3.3.1 Τι είναι ένα Δίκτυο Υπολογιστών ριακό Σύστημα; • Ποιες συσκευές χρησιμο-Η ραγδαία εξέλιξη καθώς και η σύγκλιση των υπολογιστικών με τα ποιούνται στη δόμηση ενόςτηλεπικοινωνιακά συστήματα έχει επιφέρει σημαντικές αλλαγές στον δικτύου;τρόπο με τον οποίο επικοινωνούν και συναλλάσσονται οι άνθρωποι. Η • Ποιες είναι οι σύγχρονεςαπανταχού πρόσβαση σε άμεσα διαθέσιμους υπολογιστικούς πόρους υπηρεσίες των δικτύων υπο-και ασύρματες συσκευές, καθώς και η ανάπτυξη συνδέσεων μεγάλης λογιστών;ταχύτητας διευκολύνει τη συνεργασία και τις κοινωνικές αλληλεπιδρά-σεις. Τα δίκτυα υπολογιστών, με κύριο εκπρόσωπο το Διαδίκτυο (Inter-net) παρέχουν την απαραίτητη υποδομή για την επίτευξη της Κοινωνίαςτης Πληροφορίας. Δίκτυο Υπολογιστών ή Δίκτυο Επικοινωνιών είναι ένα σύνολο συνδεδεμένων μεταξύ τους συσκευών με φυσικές συνδέσεις (κανά- λια επικοινωνίας), οι οποίες μπορούν να παράγουν, να στέλνουν, να προωθούν και να λαμβάνουν πληροφορίες (απλά δεδομένα, ήχο, ει- κόνα και βίντεο).Οι υπολογιστές και οι συσκευές (εκτυπωτές, τερματικά, δρομολογητέςκαι δορυφόροι) που συνδέονται σε ένα δίκτυο ονομάζονται σταθμοίή τερματικές συσκευές. Χαρακτηριστικές εφαρμογές δικτύων υπολο-γιστών αποτελούν οι τηλεπικοινωνίες (σταθερή/κινητή τηλεφωνία), ηκαλωδιακή τηλεόραση, το ηλεκτρονικό ταχυδρομείο, η τηλεγραφία, ητηλεδιάσκεψη), οι οικονομικές υπηρεσίες (π.χ. ηλεκτρονική συναλλα-γή με την εφορία), οι πωλήσεις, το μάρκετινγκ και η διαφήμιση. 87
3η 3.3.2 Στοιχεία δικτύωνΘέματα Εφαρμοσμένης Οι διάφορες συσκευές ενός δικτύου συνδέονται μεταξύ τους με γραμ-Επιστήμης των Υπολογιστών μές/ζεύξεις μετάδοσης (links). Óôïé÷åßï Σε ένα δίκτυο υπάρχουν υπολογιστές υποδοχής, γραμμές μετάδοσης ìåôáãùãÞò και στοιχεία μεταγωγής. Óôïé÷åßï Οι Υπολογιστές Υποδοχής (hosts) παίζουν το ρόλο του πομπού ή του ìåôáãùãÞò δέκτη και μπορεί να είναι κινητές συσκευές, προσωπικοί υπολογιστές, ή κεντρικά ισχυρά υπολογιστικά συστήματα (Mainframes).ÃñáììÞ Óôïé÷åßïÌåôÜäïóçò ìåôáãùãÞò Οι Γραμμές Μετάδοσης (Transmission Lines, Links) αποτελούν τα φυσικά μονοπάτια επικοινωνίας (κανάλια ή δίαυλους) διαμέσου των Εικόνα 3.14. Στοιχεία οποίων μεταφέρονται τα δεδομένα από τη μία συσκευή στην άλλη. Η Μεταγωγής. Σε αυτή την επικοινωνία γίνεται με ασύρματο και ενσύρματο τρόπο. κατηγορία ανήκουν οι Τα Στοιχεία Μεταγωγής (Switching Elements) είναι οι ενδιάμεσες συ- Γέφυρες (Bridges), σκευές που συνδέουν τις γραμμές μετάδοσης και επιφορτίζονται με το έργο μεταφοράς των δεδομένων από την μία πλευρά στην άλλη μέσωοι Μεταγωγείς (Switches), διαδικασιών γνωστών ως δρομολόγηση και/ή μεταγωγή (Εικόνα 3.14).οι ∆ρομολογητές (Routers) και οι Πύλες (Gateways).Το λογισμικό το οποίο πραγ- 3.3.3 Κατηγοριοποίηση δικτύωνματοποιεί τις διάφορες λει-τουργίες ενός δικτύου (όπως Ένα δίκτυο μπορεί να ανήκει σε διάφορες κατηγορίες ανάλογα με τηδρομολόγηση, έλεγχο σφαλ- γεωγραφική του έκταση, το μέγεθός του και την τεχνολ ογία μετάδοσηςμάτων, τμηματοποίηση πλη- και προώθησης που χρησιμοποιεί.ροφορίας, κρυπτογράφη-ση πληροφορίας) είναι οργα- 3.3.3.1 Είδη δικτύων ανάλογα με την τεχνολογία μετάδοσηςνωμένο με βάση κανόνες, οιοποίοι ονομάζονται πρωτό- Στα Δίκτυα σημείου προς σημείο (point to point) δημιουργούνταικολλα. συνδέσεις μεταξύ δύο κόμβων, οπότε ένα μήνυμα διατρέχοντας πολλές τέτοιες συνδέσεις, φθάνει στον προορισμό του. Στα δίκτυα εκπομπής, 88 όλα τα μέλη του δικτύου μοιράζονται έναν κοινό δίαυλο. Στην πολυεκ- πομπή (multicasting) το μήνυμα λαμβάνεται από συγκεκριμένους πα- ραλήπτες ενώ στην καθολική εκπομπή (broadcasting) από όλους. 3.3.3.2 Είδη δικτύων ανάλογα με την τεχνολογία προώθησης της πληροφορίας Στα δίκτυα μεταγωγής κυκλώματος (circuit switching networks) η μετά- δοση επιτυγχάνεται μέσα από μια αποκλειστικά χρησιμοποιούμενη φυσι- κή σύνδεση (κύκλωμα), στην οποία τα δεδομένα δεν υποβάλλονται σε κα- μία επεξεργασία κατά τη διέλευσή τους από το δίκτυο. Η τεχνολογία μετα- γωγής κυκλώματος χρησιμοποιείται κυρίως στο τηλεφωνικό δίκτυο. Στα δίκτυα μεταγωγής πακέτου (packet switching networks) τα δεδο- μένα χωρίζονται σε μικρότερα τμήματα, τα πακέτα. Κάθε πακέτο πέραν
του τμήματος προς αποστολή, περιέχει και πληροφορίες ελέγχου οι οποί- 3.3ες διασφαλίζουν τη σωστή δρομολόγηση του πακέτου μέσα στο δίκτυο.Στη συνέχεια αυτά μέσω ενδιάμεσων κόμβων ή στοιχείων μεταγωγής, Δίκτυαφθάνουν στον τελικό παραλήπτη που τα συναρμολογεί και δημιουργεί το Υπολογιστώναρχικό μήνυμα. Τα πακέτα μπορούν να ακολουθούν την ίδια διαδρομή ήκάθε πακέτο μπορεί να ακολουθεί τη δική του διαδρομή. Διαδίκτυο (Internet ή internetwork) είναι ένα σύ-3.3.3.3 Είδη δικτύων βάσει περιοχής που καλύπτουν νολο από δύο ή περισσότε- ρα δίκτυα (LAN, MAN, WANΤα Τοπικά ∆ίκτυα (LAN – Local Area Networks) καλύπτουν μία μι- κλπ.) που συνδέονται μεταξύκρή έκταση, συνδέοντας συσκευές που βρίσκονται σε ένα δωμάτιο ή σε τους με κατάλληλες συσκευές.ένα κτίριο ή συγκρότημα κτιρίων. Σήμερα με τον όρο Διαδίκτυο αναφερόμαστε στην τεχνολο-Τα Μητροπολιτικά ∆ίκτυα (MAN – Metropolitan Area Networks) γία που στηρίζεται στα πρωτό-εκτείνονται στο περιβάλλον μιας ολόκληρης πόλης και χρησιμοποιού- κολλα TCP και IP και αποτε-νται για την διασύνδεση δικτύων LAN ή σαν δίκτυα κορμού. Παρα- λεί τη βάση για τις εφαρμογέςδείγματα τέτοιων δικτύων είναι ένα τηλεπικοινωνιακό δίκτυο υποδο- στον Παγκόσμιο Ιστό (Worldμής και ένα δίκτυο καλωδιακής τηλεόρασης (Εικόνα 3.15). Wide Web, WWW).Τα δίκτυα Ευρείας Περιοχής (WAN – Wide Area Networks) επεκτεί- Το TCP/IP (Transmissionνονται σε μεγάλες γεωγραφικές περιοχές που αποτελούνται από διάφο- Control Protocol/Internetρες χώρες ή ακόμα και ηπείρους. Χρησιμοποιούν πλήθος ενδιάμεσων Protocol=Πρωτόκολλο Ελέγσυσκευών, όπως π.χ. δορυφόρους. χου Μετάδοσης / Πρωτόκολ λο Διαδικτύου) είναι μιαÌçôñïðïëéôéêü Äßêôõï συλλογή πρωτοκόλλων επι- κοινωνίας στα οποία βασίζε- Êåíôñéêüò Êüìâïò/ ται το Διαδίκτυο. Óçìåßï Ðñüóâáóçò Êåíôñéêüò Êüìâïò/ ÕðïëïãéóôÞò Óçìåßï Ðñüóâáóçò Êáëþäéï Εικόνα 3.15. Παράδειγμα ενός Μητροπολιτικού δικτύου που αποτελείται από 4 δίκτυα. Êåíôñéêüò êüìâïò3.3.4 Τοπολογίες δικτύων Εικόνα 3.16. Τοπολογία Αστέρα.Ο τρόπος με τον οποίο συνδέονται οι σταθμοί σε ένα δίκτυο ονομάζε-ται τοπολογία δικτύου. 89Υπάρχουν τρεις βασικές τοπολογίες δικτύων, οι οποίες διαφέρουν ωςπρος την αξιοπιστία, το κόστος, την ανοχή τους σε σφάλματα και τηνταχύτητα ανάνηψης μετά από κατάρρευση.Τοπολογία Αστέρα: Υπάρχει ένας κεντρικός κόμβος για τον έλεγχο τηςκυκλοφορίας και όλες οι συσκευές συνδέονται με αυτόν με μία φυσικήσύνδεση (Εικόνα 3.16).
3η ΕΝΟΤΗΤΑ Τοπολογία Δακτυλίου: Σε αυτην την τοπολογία, η κάθε συσκευή συν- δέεται με μια γραμμή (point-to-point link) με τις δύο διπλανές συσκευ-Θέματα Εφαρμοσμένης ές, δημιουργώντας ένα δακτύλιο. Ένα μήνυμα μεταφέρεται από τονΕπιστήμης των Υπολογιστών κάθε κόμβο στον διπλανό του προς την ίδια κατεύθυνση μέχρι να φθά- σει στον προορισμό του (εικόνα 3.17). Η τοπολογία αυτή χρησιμοποι- Êáëþäéï είται τόσο σε τοπικά όσο και ευρείας περιοχής δίκτυα.ÕðïëïãéóôÞò Τοπολογία Αρτηρίας: Στην τοπολογία αυτή, υπάρχει μια γραμμή (κα- λώδιο) που αποτελεί τη ραχοκοκαλιά του δικτύου και όλες οι συσκευές Εικόνα 3.17. Τοπολογία είναι συνδεμένες σε αυτήν (Εικόνα 3.20). Η τοπολογία αυτή συναντά- Δακτυλίου. ται κυρίως σε τοπικά δίκτυα. ÕðïëïãéóôÞò Εκτός από τις τρεις αυτές βασικές τοπολογίες υπάρχουν και άλλες οι οποίες αποτελούν παραλλαγές/συνδυασμούς των τριών βασικών, όπως Êáëþäéï οι τοπολογίες πλέγματος και τοπολογίες δένδρου. Όλες οι κατηγοριοποιήσεις που έχουν αναφερθεί μέχρι τώρα συνοψίζο- νται στον παρακάτω νοητικό χάρτη (Εικόνα 3.19):Εικόνα 3.18. Τοπολογία Αρτηρίας.Εικόνα 3.20. Sir Tim Berners Εικόνα 3.19. Νοητικός χάρτης κατηγοριοποίησης των Δικτύων Υπολογιστών. Lee. Ο δημιουργός του Παγκόσμιου Ιστού. 3.3.5 Σύγχρονες υπηρεσίες δικτύων Οι σύγχρονες υπηρεσίες των δικτύων υπολογιστών στηρίζονται κυρί- ως στην αλματώδη ανάπτυξη του Διαδικτύου, το οποίο από ένα ρόλο παρουσίασης πληροφοριών μεταλλάχθηκε σε ένα εργαλείο κοινωνικής δικτύωσης, αναμορφώνοντας τον τρόπο επικοινωνίας και συνεργασίας μεταξύ ανθρώπων. Ο Παγκόσμιος Ιστός (World Wide Web ή απλά Web), δίνει στο χρή- στη τη δυνατότητα της πρόσβασης σε μεγάλη ποικιλία από πληροφο- ρίες που είναι αποθηκευμένες στο διαδίκτυο υπό μορφή ιστοσελίδων. Η τηλεφωνία μέσω διαδικτύου (Voice over IP ή VoIP) προσφέρει φω- νητική συνομιλία σε πραγματικό χρόνο με καλή ποιότητα και με μηδε- νικό κόστος.90
Οι τεχνολογίες DSL (Digital Subscriber Line) παρέχουν πρόσβαση ΚΕΦΑΛΑΙΟ 3.3υψηλών ταχυτήτων στο διαδίκτυο και με χρήση των υπαρχουσών χάλ-κινων τηλεφωνικών γραμμών. Δίκτυα ΥπολογιστώνTo Υπολογιστικό Νέφος ή σύννεφο (Cloud Computing) παρέχει υπο-λογιστικούς πόρους (όπως διάφορες εφαρμογές, βάσεις δεδομένων, Πολλά Πληροφοριακά Συ-υπηρεσίες αρχείων, ηλεκτρονικό ταχυδρομείο κ.α.) μέσω ενός δικτύ- στήματα χρησιμοποιούν Αρ-ου υπολογιστών. Πρόκειται για μία παγκόσμια τεχνολογική υποδομή χιτεκτονικές αποθήκευσης(global technological infrastructure), στην οποία ο χρήστης ενός υπο- βασισμένες στο δίκτυο καιλογιστή έχει πρόσβαση και χρησιμοποιεί λογισμικό και δεδομένα τα στο σύννεφο.οποία είναι εγκατεστημένα ή βρίσκονται εκτός του προσωπικού τουυπολογιστικού συστήματος. Χρήσιμοι Υπερσύνδεσμοι http://www.w3.orgΑνακεφαλαίωση Ο οργανισμός World Wide Web Consortium.Δίκτυα υπολογιστών δημιουργούνται με τη διασύνδεση υπολογιστών http://www.eett.gr/opencms/και περιφερειακών συσκευών με διάφορους τρόπους. Οι υπηρεσίες των opencms/EETT/index.htmlδικτύων έχουν εφαρμογή στους περισσότερους τομείς της καθημερι- Εθνική Επιτροπή Τηλεπικοι-νότητάς μας. Αναδύονται καινούριες εφαρμογές σε πολύ συχνή βάση. νωνιών και Ταχυδρομείων. http://www.yme.grΕρωτήσεις - Δραστηριότητες - Θέματα προς συζήτηση Υπουργείο Υποδομών Μετα- φορών και Δικτύων1. Τι είναι ένα δίκτυο υπολογιστών;2. Αναζητήστε στο διαδίκτυο πληροφορίες για τη δομή του δικτύου Λέξεις κλειδιά Δίκτυο, μεταγωγή, μετάδοση, της κινητής τηλεφωνίας. Αν στην τάξη σας βρίσκονται μαθητές με τοπολογίες, διαδίκτυο, LAN, διαφορετική καταγωγή, συγκρίνετε τα σχετικά δίκτυα μεταξύ τους WAN, υπολογιστικό νέφος. από πλευράς δομής τους (ομαδική εργασία).3. Αναζητήστε πληροφορίες στο διαδίκτυο για τα κύρια χαρακτηριστι- κά δύο ενσύρματων και 2 ασυρμάτων καναλιών επικοινωνίας.4. Αναζητήστε στο διαδίκτυο πληροφορίες για υπηρεσίες υπολογιστι- κού νέφους.5. Αναζητήστε πληροφορίες για την συμβολή των δικτύων υπολογι- στών στην υποστήριξη ΑμεΑ.6. Ποιές από τις παρακάτω προτάσεις είναι σωστές; Α. Οι Υπολογιστές Υποδοχής μπορεί να είναι κινητές συσκευές, προσωπικοί υπολογιστές. Β. Στα Δίκτυα Μεταγωγής Κυκλώματος τα δεδομένα υποβάλλο- νται σε επεξεργασία κατά την διέλευσή τους απο το δίκτυο. Γ. Τα Μητροπολιτικά Δίκτυα είναι μεγαλύτερα από τα Δίκτυα Ευ- ρείας Περιοχής. Δ. Η Τοπολογία Δακτυλίου χρησιμοποιείται τόσο σε τοπικά όσο και ευρείας περιοχής δίκτυα. 91
3η ΕΝΟΤΗΤΑΘέματα ΕφαρμοσμένηςΕπιστήμης των ΥπολογιστώνΧρήσιμοι Υπερσύνδεσμοιhttp://www.w3.orgΟ οργανισμός World WideWeb Consortium.http://www.eett.gr/opencms/opencms/EETT/index.htmlΕθνική ΕπιτροπήΤηλεπικοινωνιών καιΤαχυδρομείων.http://www.yme.grΥπουργείο ΥποδομώνΜεταφορών και ΔικτύωνΛέξεις κλειδιά:Ασύρματη και Ενσύρματησύνδεση, μεταγωγή,μετάδοση, τοπολογίες,διαδίκτυο, LAN, WAN,Υπολογιστικό Νέφος. 92
ΚΕΦΑΛΑΙΟ 3.4 Τεχνητή Νοημοσύνη ΠροερωτήσειςΣτόχοι του κεφαλαίου είναι οι μαθητές: • Σε έναν αγώνα σκάκι μετα- Να εντάξουν την Τεχνητή Νοημοσύνη στο σχήμα της Εφαρμοσμέ- ξύ ανθρώπου και υπολογιστή πώς σχεδιάζονται οι πιθανές νης Επιστήμης των Υπολογιστών κινήσεις της μηχανής; Να γνωρίσουν τις επιστημονικές περιοχές εφαρμογής της Τεχνητής • Πώς λειτουργεί ένα σύστημα διόρθωσης κειμενογράφου; Νοημοσύνης • Πώς γίνεται η αναζήτηση Να μπορούν να αναφέρουν τομείς στους οποίους έχει εφαρμογή η πληροφοριών στο διαδίκτυο; • Με ποιον τρόπο θα δίνα- Τεχνητή Νοημοσύνη. τε οδηγίες σε ένα αυτοκινού- μενο όχημα ώστε να διανύσει3.4.1 Τι είναι η Τεχνητή Νοημοσύνη μια διαδρομή με εμπόδια;Τα τελευταία χρόνια η Τεχνητή Νοημοσύνη έχει ενταχθεί στο σχήμα 1. Το ρομπότ δεν θα κάνειτης Εφαρμοσμένης Επιστήμης των Υπολογιστών λόγω των θεμάτων κακό σε άνθρωπο, ούτε μεπου πραγματεύεται και των δεξιοτήτων που αναπτύσσονται στους χώ- την αδράνειά του θα επιτρέ-ρους εφαρμογής της. ψει να βλαφτεί ανθρώπινο όν. 2. Το ρομπότ πρέπει να υπα- Τεχνητή Νοημοσύνη (Τ.Ν.) είναι ο τομέας της επιστήμης των κούει τις διαταγές που του δί- υπολογιστών, που ασχολείται με τη σχεδίαση ευφυών υπολογι- νουν οι άνθρωποι, εκτός αν στικών συστημάτων, δηλαδή συστημάτων ικανών για λειτουρ- αυτές οι διαταγές έρχονται σε γίες που αποδίδονται σε ανθρώπινη νοημοσύνη. αντίθεση με τον πρώτο νόμο. 3. Το ρομπότ οφείλει να προ-Η Τ.Ν. εμφανίζεται σε διάφορα πεδία, όπως: στατεύει την ύπαρξή του, εφόσον αυτό δεν συγκρού-•• στον προγραμματισμό ηλεκτρονικών παιχνιδιών εται με τον πρώτο και τον•• στα έμπειρα συστήματα τα οποία χρησιμοποιούνται για την λήψη δεύτερο νόμο. αποφάσεων γύρω από ζητήματα πραγματικής ζωής, διάγνωση και (Ισαάκ Ασίμωφ, θεραπεία ασθενειών Isaac Asimov, 1942)•• στην επεξεργασία φυσικών γλωσσών που βοηθά στην κατανόηση των νοημάτων μίας γλώσσας με τη χρήση μηχανών Εικόνα 3.21. Χέρι ρομπότ.•• στον προγραμματισμό νοήμονος συμπεριφοράς σε μηχανές με τη χρήση νευρωνικών δικτύων τα οποία προσομοιώνουν τις φυσικές συνδέσεις ενός ανθρώπινου εγκεφάλου•• στη ρομποτική όπου προγραμματίζονται υπολογιστικά συστήματα ώστε να «βλέπουν», να «ακούν» και να «αντιδρούν» με βάση τα ανθρώπινα πρότυπα συμπεριφοράς (Εικόνα 3.21). 93
3η Κάθε πρόβλημα στην Τ.Ν. διακρίνεται σε δύο τμήματα. Το πρώτο τμή- μα αφορά στην αναπαράσταση των υποθέσεων και των συμπερασμά-Θέματα Εφαρμοσμένης των, ενώ το δεύτερο αφορά στον ορισμό και την παραγωγή των λογικώνΕπιστήμης των Υπολογιστών σχέσεων μεταξύ των υποθέσεων και των συμπερασμάτων. Η Τ.Ν. χρη- σιμοποιεί λογική για να αναπαραστήσει τη γνώση και το μηχανισμό τωνΚάθε μορφή γνώσης μπορεί αποδείξεων και των συμπερασμάτων για να την επεξεργαστεί. Ένα τυ-να διακριθεί σε τρία στάδια: πικό σύστημα Τ.Ν. αποτελείται από τρία μέρη: το στάδιο εισερχομένων,• Πρόσκτηση γνώσεων το στάδιο επεξεργασίας και το στάδιο εξερχομένων. Με παρόμοιο τρόπο• Επεξεργασία γνώσεων στην Τ.Ν. κάθε μορφή γνώσης μπορεί να αναπαρασταθεί σε τρία αντί-• Χρήση γνώσεων στοιχα στάδια (Εικόνα 3.22). Το πρώτο αφορά στον τρόπο με τον οποίο η γνώση γίνεται μεταδόσιμη (Πρόσκτηση γνώσεων) μέσω ειδικών, εγ-Τεστ Τuring χειριδίων ή μηχανικών της Τ.Ν. οι οποίοι τροφοδοτούν μια βάση γνώσης.Η ιδέα της Τ.Ν. προήλθε απόένα «παιχνίδι μίμησης» που Εικόνα 3.22. Αναπαράσταση Γνώσεων από την μεριά της Τεχνητής Νοημοσύνης.σήμερα είναι γνωστό ως ΤεστΤuring. Ήταν ένα παιχνίδι Το δεύτερο στάδιο (Επεξεργασία γνώσεων) αφορά στην επεξεργασίαανάμεσα σε έναν ερωτώντα, αυτών που έχουν εισαχθεί και στο τρίτο στάδιο (Χρήση γνώσεων), κα-μία γυναίκα, και έναν ψηφια- ταγράφεται το πώς αξιοποιούνται τα τελικά συμπεράσματα. Τα τρίακό υπολογιστή. Μεταξύ τους αυτά στάδια μπορεί να βρίσκονται σε κατάσταση αλληλεπίδρασης.επικοινωνούσαν μέσω ηλε-κτρονικού ταχυδρομείου (τη- 3.4.2 Εξέλιξη της Τεχνητής Νοημοσύνηςλε-εκτυπωτής Turing). Ο ερω-τώντας μπορούσε να θέσει Το 1956 σε ένα ερευνητικό πρόγραμμα Τ.Ν. ο Τζων ΜακΚάρθυ (Ει-οποιαδήποτε ερώτηση είτε κόνα 3.25) ανέπτυξε μια αλγεβρική γλώσσα επεξεργασίας λιστών πουστην γυναίκα είτε στον υπο- έδωσαν ώθηση στην έρευνα των Γενετικών Αλγορίθμων (Genetic Al-λογιστή με τελικό στόχο να gorithms). Οι γενετικοί αλγόριθμοι είναι αλγόριθμοι οι οποίοι αναζη-ανακαλύψει τη σωστή ταυτό- τούν μέσα από ένα χώρο υποψηφίων λύσεων, την πιο κατάλληλη μετητα του συνομιλητή του. Οι βάση κάποιο συγκεκριμένο κριτήριο. Σημαντικά προβλήματα πουερωτήσεις αποτελούσαν τα ει- αντιμετωπίζονται με αυτόν τον τρόπο είναι η εύρεση μεγίστου συνάρ-σερχόμενα, οι απαντήσεις της τησης μιας μεταβλητής, το πρόβλημα εύρεσης συντομότερης διαδρο-γυναίκας και του υπολογιστή μής, η σχεδίαση κυκλωμάτων VLSI και ο σχεδιασμός ενός ωρολογίουτα εξερχόμενα του συστήμα- προγράμματος. Την δεκαετία του ’70 εμφανίζονται τα πρώτα έμπειρατος και το τεστ στόχευε να συστήματα (Expert Systems) ως εμπορικές εφαρμογές και την δεκαε-δείξει τη δυνατότητα ύπαρξης τία του ’80 γίνεται προσπάθεια για ενοποίηση των διαλέκτων της γλώσ-μηχανών με νοημοσύνη. σας συναρτησιακού προγραμματισμού (Functional Programming) LISP κάτω από το πρότυπο της Common LISP. H LISP βασίζεται στην αποτί-Εικόνα 3.23. Ο Τζων ΜακΚάρθυ, (John McCarthy) έλαβε το 1971 το Βραβείο Turing για τη συνεισφορά του στον τομέα της Τ.Ν. 94
μηση συναρτήσεων αντί για την εκτέλεση εντολών. Προγράμματα βασι- 3.4σμένα στο συναρτησιακό προγραμματισμό είναι γραμμένα με βάση συ-ναρτήσεις που αποτιμούν βασικές τιμές. Τεχνητή ΝοημασύνηΠαράλληλα υλοποιήθηκαν τα πρώτα Τεχνητά Νευρωνικά Δίκτυα (Ar-tificial Neural Nets). Το αντικείμενο των τεχνητών νευρωνικών δικτύ- Εικόνα 3.24. Λότφι Ζάντεχων αποτελεί ένα ευρύ και αυτόνομο επιστημονικό πεδίο, που σχετίζε- (Lotfi Zadeh).ται με το γενικότερο πλαίσιο των ευφυών συστημάτων και δικτύων.Μπορεί να σκεφτεί κανείς μια σειρά επιτυχημένων εφαρμογών όπως Βασικός εισηγητής της Ασαφούςτα έξυπνα φίλτρα ηλεκτρονικού ταχυδρομείου, οι υψηλών ταχυτήτων Λογικής το 1965.και αποτελεσματικοί δρομολογητές, και η αυτόματη αναγνώριση πλη-ροφοριών που έχουν σημασία και συνάφεια. H Μηχανική Μάθηση πραγματοποιείται όταν έναΈνα ακόμα βήμα στην εξέλιξη της Τ.Ν. ήταν η σύνδεσή της με την θεω- υπολογιστικό σύστημα δημι-ρία της Ασαφούς Λογικής (Fuzzy Logic). Η θεωρία της Ασαφούς Λογικής ουργεί νέα μοντέλα ή πρότυ-μέσω κατάλληλων αλγορίθμων έχει προσαρμοσθεί σε συστήματα ώστε, πα μέσα από ένα σύνολο δε-μέσω της υπάρχουσας γνώσης μιας ασαφούς κατάστασης να προκύπτουν δοµένων.διαχειρίσιμα και συγκεκριμένα συμπεράσματα. Βασικός εισηγητής της εί-ναι ο καθηγητής Λότφι Ζάντεχ (Εικόνα 3.26). Σχετικές εφαρμογές υπάρ- Ο Εξελικτικός Υπολογισμόςχουν σε συστήματα ταξινόμησης και σε αυτόματους διορθωτές κειμένων. και η Νοημοσύνη Σμηνών είναι μέθοδοι διαδικασιώνΤη δεκαετία του ’90 με την ανάπτυξη και τη διάδοση του διαδικτύου εμ- βελτιστοποίησης υπολογι-φανίζονται οι πρώτοι ευφυείς πράκτορες (intelligent agents), ανεξάρτητα σμών που προέκυψαν παρα-προγράμματα τα οποία λαμβάνουν αποφάσεις και αλληλεπιδρούν με τα τηρώντας πρότυπα που υπάρ-διάφορα συστήματα, και τα διαδικτυακά ρομπότ. Ακολούθησαν ο Εξελι- χουν στη φύση. Σε αυτά γίνε-κτικός Υπολογισμός (Evolutionary Computation), η Νοημοσύνη Σμηνών ται χρήση μαθηματικών ερ-(Swarm Intelligence), η αξιοποίηση της Μηχανικής Μάθησης (Machine γαλείων από την Θεωρία Πι-Learning) και η Ανακάλυψη Γνώσης σε Βάσεις Δεδομένων (Knowledge θανοτήτων και τα ΔυναμικάDiscovery in Databases) ως κατηγορίες της Υπολογιστικής Νοημοσύνης. Συστήματα. Η Ανακάλυψη Γνώσης σε3.4.3 Τομείς εφαρμογών της Τεχνητής Νοημοσύνης Βάσεις Δεδομένων είναι μία σύνθετη διαδικασία η οποίαΗ Τ.Ν. επωφελήθηκε από την πρόοδο της Ηλεκτρονικής, της μικροη- προσδιορίζει έγκυρες, νέες,λεκτρονικής και της νανοτεχνολογίας (Εικόνα 3.25). H ανάπτυξη και χρήσιµες και κατανοητέςη εξέλιξη της Τ.Ν. στηρίζεται στην αξιοποίηση γνώσεων από περιοχές σχέσεις - πρότυπα που υπάρ-που εκτείνονται από τη μηχανική έως τη θεωρητική πληροφορική. χουν σε μία βάση δεδομένων.Η Τ.Ν. παρέχει την δυνατότητα επεξεργασίας σε χώρους που δεν μπο- Εικόνα 3.25. Ιατρικά μικρορομπότρεί να έχει πρόσβαση ο άνθρωπος, όπως το διάστημα (Εικόνα 3.26), ταβάθη των ωκεανών, οι μολυσμένες περιοχές. 95Η Τ.Ν. εφαρμόζεται σε ένα πλήθος πεδίων, όπως η συμπερασματο-λογία, ο αυτοματισμός, η ρομποτική, η αναγνώριση φωνής, η ευφυήςαναζήτηση στο διαδίκτυο και τα συστήματα ελέγχου. Ο ρόλος της Τ.Ν.είναι σημαντικός στην επίλυση σύνθετων προβλημάτων, στο σχεδια-σμό της συμπεριφοράς μηχανών, τη χρήση βιομηχανικών ρομπότ καιειδικότερα όπου χρειάζεται να γίνει ανάλυση μέσων και σκοπών. Ση-μαντικά πεδία εφαρμογής επίσης είναι η οπτική - ακουστική αντίληψηκαι η αναγνώριση προτύπων (pattern recognition).
3η ΕΝΟΤΗΤΑ Για παράδειγμα, στην περίπτωση ενός πυραύλου «αναγνώριση προτύ- πων» σημαίνει «εξατομίκευση στόχου» και «όραση υπολογιστή», ση-Θέματα Εφαρμοσμένης μαίνει δηλαδή την κατασκευή ενός συστήματος που «βλέπει» και «αντι-Επιστήμης των Υπολογιστών δρά» εξίσου καλά με τον άνθρωπο. Άλλο πεδίο επιστημονικής εφαρμο- γής αποτελεί η έμπειρη ανάλυση και η παροχή συμβουλών στην ιατρι-Εικόνα 3.26. Ο «ρομποναύτης» κή διάγνωση. Στην ιατρική έχουν αναπτυχθεί συστήματα που αναλύ- της ΝΑSΑ κατασκευάστηκε για ουν τα συμπτώματα μιας ασθένειας, το ιατρικό ιστορικό, τα αποτελέ-την συντήρηση του διαστημικού σματα των εργαστηριακών εξετάσεων ενός ασθενή και στη συνέχεια προτείνουν στο θεράποντα ιατρό μία ποικιλία δυνατών διαγνώσεων. τηλεσκόπιου HUBLLE. 3.4.4 Γλώσσες προγραμματισμού πουman(giannis). χρησιμοποιούνται στην Τ.Ν.man(giorgos).woman(aggeliki). Η Prolog είναι μια γλώσσα λογικού προγραμματισμού, η οποία κυριαρ- χεί στην περιοχή των εφαρμογών της Τ.Ν.. Ένα πρόγραμμα της Prolog Εικόνα 3.27. Πρόγραμμα σε είναι μία συλλογή από γεγονότα και κανόνες που χρησιμοποιούνται για Prolog. να αποδειχθούν κάποιες προτάσεις. Αρχικά ο χρήστης εισάγει τα δεδο- μένα ενός προβλήματος στο περιβάλλον της Prolog. Κατόπιν θέτει ερω-Αφoύ γραφεί τo πρόγραμμα τήματα γύρω από αυτά ή τις σχέσεις τους και λαμβάνει απαντήσεις. Οικαι εκτελεστεί, θα εμφανιστεί: απαντήσεις που δίνονται σε κάθε ερώτημα αξιοποιούν αποκλειστικά τα?- γεγονότα και τους κανόνες που έχουν εισαχθεί στο εκάστοτε πρόγραμμαόπου περιμένει ερωτήσεις. Π.χ. (εικόνα 3.27). Μέσα από συσχετισμούς και συλλογισμούς, το περιβάλ-?- man(giorgos). λον της Prolog καταλήγει να αποδείξει το αληθές μιας πρότασης ή τηνκαι απαντά προβολή του αποτελέσματος που θα προκύψει.Yes?- woman(maria). Ανακεφαλαίωσηκαι απαντάNo Η Τ.Ν. είναι ο τομέας της επιστήμης των υπολογιστών, που ασχολείται, εκτός των άλλων, με τη σχεδίαση ευφυών (νοημόνων) υπολογιστικώνΧρήσιμοι Υπερσύνδεσμοι συστημάτων, δηλαδή συστημάτων που επιδεικνύουν χαρακτηριστικάhttp://www.eccai.org που σχετίζονται με τη νοημοσύνη στην ανθρώπινη συμπεριφορά. ΤαΕυρωπαϊκή Συντονιστική προβλήματα που επιλύονται αφορούν την αντίληψη μέσω της όρασης,Επιτροπή για Τ.Ν. την μηχανική μάθηση, την εξαγωγή συμπερασμάτων από βάσεις δεδο-http://www.eetn.gr/ μένων κλπ. Η βασική γλώσσα προγραμματισμού της είναι η Prolog.Ελληνική Εταιρεία ΤεχνητήςΝοημοσύνης Ερωτήσεις - Θέματα προς συζήτηση - ΔραστηριότητεςΛέξεις κλειδιά 1. Σχολιάστε και προτείνετε ταινίες επιστημονικής φαντασίας με κύ-Υπολογιστικά μοντέλα αν- ρια αναφορά στην Τ.Ν. Εξηγήστε γιατί σας έκαναν εντύπωση.θρώπινης γνώσης, Νευρωνι-κά Δίκτυα, Έμπειρα Συστή- 2. Να διερευνήσετε τι σημαίνει για τον άνθρωπο, τους ηθικούς τουματα, Ασαφής Λογική, Γενε- κώδικες και την εξέλιξή του η αποδοχή βοήθειας ή συμβουλών απότικοί Αλγόριθμοι. μία μηχανή ή ένα υπολογιστικό σύστημα; 96 3. Αναζητήστε αναφορές στην Τ.Ν. από την αρχαία ελληνική σκέψη, τη μυθολογία, την ιστορία ή τη λογοτεχνία των νεότερων χρόνων.
ΒιβλιογραφίαComer, D. E. (2014). Δίκτυα και Διαδίκτυα Υπολογιστών. Αθήνα: Κλειδάριθμος.Floridi, L. (2008). Εισαγωγή στη φιλοσοφία της Πληροφορικής. Αθήνα: Νήσος.Forouzan, B. A. (2006). Πρωτόκολλο TCP/IP. Αθήνα: Γκιούρδας.Laudon, K. C., & Laudon, J. P. (2009). Πληροφοριακά Συστήματα Διοίκησης. Αθήνα: Κλειδάριθμος.Russell, S., & Norvig, P. (2004). Τεχνητή νοημοσύνη: Μια σύγχρονη προσέγγιση. Αθήνα: Κλειδάριθμος.Silberschatz, A., Galvin, P. B., & Gagne, G. (2013). Λειτουργικά Συστήματα. Αθήνα: Γκιούρδας.Tanenbaum, A. S. (2009). Σύγχρονα Λειτουργικά Συστήματα. Αθήνα: Κλειδάριθμος.Tanenbaum, A. S. (2012). Δίκτυα Υπολογιστών. Αθήνα: Κλειδάριθμος.Webber, A. B. (2009). Σύγχρονες γλώσσες προγραμματισμού. Πανεπιστημιακές Εκδόσεις Κρήτης.Αλεξανδρής, Ν., Μπελεσιώτης, Β. Σ., & Παναγιωτόπουλος, Θ. (2002). Εισαγωγή στην Επιστήμη των Υπολογιστών. Αθήνα: Εκδόσεις Βαρβαρήγου.Βακάλη, Α., Γιαννόπουλος, Η., Ιωαννίδης, Ν., Κοίλιας, Χ., Μάλαμας, Κ. Μανωλόπουλος, Ι., & Πολίτης, Π. (1999). Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Αθήνα: ΥΠΕΠΘ.Βλαχάβας, Ι., Κεφαλάς, Π., Βασιλειάδης, Ν., Κόκκορας, Φ., & Σακελλαρίου, Η. (2011). Τεχνητή Νοημοσύνη. Εκδόσεις Πανεπιστημίου Μακεδονίας.Βογιατζής, Ι., Ιωαννίδης, Ν., Κοίλιας, Χ., Μελετίου, Γ., & Μόρμορης, Μ. (2010). Εισαγωγή στην Αλγοριθμική. Αθήνα: Εκδόσεις Νέων Τεχνολογιών.Γεωργόπουλος, Ν., Κοπανάκη, Ε., Πανταζή, Μ., Νικολαράκος, Χ., & Βαγγελάτος, Ι. (2013). Ηλεκτρονικό Επιχειρείν. Αθήνα: Εκδόσεις Σταμούλης.Δημητριάδης, Α. (2007). Διοίκηση-Διαχείριση Πληροφοριακών Συστημάτων. Αθήνα: Εκδόσεις Νέων Τεχνολογιών.Δουληγέρης, Χ. (2014). Σύγχρονα Τηλεπικοινωνιακά και Διαδικτυακά Πρωτόκολλα. Αθήνα: Εκδόσεις Νέων Τεχνολογιών.Καλαφατούδης, Σ., Δροσίτης, Ι., & Κοίλιας, Χ. (2012). Εισαγωγή στις Τεχνολογίες Πληροφορίας και Επικοινωνίας. Αθήνα: Εκδόσεις Νέων Τεχνολογιών.Κοίλιας, Χ. (2004). Δομές Δεδομένων και Οργανώσεις Αρχείων. Αθήνα: Εκδόσεις Νέων Τεχνολογιών.Κοίλιας, Χ., & Παναγιωτάκος, Δ. (1994). Ερμηνευτικό Λεξικό Όρων Πληροφορικής. Αθήνα: Εκδόσεις Νέων Τεχνολογιών.Μανωλόπουλος, Ι., & Παπαδόπουλος, Α. (2006). Συστήματα Βάσεων Δεδομένων. Αθήνα: Εκδόσεις Νέων Τεχνολογιών. 97
98
ΓλωσσάριAND operation = πράξη ΚΑΙ, τομή, σύζευξη, λογι- γραμμάτων. 2) Η μεθοδική μελέτη ενός προβλήμα-κός πολλαπλασιασμός. Η πράξη άλγεβρας Boole της τος και η διαδικασία της διάσπασής του σε μικρότε-οποίας το αποτέλεσμα έχει την τιμή 1, αν και μόνο ρες μονάδες για περαιτέρω έρευνα σε λεπτομέρεια.εάν κάθε τελεστέος έχει την τιμή 1 (ΕΛΟΤ). analyst = αναλυτής. Πρόσωπο με ειδικότητα τον κα-Ada. Γενικού σκοπού υψηλού επιπέδου διαδικασιακή θορισμό των απαιτήσεων και τη σύνταξη των προ-γλώσσα προγραμματισμού, που αναπτύχθηκε αρχικά διαγραφών των προγραμμάτων για μια συγκεκριμέ-υπό την αιγίδα του αμερικανικού Υπουργείου Άμυνας νη εφαρμογή.για την υλοποίηση πολύ μεγάλων έργων λογισμικού. append = προσάρτηση. Προσθήκη στοιχείων στο τέ-access = προσπέλαση. Πρόσβαση σε δεδομένα με λος αρχείου.σκοπό την ανάγνωση, εγγραφή ή μετακίνηση δεδο-μένων ή εντολών. application = εφαρμογή. Προγράμματα που γρά- φονται για την κάλυψη συγκεκριμένης ανάγκης π.χ.access method = μέθοδος προσπέλασης. 1) Στα τοπι- μιας επιχείρησης σε επεξεργασία δεδομένων.κά δίκτυα πρωτόκολλο που καθορίζει ποια συσκευήθα έχει προσπέλαση στο μέσο μεταφοράς κάθε στιγ- applications software = λογισμικό εφαρμογών. Λογι-μή. 2) Η τεχνική ή και τα προγράμματα για τη με- σμικό που γράφεται για να καλύψει ανάγκες εφαρμογών.τακίνηση δεδομένων μεταξύ συσκευών εισόδου/εξό-δου και κύριας μνήμης. arithmetic = αριθμητικός. Τύπος δεδομένων που υποστηρίζουν όλες οι σύγχρονες γλώσσες προγραμ-access right = δικαίωμα προσπέλασης. Δικαίωμα ματισμού. Με στοιχεία του αριθμητικού τύπου δεδο-που παραχωρείται σε ένα χρήστη να έχει πρόσβαση μένων γίνονται αριθμητικές πράξεις.σε ορισμένα δεδομένα ή προγράμματα και να τα χρη-σιμοποιεί κατά ένα συγκεκριμένο τρόπο (ISO). arithmetic expression = αριθμητική έκφραση. Μία έκφραση που περιλαμβάνει αριθμητικές πράξεις καιaccess time = χρόνος προσπέλασης. Ο χρόνος που τελεστέους και η οποία μπορεί να μετατραπεί σε μιαχρειάζεται για την ανεύρεση και ανάκτηση καταχω- απλή αριθμητική τιμή.ρημένης πληροφορίας σε κάποιο είδος μνήμης. Συ-νήθως αναφέρεται στο μέγιστο απαιτούμενο χρόνο. arithmetic operator = αριθμητικός τελεστής. Σύμ- βολο μιας γλώσσας προγραμματισμού, που καθορί-algorithm = αλγόριθμος. Πεπερασμένο σύνολο σα- ζει την αριθμητική πράξη που πρέπει να γίνει μεταξύφώς καθορισμένων κανόνων που βοηθούν στην επί- δύο τελεστέων, π.χ. +, -, *, /, ^.λυση ενός προβλήματος μέσω ενός πεπερασμένουαριθμού βημάτων (ΕΛΟΤ). array = πίνακας. Διάταξη δεδομένων μιας ή περισ- σοτέρων διαστάσεων.algorithmic languages = αλγοριθμικές γλώσσες.Κατηγορία γλωσσών προγραμματισμού κατάλληλων array element = στοιχείο πίνακα. Ένα απλό προσπε-για την περιγραφή προβλημάτων που μπορούν να λυ- λάσιμο στοιχείο δεδομένου σε έναν πίνακα.θούν αλγοριθμικά. array index = δείκτης πίνακα. Σύνολο μιας ή περισ-alphabetic data = αλφαβητικά δεδομένα. Δεδομένα σοτέρων τιμών που χρησιμοποιούνται για να προ-που αποτελούνται από γράμματα μόνο ή από γράμ- σπελαστεί ένα στοιχείο πίνακα.ματα και διάκενα. artificial intelligence (AI) = τεχνητή νοημοσύνη. Οalphanumeric = αλφαριθμητικό. Σύνολο χαρακτή- τοµέας της επιστήµης των υπολογιστών, που ασχο-ρων που μπορεί να εμπεριέχει γράμματα, ψηφία και λείται µε τη σχεδίαση ευφυών (νοηµόνων) υπολογι-ειδικά σύμβολα όπως π.χ. σημεία στίξης. στικών συστηµάτων, ώστε να καταστεί ο υπολογι- στής ικανός για λειτουργίες που αποδίδονται σε αν-analysis = ανάλυση. 1) Η φάση της ανάπτυξης ενός θρώπινη νοημοσύνη.συστήματος πληροφορικής κατά την οποία αναλύε-ται η λειτουργία ενός οργανισμού και γίνεται ο καθο- artificial neural nets = τεχνητά νευρωνικά δίκτυαρισμός των απαιτήσεων και προδιαγραφών των προ- που έχουν δυνατότητα µάθησης µετασχηµατίζοντας την εσωτερική τους δοµή. 99
Search
Read the Text Version
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114