ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ι

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ι"

Transcript

1 ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΛΑΡΙΣΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ι (ΘΕΩΡΙΑ) ρ Μοσχάκης Μάριος Λάρισα 2011

2 ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 2

3 ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑ 1. ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΥΠΟΛΟΓΙΣΤΩΝ Η έννοια του προγράµµατος Εφαρµογές του προγραµµατισµού Η έννοια του αλγορίθµου Περιγραφή αλγορίθµου µε διάγραµµα ροής Ιστορική αναδροµή Γλώσσες µηχανής Συµβολικές γλώσσες ή γλώσσες χαµηλού επιπέδου Γλώσσες υψηλού επιπέδου Γλώσσες 4ης γενιάς Ταξινόµηση γλωσσών προγραµµατισµού Προγραµµατιστικά περιβάλλοντα Η γλώσσα Visual Basic Το Περιβάλλον Εργασίας της Visual Basic Άλλα παράθυρα του Περιβάλλοντος Εργασίας ιαχείριση και αποθήκευση αρχείων της Visual Basic Εισαγωγή και εκτέλεση απλών προγραµµάτων στη γλώσσα Visual Basic ΜΑΘΗΜΑ 2. ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Συναρτήσεις MsgBox και InputBox Εντολή εκχώρησης Παραδείγµατα Ερωτήσεις και ασκήσεις ανακεφαλαίωσης ΜΑΘΗΜΑ 3. ΤΥΠΟΙ Ε ΟΜΕΝΩΝ - ΣΤΑΘΕΡΕΣ Σταθερές Παραδείγµατα Ερωτήσεις και ασκήσεις ανακεφαλαίωσης ΜΑΘΗΜΑ 4. ΜΕΤΑΒΛΗΤΕΣ, ΑΡΙΘΜΗΤΙΚΕΣ ΠΡΑΞΕΙΣ - ΠΑΡΑΣΤΑΣΕΙΣ Αριθµητικές πράξεις και παραστάσεις Παραδείγµατα Ερωτήσεις και ασκήσεις ανακεφαλαίωσης ΜΑΘΗΜΑ 5. ΠΡΑΞΕΙΣ ΚΑΙ ΠΑΡΑΣΤΑΣΕΙΣ ΣΥΜΒΟΛΟΣΕΙΡΩΝ ΚΑΙ ΗΜΕΡΟΜΗΝΙΩΝ Πράξεις µεταξύ ηµεροµηνιών Τεκµηρίωση προγράµµατος-σχόλια Παραδείγµατα Ερωτήσεις και ασκήσεις ανακεφαλαίωσης ΜΑΘΗΜΑ 6. ΜΑΘΗΜΑΤΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ (1) ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 3

4 6.1. Τριγωνοµετρικές συναρτήσεις Sin(x), Cos(x) και Tan(x) Αντίστροφη τριγωνοµετρική συνάρτηση Atn(x) Συναρτήσεις Int(x) και Fix(x) και συναρτήσεις στρογγυλοποίησης Παραδείγµατα Ερωτήσεις και ασκήσεις ανακεφαλαίωσης ΜΑΘΗΜΑ 7. ΜΑΘΗΜΑΤΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ (2) Τετραγωνική ρίζα Sqr(x) Απόλυτη τιµή Abs(x) Πρόσηµο Sgn(x) Εκθετική συνάρτηση Exp(x) Λογαριθµική συνάρτηση Log(x) Παραδείγµατα Ερωτήσεις και ασκήσεις ανακεφαλαίωσης ΜΑΘΗΜΑ 8. ΛΟΓΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ ΚΑΙ ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ Εισαγωγή Λογικές παραστάσεις Σύνθετες λογικές παραστάσεις - Λογικοί σύνδεσµοι Λογικό ΚΑΙ (And) Λογικό Ή (Or) Λογικό ΟΧΙ (Not) Συνδυασµοί σύνθετων λογικών παραστάσεων Παραδείγµατα Ερωτήσεις και ασκήσεις ανακεφαλαίωσης ΜΆΘΗΜΑ 9. ΟΜΗ ΕΠΙΛΟΓΗΣ IF THEN ELSE Παραδείγµατα Ερωτήσεις και ασκήσεις ανακεφαλαίωσης ΜΑΘΗΜΑ 10. ΟΜΗ ΕΠΙΛΟΓΗΣ IF THEN ELSEIF Παραδείγµατα Ερωτήσεις και ασκήσεις ανακεφαλαίωσης ΜΑΘΗΜΑ 11. ΟΜΗ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ SELECT CASE Παραδείγµατα Ερωτήσεις και ασκήσεις ανακεφαλαίωσης ΜΑΘΗΜΑ 12. ΕΜΦΩΛΕΥΜΕΝΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΟΜΕΣ ΕΠΙΛΟΓΗΣ Παραδείγµατα Ερωτήσεις και ασκήσεις ανακεφαλαίωσης ΜΑΘΗΜΑ 13. ΣΥΝΘΕΤΕΣ ΛΟΓΙΚΕΣ ΣΥΝΘΗΚΕΣ ΚΑΙ ΟΜΕΣ ΕΠΙΛΟΓΗΣ ΕΜΒΕΛΕΙΑ ΣΤΑΘΕΡΩΝ ΚΑΙ ΜΕΤΑΒΛΗΤΩΝ Σύνθετες λογικές συνθήκες και δοµές επιλογής ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 4

5 Παραδείγµατα Εµβέλεια σταθερών και µεταβλητών Τοπικές σταθερές ή µεταβλητές Ιδιωτικές (προγραµµατιστικής µονάδας) σταθερές ή µεταβλητές Καθολικές σταθερές και µεταβλητές Υποχρεωτική δήλωση µεταβλητής ή σταθεράς ΒΙΒΛΙΟΓΡΑΦΙΑ ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 5

6 Μάθηµα 1. ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΥΠΟΛΟΓΙΣΤΩΝ 1.1. Η έννοια του προγράµµατος Οι γλώσσες προγραµµατισµού αναπτύχθηκαν µε σκοπό την επικοινωνία του ανθρώπου (προγραµµατιστή) µε τη µηχανή (υπολογιστή). Η επίλυση ενός προβλήµατος µε τον υπολογιστή περιλαµβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου σηµαντικά στάδια. Τον ακριβή προσδιορισµό του προβλήµατος. Την ανάπτυξη του αντίστοιχου αλγορίθµου. Τη διατύπωση του αλγορίθµου σε κατανοητή µορφή από τον υπολογιστή. Ο προγραµµατισµός ασχολείται µε το τρίτο αυτό στάδιο, τη δηµιουργία του προγράµµατος δηλαδή του συνόλου των εντολών που πρέπει να δοθούν στον υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθµος για την επίλυση του προβλήµατος. Το πρόγραµµα, το οποίο γράφεται σε κάποια γλώσσα προγραµµατισµού, δεν είναι απλά η υλοποίηση του αλγορίθµου, αλλά βασικό στοιχείο του είναι τα δεδοµένα και οι δοµές δεδοµένων επί των οποίων ενεργεί. Αναφέρθηκε ήδη ότι οι αλγόριθµοι και οι δοµές δεδοµένων είναι µια αδιάσπαστη ενότητα. Ο προγραµµατισµός είναι αυτός που δίνει την εντύπωση ότι, οι υπολογιστές είναι έξυπνες µηχανές που επιλύουν τα πολύπλοκα προβλήµατα. Η εντύπωση αυτή όµως είναι απλώς µία ψευδαίσθηση. Ο υπολογιστής, ως γνωστόν, είναι µία µηχανή που καταλαβαίνει µόνο δύο καταστάσεις, οι οποίες αντιπροσωπεύονται µε δύο αριθµούς το µηδέν (0) και το ένα (1), δηλαδή τα ψηφία του δυαδικού συστήµατος. Το µόνο πράγµα που κάνει ο υπολογιστής είναι στοιχειώδεις ενέργειες σε ακολουθίες αυτών των δύο ψηφίων, αλλά αυτές τις ενέργειες τις εκτελεί µα ασύλληπτη ταχύτητα. Ο υπολογιστής µπορεί απλά να αποθηκεύει στη µνήµη τις ακολουθίες των δυαδικών ψηφίων, να τις ανακτά, να κάνει στοιχειώδεις αριθµητικές πράξεις µε αυτές και να τις συγκρίνει Εφαρµογές του προγραµµατισµού Ο προγραµµατισµός Ηλεκτρονικών Υπολογιστών (Η/Υ) βρίσκει εφαρµογή στα ακόλουθα πεδία: Αυτόµατη και ταχύτατη εκτέλεση µιας εφαρµογής ή ενός προβλήµατος που περιλαµβάνει σύνθετες πράξεις και παραστάσεις µεταξύ αριθµών, συµβολοσειρών ή ηµεροµηνιών. Με αλλαγή των δεδοµένων εισόδου, δίνεται ταχύτατα και αυτόµατα η λύση στο πρόβληµα που µπορεί να περιλαµβάνει πλήθος σύνθετων εξισώσεων µε µαθηµατικές συναρτήσεις. ηµιουργία ιστοσελίδων. ηµιουργία γραφικών π.χ. παιχνίδια σε Η/Υ. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 6

7 Προγραµµατισµό υλικού (hardware) όπως ψηφιακών καρτών και λογικών ελεγκτών (PLC- Programmable Logic Controller). ηµιουργία γραφικού περιβάλλοντος και υλοποίηση SCADA (Supervisory Control And Data Acquisition) για τον πλήρη έλεγχο και επίβλεψη των διεργασιών µιας βιοµηχανικής µονάδας Η έννοια του αλγορίθµου Η θεωρία των αλγορίθµων έχει µεγάλη παράδοση και η ηλικία µερικών αλγορίθµων αριθµεί χιλιάδες χρόνια, όπως για παράδειγµα ο αλγόριθµος του Ευκλείδη για την εύρεση του µέγιστου κοινού διαιρέτη δύο αριθµών ή το λεγόµενο κόσκινο του Ερατοσθένη για την εύρεση των πρώτων αριθµών από 1 ως n. Σήµερα το πεδίο της Θεωρίας Αλγορίθµων είναι ένα ιδιαίτερα ευρύ και πλούσιο πεδίο. Πληθώρα συγγραµµάτων έχει εµφανισθεί στη βιβλιογραφία, ενώ συνεχίζεται η περαιτέρω εµβάθυνση σε νέα σύγχρονα προβλήµατα. Οι περισσότεροι από τους αλγορίθµους που συνήθως εξετάζονται στα σχετικά βιβλία έχουν προταθεί τα τελευταία 25 χρόνια, όση περίπου είναι και η ηλικία της Πληροφορικής ως µίας νέας αυθύπαρκτης επιστήµης. Ο όρος αλγόριθµος, λοιπόν, χρησιµοποιείται για να δηλώσει µεθόδους που εφαρµόζονται για την επίλυση προβληµάτων. Ωστόσο, ένας πιο αυστηρός ορισµός της έννοιας αυτής είναι ο εξής: Αλγόριθµος είναι µια πεπερασµένη σειρά ενεργειών, αυστηρά καθορισµένων και εκτελέσιµων σε πεπερασµένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήµατος Περιγραφή αλγορίθµου µε διάγραµµα ροής Ένα διάγραµµα ροής αποτελείται από ένα σύνολο γεωµετρικών σχηµάτων, όπου το καθένα δηλώνει µία συγκεκριµένη ενέργεια ή λειτουργία. Τα γεωµετρικά σχήµατα ενώνονται µεταξύ τους µε βέλη, που δηλώνουν τη σειρά εκτέλεσης των ενεργειών αυτών. Τα κυριότερα χρησιµοποιούµενα γεωµετρικά σχήµατα περιγράφονται ακολούθως: Πλάγιο παραλληλόγραµµο ηλώνει είσοδο ή έξοδο στοιχείων Έλλειψη ηλώνει την αρχή και το τέλος του κάθε αλγορίθµου Ορθογώνιο ηλώνει την εκτέλεση µίας ή περισσότερων πράξεων Ρόµβος ηλώνει µία ερώτηση µε δύο ή περισσότερες εξόδους για απάντηση Πολλές φορές το σχήµα αυτό µπορεί να διαφοροποιείται προκειµένου να προσδιορίζεται και το είδος της συσκευής απ όπου γίνεται η είσοδος ή η έξοδος. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 7

8 1.5. Ιστορική αναδροµή Από τη δηµιουργία του πρώτου υπολογιστή µέχρι σήµερα έχουν αλλάξει πάρα πολλά πράγµατα. Οι πρώτοι υπολογιστές, τεράστιοι σε µέγεθος αλλά µε πάρα πολύ περιορισµένες δυνατότητες και µικρές ταχύτητας επεξεργασίας εξελίχθηκαν σε πολύ µικρούς σε µέγεθος υπολογιστές µε τεράστιες όµως δυνατότητες και ταχύτητες επεξεργασίας. Ενώ λοιπόν το υλικό (hardware) των υπολογιστών βελτιώνεται, τελειοποιείται και ταυτόχρονα παρέχει νέες δυνατότητες επεξεργασίας, οι βασικές αρχές λειτουργίας των υπολογιστών που διατυπώθηκαν το µακρινό 1945 από τον Φον Νόυµαν, δεν άλλαξαν πρακτικά καθόλου. Την ίδια αργή εξέλιξη ουσιαστικά έχουν και οι γλώσσες προγραµµατισµού, οι οποίες αν και εξελίσσονται και συνεχώς εµπλουτίζονται µε νέες δυνατότητες, τα χαρακτηριστικά τους και οι βασικές τους ιδιότητες ουσιαστικά παραµένουν τα ίδια. Συνοψίζοντας, οι γλώσσες προγραµµατισµού αναπτύχθηκαν µε σκοπό την επικοινωνία του ανθρώπου (προγραµµατιστή) µε τη µηχανή (υπολογιστή) Γλώσσες µηχανής Αρχικά για να µπορέσει ο υπολογιστής να εκτελέσει µία οποιαδήποτε λειτουργία, έπρεπε να δοθούν κατευθείαν οι κατάλληλες ακολουθίες από 0 και 1, δηλαδή εντολές σε µορφή κατανοητή από τον υπολογιστή αλλά ακατανόητες από τον άνθρωπο. Ο τρόπος αυτός ήταν επίπονος και ελάχιστοι µπορούσαν να τον υλοποιήσουν, αφού απαιτούσε βαθιά γνώση του υλικού και της αρχιτεκτονικής του υπολογιστή. Ο πρώτος υπολογιστής ο περίφηµος ENIAC για να προγραµµατιστεί, ώστε να εκτελέσει κάποιους υπολογισµούς, έπρεπε να αλλάξουν θέση εκατοντάδες διακόπτες και να ρυθµιστούν αντίστοιχα όλες οι καλωδιώσεις, διαδικασία εξαιρετικά επίπονη και χρονοβόρα. Ο προγραµµατισµός των πρώτων αυτών υπολογιστών, δεν ήταν ουσιαστικά προγραµµατισµός µε τη σηµερινή έννοια του όρου. Ο υπολογιστής αναδιαρθρωνόταν, ώστε να εκτελέσει τους απαιτούµενους υπολογισµούς και στη συνέχεια έπρεπε να αλλάξει πάλι η διάρθρωσή του, ώστε να εκτελέσει έναν άλλο υπολογισµό. Οι εντολές ενός προγράµµατος και σήµερα µετατρέπονται σε ακολουθίες που αποτελούνται από 0 και 1, τις εντολές σε γλώσσα µηχανής, όπως ονοµάζονται, οι οποίες εκτελούνται από τον υπολογιστή Συµβολικές γλώσσες ή γλώσσες χαµηλού επιπέδου Από τα πρώτα χρόνια άρχισαν να γίνονται προσπάθειες για τη δηµιουργία µίας συµβολικής γλώσσας, η οποία ενώ θα έχει έννοια για τον άνθρωπο, θα µετατρέπεται εσωτερικά από τους υπολογιστές στις αντίστοιχες ακολουθίες από 0 και 1. Για παράδειγµα η λέξη ADD (πρόσθεσε) ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 8

9 ακολουθούµενη από δύο αριθµούς, είναι κατανοητή από τον άνθρωπο και αποµνηµονεύεται σχετικά εύκολα. Η εντολή αυτή θα µεταφραστεί από τον υπολογιστή σε µία ακολουθία δυαδικών ψηφίων και στη συνέχεια µπορεί να εκτελεστεί. Το έργο της µετάφρασης το αναλαµβάνει ένα ειδικό πρόγραµµα, ο συµβολοµεταφραστής (assembler). Η χρήση των πρώτων αυτών συµβολικών γλωσσών, που συνεχίζουν να χρησιµοποιούνται για ειδικούς σκοπούς, ήταν σαφώς µια εξέλιξη από τις ακατανόητες ακολουθίες δυαδικών στοιχείων. Ωστόσο παρέµεναν στενά συνδεδεµένες µε την αρχιτεκτονική του κάθε υπολογιστή. Επίσης δεν διέθεταν εντολές πιο σύνθετων λειτουργιών οδηγώντας έτσι σε µακροσκελή προγράµµατα, που ήταν δύσκολο να γραφούν και κύρια να συντηρηθούν. Ακόµη τα προγράµµατα δεν µπορούν να µεταφερθούν σε άλλον διαφορετικό υπολογιστή, ακόµη και του ίδιου κατασκευαστή. Οι γλώσσες αυτές ονοµάζονται συµβολικές ή γλώσσες χαµηλού επιπέδου, αφού εξαρτώνται από την αρχιτεκτονική του υπολογιστή. Συνοψίζοντας, οι εντολές σε συµβολική γλώσσα αποτελούνται από συµβολικά ονόµατα που αντιστοιχούν σε εντολές της γλώσσας µηχανής. Οι συµβολικές γλώσσες είναι συνδεδεµένες µε την αρχιτεκτονική κάθε υπολογιστή Γλώσσες υψηλού επιπέδου Οι παραπάνω ανεπάρκειες των συµβολικών γλωσσών και η προσπάθεια για καλύτερη επικοινωνία ανθρώπου-µηχανής, οδήγησαν στα τέλη της δεκαετίας του 50 στην εµφάνιση των πρώτων γλωσσών προγραµµατισµού υψηλού επιπέδου. Το 1957 η IBM ανέπτυξε την πρώτη γλώσσα υψηλού επιπέδου, τη γλώσσα FORTRAN. Το όνοµα FORTRAN προέρχεται από τις λέξεις FORmula TRANslation, που σηµαίνουν µετάφραση τύπων. Η FORTRAN αναπτύχθηκε ως γλώσσα κατάλληλη για την επίλυση µαθηµατικών και επιστηµονικών προβληµάτων. Το πρόγραµµα που γράφεται σε FORTRAN ή σε οποιαδήποτε άλλη γλώσσα υψηλού επιπέδου, µεταφράζεται από τον ίδιο τον υπολογιστή στις ακολουθίες των εντολών της µηχανής µε τη βοήθεια ενός ειδικού προγράµµατος, που ονοµάζεται µεταγλωττιστής. Το ίδιο πρόγραµµα FORTRAN µπορεί να εκτελεστεί σε οποιοδήποτε άλλο υπολογιστή, αρκεί να υπάρχει ο αντίστοιχος µεταγλωττιστής για τον υπολογιστή αυτό. Η γλώσσα FORTRAN µετά από πολλές αλλαγές, προσθήκες και βελτιώσεις χρησιµοποιείται ακόµη και σήµερα για επιστηµονικές εφαρµογές. Η FORTRAN παρά τα ισχυρά χαρακτηριστικά της και τις συνεχείς αλλαγές που τη καθιστούσαν συνεχώς αποτελεσµατικότερη, δεν µπορούσε να καλύψει τις απαιτήσεις σε όλους τους τοµείς δραστηριοτήτων, όπως και καµία άλλη γλώσσα προγραµµατισµού δεν κατάφερε. Έτσι ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 9

10 αναπτύχθηκαν και συνεχίζουν να αναπτύσσονται πολλές γλώσσες προγραµµατισµού για διάφορες περιοχές δραστηριοτήτων. Το 1960 αναπτύχθηκε µία άλλη γλώσσα, σταθµός στον προγραµµατισµό η γλώσσα COBOL. Η COBOL όπως δηλώνει και το όνοµα της (CΟmmon Business Oriented Language -Κοινή γλώσσα προσανατολισµένη στις επιχειρήσεις) είναι κατάλληλη για ανάπτυξη εµπορικών εφαρµογών, και γενικότερα διαχειριστικών εφαρµογών, τοµέας όπου η FORTRAN υστερούσε. Η COBOL καθιερώθηκε ως πρότυπο και χρησιµοποιήθηκε από πολλές επιχειρήσεις καθώς και από όλη τη δηµόσια διοίκηση. Η γλώσσα γνώρισε πολλές εκδόσεις και πάρα πολλές εφαρµογές βρίσκονται σε χρήση ακόµη και σήµερα. Μια από τις σηµαντικότερες γλώσσα προγραµµατισµού µε ελάχιστη πρακτική εφαρµογή αλλά που επηρέασε ιδιαίτερα τον προγραµµατισµό και τις επόµενες γλώσσες, είναι η ALGOL (ALGOrithmic Language Αλγοριθµική γλώσσα). Αναπτύχθηκε από Ευρωπαίους επιστήµονες, αρχικά το 1960, µε σκοπό τη δηµιουργία γενικής φύσης προγραµµάτων που να µη συνδέονται µε συγκεκριµένες εφαρµογές. Στα µέσα της δεκαετίας του 60 αναπτύχθηκε η γλώσσα PL/1 (Programming Language/1 Γλώσσα Προγραµµατισµού υπ αριθµόν 1) που προσπάθησε, χωρίς επιτυχία να καλύψει όλους τους τοµείς του προγραµµατισµού, επιστηµονικούς και εµπορικούς, αντικαθιστώντας τόσο τη FORTRAN όσο και την COBOL. Στο χώρο της Τεχνητής Νοηµοσύνης αναπτύχθηκαν δύο γλώσσες αρκετά διαφορετικές από όλες τις άλλες. Στα µέσα του 60 αναπτύχθηκε στο ΜΙΤ η LISP (LISt Processor-Επεξεργαστής Λίστας), γλώσσα η οποία προσανατολίζεται σε χειρισµό λιστών από σύµβολα και η PROLOG (PROgramming LOGic Λογικός Προγραµµατισµός) στις αρχές του 70. Οι δύο αυτές γλώσσες χρησιµοποιούνται σε προβλήµατα Τεχνητής νοηµοσύνης (έµπειρα συστήµατα, παιγνίδια, επεξεργασία φυσικών γλωσσών κ.λπ.). ύο σηµαντικότατες γλώσσες γενικού σκοπού, οι οποίες αναπτύχθηκαν τη δεκαετία του 60 αλλά χρησιµοποιούνται πάρα πολύ στις ηµέρες µας, είναι η BASIC και η PASCAL. Η γλώσσα προγραµµατισµού BASIC (Beginner s All Purpose Symbolic Instruction Code Συµβολικός Κώδικας Εντολών Γενικής Χρήσης για Αρχάριους) αρχικά αναπτύχθηκε, όπως δηλώνει και το όνοµα της, ως γλώσσα για την εκπαίδευση αρχαρίων στον προγραµµατισµό. Σχεδιάστηκε για να γράφονται σύντοµα προγράµµατα, τα οποία εκτελούνται µε τη βοήθεια διερµηνευτή (interpreter). Η ανάπτυξη όµως των µικροϋπολογιστών και οι συνεχείς εκδόσεις της γλώσσας βοήθησαν στην εξάπλωσή της, τόσο ώστε να γίνει ίσως η δηµοφιλέστερη γλώσσα στους προσωπικούς υπολογιστές. Η τυποποίηση της δε από τη Microsoft µε τις εκδόσεις QuickBasic και κύρια µε τη Visual Basic, καθιέρωσε τη γλώσσα ως πρότυπο για ανάπτυξη εφαρµογών σε προσωπικούς υπολογιστές. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 10

11 Η γλώσσα PASCAL (δηµιούργηµα του καθηγητή Niklaus Wirth) έφερε µεγάλες αλλαγές στον προγραµµατισµό. Παρουσιάστηκε το 1970 και στηρίχτηκε πάνω στην ALGOL. Είναι µία γλώσσα γενικής χρήσης, η οποία είναι κατάλληλη τόσο για την εκπαίδευση όσο και τη δηµιουργία ισχυρών προγραµµάτων κάθε τύπου. Χαρακτηριστικό της γλώσσας είναι η καταλληλότητα για τη δηµιουργία δοµηµένων προγραµµάτων. Η PASCAL γνώρισε και συνεχίζει να γνωρίζει τεράστια εξάπλωση ειδικά στο χώρο των µικροϋπολογιστών και αποτέλεσε τη βάση για την ανάπτυξη άλλων ισχυρότερων γλωσσών όπως η ADA και η Modula-2. Στα µέσα του 1960 παρουσιάστηκε για πρώτη φορά µία τεχνική σχεδίασης προγραµµάτων που έµελλε να αλλάξει ριζικά τον τρόπο ανάπτυξης προγραµµάτων καθώς και τις ίδιες τις γλώσσες προγραµµατισµού. Η τεχνική του δοµηµένου προγραµµατισµού η οποία εξασφαλίζει τη δηµιουργία προγραµµάτων απλών στη συγγραφή και την κατανόηση και εύκολων στη διόρθωση. Ο δοµηµένος προγραµµατισµός και τα χαρακτηριστικά του θα παρουσιαστούν εκτενώς σε επόµενη παράγραφο. Μία ακόµη γλώσσα που γνώρισε µεγάλη διάδοση είναι η γλώσσα C. Η C αναπτύχθηκε στα εργαστήρια της εταιρείας BELL και χρησιµοποιήθηκε για την ανάπτυξη του λειτουργικού συστήµατος Unix, γλώσσα µε ισχυρά χαρακτηριστικά, µερικά από αυτά κοινά µε την Pascal κατάλληλη για ανάπτυξη δοµηµένων εφαρµογών αλλά και µε πολλές δυνατότητες γλώσσας χαµηλού επιπέδου. Η C εξελίχτηκε στη γλώσσα C++, που είναι αντικειµενοστραφής. Η ιδέα του αντικειµενοστραφούς προγραµµατισµού παρουσιάστηκε για πρώτη φορά στη δεκαετία του 70 και συνεχίζει ακόµη να απλώνεται αλλάζοντας τον παραδοσιακό προγραµµατισµό. Λόγω της σηµασίας του αντικειµενοστραφούς προγραµµατισµού µερικά στοιχεία του παρουσιάζονται σε ξεχωριστή παράγραφο. Τα τελευταία χρόνια χρησιµοποιείται ιδιαίτερα, ειδικά για προγραµµατισµό στο ιαδίκτυο (Internet), η JAVA. H JAVA είναι µία αντικειµενοστραφής γλώσσα που αναπτύχθηκε από την εταιρεία SUN µε σκοπό την ανάπτυξη εφαρµογών, που θα εκτελούνται σε κατανεµηµένα περιβάλλοντα, δηλαδή σε διαφορετικούς υπολογιστές οι οποίοι είναι συνδεδεµένοι στο ιαδίκτυο. Τα προγράµµατα αυτά µπορούν να εκτελούνται από διαφορετικούς υπολογιστές, προσωπικούς ή µεγάλα συστήµατα µε διαφορετικά λειτουργικά συστήµατα χωρίς αλλαγές. Η εµφάνιση των γραφικών περιβαλλόντων εργασίας δηµιούργησε την ανάγκη για ανάπτυξη προγραµµάτων που να εκµεταλλεύονται τον γραφικό αυτό τρόπο επικοινωνίας χρήστη-υπολογιστή. Στα περισσότερα προγραµµατιστικά περιβάλλοντα που υπήρχαν, ήταν πολύ δύσκολη έως αδύνατη η ανάπτυξη εφαρµογών, ικανών να εκµεταλλεύονται τα γραφικά αυτά χαρακτηριστικά. Έτσι εµφανίστηκαν γλώσσες ή νέες εκδόσεις των γλωσσών που υλοποιούσαν τις έννοιες του οδηγούµενου από το γεγονός προγραµµατισµού (object driven programming) και του οπτικού προγραµµατισµού (visual programming). ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 11

12 Με τον όρο οπτικό εννοούµε τη δυνατότητα να δηµιουργούµε γραφικά ολόκληρο το περιβάλλον της εφαρµογής για παράδειγµα τα πλαίσια διαλόγου ή τα µενού. Με τον όρο οδηγούµενο από το γεγονός εννοούµε τη δυνατότητα να ενεργοποιούνται λειτουργίες του προγράµµατος µε την εκτέλεση ενός γεγονότος, για παράδειγµα την επιλογή µίας εντολής από ένα µενού ή το κλικ του ποντικιού. Οι πιο διαδεδοµένες γλώσσες προγραµµατισµού σε γραφικό περιβάλλον για προσωπικούς υπολογιστές είναι η Visual Basic, η Visual C++ και η Java. Συνοψίζοντας, οι γλώσσες υψηλού επιπέδου χρησιµοποιούν ως εντολές απλές λέξεις της αγγλικής γλώσσας ακολουθώντας αυστηρούς κανόνες σύνταξης, οι οποίες µεταφράζονται από τον ίδιο τον υπολογιστή σε εντολές σε γλώσσα µηχανής Γλώσσες 4ης γενιάς Οι γλώσσες υψηλού επιπέδου (γλώσσες 3ης γενιάς) γνώρισαν µεγάλη επιτυχία λόγω των πλεονεκτηµάτων που παρουσιάζουν. Ωστόσο απευθύνονται µόνο σε προγραµµατιστές. Ο χρήστης ενός υπολογιστή δεν είχε τη δυνατότητα να επιφέρει αλλαγές σε κάποιο πρόγραµµα, προκειµένου να ικανοποιήσει µια νέα ανάγκη του. Σταδιακά όµως πολλές γλώσσες εφοδιάστηκαν µε εργαλεία προγραµµατισµού που αποκρύπτουν πολλές λεπτοµέρειες από τις τεχνικές υλοποίησης και µε αυτά ο χρήστης µπορεί να επιλύει µόνος του µικρά προβλήµατα εφαρµογών. Αυτή η αυξανόµενη τάση απόκρυψης της αρχιτεκτονικής του υλικού και της τεχνικής του προγραµµατισµού οδήγησε στις γλώσσες 4ης γενιάς. Στις γλώσσες αυτές ο χρήστης ενός υπολογιστή έχει τη δυνατότητα, σχετικά εύκολα, να υποβάλει ερωτήσεις στο σύστηµα ή να αναπτύσσει εφαρµογές που ανακτούν πληροφορίες από βάσεις δεδοµένων και να καθορίζει τον ακριβή τρόπο εµφάνισης αυτών των πληροφοριών, όπως στο παράδειγµα που ακολουθεί: SELECT ENAME, JOB, SAL FROM EMPLOYES WHERE DEPTNO=20 AND SAL > ; Η ερώτηση αυτή σε SQL εκτελεί αναζήτηση στη βάση δεδοµένων EMPLOYES και επιστρέφει το όνοµα, τη θέση και το µισθό των υπαλλήλων της διεύθυνσης 20 που κερδίζουν πάνω από δρχ Ταξινόµηση γλωσσών προγραµµατισµού Όλες οι γλώσσες προγραµµατισµού που έχουν αναπτυχθεί µέχρι σήµερα αντιπροσωπεύουν διάφορες ιδέες πάνω στον προγραµµατισµό και η κάθε µία είναι συνήθως καλύτερα προσαρµοσµένη σε ορισµένες κατηγορίες προβληµάτων. Η µεγάλη πλειοψηφία των γλωσσών ανήκει στην κατηγορία ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 12

13 των διαδικασιακών (procedural) γλωσσών. Είναι γνωστές επίσης και ως αλγοριθµικές γλώσσες, γιατί είναι σχεδιασµένες για να επιτρέπουν την υλοποίηση αλγορίθµων. Άλλες κατηγορίες γλωσσών υψηλού επιπέδου είναι: Αντικειµενοστραφείς γλώσσες (object -oriented languages) Συναρτησιακές γλώσσες (functional languages) π.χ. LISP Μη διαδικασιακές γλώσσες (non procedural languages) π.χ. PROLOG. Χαρακτηρίζονται επίσης και ως γλώσσες πολύ υψηλού επιπέδου. Γλώσσες ερωταπαντήσεων (query languages) π.χ. SQL. Μια άλλη ταξινόµηση µπορεί να προκύψει µε βάση την περιοχή χρήσης. Με αυτό το κριτήριο διακρίνουµε: Γλώσσες γενικής χρήσης. Θεωρητικά κάθε γλώσσα γενικής χρήσης µπορεί να χρησιµοποιηθεί για την επίλυση οποιουδήποτε προβλήµατος. Στην πράξη ωστόσο κάθε γλώσσα έχει σχεδιαστεί για να ανταποκρίνεται καλύτερα σε ορισµένη κατηγορία προβληµάτων. ιακρίνονται σε: Γλώσσες επιστηµονικής κατεύθυνσης (science-oriented languages) π.χ. FORTRAN Γλώσσες εµπορικής κατεύθυνσης (business-oriented languages) π.χ. COBOL. Ας σηµειωθεί ότι ορισµένες γλώσσες τα καταφέρνουν εξίσου καλά και στους δύο προηγούµενους τοµείς π.χ. η BASIC και η Pascal. Γλώσσες προγραµµατισµού συστηµάτων (system programming languages) π.χ. C. Γλώσσες τεχνητής νοηµοσύνης (artificial intelligence languages) π.χ. LISP, PROLOG. Γλώσσες ειδικής χρήσης. Πρόκειται για γλώσσες που χρησιµοποιούνται σε ειδικές περιοχές εφαρµογών όπως π.χ. στα γραφικά µε υπολογιστή, στη ροµποτική, στη σχεδίαση ολοκληρωµένων κυκλωµάτων, στα Συστήµατα ιοίκησης Βάσεων εδοµένων, στην εκπαίδευση µέσω υπολογιστή κ.α Προγραµµατιστικά περιβάλλοντα Κάθε πρόγραµµα που γράφτηκε σε οποιαδήποτε γλώσσα προγραµµατισµού, πρέπει να µετατραπεί σε µορφή αναγνωρίσιµη και εκτελέσιµη από τον υπολογιστή, δηλαδή σε εντολές γλώσσας µηχανής. Η µετατροπή αυτή επιτυγχάνεται µε τη χρήση ειδικών µεταφραστικών ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 13

14 προγραµµάτων. Υπάρχουν δύο µεγάλες κατηγορίες τέτοιων προγραµµάτων, οι µεταγλωττιστές (compilers) και οι διερµηνευτές (interpreters). Ο µεταγλωττιστής δέχεται στην είσοδο ένα πρόγραµµα γραµµένο σε µια γλώσσα υψηλού επιπέδου και παράγει ένα ισοδύναµο πρόγραµµα σε γλώσσα µηχανής. Το τελευταίο µπορεί να εκτελείται οποτεδήποτε από τον υπολογιστή και είναι τελείως ανεξάρτητο από το αρχικό πρόγραµµα. Αντίθετα ο διερµηνευτής διαβάζει µία προς µία τις εντολές του αρχικού προγράµµατος και για κάθε µια εκτελεί αµέσως µια ισοδύναµη ακολουθία εντολών µηχανής. Το αρχικό πρόγραµµα λέγεται πηγαίο πρόγραµµα (source) ενώ το πρόγραµµα που παράγεται από το µεταγλωττιστή λέγεται αντικείµενο πρόγραµµα (object). Το αντικείµενο πρόγραµµα είναι µεν σε µορφή κατανοητή από τον υπολογιστή, αλλά συνήθως δεν είναι σε θέση να εκτελεστεί. Χρειάζεται να συµπληρωθεί και να συνδεθεί µε άλλα τµήµατα προγράµµατος απαραίτητα για την εκτέλεσή του, τµήµατα που είτε τα γράφει ο προγραµµατιστής είτε βρίσκονται στις βιβλιοθήκες (libraries) της γλώσσας. Το πρόγραµµα που επιτρέπει αυτή τη σύνδεση ονοµάζεται συνδέτης φορτωτής (linkerloader). Το αποτέλεσµα του συνδέτη είναι η παραγωγή του εκτελέσιµου προγράµµατος (executable), το οποίο είναι το τελικό πρόγραµµα που εκτελείται από τον υπολογιστή. Για το λόγο αυτό η συνολική διαδικασία αποκαλείται µεταγλώττιση και σύνδεση. Η δηµιουργία του εκτελέσιµου προγράµµατος γίνεται µόνο στην περίπτωση, που το αρχικό πρόγραµµα δεν περιέχει λάθη. Τις περισσότερες φορές κάθε πρόγραµµα αρχικά θα έχει λάθη. Τα λάθη του προγράµµατος είναι γενικά δύο ειδών, λογικά και συντακτικά. Τα λογικά λάθη εµφανίζονται µόνο στην εκτέλεση, ενώ τα συντακτικά λάθη στο στάδιο της µεταγλώττισης. Εκτενής παρουσίαση των λαθών και των τρόπων που αντιµετωπίζονται δεν θα γίνει.. Μπορούµε όµως να αναφέρουµε ότι τα λογικά λάθη που είναι τα πλέον σοβαρά και δύσκολα στη διόρθωση τους, οφείλονται σε σφάλµατα κατά την υλοποίηση του αλγορίθµου, ενώ τα συντακτικά οφείλονται σε αναγραµµατισµούς ονοµάτων εντολών, παράληψη δήλωσης δεδοµένων και πρέπει πάντα να διορθωθούν, ώστε να παραχθεί το τελικό εκτελέσιµο πρόγραµµα. Ο µεταγλωττιστής ή ο διερµηνευτής ανιχνεύει λοιπόν τα λάθη και εµφανίζει κατάλληλα διαγνωστικά µηνύµατα. Το στάδιο που ακολουθεί είναι η διόρθωση των λαθών. Το διορθωµένο ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 14

15 πρόγραµµα υποβάλλεται ξανά για µεταγλώττιση και η διαδικασία αυτή επαναλαµβάνεται, µέχρις ότου εξαλειφθούν πλήρως όλα τα λάθη. Η χρήση µεταγλωττιστή έχει το µειονέκτηµα, ότι προτού χρησιµοποιηθεί ένα πρόγραµµα, πρέπει να περάσει από τη διαδικασία της µεταγλώττισης και σύνδεσης. Από την άλλη µεριά η χρήση διερµηνευτή έχει το πλεονέκτηµα της άµεσης εκτέλεσης και συνεπώς και της άµεσης διόρθωσης. Όµως η εκτέλεση του προγράµµατος καθίσταται πιο αργή, σηµαντικά µερικές φορές, από εκείνη του ισοδύναµου εκτελέσιµου προγράµµατος που παράγει ο µεταγλωττιστής. Πάντως τα σύγχρονα προγραµµατιστικά περιβάλλοντα παρουσιάζονται συνήθως µε µεικτές υλοποιήσεις, όπου χρησιµοποιείται διερµηνευτής κατά τη φάση δηµιουργίας του προγράµµατος και µεταγλωττιστής για την τελική έκδοση και εκµετάλλευση του προγράµµατος. Για την αρχική σύνταξη των προγραµµάτων και τη διόρθωσή τους στη συνέχεια χρησιµοποιείται ένα ειδικό πρόγραµµα που ονοµάζεται συντάκτης (editor). Ο συντάκτης είναι ουσιαστικά ένας µικρός επεξεργαστής κειµένου, µε δυνατότητες όµως που διευκολύνουν τη γρήγορη γραφή των εντολών των προγραµµάτων. Για τη δηµιουργία, τη µετάφραση και την εκτέλεση ενός προγράµµατος απαιτούνται τουλάχιστον τρία προγράµµατα: ο συντάκτης, ο µεταγλωττιστής και ο συνδέτης. Τα σύγχρονα προγραµµατιστικά περιβάλλοντα παρέχουν αυτά τα προγράµµατα µε ενιαίο τρόπο. Το κάθε προγραµµατιστικό περιβάλλον έχει φυσικά διαφορετικά εργαλεία και ιδιότητες. Για παράδειγµα ένα περιβάλλον οπτικού (visual) προγραµµατισµού πρέπει να περιέχει οπωσδήποτε και ειδικό συντάκτη που να διευκολύνει τη δηµιουργία γραφικών αντικειµένων (για παράδειγµα φόρµες, λίστες, παράθυρα διαλόγου) παρέχοντας στον προγραµµατιστή τα αντίστοιχα γραφικά εργαλεία Η γλώσσα Visual Basic Με την επικράτηση των Windows η γλώσσα Visual Basic ακολούθησε τις τάσεις των καιρών και µετεξελίχθηκε σε ένα ακόµα πιο ισχυρό εργαλείο προγραµµατισµού. Σήµερα µάλιστα προσφέρει τον απλούστερο, τον ευκολότερο και το γρηγορότερο τρόπο ανάπτυξης λογισµικού στο παραθυρικό περιβάλλον των Windows. Επίσης, αν και η γλώσσα περιέχει στο όνοµά της το συνθετικό Basic, τα πράγµατα που µπορούµε να κάνουµε, όταν χρησιµοποιούµε αυτή τη γλώσσα, δεν είναι και τόσο βασικά. Η σηµερινή µορφή της γλώσσας απέχει κατά πολύ από την αρχική της µορφή και είναι εµπλουτισµένη µε πλήθος σύγχρονων προγραµµατιστικών δοµών καθώς και συναρτήσεων και ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 15

16 διαδικασιών που διαχειρίζονται απευθείας το γραφικό περιβάλλον των Windows. Τόσο τα παλιά χαρακτηριστικά της γλώσσας όσο και τα νέα βοηθούν όχι µόνο τον αρχάριο προγραµµατιστή να δηµιουργήσει γρήγορα αξιόλογες εφαρµογές, αλλά και τον έµπειρο προγραµµατιστή να εκµεταλλευτεί κάθε δυνατότητα που προσφέρουν οι σηµερινοί υπολογιστές και τα σύγχρονα Λειτουργικά Συστήµατα. Έτσι, µαθαίνοντας ένας νέος προγραµµατιστής αυτή τη γλώσσα επενδύει στο µέλλον µιας και αποκτά ένα εργαλείο για την υλοποίηση και επαγγελµατικών εφαρµογών. Τα βασικά χαρακτηριστικά της Visual Basic (VB) είναι: Απλή σύνταξη που δεν απαιτεί πολλές γνώσεις πληροφορικής και αυστηρούς ορισµούς, η οποία είναι πιο κοντά στην αγγλική γλώσσα από ότι η σύνταξη άλλων γλωσσών προγραµµατισµού. Επίσης, ως προς τη σύνταξη, οι εντολές σχηµατίζουν δοµές που ακολουθούν τους κανόνες του δοµηµένου προγραµµατισµού (structured programming). Το περιβάλλον, στο οποίο υλοποιούνται οι εφαρµογές, πραγµατοποιεί αυτόµατα συντακτικό έλεγχο τη στιγµή εισαγωγής των εντολών και προσφέρει µεγάλες ευκολίες για την ανίχνευση και διόρθωση λαθών. Οπτικός προγραµµατισµός (visual programming). Ο προγραµµατιστής αφιερώνει πολύ λίγο χρόνο για τη δηµιουργία διεπαφής χρήστη-υπολογιστή, µιας και την πραγµατοποιεί σχεδιάζοντας παρά κωδικοποιώντας. Αντί δηλαδή να γράφει µεγάλους κώδικες κειµένου για την περιγραφή των αντικειµένων που τη συνθέτουν, δεν έχει παρά να επιλέξει µε το ποντίκι προκατασκευασµένα αντικείµενα από µια εργαλειοθήκη, να τα τοποθετήσει στην κατάλληλη θέση σε µια φόρµα σχεδίασης και να καθορίσει το µέγεθός τους, όπως ακριβώς και σε ένα σχεδιαστικό πρόγραµµα (π.χ. το Paint). Εκµετάλλευση σύνθετων λειτουργιών και εννοιών µε απλό τρόπο. Παράθυρα, µενού, πεδία κειµένου, διαλογικά παράθυρα, ράβδοι κύλισης, γραµµατοσειρές κ.α. σχεδιάζονται χωρίς κώδικα µε απλές κινήσεις και ελέγχονται µέσα από το πρόγραµµα µε µερικές µόνο γραµµές. Αντικειµενοστραφής προγραµµατισµός (object oriented programming). Τα παράθυρα, τα αντικείµενα που τοποθετούνται πάνω στα παράθυρα και άλλα αντικείµενα του περιβάλλοντος εργασίας έχουν ιδιότητες και συγκεκριµένους τρόπους συµπεριφοράς, λειτουργούν δηλαδή σαν αντικείµενα του φυσικού κόσµου. Προγραµµατισµός οδηγούµενος από συµβάντα (even driven programming). Σε ένα αντικειµενοστραφές περιβάλλον, το πρόγραµµα δεν ελέγχει τις συσκευές αλληλεπίδρασης (π.χ. το ποντίκι, το πληκτρολόγιο κλπ) µε το χρήστη για να διαπιστώσει αν έχουν πατηθεί τα πλήκτρα τους, ούτε και το ρολόι του υπολογιστή για να διαπιστώσει αν έχει φτάσει κάποια στιγµή διέγερσης. Όταν προκύψει κάποιο συµβάν από αυτές τις συσκευές, στέλνεται ένα µήνυµα που διεγείρει το αντικείµενο που έχει υποδειχθεί από τη συσκευή. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 16

17 Πλήρης εκµετάλλευση του µηχανισµού ActiveX που επιτρέπει τη δηµιουργία αντικειµένων και τη διαχείρισή τους από άλλες εφαρµογές. ιαχείριση αρχείων βάσεων δεδοµένων. Είναι δυνατή η εκµετάλλευση αρχείων Access µέσω του µηχανισµού Jet Database Engine και αρχείων βάσεων δεδοµένων Oracle και SQL Server µέσω του µηχανισµού Open Database Connectivity-ODBC. Εκτέλεση διαδικασιών API (Application Programming Interface) των Windows ή διαδικασιών που βρίσκονται σε δυναµικής σύνδεσης βιβλιοθήκες (Dynamic Link Libraries-DLLs) για εκµετάλλευση των δυνατοτήτων άλλων εφαρµογών µέσω του µηχανισµού σύνδεσης και ενσωµάτωσης αντικειµένων (Object Linking & Embedding-OLE). Παραλλαγές της VB, γνωστές µε το όνοµα Visual Basic for Applications, χρησιµοποιούνται για την πραγµατοποίηση αυτοµατοποιηµένων διαδικασιών σε τυποποιηµένα προγράµµατα αυτοµατισµού γραφείου, όπως είναι οι επεξεργαστές κειµένου (π.χ. Word), τα φύλλα εργασίας (π.χ. Excel), τα προγράµµατα παρουσίασης (π.χ. Power Point) και τα προγράµµατα βάσεων δεδοµένων (π.χ. Access). Υπερσύνολο της VBScript που χρησιµοποιείται σήµερα για προγραµµατισµό στο Internet. Η VBScript έχει δυνατότητες δηµιουργίας και εύκολης προσπέλασης σε εφαρµογές και έγγραφα στο Internet καθώς και δηµιουργίας εφαρµογών που να προσφέρουν υπηρεσίες στους χρήστες του Internet Το Περιβάλλον Εργασίας της Visual Basic Αρκετά χρόνια πριν, για την επικοινωνία του χρήστη µε τη εφαρµογή θα έπρεπε προγραµµατιστής να σχεδιάσει τα παράθυρα από τα οποία θα επικοινωνεί ο χρήστης µε την εφαρµογή, να γράψει και να διορθώσει τον κώδικα του προγράµµατος, να ζητήσει τη µετάφραση σε γλώσσα µηχανής και να κάνει τις απαραίτητες δοκιµαστικές εκτελέσεις του προγράµµατος. Όλες αυτές οι εργασίες γίνονται σήµερα µε τη βοήθεια ενοποιηµένου λογισµικού που αποτελεί ένα ολοκληρωµένο περιβάλλον ανάπτυξης εφαρµογών (Integrated Development Environment-IDE) ή για συντοµία Περιβάλλον Εργασίας. Σε ένα Περιβάλλον Εργασίας ο προγραµµατιστής µπορεί να καλέσει παλαιότερα προγράµµατά του, να αποθηκεύσει στο δίσκο τη δουλειά του και να συνδυάσει κοµµάτια κώδικα από διάφορα προγράµµατά του. Επίσης, µε τον ενσωµατωµένο επεξεργαστή κειµένου µπορεί όχι µόνο να γράψει το πρόγραµµά του αλλά και να το ελέγξει ορθογραφικά και συντακτικά µιας και τη στιγµή που γράφεται µια εντολή γίνεται ο έλεγχος της ορθότητάς της και η υπόδειξη των σηµείων που υπάρχουν λάθη. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 17

18 Όταν τελειώσει ένα πρόγραµµα, ο προγραµµατιστής ζητά την µετάφραση και την εκτέλεσή του. Μέσα από το Περιβάλλον Εργασίας είναι δυνατή η βηµατική εκτέλεση του προγράµµατος (εντολή προς εντολή), η ανίχνευση σηµείων στα οποία δεν δίνονται σωστά αποτελέσµατα η εισαγωγή σηµείων διακοπής, για να διαπιστωθεί κατά πόσο το πρόγραµµα διέρχεται από συγκεκριµένα σηµεία τη στιγµή της εκτέλεσής του, ενώ είναι δυνατή και η παρουσίαση ενδιάµεσων αποτελεσµάτων. Τέλος, το Περιβάλλον Εργασίας είναι εφοδιασµένο µε άµεση βοήθεια (on-line help) ώστε ο προγραµµατιστής να συµβουλεύεται τα εγχειρίδια της γλώσσας προγραµµατισµού και να εκµεταλλεύεται έτοιµα κοµµάτια κώδικα που βρίσκονται γραµµένα µέσα σε παραδείγµατα. Το Περιβάλλον Εργασίας της Visual Basic καλείται όπως και όλα τα άλλα προγράµµατα στο περιβάλλον των Windows: Μενού Έναρξη Όλα τα προγράµµατα Microsoft Visual Basic - Microsoft Visual Basic. Θα εµφανιστεί το παρακάτω Παράθυρο ιαλόγου που ονοµάζεται New Project (Νέο Έργο). Στο Παράθυρο αυτό υπάρχουν τρεις Καρτέλες: 1. Η καρτέλα New για τη δηµιουργία ενός νέου έργου το οποίο είναι ήδη προεπιλεγµένο 2. Η καρτέλα Existing για την επιλογή ενός έργου από τα ήδη υπάρχοντα 3. Η καρτέλα Recent για την επιλογή ενός έργου από αυτά που επεξεργαστήκαµε πρόσφατα Στο Παράθυρο ιαλόγου New Project µπορεί να υπάρχει ένας αριθµός υποδειγµάτων/προτύπων (templates) πάνω στο οποίο θα βασιστεί το Νέο Έργο που θα ξεκινήσουµε. Η επιλογή του υποδείγµατος γίνεται κάνοντας κλικ πάνω στο αντίστοιχο εικονίδιο. Για απλά αυτοδύναµα ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 18

19 προγράµµατα σαν αυτά που θα αναλύσουµε στα επόµενα κεφάλαια, θα επιλέγουµε αυτό που είναι προεπιλεγµένο, δηλαδή το Standard.EXE (Τυπικό εκτελέσιµο). Μετά την επιλογή του Standard.ΕΧΕ κάνοντας κλικ πάνω στο εικονίδιο εµφανίζεται η παρακάτω οθόνη που αποτελεί το Περιβάλλον Εργασίας της Visual Basic: Στο Περιβάλλον Εργασίας της γλώσσας Visual Basic διακρίνουµε τα εξής τµήµατα: Γραµµή Τίτλου(Title Bar), Γραµµή Μενού (Menu Bar) και Γραµµές Εργαλείων (Toolbars). Βρίσκονται στο πάνω µέρος της οθόνης. Έχουν παρόµοιες ιδιότητες και λειτουργία µε τα Windows και τα προγράµµατα αυτοµατισµού γραφείου (Word, Excel Κλπ). Σχεδιαστής Φόρµας (Form Designer). Βρίσκεται στο κέντρο της οθόνης και αφορά το τµήµα όπου γράφεται ο κώδικας της εφαρµογής. Στο Σχεδιαστή Φόρµας ο χρήστης δηµιουργεί τις φόρµες των παραθύρων επικοινωνίας του χρήστη µε την εφαρµογή. Οι φόρµες αποτελούν το σηµείο από το οποίο αρχίζει ο σχεδιασµός και η υλοποίηση κάθε εφαρµογής. Όταν ξεκινάµε µια νέα εργασία, το περιβάλλον παρουσιάζει µια κενή φόρµα σχεδίασης (µε το όνοµα Form1) η οποία, όπως και κάθε νέα φόρµα, περιέχει Γραµµή Τίτλου (Title Bar), Πλαίσιο Ελέγχου (Control Box), πλήκτρα επαναφοράς/µεγιστοποίησης (Restore/Maximize), ελαχιστοποίησης (Minimize) και κλεισίµατος (Close). Το πλέγµα των σηµείων που παρουσιάζονται στο εσωτερικό της ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 19

20 φόρµας αποτελεί βοήθηµα για το σχεδιασµό των αντικειµένων. Το πλέγµα εµφανίζεται µόνο τη στιγµή που το περιβάλλον εργασίας βρίσκεται σε κατάσταση σχεδιασµού. Κατά την εκτέλεση του προγράµµατος το πλέγµα γίνεται αόρατο. Γραµµή Τίτλου της φόρµας Πλήκτρο κλεισίµατος Πλήκτρο Επαναφοράς-Μεγιστοποίησης Πλήκτρο Ελαχιστοποίησης Πλαίσιο ελέγχου Στη φόρµα σχεδίασης επισυνάπτονται από τον προγραµµατιστή τα αντικείµενα ελέγχου που παρουσιάζουν δεδοµένα στο χρήστη (π.χ. πλαίσια κειµένου) και αντικείµενα ελέγχου χειρισµών (π.χ. πλήκτρα). Ο προγραµµατιστής δηµιουργεί όσες φόρµες σχεδίασης απαιτεί το πρόγραµµά του, καθορίζει τις διαστάσεις τους και τις τοποθετεί στην κατάλληλη θέση. Η θέση και οι διαστάσεις που δίνονται στη φόρµα κατά το σχεδιασµό της είναι αυτές που θα έχει και κατά την εκτέλεση του προγράµµατος. Εργαλειοθήκη (Toolbox). Βρίσκεται στα αριστερά της οθόνης και είναι το τµήµα από όπου επιλέγονται τα όργανα που τοποθετούνται στη φόρµα. Το πιο σηµαντικό χαρακτηριστικό της Visual Basic είναι ότι ο προγραµµατιστής δεν είναι αναγκασµένος να δηµιουργήσει δικά του αντικείµενα, αλλά µπορεί να χρησιµοποιήσει κάποια διαθέσιµα. Η εργαλειοθήκη περιέχει όλα τα εργαλεία για το σχεδιασµό και την τοποθέτηση αντικειµένων ελέγχου (controls) πάνω στις φόρµες. Με πολύ απλές κινήσεις, ο προγραµµατιστής/σχεδιαστής µπορεί να δηµιουργήσει σύνθετες αλλά εργονοµικές και λειτουργικές φόρµες και να συνθέσει το κατάλληλο περιβάλλον επικοινωνίας χρήστη-εφαρµογής. Κάποια από τα αντικείµενα της εργαλειοθήκης είναι ήδη γνωστά σε ένα χρήστη των Windows µιας και είναι τα ίδια µε αυτά που εµφανίζονται στα Παράθυρα ιαλόγου των εφαρµογών. Για παράδειγµα, τα πεδία κειµένου, οι συνδυασµένες και οι απλές λίστες, τα πλήκτρα, τα κουτάκια µαρκαρίσµατος, οι ράβδοι κύλισης, και τα πλαίσια επιλογής δίσκων ή καταλόγων ή αρχείων. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 20

21 Για να τοποθετήσει ο προγραµµατιστής ένα αντικείµενο ελέγχου στη φόρµα σχεδίασης, επιλέγει πρώτα το εικονίδιο, που το αναπαριστά στην εργαλειοθήκη και στη συνέχεια το σχεδιάζει στις κατάλληλες διαστάσεις πάνω στη φόρµα. Μετά του δίνει ιδιότητες και καθορίζει τον ειδικό τρόπο συµπεριφοράς του γράφοντας κώδικα. Παράθυρο Έργου (Project Explorer Window). Βρίσκεται άνω δεξιά της οθόνης. Κάθε εφαρµογή της Visual Basic αποτελεί ένα έργο στο οποίο µπορούµε να έχουµε µία ή περισσότερες φόρµες. Ο κώδικας κάθε εφαρµογής γράφεται σε τµήµατα που ονοµάζονται προγραµµατιστικές µονάδες φόρµας (form modules) που καθεµιά τους συνοδεύει µια φόρµα αλλά και σε τµήµατα που ονοµάζονται βασικές προγραµµατιστικές µονάδες (standard modules ή απλά modules) που δεν ανήκουν σε καµιά φόρµα. Για κάθε έργο δηµιουργείται ένα αρχείο που περιγράφει τον τρόπο δόµησής του και περιέχει και άλλες λειτουργικές του πληροφορίες. Τα αρχεία τύπου έργου έχουν κατάληξη.vbp. Για κάθε φόρµα δηµιουργείται και ένα αρχείο που περιγράφει τον τρόπο δόµησής της και περιέχει τα αντικείµενα ελέγχου της και τον κώδικα σε γλώσσα Basic που συνοδεύει τη φόρµα. Κάθε αρχείο φόρµας έχει κατάληξη.frm. Τέλος, οι βασικές προγραµµατιστικές µονάδες αποθηκεύονται και αυτές σε αρχεία τα οποία έχουν κατάληξη.bas. Τα δοµικά στοιχεία του έργου, η ιεραρχική σύνδεσή τους και τα αρχεία στα οποία έχουν αποθηκευτεί, παρουσιάζονται σε µορφή παρόµοια µε αυτή του εξερευνητή αρχείων των Windows. Αυτού οι τύποι δοµικών στοιχείων ενός έργου δεν είναι και οι µοναδικοί. Για πιο σύνθετες εφαρµογές, χρησιµοποιούνται και άλλες µορφές φορµών και προγραµµατιστικών µονάδων. Τέλος, να σηµειωθεί ότι µιας και κάθε δοµικό στοιχείο ενός έργου αποθηκεύεται και σε ξεχωριστό αρχείο, είναι δυνατόν ένα δοµικό στοιχείο να ανήκει σε περισσότερα από ένα έργα. Εικονίδιο για τα αρχεία.vbp Εικονίδιο για τα αρχεία.frm Εικονίδιο για τα αρχεία.bas Πλήκτρο για εµφάνιση φόρµας Πλήκτρο για εµφάνιση κώδικα ιπλό κλικ για να αναδιπλωθεί ή να ξεδιπλωθεί η λίστα ιπλό κλικ για να εµφανιστεί η φόρµα Παράθυρο ιδιοτήτων (Properties window) Βρίσκεται δεξιά της οθόνης. Οι ιδιότητες είναι τα ιδιαίτερα χαρακτηριστικά των αντικειµένων. Κάποιες από τις ιδιότητες καθορίζουν τα χαρακτηριστικά εµφάνισης των αντικειµένων όπως τη θέση, το µέγεθος, το χρώµα και το ίχνος της µύτης του «µολυβιού» που χρησιµοποιείται για τη ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 21

22 σχεδίαση τους. Επίσης, κάποιες άλλες ιδιότητες καθορίζουν τον τρόπο αντίδρασης και συµπεριφοράς των αντικειµένων όπως το κλείδωµα, την ενεργοποίηση, το είδος επικοινωνίας για ανταλλαγές τιµών κ.α. Κάθε είδος αντικειµένου έχει διαφορετικό σύνολο ιδιοτήτων. Το αντικείµενο το οποίο χαρακτηρίζουν οι ιδιότητες στη λίστα που ακολουθεί Ταξινόµηση ιδιοτήτων ανά κατηγορία Αλφαβητική ταξινόµηση όλων των Ιδιοτήτων Σύντοµη περιγραφή της ιδιότητας που ακολουθεί Το Παράθυρο Ιδιοτήτων περιέχει µια λίστα µε τις ιδιότητες και τις τιµές των ιδιοτήτων του αντικειµένου που έχουµε επιλέξει. Η επιλογή του αντικειµένου µπορεί να γίνει είτε από τη φόρµα σχεδίασης είτε από την πτυσσόµενη λίστα που βρίσκεται στο πάνω µέρος του παραθύρου. Στην περίπτωση που έχουν επιλεγεί πάνω από ένα αντικείµενα, προβάλλονται µόνο οι κοινές ιδιότητες όλων των αντικειµένων. Η παρουσίαση των ιδιοτήτων µέσα στο παράθυρο µπορεί να γίνει αλφαβητικά ή κατά κατηγορίες. Τέλος, να σηµειωθεί ότι υπάρχουν και ιδιότητες οι οποίες δεν αναφέρονται στο παράθυρο ιδιοτήτων. Σκαρίφηµα Εµφάνισης Παραθύρων (Form Layout Window) Πρόκειται για ένα παράθυρο που παρουσιάζει σε µικρογραφία την οθόνη και τη σχετική θέση κάθε παραθύρου ανοιχτής φόρµας στο εσωτερικό της οθόνης. Χρησιµεύει δτην προεπισκόπηση των σχετικών διαστάσεων του παραθύρου κάθε φόρµας και την τοποθέτηση του µέσα στο χώρο της οθόνης σε σχέση µε τα άλλα παράθυρα που τυχαίνει να είναι ανοιχτά. Όταν ο δείκτης του ποντικιού πάρει τη µορφή σταυρονήµατος, µπορούµε να σύρουµε το παράθυρο και να το τοποθετήσουµε σε µια νέα θέση. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 22

23 Άλλα παράθυρα του Περιβάλλοντος Εργασίας Εκτός που τα παράθυρα που περιγράψαµε προηγουµένως, το Περιβάλλον Εργασίας διαθέτει και άλλα παράθυρα τα οποία αρχικά βρίσκονται αναδιπλωµένα. Η εµφάνιση και η απόκρυψη των πρόσθετων παραθύρων, καθώς και κάθε παραθύρου, µπορεί να γίνει από τις αντίστοιχες υποεπιλογές του Μενού View στο πάνω µέρος της οθόνης του περιβάλλοντος εργασίας. Τα επιπλέον παράθυρα περιγράφονται στη συνέχεια. Παράθυρο Κώδικα (Code Window) Για κάθε προγραµµατιστική µονάδα φόρµας και για κάθε βασική προγραµµατιστική µονάδα υπάρχει και ένα παράθυρο κώδικα ώστε να γίνεται καλύτερα η οργάνωση και διαχείριση του κώδικα. Στο παράθυρο αυτό γράφουµε όπως ακριβώς γράφουµε και σε έναν επεξεργαστή κειµένου. Μπορούµε να πληκτρολογήσουµε κώδικα, να σβήσουµε τµήµατά του, να τα µετακινήσουµε σε άλλη θέση, να αντιγράψουµε κείµενο από άλλο παράθυρο κώδικα ή από άλλο επεξεργαστή κειµένου. Πτυσσόµενη λίστα µε συµβάντα Αντικείµενο στο οποίο αναφέρεται ο κώδικας Περιοχή γραφής κώδικα Κάθε γραµµή που εισάγεται στο παράθυρο κώδικα, ελέγχεται για συντακτικά λάθη. Σε περίπτωση που βρεθεί ένα τέτοιο λάθος, γίνεται αυτόµατά η αναφορά του και η γραµµή χρωµατίζεται κόκκινη. Αν η γραµµή δεν περιέχει λάθη, χρωµατίζονται οι κωδικές λέξεις µπλε και γίνεται κατάλληλος διαχωρισµός όλων των λέξεων µε κενά. Παράθυρο Άµεσης Εκτέλεσης Εντολών (Immediate window) Σε αυτό το παράθυρο, ο προγραµµατιστής µπορεί να ζητήσει την άµεση εκτέλεση κάποιων εντολών ακόµη κι αν αυτές δεν ανήκουν στον κώδικα του προγράµµατος. Σκοπός του προγραµµατιστή είναι να ελέγξει τις τιµές των µεταβλητών του προγράµµατός του κατά την εκσφαλµάτωση ή να αλλάξει τις τιµές κάποιων µεταβλητών µε στόχο να συντοµεύσει την εκτέλεση κάποιων λειτουργιών ή να κάνει κάποιους πρόχειρους υπολογισµούς παραστάσεων. Παράθυρο Τοπικών Μεταβλητών (Locals window) ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 23

24 Πρόκειται για ένα παράθυρο που σε µορφή πίνακα παρουσιάζει τις τιµές των εσωτερικών (τοπικών) µεταβλητών µιας υπορουτίνας και χρησιµοποιείται συνήθως κατά την εκσφαλµάτωση. Από αυτό το παράθυρο ο προγραµµατιστής µπορεί να έχει µια ολοκληρωµένη εικόνα των µεταβλητών που χρησιµοποιεί για να δει πως µεταβάλλονται και αλληλεπιδρούν µεταξύ τους. Παράθυρο Παρακολούθησης (Watch window) Και αυτό είναι ένα παράθυρο που χρησιµοποιείται συνήθως κατά την εκσφαλµάτωση. Προβάλλει επιλεκτικά τις τιµές κάποιων µεταβλητών και παραστάσεων που έχει υποδείξει ο προγραµµατιστής. Παράθυρο Επισκόπησης Αντικειµένων (Object Browser) Στο Παράθυρο Επισκόπησης Αντικειµένων υπάρχει µια λίστα µε όλα τα αντικείµενα του έργου ταξινοµηµένα. είχνοντας τα αντικείµενα στο παράθυρο επισκόπησης, γίνεται και ταχεία πλοήγηση στα παράθυρα κώδικα που περιέχουν. Λίστα αντικειµένων Λίστα µε χαρακτηριστικά (ιδιότητες, µεθόδους, συµβάντα) του αντικειµένου που επιλέχθηκε Άµεση βοήθεια (On-Line Help) Ένα από τα βασικά χαρακτηριστικά του περιβάλλοντος εργασίας είναι η δυνατότητα παροχής άµεσης βοήθειας στον προγραµµατιστή. Ο τρόπος χρήσης του περιβάλλοντος εργασίας, οι τρόποι σύνταξης των εντολών της γλώσσας Basic, παραδείγµατα και άλλα θέµατα σχετικά µε τον προγραµµατισµό είναι οργανωµένα σε δοµή υπερκειµένου (hypertext). Μέσα στο κείµενο υπάρχουν ειδικά τονισµένες λέξεις (πράσινες στο χρώµα), πάνω από τις οποίες όταν περάσει ο δροµέας του ποντικιού αποκτά µορφή χεριού που δείχνει. Αν ο προγραµµατιστής κάνει κλικ επάνω τους, ανοίγει νέο παράθυρο µε πρόσθετη πληροφορία γι αυτές τις λέξεις. Αυτός ο τρόπος οργάνωσης του κειµένου έχει αποδειχθεί ως ο πιο ενδεδειγµένος για εγχειρίδια αναφοράς, µιας και ο ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 24

25 προγραµµατιστής µπορεί να ξεκινήσει από ένα σηµείο, να κινηθεί από πληροφορία σε πληροφορία και να βρει την πληροφορία που τον ενδιαφέρει. Για να καλέσει την άµεση βοήθεια ο προγραµµατιστής έχει δύο δυνατότητες: - Να κάνει κλικ στην επιλογή Help της Γραµµής Μενού και να ψάξει ως προς τα περιεχόµενα (Καρτέλα Contents), ως προς τα ευρετήρια όρων (Καρτέλα Index), ή ως προς µία λέξη (Καρτέλα Search). - Να εστιάσει στην οθόνη πάνω στο αντικείµενο για το οποίο χρειάζεται να πάρει πληροφορίες κάνοντας κλικ επάνω του και στη συνέχεια να πατήσει το πλήκτρο F1. Για παράδειγµα, αν θέλουµε να ζητήσουµε πληροφορίες για ένα εικονίδιο της εργαλειοθήκης, κάνουµε κλικ πάνω στο εικονίδιο και πατάµε το πλήκτρο F1. Τέλος, αν τη στιγµή που γράφουµε κώδικα θέλουµε πληροφορίες για µια εντολή, κάνουµε κλικ στην λέξη και πατάµε το πλήκτρο F1. Έξοδος από το Περιβάλλον Εργασίας Για να τερµατίσουµε το περιβάλλον εργασίας της Visual Basic, κάνουµε κλικ στο Μενού File και στη συνέχεια την υποεπιλογή Exit. Αν δεν έχουµε αποθηκεύσει τις αλλαγές που έχουµε κάνει στο τρέχον έργο, πριν τον τερµατισµό της εφαρµογής θα εµφανιστεί ένα παράθυρο διαλόγου από το οποίο ερωτόµαστε αν επιθυµούµε να αποθηκεύσουµε τις αλλαγές. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 25

26 Αποθήκευση των αλλαγών και µετά τερµατισµός. Ισοδυναµεί και µε το πάτηµα του πλήκτρου Enter. Τερµατισµός χωρίς αποθήκευση των αλλαγών. Αναστολή του τερµατισµού. Ισοδυναµεί και µε το πάτηµα του πλήκτρου Esc ιαχείριση και αποθήκευση αρχείων της Visual Basic Πριν µερικά χρόνια, ένα πρόγραµµα αντιπροσωπεύονταν από ένα αρχείο. Σήµερα όµως, καθώς τα προγράµµατα γίνονται όλο και πιο πολύπλοκα, ένα πρόγραµµα αποτελείται από δύο ή περισσότερα αρχεία. Η Visual Basic αποθηκεύει κάθε πρόγραµµα σε δύο ή περισσότερα αρχεία. Οι πιο συνηθισµένοι τύποι αρχείου που χρησιµοποιεί η Visual Basic είναι : Αρχείο έργου (project file). Ένα πρόγραµµα στη Visual Basic είναι ένα αρχείο έργου. Το αρχείο έργου αναφέρει όλα τα αρχεία (δηλαδή αρχεία φόρµας, αρχεία λειτουργικής µονάδας κ.λπ.) από τα οποία αποτελείται ένα πρόγραµµα της Visual Basic. Το όνοµα ενός αρχείου έργου λαµβάνει επέκταση.vbp (π.χ. Income.vbp, Ασκηση1.vbp). Αρχείο φόρµας (form file). Το αρχείο φόρµας περιέχει ένα παράθυρο που αποτελεί τη διασύνδεση χρήστη καθώς και τον κώδικα προγράµµατος (κώδικα BASIC) που εξηγεί στα αντικείµενα της φόρµας τι πρέπει να κάνουν. Το όνοµα ενός αρχείου φόρµας λαµβάνει επέκταση.frm (π.χ. Income.frm, Ασκηση1.frm). Ένα πρόγραµµα σε Visual Basic µπορεί να περιέχει ένα ή περισσότερα αρχεία φόρµας. Αρχείο λειτουργικής µονάδας (module file). Το αρχείο λειτουργικής µονάδας περιέχει κώδικα που εκτελεί υπολογισµούς οι οποίοι δεν έχουν σχέση µε τη διασύνδεση χρήστη. Το όνοµα ενός αρχείου λειτουργικής µονάδας λαµβάνει επέκταση.bas (π.χ. Income.bas, Ασκσκη1.bas). Ένα πρόγραµµα σε Visual Basic µπορεί να περιέχει ένα ή περισσότερα αρχεία λειτουργικής µονάδας. Η Visual Basic για κάθε πρόγραµµα απαιτεί συνήθως τη σχεδίαση τουλάχιστον µιας φόρµας για να δηµιουργηθεί η (δηµιουργία διασύνδεσης χρήστη). Κάθε φόρµα περιέχει αντικείµενα ελέγχου και κώδικα προγράµµατος. Όλες αυτές οι πληροφορίες για τη φόρµα σώζονται σε ένα αρχείο φόρµας. Το παράθυρο εξερεύνησης έργου (Project Explorer) εµφανίζει όλα τα αρχεία που είναι καταχωρηµένα σε ένα αρχείο έργου της Visual Basic. Σηµειώνεται ότι για να εµφανίσετε το παράθυρο εξερεύνησης ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 26

27 έργου στο περιβάλλον ανάπτυξης της Visual Basic επιλέξτε από τη γραµµή µενού View - Project Explorer. Για την αποθήκευση µιας φόρµας επιλέγεται από τη γραµµή µενού File και στη συνέχεια Save Form1 As όπου πληκτρολογείται το όνοµα που επιθυµείται για τη φόρµα σας και λαµβάνει επέκταση.frm (π.χ. MyFirstForm.frm). Για την αποθήκευση ενός αρχείου έργου στη Visual Basic επιλέγεται από τη γραµµή µενού File και στη συνέχεια Save Project As όπου εµφανίζεται ένα πλαίσιο διαλόγου στο οποίο πληκτρολογείται το όνοµα που επιθυµείται για το έργο (ή πρόγραµµα) σας και λαµβάνει επέκταση.vbp (π.χ. MyFirstProject.vbp). Για την αποθήκευση µιας λειτουργικής µονάδας επιλέγεται Save Module1 As όπου πληκτρολογείται το όνοµα που επιθυµείται για τη λειτουργική µονάδα και λαµβάνει επέκταση.bas (π.χ. MyFirstModule.bas) Εισαγωγή και εκτέλεση απλών προγραµµάτων στη γλώσσα Visual Basic Για να εκτελέσουµε ένα πρόγραµµα πηγαίνουµε: Μενού Run Start ή εναλλακτικά πατάµε το πλήκτρο F5 από το πληκτρολόγιο ή το κουµπί από τη γραµµή εργαλείων. Παρατηρούµε ότι το περιβάλλον εργασίας αλλάζει κάπως. Για να διακόψουµε την εκτέλεση ενός προγράµµατος πηγαίνουµε: Μενού Run End ή το κουµπί από τη γραµµή εργαλείων (δεν υπάρχει αντίστοιχο πλήκτρο στο πληκτρολόγιο για τερµατισµό ενός προγράµµατος). Για λόγους απλούστευσης, τα πρώτα προγράµµατα που θα δούµε δεν αποτελούνται από φόρµες αλλά από ένα κύριο σώµα κώδικα µέσω της διαδικασίας (υπορουτίνας) Sub Main() End Sub. Οι εντολές Sub Main() ορίζουν την αρχή του προγράµµατος και οι εντολές End Sub το τέλος του προγράµµατος. Η υλοποίηση τέτοιων προγραµµάτων περιγράφεται µε το ακόλουθο παράδειγµα. Παράδειγµα (Module και Sub Main). Ενέργειες - βήµατα Αποτελέσµατα ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 27

28 Εµφανίζουµε το Περιβάλλον Εργασίας της Visual Basic και επιλέγουµε τη δηµιουργία Standard EXE όπως είδαµε σε προηγούµενη ενότητα. Πηγαίνουµε: Μενού Project - Add Μodule για να προσθέσουµε µια νέα δοµική ενότητα (module), όπως φαίνεται στην διπλανή εικόνα. Εµφανίζεται το διπλανό παράθυρο και πατάµε Άνοιγµα. Εµφανίζεται παράθυρο : το ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 28

29 Στη συνέχεια επιλέγουµε Μενού Project-Project1 Properties.. όπως φαίνεται δίπλα: Εµφανίζεται η ακόλουθη οθόνη: Στην καρτέλα General επιλέγουµε ως Startup Object το Sub Main (αντί για το Form1) όπως φαίνεται στην ακόλουθη οθόνη: ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 29

30 Οι εντολές του προγράµµατος πληκτρολογούνται πλέον µέσα στο λευκό τµήµα του παραθύρου Project1 Module 1 (Code) σε µορφή υποπρογράµµατος Sub Main() End Sub Παράδειγµα (Απλό πρόγραµµα) Tο ακόλουθο πρόγραµµα εµφανίζει απλά ένα µήνυµα στην οθόνη: Sub Main() MsgBox "Hello (Γεια σας)!!! " End Sub Εισαγωγή και εκτέλεση του προγράµµατος Για την εισαγωγή και εκτέλεση αυτού του προγράµµατος ακολουθούµε την ακόλουθη διαδικασία: Πληκτρολογούµε τις εντολές στο λευκό τµήµα του Project1-Module1 (Code) όπως φαίνεται δίπλα: Για να το εκτελέσουµε, πατάµε το πλήκτρο F5 και, αν δεν έχουµε κάνει κάποιο λάθος, θα δούµε στην οθόνη µας το εξής αποτέλεσµα: ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 30

31 Πατώντας ΟΚ το µήνυµα εξαφανίζεται και µπορούµε να εκτελέσουµε το πρόγραµµα ξανά πατώντας το F5. Την εντολή MsgBox που χρησιµοποιείται για την εµφάνιση αποτελεσµάτων θα τη δούµε αναλυτικότερα σε επόµενη ενότητα παρακάτω. Η εφαρµογή διαθέτει αυτόµατη διόρθωση σε ορισµένες που µπορεί να τις πληκτρολογήσουµε λάθος. Επίσης, τοποθετεί αυτόµατα ορισµένες συµπληρωµατικές εντολές αµέσως µόλις πληκτρολογήσουµε ένα τµήµα αυτών και πατήσουµε Enter από το πληκτρολόγιο. Για παράδειγµα, αν πληκτρολογήσουµε Sub Main() και πατήσουµε Enter, τότε αυτόµατα θα τοποθετηθεί το τµήµα End Sub ως τελευταία γραµµή του προγράµµατος. ιάφορες λειτουργίες του Περιβάλλοντος Εργασίας της Visual Basic κατά την εισαγωγή εντολών δίνονται στη συνέχεια. Παράδειγµα (Συµπεριφορά της Visual Basic σε περίπτωση λαθών) Εκτελούµε τις ακόλουθες ενέργειες-βήµατα: Ενέργειες Πληκτρολόγηση Sub Main() και πάτηµα του Enter από το πληκτρολόγιο: Αποτέλεσµα Πληκτρολόγηση εντολών µε κεφαλαία γράµµατα, π.χ. του προγράµµατος: SUB MAIN() MSGBOX "HELLO" END SUB ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 31

32 Σε περίπτωση που πληκτρολογήσουµε λάθος µια εντολή, το πρόγραµµα επιστρέφει ένα µήνυµα και προσδιορίζει το σηµείο όπου υπάρχει λάθος. Π.χ. αν πληκτρολογήσουµε λάθος την εντολή MsgBox, έστω Box, τότε το πρόγραµµα θα εµφανίσει στην οθόνη ένα µήνυµα λάθους στη µεταγλώττιση. Πατώντας, το πρόγραµµα κιτρινίζει το τµήµα του προγράµµατος όπου εντοπίστηκε σφάλµα και µαρκάρει (µαυρίζει) την εντολή που είναι λάθος, δηλαδή στην προκειµένη περίπτωση το Box. Αν πληκτρολογήσουµε δύο (ή περισσότερα) εισαγωγικά αντί για ένα δεξιά του Hello, δηλαδή πληκτρολογήσουµε το πρόγραµµα: Sub Main() Msgbox "Hello"" End Sub τότε το πρόγραµµα εισάγει ακόµη ένα εισαγωγικό. Η µορφή του προγράµµατος και το αποτέλεσµα της εκτέλεσής του (Run ή πατώντας F5) φαίνονται δίπλα. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 32

33 Μάθηµα 2. ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κάθε γλώσσα προγραµµατισµού έχει το δικό της λεξιλόγιο και τα προγράµµατα της ακολουθούν αυστηρούς γραµµατικούς και συντακτικούς κανόνες. Για τη δηµιουργία σωστών προγραµµάτων είναι απαραίτητη η γνώση των εντολών και του τρόπου σύνταξής τους. Εκατοντάδες γλώσσες προγραµµατισµού χρησιµοποιούνται όπως αναφέρθηκε σήµερα για την επίλυση των προβληµάτων µε τον υπολογιστή, τη δηµιουργία σωστών προγραµµάτων. Η επιλογή της κατάλληλής γλώσσας δεν είναι εύκολη και εξαρτάται από το είδος του προγράµµατος, το διαθέσιµο εξοπλισµό και σαφώς τις γνώσεις και τις ιδιαίτερες προτιµήσεις του προγραµµατιστή. Συχνά το ίδιο πρόβληµα µπορεί να λυθεί εξίσου ικανοποιητικά µε πολλές διαφορετικές γλώσσες προγραµµατισµού. Πρέπει να έχουµε πάντα υπόψη µας ότι: Κάθε γλώσσα προγραµµατισµού σχεδιάζεται για συγκεκριµένο σκοπό, δίνοντας ιδιαίτερη έµφαση σε ορισµένα χαρακτηριστικά σε βάρος βέβαια κάποιων άλλων. εν υπάρχει καλύτερη γλώσσα προγραµµατισµού, απλά υπάρχει γλώσσα καταλληλότερη για την ανάπτυξη συγκεκριµένου τύπου εφαρµογών. Οι γλώσσες προγραµµατισµού περιέχουν πολλές πληροφορίες που σχετίζονται µε τεχνικά θέµατα. Αυτά τα χαρακτηριστικά αλλάζουν αρκετά συχνά, όπως η γλώσσα εξελίσσεται και εξαρτώνται σε µεγάλο βαθµό από τον εξοπλισµό και το λειτουργικό σύστηµα. Οι νεώτερες εκδόσεις των γλωσσών συνήθως διαθέτουν πλουσιότερο ρεπερτόριο εντολών και άλλων δυνατοτήτων, χωρίς όµως να προσθέτουν οτιδήποτε στην εκµάθηση της δηµιουργίας σωστών προγραµµάτων. Σχεδόν όλες οι γλώσσες προγραµµατισµού έχουν κοινά χαρακτηριστικά, επεξεργάζονται κατά κανόνα τους ίδιους τύπους δεδοµένων, υποστηρίζουν τις ίδιες βασικές δοµές και έχουν παρόµοιες εντολές Συναρτήσεις MsgBox και InputBox Σχεδόν όλα τα προγράµµατα υπολογιστή δέχονται κάποια δεδοµένα, τα επεξεργάζονται, υπολογίζουν τα αποτελέσµατα και τέλος τα εµφανίζουν. Τα δεδοµένα εισάγονται κατά τη διάρκεια της εκτέλεσης του προγράµµατος από µία µονάδα εισόδου, για παράδειγµα το πληκτρολόγιο και τα αποτελέσµατα γράφονται σε µία µονάδα εξόδου, για παράδειγµα την οθόνη. Η Visual Basic δίνει τη δυνατότητα να δηµιουργήσουµε διαλογικά παράθυρα (dialog boxes) για την επικοινωνία του χρήστη µε την εφαρµογή µε µηνύµατα. Η εντολή (συνάρτηση) για την εµφάνιση ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 33

34 µηνυµάτων ή αποτελεσµάτων προς τον χρήστη είναι η συνάρτηση MsgBox (από τις λέξεις Message Box: Πλαίσιο µηνυµάτων) ενώ για την εισαγωγή δεδοµένων από τον χρήστη χρησιµοποιείται η συνάρτηση InputBox (Input Box: Πλαίσιο δεδοµένων εισόδου). Συνάρτηση (Πλαίσιο) MsgBox Η εντολή αυτή εµφανίζει ένα διαλογικό παράθυρο στην οθόνη το οποίο περιέχει ένα µήνυµα προς το χρήστη και ένα ή περισσότερα πλήκτρα διαταγής µε τα οποία ο χρήστης δηλώνει την απάντησή του. Η τιµή που επιστρέφει η συνάρτηση MsgBox είναι ένας ακέραιος αριθµός που καθορίζεται από το πλήκτρο που πάτησε ο χρήστης για να κλείσει το διαλογικό παράθυρο. Η γενική µορφή της συνάρτησης είναι: MsgBox µήνυµα, µορφή, τίτλος MsgBox (µήνυµα, µορφή, τίτλος) Η δεύτερη µορφή σύνταξης χρησιµοποιείται όταν δεν µας ενδιαφέρει η απόκριση του χρήστη. ιακρίνουµε τρεις παραµέτρους της συνάρτησης MsgBox: o Μήνυµα. Αποτελεί το µήνυµα το οποίο θα εµφανιστεί στο εσωτερικό του διαλογικού παραθύρου, είναι δηλαδή µια συµβολοσειρά και πρέπει να περικλείεται µέσα σε διπλά εισαγωγικά. Μπορεί να είναι µέχρι 1024 χαρακτήρες και µπορεί να αποτελείται από περισσότερες από µία γραµµές. Για να καθορίσουµε τα σηµεία στα οποία θα γίνεται η αλλαγή της γραµµής µεταξύ των συµβολοσειρών που αποτελούν το περιεχόµενο κάθε γραµµής πρέπει να παρεµβάλλουµε τους χαρακτήρες που αντιστοιχούν στην εσωτερική σταθερά (κωδική λέξη) vbcrlf της Visual Basic που συνοδεύονται συνήθως από τους ειδικούς χαρακτήρες & ή + (πριν και µετά) αφήνοντας ένα κενό πριν και µετά τη χρήση των χαρακτήρων. o Μορφή. Καθορίζει τον αριθµό και τον τύπο των πλήκτρων διαταγής που θα τοποθετηθούν στο διαλογικό παράθυρο. Επίσης, κάποιο εικονίδιο που πιθανώς θα περιέχεται στο διαλογικό παράθυρο και γενικότερα καθορίζει τη συµπεριφορά του παραθύρου. Η παράµετρος µορφή µπορεί να παραλειφθεί και η συνάρτηση συµπεριφέρεται σαν να δόθηκε µορφή 0 οπότε εµφανίζεται στο εσωτερικό του διαλογικού παραθύρου µόνο ένα πλήκτρο διαταγής (π.χ. ΟΚ). o Τίτλος. Καθορίζει τον τίτλο του διαλογικού παραθύρου (µέσα στο µπλε πλαίσιο). Αν παραλειφθεί, τότε στον τίτλο θα αναγράφεται το όνοµα του έργου (project) της εφαρµογής (π.χ. Project1). ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 34

35 Μια συνάρτηση που θα χρησιµοποιήσουµε σε ορισµένες από τις παρακάτω ασκήσεις σε συνδυασµό µε την εντολή MsgBox είναι η συνάρτηση Str. Η συνάρτηση Str χρησιµοποιείται για τη µετατροπή µιας αριθµητικής τιµής σε συµβολοσειρά. Η γενική της σύνταξη είναι: Str(n) όπου n είναι µια αριθµητική σταθερά ή µεταβλητή του προγράµµατος. Η συνάρτηση Str(n) θα επιστρέψει την τιµή της σταθεράς ή µεταβλητής ως συµβολοσειρά πλέον εισάγοντας και ένα κενό πριν την αριθµητική τιµή και µπορεί να εµφανιστεί ως µέρος ενός µηνύµατος µε χρήση της εντολής MsgBox. Για να συνδεθεί («κολλήσει») µε άλλες συµβολοσειρές, χρησιµοποιούνται οι χαρακτήρες + και & αφήνοντας ένα κενό πριν και µετά τη χρήση των χαρακτήρων. Συνάρτηση(Πλαίσιο) InputBox Η συνάρτηση InputBox εµφανίζει ένα διαλογικό παράθυρο που περιέχει ένα πλαίσιο κειµένου και δύο πλήκτρα διαταγής, το OK και το Cancel. Ο χρήστης πρέπει να συµπληρώσει το πλαίσιο κειµένου και να κάνει κλικ σε ένα από τα δύο πλήκτρα. Η τιµή που επιστρέφει η συνάρτηση µε επιλογή του OK είναι ακριβώς το περιεχόµενο πλαισίου κειµένου, ενώ η επιλογή του πλήκτρου Cancel επιστρέφει τη µηδενική συµβολοσειρά ( ). Η γενική σύνταξη της συνάρτησης έχει ως εξής: InputBox(µήνυµα, τίτλος, προεπιλογή, x, y) Μοναδική υποχρεωτική παράµετρος είναι το µήνυµα το οποίο µπορεί να είναι µέχρι 1024 περίπου χαρακτήρες (εξαρτάται από το πλάτος των χρησιµοποιούµενων χαρακτήρων), είναι δηλαδή συµβολοσειρά. Για την παράµετρο τίτλος ισχύει ότι και για την εντολή MsgBox. Η παράµετρος προεπιλογή επιτρέπει την αυτόµατη εµφάνιση ενός µηνύµατος σε περίπτωση που ο χρήστης δεν πληκτρολογήσει κάποια τιµή µέσα στο πλαίσιο κειµένου. Αν παραλειφθεί αυτή η τιµή τότε το πλαίσιο κειµένου εµφανίζεται άδειο. Οι παράµετροι x και y χρησιµοποιούνται για να προσδιορίσουµε τη θέση εµφάνισης του διαλογικού παραθύρου σε σχέση µε την πάνω αριστερή γωνία της οθόνης και µπορούν να παραλειφθούν όπως και οι παράµετροι τίτλος και προεπιλογή Εντολή εκχώρησης Η εντολή εκχώρησης χρησιµοποιείται για την απόδοση τιµών στις µεταβλητές κατά τη διάρκεια εκτέλεσης του προγράµµατος. Ο τελεστής εκχώρησης (assignment operator) στη γλώσσα Visual Basic είναι το «=» (ίσον). Η γενική της σύνταξη της εκχώρησης είναι της µορφής: Όνοµα_Μεταβλητής = Παράσταση ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 35

36 Σχετικά µε την εντολή εκχώρησης θα πρέπει να τονιστούν τα ακόλουθα: - Η παράσταση µπορεί να είναι µόνο µια µεταβλητή ή σταθερά ή συνδυασµός πράξεων µεταξύ µεταβλητών και σταθερών. - Μετά την εκτέλεση της εντολής εκχώρησης, η προηγούµενη τιµή της µεταβλητής χάνεται και στη θέση εκχωρείται το αποτέλεσµα της παράστασης. - Μια εντολή εκχώρησης σε καµία περίπτωση δεν πρέπει να εκλαµβάνεται ως εξίσωση. Στην εξίσωση το αριστερό µέλος ισούται µε το δεξιό, ενώ στην εντολή εκχώρησης η τιµή του δεξιού µέλους εκχωρείται, µεταβιβάζεται, αποδίδεται στη µεταβλητή του αριστερού µέλους. Σε άλλες γλώσσες µπορεί να είναι διαφορετικός ο τελεστής ώστε να µη συγχέεται µε την εξίσωση και να δείχνει τη φορά εκχώρησης τιµής µιας παράστασης σε µια µεταβλητή (π.χ. ο τελεστής εκχώρησης µπορεί να είναι το, δηλαδή ένα βέλος µε φορά από τα δεξιά προς τα αριστερά). - εν επιτρέπεται να αντιστοιχισθεί µια παράσταση µε τιµή µια συµβολοσειρά σε µια αριθµητική µεταβλητή αλλά και µια παράσταση µε αριθµητική τιµή σε µια αλφαριθµητική µεταβλητή. Αν γίνει κάτι τέτοιο, η Visual Basic θα εµφανίσει ένα µήνυµα λάθους Type mismatch. Παραδείγµατα δήλωσης σταθερών, µεταβλητών και εντολών εκχώρησης Const π= Dim EmvadoKyklou As Double Dim r As Double EmvadoKyklou=π*r^2 Dim ComplexNoun As String Dim Noun As String Noun= ΛΗΨΗ ComplexNoun= ΚΑΤΑ & Noun Dim counter As Integer counter=counter+1 Dim TotalTime Σχόλια Εκχώρηση της τιµής της αριθµητικής παράστασης πr 2 στην αριθµητική µεταβλητή EmvadoKyklou Εκχώρηση της παράστασης ΛΗΨΗ στη µεταβλητή Noun Εκχώρηση της τιµής της αλφαριθµητικής παράστασης ΚΑΛΗ & ΜΕΡΑ στην αλφαριθµητική µεταβλητή ComplexNoun Εκχώρηση της τιµής της αριθµητικής παράστασης counter+1 στην αριθµητική µεταβλητή counter TotalTime= 10 TotalTime=TotalTime+15 TotalTime= Χρόνος & TotalTime & λεπτά ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 36

37 Παραδείγµατα Παράδειγµα 2.1 (MsgBox, Str, vbcrlf). Να πληκτρολογηθούν όλες οι παρακάτω εντολές σε µία γραµµή η κάθε µία µεταξύ των Sub Main() και End Sub. Να εκτελεστεί το πρόγραµµα και να παρατηρηθούν τα αποτελέσµατα. Λύση Πληκτρολογούµε όλες τις παρακάτω εντολές σε διαφορετική γραµµή την καθεµία και µεταξύ των Sub Main() και End Sub. Εκτελούµε το πρόγραµµα και πατώντας διαδοχικά ΟΚ σε κάθε µήνυµα που εµφανίζεται στην οθόνη, παρατηρούµε τα αποτελέσµατα. Ο χαρακτήρας ( ) που περιλαµβάνεται σε κάποιες εντολές µαζί µε µια συµβολοσειρά δηλώνει ότι ακολουθούν σχόλια. Τα αποτελέσµατα για κάθε εντολή περιέχονται στον παρακάτω Πίνακα. Εντολή MsgBox "ένα συν ένα = " + Str(1 + 1) Αποτέλεσµα Σχόλιο: Αντί για το + πριν από τη συνάρτηση Str θα µπορούσαµε να χρησιµοποιήσουµε το χαρακτήρα & για το συγκεκριµένο παράδειγµα αλλά και για τα επόµενα παραδείγµατα MsgBox "Το εµβαδό του δωµατίου είναι " + Str(3 * 5) + " τετραγωνικά µέτρα." MsgBox Str(36.7) + " βαθµοί Celsius = " + Str( / 5.0 * 36.7) + " βαθµοί Fahrenheit." MsgBox Str(1 + 2 * 3) ' Σχόλιο: Τυπώνει 7 MsgBox Str((1 + 2) * 3) ' Σχόλιο: Τυπώνει 9 MsgBox "Hello, students..." & vbcrlf & "Γειά σας!!!",, HELLO" Σχόλιο: Ισοδύναµα θα µπορούσαµε να χρησιµοποιήσουµε τον χαρακτήρα + αντί για τον χαρακτήρα & πριν και µετά την κωδική λέξη vbcrlf ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 37

38 Παράδειγµα 2.2 (Συνάρτηση InputBox). Α. Να γραφεί πρόγραµµα που περιλαµβάνει δύο Συναρτήσεις InputBox.. Το πρόγραµµα δέχεται ως εισόδους (inputs) δύο τιµές τις οποίες εκχωρεί στις µεταβλητές x και y. Στο τέλος εµφανίζει το διπλάσιο του x και το αποτέλεσµα της ύψωσης του y στο τετράγωνο. Να σηµειωθεί ότι στην πρώτη συνάρτηση εισόδου που χρησιµοποιείται υπάρχει µόνο ένα µήνυµα ενώ στη δεύτερη υπάρχει και ο Τίτλος του Παραθύρου, η Προεπιλογή και οι συντεταγµένες της θέσης εµφάνισης του Παραθύρου Εισόδου των δεδοµένων σε twips που είναι η µονάδα µέτρησης µήκους της Visual Basic. Η λέξη twip προέρχεται από τις λέξεις twentieth of an inch point (1 / 20 της ίντσας). Ισχύει ότι 1440 twips = 1 ίντσα και 1 ίντσα = 2,54 εκ. Άρα: 8000 twips = 5,55 ιντσες = 14,1 εκ (απόσταση από πάνω και αριστερά της οθόνης). Β. Να τροποποιηθεί το πρόγραµµα ώστε το Πλαίσιο εισόδου δεδοµένων για την ποσότητα y να έχει τίτλο ΠΕΡΙΠΤΩΣΗ Β, προεπιλογή ίση µε 0,25 και θέση εµφάνισης ίση µε 2880 twips. Επίσης, να υπολογίζει τη διαίρεση ( / ) του x µε το 3 και την τετραγωνική ρίζα του y (ύψωση στη δύναµη 0.5). Λύση Α. Πληκτρολογούµε το παραπάνω πρόγραµµα και ζητάµε την εκτέλεσή του. Θα εµφανιστούν µηνύµατα για την εισαγωγή ενός δεκαδικού αριθµού και στο τέλος το αποτέλεσµα. Πρόγραµµα x = 0,3 y = 0,5 Μηνύµατα εισόδου δεδοµένων Αποτελέσµατα Β. Μηνύµατα εισόδου δεδοµένων x = 0,3 y = 0,25 Αποτελέσµατα ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 38

39 Παράδειγµα 2.3 (Εντολή εκχώρησης). Α. Να γραφεί πρόγραµµα υπολογισµού στο οποίο εισάγονται ένας περιττός και ένας αριθµός και υπολογίζεται ο επόµενος περιττός και ο προηγούµενος άρτιος αριθµός από αυτούς που δόθηκαν. Β. Να τροποποιηθεί το πρόγραµµα ώστε να εισάγεται ένα θετικό πολλαπλάσιο του 5 (5, 10, 15, ) και να υπολογίζεται η τετραγωνική ρίζα ( ) του προηγούµενου πολλαπλάσιου του 5 και το επόµενο πολλαπλάσιο του 5. Τα αποτελέσµατα να παρουσιάζονται όπως φαίνεται στην παρακάτω εικόνα για δοθέν πολλ/σιο του 5 ίσο µε 30. Α. Λύση Πρόγραµµα Μηνύµατα εισόδου δεδοµένων Αποτελέσµατα x= 345 y= 456 Παράδειγµα 2.4 (Ανταλλαγή τιµών µεταξύ δύο ποσοτήτων (swap)). Να γραφεί πρόγραµµα µε το οποίο γίνεται ανταλλαγή των τιµών δύο ποσοτήτων Α και Β χρησιµοποιώντας µια βοηθητική µεταβλητή Temp. Α. Όταν οι δύο ποσότητες Α και Β είναι αλφαριθµητικές (συµβολοσειρές). Π.χ. αν Α= Α και Β= Β, µετά την εκτέλεση του προγράµµατος θα είναι Α= Β και Β= Α. Β. Όταν οι δύο ποσότητες Α και Β είναι αριθµοί. Π.χ. αν Α= 1 και Β= 2, µετά την εκτέλεση του προγράµµατος θα είναι Α= 2 και Β= 1. Γ. Να τροποποιηθεί ο κώδικας για την περίπτωση (Α) ώστε να γίνεται πρώτα εκχώρηση της ποσότητας Β στην βοηθητική µεταβλητή Temp. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 39

40 ιάγραµµα επεξήγησης περίπτωσης Α. Λύση Temp a A b B Temp=a Temp A a A b B a=b Temp A a B b B b=temp Temp A a B b A Πρόγραµµα (Α) Sub Main() A = InputBox( A= ) B = InputBox( B= ) Temp = Α Α = Β Β = Temp MsgBox A= + A +, B= + B End Sub Πρόγραµµα (Β) Sub Main() A = InputBox( A= ) B = InputBox( B= ) Temp = Α Α = Β Β = Temp MsgBox A= + Str(A) +, B= + Str(B) End Sub εδοµένα εισόδου : Α= Α, Β= Β εδοµένα εισόδου : Α= 1, Β= 2 Αποτελέσµατα : A= B, B= A Αποτελέσµατα : A= 2, B= 1 Πρόγραµµα (Γ) Sub Main() A = InputBox( A= ) B = InputBox( B= ) Temp = B MsgBox A= + A +, B= + B End Sub Ερωτήσεις και ασκήσεις ανακεφαλαίωσης 1. Να αναφέρετε τον τρόπο σύνταξης των συναρτήσεων MsgBox και InputBox και τι εκφράζει η κάθε παράµετρός τους (συνοπτικά). Τι εκφράζει η κωδική λέξη vbcrlf και µε ποιους χαρακτήρες συνδέεται µε άλλες αλφαριθµητικές ποσότητες (συµβολοσειρές) ; Ποια η λειτουργία της συνάρτησης Str και µε ποιους χαρακτήρες συνδέεται µε άλλες συµβολοσειρές ; 2. Να αναφέρετε τον τρόπο σύνταξης µιας εντολής εκχώρησης και τον χαρακτήρα µε τον οποίο υλοποιείται στη Visual Basic. Ποια είναι η αλληλουχία ενεργειών που εκτελείται στην εντολή εκχώρησης; Ποιόν τελεστή εκχώρησης σε άλλη γλώσσα προγραµµατισµού γνωρίζετε; 3. Να σηµειώσετε ποιες από τις παρακάτω εντολές εκχώρησης είναι σωστή ή λάθος. Σε περίπτωση που είναι λάθος, να δικαιολογήσετε την απάντησή σας και να δώσετε µία σωστή εκδοχή. α/α Εντολή Σωστό/Λάθος α/α Εντολή Σωστό/Λάθος 1 X = Y ^ 2 5 X = Y + Z 2 X = X = Y & Z + Y 3 X + 5 = X X <= X X -Y = - Y + Χ 8 X + Ζ = Υ 4. Να γράψετε ολοκληρωµένο τον κώδικα για την περίπτωση (B) του Παραδείγµατος Να γράψετε ολοκληρωµένο τον κώδικα για την περίπτωση (B) του Παραδείγµατος Να γράψετε ολοκληρωµένο τον κώδικα για την περίπτωση (Γ) του Παραδείγµατος 2.4. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 40

41 Μάθηµα 3. ΤΥΠΟΙ Ε ΟΜΕΝΩΝ - ΣΤΑΘΕΡΕΣ Μέσα σε ένα πρόγραµµα µπορούµε να χρησιµοποιούµε αριθµούς (ψηφία), χαρακτήρες (γράµµατα του ελληνικού και του λατινικού αλφαβήτου) και ειδικά σύµβολα. Συγκεκριµένα τα εξής: Γράµµατα Κεφαλαία ελληνικού αλφαβήτου (Α-Ω) Πεζά ελληνικού αλφαβήτου (α-ω) Κεφαλαία λατινικού αλφαβήτου (Α-Ζ) Πεζά λατινικού αλφαβήτου (a-z) Ψηφία 0-9 Ειδικοί χαρακτήρες + - * / = ^ ( ).,! & κενός χαρακτήρας Γενικά σε ένα πρόγραµµα µπορούµε να χρησιµοποιήσουµε τους εξής τύπους δεδοµένων: - Σταθερές (constants), δηλαδή αριθµούς, χαρακτήρες, σειρές συµβόλων και ηµεροµηνίες που δεν αλλάζουν κατά τη διάρκεια εκτέλεσης του προγράµµατος. - Μεταβλητές (variables), δηλαδή ποσότητες που η τιµή τους µπορεί να µεταβληθεί από τις εντολές του προγράµµατος µε στόχο να αποθηκεύουµε προσωρινά κάποιες τιµές και να τις χρησιµοποιήσουµε σε άλλα σηµεία του προγράµµατος ή σε άλλες χρονικές στιγµές. - Παραστάσεις (expressions) που βασίζονται πάνω σε σύνθετους µαθηµατικούς τύπους (σχέσεις) για να κάνουµε υπολογισµούς Σταθερές Η Visual Basic περιλαµβάνει τεσσάρων ειδών σταθερές και συγκεκριµένα: o Αριθµητικές σταθερές (numeric constants) o Λογικές σταθερές (boolean) o Αλφαριθµητικές σταθερές ή συµβολοσειρές (strings) o Ηµεροµηνίες (dates) ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 41

42 Αριθµητικές σταθερές Οι αριθµητικές σταθερές είναι γενικά οι αριθµοί κάθε µορφής. Υπάρχουν δύο ειδών αριθµητικές σταθερές: οι ακέραιες (integer) που παριστάνουν ορισµένους από τους ακέραιους αριθµούς και οι πραγµατικές (real) που παριστάνουν ορισµένους από τους πραγµατικούς αριθµούς. Οι αρνητικές αριθµητικές σταθερές δηλώνονται τοποθετώντας µπροστά υποχρεωτικά το πρόσηµο «µείον» (-) ενώ για τις θετικές σταθερές δεν απαιτείται το πρόσηµο «συν» (+). Οι δεκαδικοί δηλώνονται µε την υποδιαστολή το σύµβολο της οποίας είναι η τελεία (.) και όχι το κόµµα (,). Για τους ακέραιους µε περισσότερα από τρία ψηφία, δε χρησιµοποιείται κανένα σύµβολο για το χωρισµό των ψηφίων του ακεραίου µέρους σε τριάδες (π.χ και όχι π.χ ). Κατά την πληκτρολόγηση µιας αριθµητικής σταθεράς, υπάρχει περίπτωση η Visual Basic να αλλάξει την γραφή σύµφωνα µε τα δικά της πρότυπα γραφής, αµέσως µετά τη συµπλήρωση της εντολής που την περιέχει. Για παράδειγµα, αν βάλουµε µηδενικά πριν από ακέραιο αριθµό (π.χ. 004) ή µηδενικά µετά την υποδιαστολή ενός πραγµατικού (π.χ. 4,000), η Visual Basic θα αποµακρύνει τα µηδενικά και στις δύο περιπτώσεις. Στην περίπτωση που επιβάλλεται να χρησιµοποιήσουµε ένα ακέραιο π.χ. µε µηδενικά στην αρχή του, τότε θα πρέπει να τον δηλώσουµε ως συµβολοσειρά. Επίσης, όταν πληκτρολογούµε πολύ µεγάλους ακέραιους αριθµούς, η Visual Basic τους αποθηκεύει σαν πραγµατικούς αριθµούς και τοποθετεί στο τέλος τους το σύµβολο (#) ως δήλωση της αλλαγής. Ο παρακάτω Πίνακας περιλαµβάνει παραδείγµατα δήλωση σταθερών και την αντίστοιχη γραφή της Visual Basic: Αριθµός Αλλαγή γραφής από Visual Basic # 4.0 4# Στην Visual Basic, εκτός από τον κλασικό τρόπο συµβολισµού υπάρχει και ο επιστηµονικός συµβολισµός (scientific notation) όπου χρησιµοποιούµε ένα µόνο ακέραιο ψηφίο, κάποια ψηφία µετά την υποδιαστολή και την τάξη µεγέθους τη δηλώνουµε µε µια δύναµη του 10 για την οποία ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 42

43 χρησιµοποιείται το λατινικό γράµµα E. Ο επόµενος Πίνακας περιλαµβάνει παραδείγµατα επιστηµονικών συµβολισµών: Αριθµός ήλωση σε Visual Basic ή 2,032x Ε+12 0,0006 ή 6x10-4 6E-4 10 x ή 1x E11 10 x ή 1x10-9 1E-9 Στην περίπτωση που γίνει ορθογραφικό λάθος κατά την εισαγωγή αριθµητικών σταθερών, η Visual Basic µπορεί να το βρει και να το υποδείξει. Υπάρχουν όµως και λάθη που η Visual Basic µπορεί να τα θεωρήσει σαν κάτι αποδεκτό, οπότε στην περίπτωση αυτή η εύρεση του λάθους είναι δύσκολη. Ο επόµενος Πίνακας περιλαµβάνει δηλώσεις (γραφές) αριθµητικών σταθερών µε λάθη και οι περιπτώσεις όπου το λάθος ανακαλύπτεται από την γλώσσα δηλώνεται από την υπογράµµιση: Αριθµός Γραφή σε Visual Basic Λάθος 205,65 205,65 Κόµµα αντί για τελεία 5,67x10 0,5 5.67E0.5 Εκθέτης µη ακέραιος e 7 1E7 Βάση όχι το Ε3 Βάση όχι το Ε13 Το σωστό είναι: 1Ε13 422x E εν υπάρχει εκθέτης Να σηµειωθεί επίσης ότι υπάρχει ένα ορισµένο εύρος στην τιµή των αριθµητικών σταθερών αλλά και στην τιµή των µεταβλητών, δηλαδή δε µπορούµε να δηλώσουµε µια σταθερά ή µεταβλητή οσοδήποτε µεγάλη ή µικρή. Λογικές σταθερές Οι λογικές σταθερές παίρνουν τιµή είτε True (Αληθές) είτε False (Ψευδές) ακολουθώντας τη δυαδική λογική (0 ή 1) και αποτελούν συµβολισµούς σταθερών. Χρησιµοποιούνται για την λήψη αποφάσεων και για τον προσδιορισµό µιας συνθήκης (αληθής ή ψευδής). Αλφαριθµητικές σταθερές ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 43

44 Είναι µια σειρά από χαρακτήρες, δηλαδή γράµµατα του ελληνικού και του αλφαβήτου, ψηφία και σύµβολα. Για τη δήλωσή τους περικλείονται σε διπλά εισαγωγικά (quotes) ( ) και παριστάνουν αριθµητικές ποσότητες, ονόµατα, διευθύνσεις, µηνύµατα προς το χρήστη κλπ. Το πλήθος των χαρακτήρων µιας συµβολοσειράς ονοµάζεται µήκος της συµβολοσειράς. Η συµβολοσειρά έχει µηδενικό µήκος και ονοµάζεται µηδενική συµβολοσειρά. Ακολουθούν ορισµένα παραδείγµατα συµβολοσειρών: ώστε την τιµή της αντίστασης R1 R1= I = 10 Amperes A#*/().,!&^$, 157, Μια συµβολοσειρά δεν είναι απαραίτητα µια λέξη ή πρόταση µιας γλώσσας π.χ. της ελληνικής ή της αγγλικής αλλά οποιοσδήποτε συνδυασµός χαρακτήρων. Στα προηγούµενα παραδείγµατα παρατηρούµε ότι η σταθερά 157,35 είναι αποδεκτή παρόλο που χρησιµοποιήθηκε το κόµµα (,) για την υποδιαστολή, αφού πρόκειται για τη συµβολοσειρά και όχι αριθµητική σταθερά. Για τη σταθερά , τα µηδενικά θα διατηρηθούν από τη Visual Basic για τον ίδιο λόγο µε την προηγούµενη περίπτωση. Για τις σταθερές και, η πρώτη έχει µήκος 1 και η δεύτερη 0 (µηδενική συµβολοσειρά που αναφέραµε πιο πάνω). Ηµεροµηνίες Οι ηµεροµηνίες στη Visual Basic σε αντίθεση µε άλλες γλώσσες, περικλείονται µεταξύ συµβόλων (#) και ακολουθούν τον αµερικάνικο τρόπο συµβολισµού. Η γενική τους µορφή είναι: #µµ/ηη/εεεε# Παρατηρούµε ότι γράφεται πρώτα ο µήνας και µετά η ηµέρα, ενώ το έτος γράφεται τελευταίο και είναι τετραψήφιο. Η διαχείριση των ηµεροµηνιών είναι αριθµητική επιτρέποντας έτσι να βρεθεί ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 44

45 π.χ. η διαφορά σε µέρες µεταξύ δύο ηµεροµηνιών ή µια ηµεροµηνία µετά από ένα χρονικό διάστηµα. Ο επόµενος Πίνακας δίνει παραδείγµατα δήλωσης (γραφής) ηµεροµηνιών: Ηµεροµηνία Γραφή σε Σχόλια Visual Basic 17 η Νοεµβρίου 2010 #11/17/2010# 21 Μαΐου 2000 #5/21/2000# Μονοψήφιος µήνας 6 Ιουλίου 1998 #7/6/1998# Μονοψήφιος µήνας, µονοψήφια ηµέρα 4 Απριλίου 2005 #4/4/2005# Ίδιος αριθµός µέρας και µήνα. Προτείνεται η γραφή σχολίου στον κώδικα 29 η Φεβρουαρίου 2007 #2/29/2007# Η ηµεροµηνία δεν θα γίνει αποδεκτή µετά την πληκτρολόγησή της αφού δεν υφίσταται. Η αντίστοιχη ηµεροµηνία για το 2008 είναι όµως αποδεκτή. ήλωση σταθερών στη Visual Basic Η δήλωση µιας σταθεράς στη Visual Basic γίνεται µε την εντολή Const και είναι της µορφής: Const όνοµα_σταθεράς = τιµή Η τιµή είναι είτε ένας αριθµός ή µια συµβολοσειρά ή µια ηµεροµηνία. Επίσης, µπορεί να είναι και µια παράσταση από σταθερές που δεν περιέχει συναρτήσεις. Για το όνοµα_σταθεράς µπορούµε να χρησιµοποιήσουµε και ελληνικά γράµµατα (και τονισµένα) αλλά πρέπει το όνοµα να αρχίζει µε γράµµα και όχι αριθµό. Από χαρακτήρες, µόνο ο χαρακτήρας (_) µπορεί να χρησιµοποιηθεί αλλά όχι ως πρώτος. Οι κανόνες που ακολουθεί το όνοµα µιας σταθεράς ή µιας µεταβλητής είναι ίδιοι. Στη συνέχεια δίνονται παραδείγµατα δήλωσης σταθερών: ήλωσης της σταθεράς π=3, Η δήλωση γίνεται ως εξής: Const π = ήλωση της σταθεράς 2*π, που αποτελεί παράσταση αριθµών µε όνοµα π2( και όχι 2π διότι οι σταθερές δεν επιτρέπεται να αρχίζουν από ψηφίο) : Const π2 = 2 * π Το πλήθος των µη εργάσιµων ηµερών µιας εβδοµάδας µπορεί να συµβολιστεί σαν NumOfNonWorkDays. Η δήλωση γίνεται ως εξής: Const NumOfNonWorkDays = 2 ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 45

46 Μια καταληκτική ηµεροµηνία, π.χ. η 31 η εκεµβρίου 2020 µπορεί να ονοµαστεί ως EndDate και να δηλωθεί ως εξής: Const EndDate = #12/31/2020# Παραδείγµατα Παράδειγµα 3.1 (Αριθµητικές σταθερές). Να γραφεί πρόγραµµα όπου να δηλώνονται οι παρακάτω αριθµητικές σταθερές (arithmetic constants) και να παρατηρηθεί η αλλαγή γραφής από τη Visual Basic. Επίσης, µε χρήση της εντολής εξόδου MsgBox να εµφανιστούν τα αποτελέσµατα. Αριθµός Αλλαγή γραφής από Visual Basic # 4.0 4# Λύση Πρόγρα- µµα Αποτελέσµατα ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 46

47 Παράδειγµα 3.2 (Αριθµητικές σταθερές µε επιστηµονικό συµβολισµό). Να γραφεί πρόγραµµα όπου να δηλώνονται οι παρακάτω αριθµητικές σταθερές (arithmetic constants) µε επιστηµονικό συµβολισµό όπου για να δηλώσουµε τη δύναµη του 10 χρησιµοποιούµε το λατινικό γράµµα Ε. Επίσης, µε χρήση της εντολής εξόδου MsgBox να εµφανιστούν τα αποτελέσµατα. Αριθµός ήλωση σε Visual Basic ή 2,032x Ε+12 0,0006 ή 6x10-4 6E-4 10 x ή 1x E11 10 x ή 1x10-9 1E-9 Λύση Πληκτρολογούµε το παρακάτω πρόγραµµα αλλά όχι τα σχόλια (µετά το ) τα οποία είναι για να µας υπενθυµίσουν το τι πρέπει να πληκτρολογήσουµε. Εκτελούµε (τρέχουµε) το πρόγραµµα π.χ. πατώντας το πλήκτρο F5 και παρατηρούµε τον τρόπο εµφάνισης των αποτελεσµάτων. Παρατήρηση: Το αποτέλεσµα που εµφανίζεται στην οθόνη για τις σταθερές ω3 και ω6 στις οποίες δεν δώσαµε τιµή είναι 0. Πρόγρα- µµα Αποτελέσµατα Παράδειγµα 3.3 (Λανθασµένες δηλώσεις σταθερών και εναλλακτικοί τρόποι δήλωσης). Το παρακάτω πρόγραµµα περιλαµβάνει ορισµένες λανθασµένες δηλώσεις σταθερών και εναλλακτικές δηλώσεις αυτών. Οι σταθερές, η γραφή σε Visual Basic, τα λάθη και ο σωστός ή ένας εναλλακτικός τρόπος γραφής περιέχονται στον ακόλουθο Πίνακα. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 47

48 Γραφή σε Visual Σωστός ή εναλλακτικός Αριθµός Λάθος Basic τρόπος δήλωσης 205,65 205,65 Κόµµα αντί για τελεία ,67x10 0,5 5.67E0.5 Εκθέτης µη ακέραιος. Λάθος επίσης και το: 5.67*Sqr(10) 5.67*10^ Ε3 Βάση όχι το 10 2^ Ε13 Αντιστοιχεί σε 10* Ε13 ή 10^13 422x E εν υπάρχει εκθέτης e 7 1E7 2 π 2*π Βάση όχι το 10. Λάθος επίσης και το: Exp(7) Το π δεν αναγνωρίζεται από τη Visual Basic αλλά θα πρέπει πρώτα να δηλωθεί σαν σταθερά. Λύση Const E= Const E7=E^7 Const π= Const π2=2*π (όχι 2π γιατί το όνοµα σταθεράς δεν πρέπει να αρχίζει από αριθµό αλλά µόνο από γράµµα) Πληκτρολογούµε το παρακάτω πρόγραµµα που περιέχει λάθη. Ο σωστός ή ο εναλλακτικός τρόπος δήλωσης των σταθερών περιγράφεται στα σχόλια που υπάρχουν δίπλα σε κάθε δήλωση τα οποία να µην τα πληκτρολογήσετε. Πρόγραµµα µε λάθη και οι απαραίτητες διορθώσεις µε βάση τα σχόλια Sub Main() Const Λ1 = 205,65 Πληκτρολογούµε Const Λ2 = 5.67E0.5 Πληκτρολογούµε 5.67 * 10 ^ 0.5 Const Λ3 = 2Ε3 Πληκτρολογούµε 2 ^ 3 Const Λ4 = 10Ε13 Πληκτρολογούµε 1E13 Const Λ5 = 422Ε Πληκτρολογούµε 422E7 Const E7 = E ^ 7 ιόρθωση : Const E = και και Const E7 = E ^ 7 Const π2 = 2 * π ιόρθωση : Const π = και και Const π2 = 2 * π MsgBox Str(Λ1) + "," + Str(Λ2) + "," + Str(Λ3) + "," + Str(Λ4) + "," + Str(Λ5) + "," + Str(E) + "," + Str(E7) + "," + Str(π) + "," + Str(π2) End Sub ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 48

49 Αποτελέσµατα Παράδειγµα 3.4 (Λογικές σταθερές, αλφαριθµητικές σταθερές και ηµεροµηνίες). Να γραφεί πρόγραµµα όπου να δηλώνονται οι παρακάτω λογικές σταθερές(boolean constants), αλφαριθµητικές σταθερές (string contants) και σταθερές ηµεροµηνίας (dates). Επίσης, µε χρήση της εντολής εξόδου MsgBox να εµφανιστούν τα αποτελέσµατα από ένα σε κάθε γραµµή χρησιµοποιώντας τους χαρακτήρες & vbcrlf &. Παρατηρήστε ότι η ηµεροµηνία 2/29/2007 δεν θα γίνει αποδεκτή (αφού δεν υφίσταται) οπότε αλλάξτε την σε 2/28/2007. Λογικές σταθερές Αλφαριθµητικές σταθερές Ηµεροµηνίες True False ώστε την τιµή της αντίστασης R1 R1= A#*/().,!&^$ 157,35 #11/17/2010# #5/21/2000# #4/4/2005# #2/29/2007# Λύση Στο πρόγραµµα θα χρησιµοποιήσουµε 3 εντολές MsgBox, µία για κάθε ένα από τους τύπους σταθερών του παραπάνω Πίνακα. Εκτελώντας το πρόγραµµα (πλήκτρο F5) και πατώντας διαδοχικά το ΟΚ στο µήνυµα που εµφανίζεται, παίρνουµε τα αποτελέσµατα που φαίνονται στον παρακάτω Πίνακα. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 49

50 Πρόγραµµα Αποτελέσµατα Θα µπορούσαµε να χρησιµοποιήσουµε µία µόνο εντολή MsgBox για την εµφάνιση όλων των αποτελεσµάτων χρησιµοποιώντας τον χαρακτήρα κάτω παύλα (underscore) _ και συνέχιση της γραφής σε άλλη γραµµή. Το πρόγραµµα και το αποτέλεσµα της εκτέλεσης φαίνεται στον παρακάτω Πίνακα. Πρόγραµµα Αποτελέσµατα ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 50

51 Παράδειγµα 3.5 (Υπολογισµός ισοδύναµης αντίστασης δύο παράλληλων αντιστάσεων). Να γραφεί πρόγραµµα υπολογισµού της ισοδύναµης αντίστασης Rισ δύο παράλληλων αντιστάσεων R1 και R2. Η ισοδύναµη αντίσταση ν παράλληλων αντιστάσεων δίνεται από τα η σχέση : 1 R ισ = 1 R + 1 R R ν Οπότε για δύο αντιστάσεις µπορούµε να χρησιµοποιήσουµε την ακόλουθη παράσταση για εκχώρηση της τιµής της ισοδύναµης αντίστασης µε βάση την τιµή των R1, R2: R12 = 1 / ( (1 / R1) + (1 / R2) ) Επίσης, στα αποτελέσµατα να εµφανίζεται η τιµή των R1, R2 και Rισ η µία κάτω από την άλλη µε κατάλληλη διαµόρφωση της συνάρτησης MsgBox. Λύση Πρόγραµµα Sub Main() R1 = InputBox("R1=") R2 = InputBox("R2=") R12 = 1 / ((1 / R1) + (1 / R2)) MsgBox "R1 =" + Str(R1) & vbcrlf & "R2 =" + Str(R2) & vbcrlf & "R12 =" + Str(R12) End Sub Ενδεικτικά Αποτελέσµατα R1 = 2, R2 =2 R1 = 6, R2 = 4 ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 51

52 Ερωτήσεις και ασκήσεις ανακεφαλαίωσης 1. Τι εκφράζουν οι σταθερές, οι µεταβλητές και οι παραστάσεις ; 2. Ποια τα είδη των σταθερών ; Να δώσετε ένα παράδειγµα δήλωσης σταθεράς για κάθε είδος. 3. Τι κανόνες ακολουθεί το όνοµα µιας σταθεράς ; 4. Να σηµειώσετε ποιες από τις παρακάτω δηλώσεις σταθερών ή σετ εντολών είναι σωστά ή λάθος. Σε περίπτωση που είναι λάθος, να δικαιολογήσετε την απάντησή σας και να δώσετε µία σωστή εκδοχή. α/α Εντολή/ές Σωστό/Λάθος α/α Εντολή/ές Σωστό/Λάθος 1 Const C1_1_1= Const A-B+C = ABC 2 Const Ηµέρα = #3/25/2020# 7 Const π = 1,15 π = π Const Πέντε = 5 MsgBox Str(Πέντε + 6) 8 Const p = 3.14 p2 = 2 * p 4 Const 1c = 3 9 Const b_ = Αληθές 5 Const _A = B 10 Const c1 = 10 c1 = 15 ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 52

53 Μάθηµα 4. ΜΕΤΑΒΛΗΤΕΣ, ΑΡΙΘΜΗΤΙΚΕΣ ΠΡΑΞΕΙΣ - ΠΑΡΑΣΤΑΣΕΙΣ Η τιµή των µεταβλητών (variables) µεταβάλλεται κατά τη διάρκεια εκτέλεσης ενός προγράµµατος. Η τιµή κάθε µεταβλητής καταχωρείται σε τµήµα της µνήµης του ΗΥ το οποίο δεσµεύεται για το σκοπό αυτό. Τα ονόµατα των µεταβλητών όπως και αυτά των σταθερών πρέπει να ακολουθούν κάποιους κανόνες, οι οποίοι συνοψίζονται στη συνέχεια: Ως όνοµα των µεταβλητών (ή των σταθερών) δε µπορεί να χρησιµοποιηθεί κάποια λέξη που χρησιµοποιείται από τη Visual Basic για κάποιο σκοπό π.χ. ως εντολή κλπ. Για παράδειγµα δε µπορούν να χρησιµοποιηθούν οι λέξεις True, Const, If, Loop, Case κλπ. Τα ονόµατα πρέπει να αρχίζουν πάντα µε γράµµα και να αποτελούνται από γράµµατα (ελληνικά ή αγγλικά, µικρά ή κεφαλαία), αριθµούς και από σύµβολα µόνο ο χαρακτήρας (_). εν επιτρέπονται άλλα σύµβολα ή κενά µέσα σε ένα όνοµα. Μέγιστο πλήθος χαρακτήρων για τα ονόµατα είναι 255 χαρακτήρες. Συνηθίζεται όµως και είναι προτιµότερο να χρησιµοποιούνται πολύ λιγότεροι χαρακτήρες. Όπως και στις σταθερές, τα ονόµατα που δίνουµε προσδιορίζουν κατά κάποιο τρόπο τη λειτουργία των µεταβλητών ή των σταθερών µέσα στο πρόγραµµα. Στη συνέχεια ακολουθούν παραδείγµατα µεταβλητών: Μέγεθος Σύνθετη αντίσταση Αντίσταση Αγωγιµότητα Ρεύµα Τάση Ισχύς Ενεργός Ισχύς Άεργος Ισχύς Άθροισµα Σύνολο Μέγιστο Μετρητής Όνοµα µεταβλητής ή σταθεράς Impedance Resistance Conductance Current Voltage Power Active_Power ή ActivePower ή ActPower Reactive_Power ή ReactivePower ή ReactPower Sum Total Max Counter Στη συνέχεια δίνονται παραδείγµατα ονοµάτων µεταβλητών ή σταθερών που είτε δεν είναι επιτυχηµένες είτε δεν είναι αποδεκτές από τη Visual Basic (σηµειώνονται µε υπογράµµιση). ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 53

54 Μέγεθος Όνοµα µεταβλητής σταθεράς ή Επεξήγηση Μέρα Day Ταυτίζεται µε λέξη που χρησιµοποιεί η γλώσσα Visual Basic Ρεύµα Ι εν είναι σίγουρο ότι ο χρήστης θα αντιλαµβάνεται το συµβολισµό αυτό µετά από κάποιο διάστηµα ή κάποιος άλλος χρήστης που θα εξετάσει το πρόγραµµα Ισχύς Energy Energy=Ενέργεια. Μη επιτυχηµένο όνοµα. Από From Η λέξη From χρησιµοποιείται ήδη από τη Visual Basic για άλλο σκοπό. Μετρητής ενέργειας Energy Counter Περιέχει κενό. Μόνο το σύµβολο (_) είναι αποδεκτό. Τύποι µεταβλητών Όπως και µε τις σταθερές, οι µεταβλητές κατατάσσονται σε αριθµητικές, λογικές, αλφαριθµητικές και ηµεροµηνίες. Οι αριθµητικές µπορεί να είναι είτε ακέραιες είτε δεκαδικές. Το µέγεθος της µνήµης του ΗΥ που δεσµεύεται για την καταχώρηση της τιµής µιας µεταβλητής εξαρτάται από τον τύπο της µεταβλητής. Για τις αριθµητικές µεταβλητές εξαρτάται από το εύρος τιµών που µπορεί να πάρει και την ακρίβεια παράστασης αυτών. Γενικά, ο τρόπος αποθήκευσης και παράστασης (πλήθος bytes και ακολουθία bits) των µεταβλητών στη µνήµη εξαρτάται από τον τύπο της µεταβλητής µε τον οποίο δηλώθηκε στο πρόγραµµα. Ο επόµενος Πίνακας περιλαµβάνει όλους τους τύπους µεταβλητών για τη γλώσσα Visual Basic: Τύπος µεταβλητής και Μνήµη Εύρος τιµών τιµών δεδοµένων (bytes) Integer 2 Ακέραιοι µε εύρος τιµών: έως Long 4 Ακέραιοι µε εύρος τιµών: έως (µεγάλος ακέραιος) Byte 1 Ακέραιοι µε εύρος τιµών: 0 έως 255 (µικρός ακέραιος) Single (απλής ακρίβειας) 4 Το 0 και οι πραγµατικοί αριθµοί µε απόλυτη τιµή από 1,401298x10-34 έως 3,402823x10 38 Double (διπλής ακρίβειας) 8 Το 0 και οι πραγµατικοί αριθµοί µε απόλυτη τιµή από 4, x έως 1, x Boolean 2 ύο τιµές (True, False) String (µεταβλητού µεγέθους) 10 + Πλήθος χαρακτήρων Εύρος τιµών: από 0 έως χαρακτήρες περίπου String * (σταθερού µεγέθους) Πλήθος χαρακτήρων Εύρος τιµών: από 1 έως χαρακτήρες περίπου ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 54

55 Date 8 Εύρος τιµών: από 1 η Ιανουαρίου 100 έως 31 η εκεµβρίου 9999 Currency 8 Από ,5808 έως 922. (νόµισµα) ,5807 Variant (µε αριθµούς) 16 Κάθε αριθµητική τιµή που µπορεί να δεχτεί ο τύπος double Variant (µε χαρακτήρες) 22 + Πλήθος χαρακτήρων Κάθε συµβολοσειρά που µπορεί να δεχτεί ο τύπος String µεταβλητού µεγέθους Η επιλογή τύπου µεταβλητής και δεδοµένων είναι πολύ σηµαντική στην προσπάθεια επίτευξης µεγαλύτερης ταχύτητας στην εκτέλεση του προγράµµατος και ορθολογικότερης διαχείρισης της µνήµης του ΗΥ. Αν µια µεταβλητή µπορεί να δεχτεί δεδοµένα από περισσότερους του ενός τύπους, τότε πρέπει να γίνεται προσπάθεια να χρησιµοποιούνται τύποι που δεσµεύουν λιγότερα bytes µνήµης ακολουθώντας την αντιστοιχία τύπου µεταβλητής-δεδοµένων και µνήµης (bytes) από τον παραπάνω Πίνακα. Έτσι γίνεται τόσο εξοικονόµηση µνήµης όσο και επίτευξη µεγαλύτερης ταχύτητας εκτέλεσης του προγράµµατος. ήλωση µεταβλητών στη Visual Basic Η δήλωση του ονόµατος και του τύπου µιας µεταβλητής, όπως και µε τις σταθερές, είναι απαραίτητη στη Visual Basic. Η δήλωση γίνεται µε την εντολή Dim και είναι της µορφής: Dim όνοµα_µεταβλητής As τύπος όπου όνοµα_µεταβλητής είναι το όνοµα της µεταβλητής σύµφωνα µε τους κανόνες που αναλύσαµε πιο πάνω και τύπος ένας από τους τύπους που αναφέραµε στον προηγούµενο Πίνακα. Στη συνέχεια δίνονται παραδείγµατα δήλωσης τύπου µεταβλητών: ήλωση µεταβλητής µε όνοµα Counter που πρόκειται να πάρει τιµές µέσα στο εύρος 5 έως Από τον παραπάνω Πίνακα προκύπτει ότι ο πιο κατάλληλος τύπος δεδοµένων είναι ο Integer και η δήλωση γίνεται ως εξής: Dim Counter As Integer ήλωση µεταβλητής µε όνοµα Average που πρόκειται να πάρει τιµές µέσα στο εύρος έως Από τον παραπάνω Πίνακα προκύπτει ότι ο πιο κατάλληλος τύπος δεδοµένων που ικανοποιεί αυτό το εύρος τιµών είναι ο Long και η δήλωση γίνεται ως εξής: Dim Average As Long ήλωση µεταβλητής µε όνοµα Total που πρόκειται να πάρει τιµές µέσα στο εύρος 0 έως Σύµφωνα µε τον Πίνακα, οι τύποι που ικανοποιούν το εύρος τιµών είναι οι Single ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 55

56 και Double. Προτιµάται όµως ο τύπος Double που έχει ακρίβεια περισσότερων δεκαδικών ψηφίων. Η δήλωση έχει ως εξής: Dim Total As Double ήλωση µεταβλητών που αναπαριστούν τιµές µετρήσεων ηλεκτρικών µεγεθών (π.χ. Current, Voltage κλπ) που έχουν ακρίβεια της τάξης του 3% (0.03). Καταλληλότερος τύπος που εµπίπτει σε αυτή την ακρίβεια και δεσµεύει λιγότερη µνήµη είναι ο τύπος Single. Η δήλωση έχει ως εξής: Dim Current As Single Dim Voltage As Single Όταν θέλουµε να δηλώσουµε δύο µεταβλητές (ή περισσότερες) π.χ. Α και Β που είναι του ίδιου τύπου π.χ. Single τότε ακολουθούµε τη σύνταξη : Η παρακάτω δήλωση: Dim Α As Single, Β As Single Dim Α, Β As Single σηµαίνει ότι η µεταβλητή Α είναι τύπου Variant και η µεταβλητή Β τύπου Single. ήλωση µεταβλητής που αντιστοιχεί στο όνοµα πελάτη (Customer Name) µε µέγεθος το πολύ 25 χαρακτήρες και δήλωση µεταβλητής που αντιστοιχεί στην εισαγωγή σχολίων από τον πελάτη (Customer Comments) µε άγνωστο αριθµό χαρακτήρων. Η δήλωση σε αυτές τις περιπτώσεις έχει ως εξής: Dim CustomerName As String * 25 Dim CustomerComments As String ήλωση µεταβλητής που δε γνωρίζουµε αν πρόκειται για αριθµό ή συµβολοσειρά (π.χ. κωδικός προϊόντων, barcodes κλπ). Στην περίπτωση αυτή που είναι άγνωστος ο τύπος δεδοµένων που πρόκειται να δεχθεί η µεταβλητή, χρησιµοποιείται ο τύπος Variant (παραλλαγή) ο οποίος µπορεί να δέχεται διαφορετικού τύπου δεδοµένα χωρίς την ανάγκη µετατροπής τους. Να σηµειωθεί επίσης ότι αν για µια µεταβλητή δεν δηλώσουµε τον τύπο της, η µεταβλητή θεωρείται από τη Visual Basic ως τύπου Variant. Παραδείγµατα δήλωσης µεταβλητών τύπου Variant: Dim Code As Variant Dim Barcode ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 56

57 4.1. Αριθµητικές πράξεις και παραστάσεις Στη Visual Basic µπορούµε να κάνουµε πράξεις µεταξύ σταθερών και µεταβλητών ενός συγκεκριµένου τύπου π.χ. πράξεις µεταξύ αριθµητικών µεταβλητών και σταθερών ή πράξεις µεταξύ αλφαριθµητικών σταθερών και µεταβλητών αλλά και πράξεις µεταξύ σταθερών και µεταβλητών διαφορετικών τύπων, π.χ. πράξεις µεταξύ αριθµητικών µεταβλητών ή σταθερών και ηµεροµηνιών. Έτσι, µπορούµε να σχηµατίσουµε παραστάσεις µε µεταβλητές, σταθερές και πράξεις. Η Visual Basic µπορεί να εκτελέσει και τις τέσσερις βασικές πράξεις, δηλαδή πρόσθεση, αφαίρεση, πολλαπλασιασµό και διαίρεση. Επίσης, µπορεί να εκτελέσει ύψωση σε δύναµη, ακέραια διαίρεση ( \ )και την πράξη υπόλοιπο (modulo). Η ακέραια διαίρεση είναι η διαίρεση µεταξύ σταθερών και µεταβλητών ακεραίου τύπου (integers). Το αποτέλεσµα είναι το ακέραιο τµήµα του πηλίκου που προκύπτει. Η πράξη modulo είναι συµπληρωµατική της ακέραιας διαίρεσης καθώς δίνει το υπόλοιπο της διαίρεσης. Στον επόµενο Πίνακα δίνονται τα σύµβολα για κάθε πράξη στη visual Basic: Σύµβολο Πράξη + Πρόσθεση - Αφαίρεση * Πολλαπλασιασµός / ιαίρεση \ Ακέραια διαίρεση mod Modulo (υπόλοιπο) ^ Ύψωση σε δύναµη Οι πράξεις που παρουσιάζονται σε µια έκφραση, εκτελούνται σύµφωνα µε την επόµενη ιεραρχία: 1. Υψώσεις σε δύναµη ( ^ ) 2. Κανονικές διαιρέσεις ( / ) και µετά πολλαπλασιασµοί ( *) 3. Ακέραιες διαιρέσεις ( \ ) και µετά υπόλοιπα διαίρεσης ( mod ) 4. Προσθέσεις και αφαιρέσεις ( +, - ) 5. Λογικοί τελεστές (=,, >,, <, ) Η παραπάνω σειρά µπορεί να µεταβληθεί µε τη χρήση παρενθέσεων. Επειδή είναι δύσκολη η αποµνηµόνευση της ιεραρχίας των πράξεων, είναι προτιµότερο να τοποθετούνται παρενθέσεις (όχι όµως αγκύλες, άγκιστρα κλπ) κατάλληλα ώστε να αποσαφηνίζεται η σειρά µε την οποία θα εκτελεστούν οι πράξεις. Παραδείγµατα Έστω ότι η τιµή µιας µεταβλητής Χ ισούται µε 8 και η τιµή µιας µεταβλητής Υ ισούται µε 6, δηλαδή Χ=8 και Υ=6. Τότε: ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 57

58 Πράξη Αποτέλεσµα πράξης (Σχόλια) Χ / Υ (κανονική διαίρεση) Χ mod Υ 2 (Υπόλοιπο διαίρεσης) Χ \ Υ 1 (ακέραια διαίρεση) Όταν ο αριθµητής είναι µικρότερος του παρονοµαστή ή όταν κάποιος από τους δύο είναι αρνητικός αριθµός ή µη ακέραιος, τότε τα αποτελέσµατα της ακέραιας διαίρεσης ( \ ) και του υπολοίπου διαίρεσης (mod) φαίνονται στα παρακάτω παραδείγµατα: 3 \ 10 = 0 3 mod 10 = 3-3 \ 10 = 0-3 mod 10 = -3-3 \ -10 = 0-3 mod -10 = -3 3,3 \ 10 = 0 3,3 mod 10 = 3-3,3 \ 10 = 0-3,3 mod 10 = -3-3,3 \ -10 = 0-3,3 mod -10 = -3 3 \ 10,3 = 0 3 mod 10,3 = 3-3 \ 10,3 = 0-3 mod 10,3 = -3-3 \ -10,3 = 0-3 mod -10,3 = -3 3,3 \ 10,3 = 0 3,3 mod 10,3 = 3-3,3 \ 10,3 = 0-3,3 mod 10,3 = -3-3,3 \ -10,3 = 0-3,3 mod -10,3 = \ 10,3 = 1 12 mod 10,3 = 2-12 \ 10,3 = mod 10,3 = \ -10,3 = 1-12 mod -10,3 = -2 12,3 \ 10,3 = 1 12,3 mod 10,3 = 2-12,3 \ 10,3 = -1-12,3 mod 10,3 = -2-12,3 \ -10,3 = 1-12,3 mod -10,3 = -2 Ο επόµενος Πίνακας δίνει αλγεβρικές παραστάσεις µε τον συνηθισµένο τρόπο γραφής και την αντίστοιχη γραφή τους στη Visual Basic: Παράσταση Γραφή στη Visual Basic 2πr 2 2 * * r ^ 2 5x 3 +6x * x ^ * x ^ ( a + A) h (A1 + A2) * h / u 1 / 3 * m * u ^ 2 µ 3 y y ^ y 1 ( y + 1) ((γ+δ) ν ) µ qq k 2 r β + 3 β 2 4αγ 2α y ^ (2 / 3) (y + 1) ^ (-3 / 2) (c + d) ^ n ^ m k * Q1 * Q2 / r ^ 2 (-b + (b ^ 2 4 * a * c) ^ 0.5) / (2 * a) ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 58

59 Ο επόµενος Πίνακας περιλαµβάνει παραδείγµατα παραστάσεων µε λανθασµένη γραφή στη Visual Basic: Παράσταση Λανθασµένη γραφή στη Visual Basic Σχόλια x y x.y Λάθος σύµβολο πολλαπλασιασµού (x+y)(x-y) (X+Y) (X-Y) Λείπει το σύµβολο πολλαπλασιασµού 3 2 x x ^ (2 / 3) Αν x < 0 θα προκύψει µιγαδικός Σωστή µορφή: (x ^ 2) ^ (1 / 3) x + µ (X+M) / (3*(C*(D-Z)^2 + (A-W)^2) Λείπει µια παρένθεση 2 2 3[ γ ( δ z) + ( α ω) ] γ{y 3 [x 3 (1+ε) 2 ]} C * {Y^3*[X^3 (1+E)^2]} Χρήση αγκυλών και αγκίστρων 5 µ (5/6*π*Μ)^0.5 Λάθος παράσταση στη Visual Basic (αντιστοιχεί σε άλλη 6π παράσταση) Παραδείγµατα Παράδειγµα 4.1 ( ηλώσεις µεταβλητών και πράξεις µε αριθµητικές παραστάσεις). Να γραφεί πρόγραµµα υπολογισµού των παρακάτω παραστάσεων που περιλαµβάνουν τέσσερις διαφορετικές µεταβλητές a, b, c, d. Να δηλωθεί ο τύπος κάθε µεταβλητής µε βάση τα ακόλουθα: Η µεταβλητή a πρόκειται να πάρει τιµές µέσα στο εύρος 5 έως Η µεταβλητή b πρόκειται να πάρει τιµές µέσα στο εύρος έως Η µεταβλητή c πρόκειται να πάρει τιµές µέσα στο εύρος 0 έως Η µεταβλητή d πρόκειται να πάρει τιµές µε ακρίβεια δύο δεκαδικών ψηφίων (π.χ. 0.03). Επίσης, να γίνουν τα εξής: Α. Να µη δηλωθεί ο τύπος των µεταβλητών a1 έως a6. Β. Να δηλωθεί ο τύπος των µεταβλητών a1 και a5 ως Single και να παρατηρηθούν οι διαφορές. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 59

60 Αριθµητική παράσταση 2πa 2 Γραφή σε Visual Basic και εκχώρηση σε µεταβλητή a1 = 2* * a^2 5a 3 +6a 2 +1 a2 = 5 * a ^3 + 6*a^2 + 1 ( a + b) c 3 a3 = (a + b) * c / 3 1 a 2 a4 = 1 / 3 * a * b ^ 2 3 a 5 a b 3 2 ((a+b) c ) d a5 = a ^ 5 / (a^2) ^(1/3) Λάθος: a5 = a ^ 5 / a^ (2 / 3) αν a < 0 a6 = (a+b)^c^d Λύση Παρατηρώντας τον Πίνακα µε τους τύπους των µεταβλητών προκύπτει ότι ο καταλληλότερος τύπος για κάθε µία από τις τέσσερις µεταβλητές είναι: Μεταβλητή Τύπος a Integer b Long c Double d Single Πρόγραµµα A. Sub Main() Dim a As Integer Dim b As Long Dim c As Double Dim d As Single a = InputBox("a=") b = InputBox("b=") c = InputBox("c=") d = InputBox("d=") a1 = 2 * * a ^ 2 a2 = 5 * a ^ * a ^ a3 = (a + b) * c / 3 a4 = 1 / 3 * a * b ^ 2 a5 = a ^ 5 / (a ^ 2) ^ (1 / 3) Λάθος: a5 = a ^ 5 / a ^ ( 2 / 3) αν a<0 a6 = (a + b) ^ c ^ d MsgBox "a1 =" + Str(a1) + ", a2 =" + Str(a2) + ", a3 =" + Str(a3) + _ ", a4 =" + Str(a4) + ", a5 =" + Str(a5) + ", a6 =" + Str(a6) End Sub ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 60

61 B. A. Sub Main() Dim a As Integer Dim b As Long Dim c As Double Dim d As Single Dim a1 As Single Dim a5 As Single a = InputBox("a=") b = InputBox("b=") c = InputBox("c=") d = InputBox("d=") a1 = 2 * * a ^ 2 a2 = 5 * a ^ * a ^ a3 = (a + b) * c / 3 a4 = 1 / 3 * a * b ^ 2 a5 = a ^ 5 / (a ^ 2) ^ (1 / 3) Λάθος: a5 = a ^ 5 / a ^ ( 2 / 3) αν a<0 a6 = (a + b) ^ c ^ d MsgBox "a1 =" + Str(a1) + ", a2 =" + Str(a2) + ", a3 =" + _ Str(a3) + ", a4 =" + Str(a4) + ", a5 =" + Str(a5) + ", a6 =" + Str(a6) End Sub Ενδεικτικά αποτελέσµατα του προγράµµατος για a = -3, b = 4, c = 2, d = 2 B. Παράδειγµα 4.2 (Αριθµητικές παραστάσεις) Να γραφεί πρόγραµµα υπολογισµού σε γλώσσα Visual Basic των παρακάτω παραστάσεων που περιλαµβάνουν τέσσερις διαφορετικές µεταβλητές a, b, c, d. Να δηλωθεί ο τύπος κάθε µεταβλητής ίδιος µε τον τύπο µεταβλητής που είχε δηλωθεί στην προηγούµενη άσκηση. Επίσης: Α. Να µη δηλωθεί ο τύπος των µεταβλητών a7 έως a11. Β. Να δηλωθεί ο τύπος των µεταβλητών a8 και a9 ως Single και να παρατηρηθούν οι διαφορές. Μεταβλητή a7 a8 a9 a10 a11 Αριθµητική παράσταση 0,9 a 4-7 a b 1 a c + b + b a + b 5 4 b d (a + 1) 1 1 2a + b d 2 4ac ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 61

62 A. Πρόγραµµα Α. και Β. Sub Main() Dim a As Integer Dim b As Long Dim c As Double Dim d As Single Για το Β: Dim a8 As Single Για το Β: Dim a9 As Single a = InputBox("a=") b = InputBox("b=") c = InputBox("c=") d = InputBox("d=") a7 = 0.9 * a ^ 4-7 a8 = a * b / (a + b) a9 = (a + 1) ^ 4 ^ (-1 / 5) Λάθος: a9 = (a + 1) ^ (-4 / 5) αν a < 0 Εναλλακτικά: a9 = 1 / ((a + 1) ^ 4 ^ (1 / 5)) a10 = (a / b + c / d) / ((1 / b) + (1 / d)) a11 = (-b + (b ^ 2-4 * a * c) ^ 0.5) / (2 * a) MsgBox "a7 =" + Str(a7) + ", a8 =" + Str(a8) + ", a9 =" + _ Str(a9) + ", a10 =" + Str(a10) + ", a11 =" + Str(a11) End Sub Ενδεικτικά αποτελέσµατα του προγράµµατος για a = -3, b = 4, c = 2, d = 2 B Ερωτήσεις και ασκήσεις ανακεφαλαίωσης 1. Τι εκφράζει µια µεταβλητή ; 2. Τι κανόνες ακολουθεί το όνοµα µιας µεταβλητής (ή µιας σταθεράς) ; 3. Ποια η προτεραιότητα των αριθµητικών πράξεων και ποιος ο ρόλος των παρενθέσεων; 4. Να υπολογίσετε το αποτέλεσµα των ακόλουθων παραστάσεων : Α = 45 / 3 * 2 \ 4 Mod 4 Β = 15 * 3 / 5 \ 2 Mod 3 5. Να αναφέρετε ονοµαστικά τις µεταβλητές για τα Παραδείγµατα 4.1 και 4.2. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 62

63 Μάθηµα 5. ΠΡΑΞΕΙΣ ΚΑΙ ΠΑΡΑΣΤΑΣΕΙΣ ΣΥΜΒΟΛΟΣΕΙΡΩΝ ΚΑΙ ΗΜΕΡΟΜΗΝΙΩΝ Η µόνη πράξη µεταξύ αλφαριθµητικών σταθερών και µεταβλητών είναι η συνένωση (concatenation) όπου προκύπτει µια τιµή που αποτελείται από τους χαρακτήρες (σύµβολα) του ενός και του άλλου όρου. Η συνένωση γίνεται µε τη χρήση του συµβόλου & ή του + αφήνοντας ένα κενό πριν και µετά το σύµβολο. Παραδείγµατα Ο επόµενος Πίνακας περιλαµβάνει παραδείγµατα συνένωσης συµβολοσειρών: Συνένωση ΚΑΛΗ & ΝΥΧΤΑ Αποτέλεσµα ΚΑΛΗΝΥΧΤΑ & KENO KENO Μπορούµε επίσης να συνδυάσουµε µια σταθερή συµβολοσειρά π.χ. ΚΑΤΑ µε µια µεταβλητή συµβολοσειρά π.χ. Noun και να σχηµατίσουµε παράγωγα όπως φαίνεται στον ακόλουθο Πίνακα: Τιµή της µεταβλητής Noun Παράσταση στη Visual Basic Αποτέλεσµα ΛΗΨΗ ΚΑΤΑ & Noun ΚΑΤΑΛΗΨΗ ΠΟΣΗ ΚΑΤΑ & Noun ΚΑΤΑΠΟΣΗ ΘΕΣΗ ΚΑΤΑ & Noun ΚΑΤΑΘΕΣΗ 5.1. Πράξεις µεταξύ ηµεροµηνιών Τις ηµεροµηνίες µπορούµε να τις διαχειριστούµε σαν αριθµούς. Αφαιρώντας δύο ηµεροµηνίες θα πάρουµε ως αποτέλεσµα ένα αριθµό που αντιστοιχεί στις µέρες που µεσολαβούν µεταξύ τους. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 63

64 Προσθέτοντας ένα αριθµό σε µια ηµεροµηνία, το αποτέλεσµα θα είναι µια ηµεροµηνία τόσες µέρες µετά όσος είναι και ο αριθµός που προσθέσαµε. Η γλώσσα Visual Basic έχει εσωτερικά όλες τις ιδιοµορφίες του ηµερολογίου (τους µήνες µε 30 ή 31 µέρες, τα δίσεκτα έτη κλπ). Αν σε µια µεταβλητή που δηλώσαµε ως ηµεροµηνία δώσουµε αριθµητική τιµή, τότε το ακέραιο µέρος της αριθµητικής τιµής µετατρέπεται σε µέρα και το δεκαδικό µέρος σε ώρα. Η τιµή 0 αντιστοιχεί στην ηµεροµηνία 12/30/1899, εποµένως οι θετικές τιµές είναι µεταγενέστερες ηµεροµηνίες και ο αρνητικές τιµές προγενέστερες ηµεροµηνίες. Τα µεσάνυχτα έχουν δεκαδικό µέρος 0 (π.χ. 0.0) και το µεσηµέρι 5 (π.χ. 0.5) Τεκµηρίωση προγράµµατος-σχόλια Όταν εξετάζουµε τον κώδικα ενός προγράµµατος που είχαµε γράψει πριν από πολύ καιρό, σίγουρα θα δυσκολευτούµε να καταλάβουµε τι ακριβώς κάνει ή τι συµβολίζουν οι διάφορες µεταβλητές, παραστάσεις κλπ. Όσο πιο σύνθετα είναι τα προγράµµατα αυτά και όσο πιο πολύπλοκες διαδικασίες ή προγραµµατιστικά τεχνάσµατα περιέχουν, τόσο πιο δύσκολα θα µπορέσουµε να καταλάβουµε το πώς λειτουργεί. Για να αντιµετωπιστεί µια τέτοια κατάσταση, υπάρχει η λειτουργία της εσωτερικής τεκµηρίωσης του προγράµµατος µε την οποία γράφουµε σχόλια σε καίρια σηµεία του προγράµµατος ώστε να είµαστε µπορέσουµε να καταλάβουµε τι κάνει µετά από αρκετό καιρό που θα το επανεξετάσουµε. Έτσι, γράφουµε σχόλια για το ρόλο κάθε υπορουτίνας, τα βήµατα των αλγορίθµων που χρησιµοποιούνται, τα τεχνάσµατα που εφαρµόζονται κλπ. Στη Visual Basic, τα σχόλια δηλώνονται µε το χαρακτήρα ( ). Τα σχόλια αυτά παρακάµπτονται από τη Visual Basic κατά τη διάρκεια µετάφρασης του προγράµµατος. Επίσης, τα σχόλια δε µπορούν να τοποθετηθούν µαζί µε µία εντολή που συνεχίζεται σε περισσότερες από µία γραµµές ούτε και να γραφούν ενδιάµεσα σε εντολές που υπάρχουν σε µια γραµµή. Συνήθως, τοποθετούνται ή στο τέλος µιας γραµµής µετά από τις εντολές ή σε µία γραµµή που δεν περιέχει άλλες εντολές Παραδείγµατα Παράδειγµα (Πράξεις µε συµβολοσειρές) Να γραφεί πρόγραµµα σε Visual Basic για τη δηµιουργία σύνθετης λέξης µε πρώτο συνθετικό την συµβολοσειρά (string) ΚΑΤΑ και δεύτερο συνθετικό µία νέα λέξη η οποία να αντιστοιχεί σε µεταβλητή που δίνει ο χρήστης. Παραδείγµατα τιµών της µεταβλητής StringVar δίνονται στον ακόλουθο Πίνακα: ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 64

65 Τιµή της µεταβλητής StringVar ΛΗΨΗ ΠΟΣΗ ΘΕΣΗ Επίσης, να γίνει δήλωση µιας µεταβλητής µε όνοµα TotalTime ως τύπου Variant και να παρατηρηθεί το αποτέλεσµα των πράξεων: TotalTime = 10 TotalTime = TotalTime+15 Λύση Πρόγραµµα Sub Main() Const Noun = "ΚΑΤΑ" Dim TotalTime ' ή Dim TotalTime As Variant StringVar = InputBox(" ώστε µια συµβολοσειρά (string) µε ελληνικά κεφαλαία") TotalTime = "10" TotalTime = TotalTime + 15 StringVar = Noun & StringVar MsgBox "Σύνθετη λέξη : " & StringVar & vbcrlf & "Συνολικός χρόνος " & TotalTime & " λεπτά" End Sub Συµβολοσειρά (2 ο συνθετικό) Αποτελέσµατα ΛΗΨΗ ΠΟΣΗ ΘΕΣΗ Σύνθετη λέξη : ΚΑΤΑΛΗΨΗ Συνολικός χρόνος 25 λεπτά Σύνθετη λέξη : ΚΑΤΑΠΟΣΗ Συνολικός χρόνος 25 λεπτά Σύνθετη λέξη : ΚΑΤΑΘΕΣΗ Συνολικός χρόνος 25 λεπτά Παράδειγµα (Πράξεις µε ηµεροµηνίες). Να γραφεί πρόγραµµα που να δέχεται µια Αρχική και µια Τελική Ηµεροµηνία της µορφής ηη/µµ/έτος και να υπολογίζει την Επόµενη Ηµεροµηνία και τη ιαφορά Ηµερών µεταξύ των δύο ηµεροµηνιών. Σηµείωση: Σε περίπτωση που δοθεί ηµεροµηνία λανθασµένη ηµεροµηνία π.χ. 31/11/2010 ή 29/02/2011, τότε η Visual Basic επιστρέφει µήνυµα λάθους ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 65

66 Λύση Πρόγραµµα Sub Main() Dim StartDay As Date Dim NextDay As Date Dim EndDay As Date StartDay = InputBox("Αρχική ηµεροµηνία") EndDay = InputBox("Τελική ηµεροµηνία") NextDay = StartDay + 1 NoOfDays = EndDay - StartDay MsgBox "Επόµενη ηµεροµηνία : " & NextDay & vbcrlf & Str(NoOfDays) & " ηµέρες διαφορά" End Sub εδοµένα εισόδου (Ηµεροµηνίες) Αποτελέσµατα Αρχική ηµεροµηνία Τελική ηµεροµηνία Επόµενη ηµεροµηνία Ηµέρες διαφορά 12/10/ /10/ /10/ /1/ /12/2050 2/1/ /2/ /02/ /02/ /12/ /10/ /12/ Παράδειγµα (Υπολογισµός διαφοράς εβδοµάδων και ηµερών µεταξύ ηµεροµηνιών). Να γραφεί πρόγραµµα που να δέχεται µια Αρχική και µια Τελική Ηµεροµηνία της µορφής ηη/µµ/έτος και να υπολογίζει: ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 66

67 Τη ιαφορά Ηµερών Τη ιαφορά Εβδοµάδων Τις Εναποµείναντες Ηµέρες από τη ιαφορά Εβδοµάδων ως την Τελική Ηµεροµηνία. Π.χ. για Αρχική Ηµεροµηνία = 12/10/2010 και Τελική Ηµεροµηνία = 22/10/2010, είναι: ιαφορά Εβδοµάδων=1 και Εναποµείναντες Ηµέρες =3. Υπόδειξη: Για τον υπολογισµό της ιαφοράς Εβδοµάδων να χρησιµοποιηθεί η ακέραια διαίρεση \. Π.χ. αν Χ= 8 και Υ=6, τότε Χ \ Υ= 1. Επίσης, για τον υπολογισµό των Εναποµεινάντων Ηµερών να χρησιµοποιηθεί το υπόλοιπο διαίρεσης mod. Π.χ. αν Χ= 8 και Υ=6, τότε Χ mod Υ = 2. Ενδεικτικά αποτελέσµατα της άσκησης Αποτελέσµατα Ηµεροµηνίες Αποτελέσµατα Αρχική Τελική Ηµέρες ιαφορά ηµεροµηνία ηµεροµηνία διαφορά Εβδοµάδων Εναποµείναντες Ηµέρες 12/10/ /10/ /1/ /12/ /2/ /02/ /12/ /10/ Πρόγραµµα Sub Main() Dim StartDay As Date Dim NextDay As Date Dim EndDay As Date StartDay = InputBox("Αρχική ηµεροµηνία") EndDay = InputBox("Τελική ηµεροµηνία") NoOfDays = EndDay - StartDay NoOfWeeks = (EndDay - StartDay) \ 7 DaysLeft = (EndDay - StartDay) Mod 7 MsgBox " Αρχική ηµεροµηνία : " & StartDay & vbcrlf & " Τελική ηµεροµηνία : " & EndDay & _ vbcrlf & Str(NoOfDays) & " ηµέρες διαφορά" & vbcrlf & _ Str(NoOfWeeks) & " εβδοµάδες και " & Str(DaysLeft) & " ηµέρες διαφορά " End Sub ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 67

68 Ερωτήσεις και ασκήσεις ανακεφαλαίωσης 1. Ποιες πράξεις µπορούν να γίνουν µεταξύ συµβολοσειρών και µε ποιά σύµβολα (χαρακτήρες) ; 2. Ποιες πράξεις µπορούν να γίνουν µεταξύ ηµεροµηνιών ή µεταξύ ηµεροµηνίας και αριθµών; Τι παρατηρείτε στη σύνταξη του MsgBox για την εµφάνιση του αποτελέσµατος µιας µεταβλητής που είναι τύπου Date (Ηµεροµηνία) ; 3. Για ποιο σκοπό προστίθενται σχόλια σε ένα πρόγραµµα και ποιοι κανόνες ακολουθούνται για την εισαγωγή σχολίων στη Visual Basic; 4. Να αναφέρετε τις µεταβλητές για καθένα από τα προηγούµενα δύο πρώτα παραδείγµατα. 5. Έστω Α = ΠΑΡΑ και Β = 29/02/2032. Να σηµειώσετε ποιες από τις παρακάτω εντολές ή πράξεις είναι σωστές στη Visual Basic και το αποτέλεσµα σε αυτή την περίπτωση. Αν είναι λάθος, να δικαιολογήσετε την απάντησή σας. α/α Εντολή/ές Σωστό/Λάθος α/α Εντολή/ές Σωστό/Λάθος 1 MsgBox A + ΤΑΣΗ 6 K = A & 29/02/ B = A & 35 7 L = B +1 3 C = A + A + ΛΙΑ 8 M = B + 30/4/ *Α = 2 * A 9 N = B * 2 5 5_E = A - A 10 P = B mod 2 ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 68

69 Μάθηµα 6. ΜΑΘΗΜΑΤΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ (1) Η γλώσσα Visual Basic παρέχει τη δυνατότητα συµβολικής γραφής των πιο συνηθισµένων µαθηµατικών συναρτήσεων (τριγωνοµετρικές, αλγεβρικές κλπ). Επιπλέον, η Visual Basic αναγνωρίζει και άλλου τύπου συναρτήσεις, εσωτερικές (ενσωµατωµένες) συναρτήσεις ή συναρτήσεις βιβλιοθήκης για τη διαχείριση όλων των τύπων δεδοµένων που υποστηρίζει. Οι συναρτήσεις περιλαµβάνουν µετά το όνοµά τους µέσα σε παρένθεση µία ή περισσότερες µεταβλητές που θα τις ονοµάζουµε παραµέτρους. Αν και στον προγραµµατισµό ο όρος µεταβλητή έχει καθιερωθεί να υπονοεί µεταβλητή προγράµµατος, χρησιµοποιούµε τον όρο παράµετρος συνάρτησης αντί για τον όρο µεταβλητή συνάρτησης ώστε να µη δηµιουργείται σύγχυση. Οι παράµετροι µπορεί να είναι σταθερές, µεταβλητές ή παραστάσεις. Για κάθε συνάρτηση, η τιµή των παραµέτρων καθορίζει την τιµή της συνάρτησης. Οι µαθηµατικές συναρτήσεις της Visual Basic έχουν ως παραµέτρους αριθµητικές τιµές όλων των τύπων που είδαµε σε προηγούµενο κεφάλαιο (µικρούς ή µεγάλους ακεραίους, πραγµατικούς αριθµούς απλής ή διπλής ακρίβειας κλπ). Οι κυριότερες από τις εσωτερικές µαθηµατικές συναρτήσεις που υποστηρίζει η Visual Basic είναι: Συνάρτηση Μαθηµατική Παράσταση Λειτουργία Sin(x) ηµx Ηµίτονο του x (το x σε ακτίνια) Cos(x) συνx Συνηµίτονο του x (το x σε ακτίνια) Tan(x) εφx Εφαπτοµένη του x (το x σε ακτίνια) Atn(x) τοξεφx Τόξο εφαπτοµένης του x (αποτέλεσµα σε ακτίνια) Sqr(x) x Τετραγωνική ρίζα του x Abs(x) x Απόλυτη τιµή του x Sgn(x) Πρόσηµο του x Εxp(x) e x Ύψωση του e σε δύναµη x Log(x) lnx Νεπέριος λογάριθµος του x Εκτός από τις συναρτήσεις που περιλαµβάνονται στον παραπάνω Πίνακα υπάρχουν και άλλες εσωτερικές µαθηµατικές συναρτήσεις µε τις οποίες δεν θα ασχοληθούµε στη συνέχεια. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 69

70 6.1. Τριγωνοµετρικές συναρτήσεις Sin(x), Cos(x) και Tan(x) Στη βιβλιοθήκη συναρτήσεων της Visual Basic περιέχονται µόνο οι τρεις θεµελιώδεις τριγωνοµετρικές συναρτήσεις Sin(x), Cos(x) και Tan(x). Με βάση αυτές όµως µπορούµε να δηµιουργήσουµε όλες τις υπόλοιπες τριγωνοµετρικές συναρτήσεις κάνοντας χρήση γνωστών τύπων της τριγωνοµετρίας. Να σηµειωθεί ότι η τιµή της παραµέτρου x πρέπει να εκφράζεται σε ακτίνια. Παραδείγµατα 1. Για να κωδικοποιήσουµε στη γλώσσα Visual Basic την παράσταση: z= ηµ 2 α (1+εφ 2 α) µπορούµε να γράψουµε: Ζ =Sin(Angle)^2 * (1+Tan(Angle)^2) 2. Αντίστοιχα για ην παράσταση: συνω ηµ x y = εφω σφx ηµ x συνω είναι: Υ =(Cos(w)-Sin(x))/(Tan(w)/Sin(x)-1/(Tan(x)*Cos(w))) 6.2. Αντίστροφη τριγωνοµετρική συνάρτηση Atn(x) Η Visual Basic διαθέτει στις εσωτερικές της συναρτήσεις µόνο την συνάρτηση τοξεφx (ή εφ -1 x) από τις αντίστροφες τριγωνοµετρικές συναρτήσεις. Με βάση όµως αυτή και γνωστούς τριγωνοµετρικούς τύπους µπορούν να υπολογιστούν οι υπόλοιπες αντίστροφες τριγωνοµετρικές συναρτήσεις τοξηµx, τοξσυνx και τοξσφx. Παραδείγµατα 1. Η δήλωση δύο µεταβλητών ArcTan και ArcSin που αντιστοιχούν στο τοξεφx και στο τοξηµx αντίστοιχα µπορεί να γίνει ως εξής: ArcTan=Atn(x) Τόξο εφαπτοµένης (arctan ή tan -1 ) ArcSin=Atn(x/(1-x*x)^0.5) Τόξο ηµιτόνου (arcsin ή sin -1 ) όπου: -1<x<1 2. Η δήλωση δύο µεταβλητών ArcCos και ArcCot που αντιστοιχούν στο τοξσυνx και τοξσφx στο αντίστοιχα µπορεί να γίνει ως εξής: ArcCos=-Atn(x/(1-x*x)) /2 Τόξο συνηµιτόνου (arccos ή cos -1 ) όπου: -1<x<1 ArcCot=-Atn(x) /2 Τόξο συνεφαπτοµένης (arccot ή cot -1 ) 3. εδοµένου ότι τοξεφ(1) = π / 4, µπορούµε να υπολογίζουµε τον αριθµό π µε την εντολή: π =4*Atn(1) ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 70

71 6.3. Συναρτήσεις Int(x) και Fix(x) και συναρτήσεις στρογγυλοποίησης Οι συγκεκριµένες συναρτήσεις χρησιµοποιούνται για την εύρεση ενός ακέραιου αριθµού που βρίσκεται κοντά στην τιµή της ποσότητας x. Οι διαφορές τους είναι λεπτές, άρα χρειάζεται να δοθεί ιδιαίτερη προσοχή κατά τη µελέτη τους. Συγκεκριµένα, η τιµή της συνάρτησης Int(x) είναι ο µικρότερος ακέραιος που δεν ξεπερνά την τιµή του x. Στα µαθηµατικά συµβολίζεται µε [x] και ικανοποιεί τη σχέση: [x] x [x] + 1 Αντίθετα, η τιµή της συνάρτησης Fix(x) είναι ο ακέραιος που προκύπτει από την τιµή του x µετά την αποκοπή των ψηφίων που βρίσκονται στα δεξιά της υποδιαστολής. Οι διαφορές των δύο συναρτήσεων θα γίνουν κατανοητές µε τα παραδείγµατα και τις ασκήσεις που θα δούµε παρακάτω. Παράδειγµα Με την παρακάτω συνάρτηση µπορούµε να στρογγυλοποιήσουµε έναν αριθµό σε οποιοδήποτε πλήθος ψηφίων του, είτε σε δεκαδικό είτε σε ακέραιο : Ι = Int (X*10^N + 0.5)/10^N Π.χ. αν Χ= και Ν=2, η παράσταση καταχωρεί στο Ι την τιµή µε βάση και τους ακόλουθους υπολογισµούς: * 10 2 = = [ ] = / 10 2 = Αν Χ= και Ν = -1, τότε Ι = 30. Αν Χ= και Ν = -1, τότε πάλι Ι = 30 κ.ο.κ. Συνοψίζοντας, η τιµή του Ν καθορίζει το πλήθος των ψηφίων που θεωρούµε σηµαντικά. Μια αντίστοιχη συνάρτηση για τη στρογγυλοποίηση θετικών και αρνητικών αριθµών είναι η ακόλουθη: F = Fix(X*10^N + Sgn(X)*0.5)/10^N Σηµείωση: Για τη στρογγυλοποίηση δεκαδικών αριθµών η Visual Basic διαθέτει και τη συνάρτηση Round (X, N) όπου Χ δεκαδικός αριθµός και Ν το πλήθος των ψηφίων. Ωστόσο, η συνάρτηση αυτή δεν δέχεται αρνητικούς αριθµούς για το πλήθος Ν των ψηφίων στρογγυλοποίησης. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 71

72 Παραδείγµατα Παράδειγµα 6.1 (Τριγωνοµετρικές συναρτήσεις ηµx, συνx, εφx και σφx). Να γραφεί πρόγραµµα για τον υπολογισµό των ακόλουθων παραστάσεων µε τριγωνοµετρικές συναρτήσεις. Για τον υπολογισµό της συνάρτησης σφx, να χρησιµοποιηθεί η σχέση: σφx = 1 / εφx ( άρα η τιµή του ορίσµατος x δε µπορεί να είναι 0). ηµα, συνα, εφα, σφa. ηµ 2 Α (1+εφ 2 Α) συνa ηµ B εφa σφa ηµ B συνb Οι τιµές των ορισµάτων των τριγωνοµετρικών συναρτήσεων είναι σε ακτίνια (rads). Υπενθυµίζεται ότι: π = = 3, ακτίνια. Να δοθούν οι ακόλουθες τιµές για τα Α και Β: 1. Α = 0,7854 και Β = 0,7854 (π/4 ή 45 0 ) 2. Α = 1,0472 και Β = 1,0472 (π/3 ή 30 0 ) 3. Α = 2,0944 και Β = 2,0944 (2π/3 ή 60 0 ) Λύση Πρόγραµµα Sub Main() A = InputBox("A=") B = InputBox("B=") SinA = Sin(A) CosA = Cos(A) TanA = Tan(A) CotA = 1 / Tan(A) Υ1 = Sin(A) ^ 2 * (1 + Tan(A) ^ 2) Υ2 = (Cos(A) - Sin(B)) / (Tan(A) / Sin(B) - 1 / (Tan(A) * Cos(B))) MsgBox SinA & vbcrlf & CosA & vbcrlf & TanA _ & vbcrlf & CotA & vbcrlf & Υ1 & vbcrlf & Υ2 Εναλλακτικά: MsgBox "SinA = " + Str(SinA) & vbcrlf & "CosA = " + _ Str(CosA) & vbcrlf & "TanA = " + Str(TanA) & vbcrlf & "CotA = " + _ Str(CotA) & vbcrlf & "Y1 = " + Str(Y1) & vbcrlf & "Y2 = " + Str(Y2) End Sub ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 72

73 εδοµένα εισόδου (σε ακτίνια) 1 η µορφή παρουσίασης αποτελεσµάτων Αποτελέσµατα 2 η µορφή παρουσίασης αποτελεσµάτων Α = Β = 0,7854 Α = Β = 1,0472 Α = Β = 2,0944 Παράδειγµα 6.2 (Αντίστροφες τριγωνοµετρικές συναρτήσεις τοξηµx, τοξσυνx, τοξεφx, τοξσφx). Να γραφεί πρόγραµµα για τον υπολογισµό των ακόλουθων αντίστροφων τριγωνοµετρικών συναρτήσεων: Αντίστροφη τριγωνοµετρική συνάρτηση Συνάρτηση στη Visual Basic τοξηµa (ηµ -1 A ή sin -1 ή arcsina) Atn(A/(1-A*A)^0.5) τοξσυνa (συν -1 A ή cos -1 ή arccosa ) -Atn(A / (1 - A * A) ^ 0.5) / 2 τοξεφx (εφ -1 x ή tan -1 ή arctanx) Atn(A) τοξσφx (σφ -1 x ή cot -1 ή arccotx) -Atn(A) /2 Επίσης, να υπολογισθεί ο αριθµός π από τη σχέση: π =4*Atn(1) Λύση ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 73

74 Πρόγραµµα Sub Main() A = InputBox("A=") ArcSinA = Atn(A / (1 - A * A) ^ 0.5) ArcCosA = -Atn(A / (1 - A * A) ^ 0.5) / 2 ArcTanA = Atn(A) ArcCotA = -Atn(A) / 2 π = 4 * Atn(1) MsgBox ArcSinA & vbcrlf & ArcCosA & vbcrlf & _ ArcTanA & vbcrlf & ArcCotA & vbcrlf & π ή MsgBox "ArcSinA = " + Str(ArcSinA) & vbcrlf & "ArcCosA = " + _ Str(ArcCosA) & vbcrlf & "ArcTanA = " + Str(ArcTanA) & vbcrlf & "ArcCotA = " + _ Str(ArcCotA) & vbcrlf & "π = " + Str(π) End Sub εδοµένα εισόδου Αποτελέσµατα (σε ακτίνια) 1 η µορφή παρουσίασης 2 η µορφή παρουσίασης αποτελεσµάτων αποτελεσµάτων Α = 0,866 Α = 0,707 Α = 0,5 Α = -0,5 ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 74

75 Παράδειγµα 6.3 (Συναρτήσεις Int(x), Fix(x) και στρογγυλοποίησης θετικών και αρνητικών αριθµών) Να γραφεί πρόγραµµα υπολογισµού των ακόλουθων συναρτήσεων: Int(X) Ι = Int (X*10^N + 0.5)/10^N Fix(X) F = Fix(X*10^N + Sgn(X)*0.5)/10^N Λύση Παρατηρούµε της διαφορές των συναρτήσεων Int(X) και Fix(X) στην περίπτωση αρνητικών αριθµών. Επίσης, παρατηρούµε µια διαφορά µεταξύ των παραστάσεων στρογγυλοποίησης Ι και F για αρνητικούς αριθµούς µε το αποβαλλόµενο τµήµα να είναι ίσο µε 5 (π.χ. Χ=23,15 και Ν=1). Πρόγραµµα Sub Main() X = InputBox("X=") N = InputBox("N=") IntX = Int(X) I = Int(X * 10 ^ N + 0.5) / 10 ^ N FixX = Fix(X) F = Fix(X * 10 ^ N + Sgn(X) * 0.5) / 10 ^ N MsgBox IntX & vbcrlf & I & vbcrlf & FixX & vbcrlf & F Εναλλακτικά: MsgBox "IntX = " + Str(IntX) & vbcrlf & "I = " + _ Str(I) & vbcrlf & "FixX= " + Str(FixX) & vbcrlf & "F = " + Str(F) End Sub εδοµένα εισόδου Χ = 23,15 Χ = -23,15 Ν = 1 Ν = 0 Ν = -1 Ν = 1 Ν = 0 Ν = -1 Αποτελέσµατα για την εναλλακτική σύνταξη του MsgBox εδοµένα εισόδου ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 75

76 Χ = 23,14 Χ = -23,14 Ν = 1 Ν = 0 Ν = -1 Ν = 1 Ν = 0 Ν = -1 Αποτελέσµατα για την εναλλακτική σύνταξη του MsgBox εδοµένα εισόδου Χ = 23,16 Χ = -23,16 Ν = 1 Ν = 0 Ν = -1 Ν = 1 Ν = 0 Ν = -1 Αποτελέσµατα για την εναλλακτική σύνταξη του MsgBox Παράδειγµα 6.4 (Εισαγωγή ορισµάτων σε µοίρες και παραστάσεις µε τριγωνοµετρικές συναρτήσεις). Να γραφεί πρόγραµµα που να δέχεται δύο τιµές Α και Β όπου το Α είναι σε µοίρες ( 0 ) και όχι σε ακτίνια ενώ το Β έχει τιµή µεταξύ 0 και 1. Το πρόγραµµα υπολογίζει το ηµα, π.χ για Α = 30 (µοίρες) επιστρέφει την τιµή 0.5 για το ηµίτονο. Επίσης, το πρόγραµµα υπολογίζει το ΤοξεφΒ σε µοίρες ( 0 ) και όχι σε ακτίνια, π.χ. για Β=0.5 επιστρέφει την τιµή 26,56 (µοίρες). Στο ίδιο πρόγραµµα να υπολογίζονται οι ακόλουθες παραστάσεις µε όρισµα Β: 3 T1 = 0,5 ηµ Β συνβ T2 = 3 1 (arctanb) 2 Υπόδειξη 1: Τα π ακτίνια αντιστοιχούν σε µοίρες. Με µια απλή αναλογική µέθοδο µπορεί να υπολογίσει κανείς οι Α µοίρες ( 0 ) σε πόσες ακτίνια αντιστοιχούν. Αντίστοιχα, µπορεί να υπολογίσει κανείς τα Αtn(Β) ακτίνια σε πόσες µοίρες ( 0 ) αντιστοιχούν για να υπολογίσει τις αντίστοιχες παραστάσεις. Υπόδειξη 2: Με άλλα λόγια, το όρισµα Α της συνάρτησης Sin της Visual Basic να είναι µια παράσταση του Α που µετατρέπει τις µοίρες σε ακτίνια, π.χ. αν Α=30 τότε Sin (Παράσταση) = 0,5. Επίσης, το αποτέλεσµα της συνάρτησης Atn της VB να είναι µια παράσταση της Atn που µετατρέπει τα ακτίνια του αποτελέσµατος σε µοίρες π.χ. αν B= 0,5 τότε: Παράσταση του Atn(Β) = 26,56. Υπόδειξη 3: Στις παραστάσεις µετατροπής θα χρειαστεί και το π. Να υπολογιστεί µε βάση τη σχέση: π = 4* Atn(1) στην αρχή του προγράµµατος. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 76

77 Πρόγραµµα Sub Main() A = InputBox("A=...(degrees)") B = InputBox("B= ") π = 4 * Atn(1) SinA = Sin(A * π / 180) ArcTanB = Atn(B) * 180 / π T1 = 0.5 * Sin(B) ^ 3 - Cos(B) ^ 0.5 T2 = (Atn(B)) ^ (-2 / 3) MsgBox "SinA = " + Str(SinA) & vbcrlf & "ArcTanB = " + _ Str(ArcTanB) & vbcrlf & "T1 = " + Str(T1) & vbcrlf & "T2 = " + Str(T2) End Sub εδοµένα εισόδου (Το Α σε µοίρες, Β µεταξύ 0 και 1) Αποτελέσµατα Α = 30 Β = 0,5 Α = 60 Β = 0,707 Α = -90 Β = 0,866 ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 77

78 Ερωτήσεις και ασκήσεις ανακεφαλαίωσης 1. Σε τι µονάδες είναι το όρισµα x των τριγωνοµετρικών συναρτήσεων Sin(x), Cos(x), Tan(x); Να υποδείξετε µια µέθοδο µετατροπής του ορίσµατος µέσα στην παρένθεση ώστε να εισάγεται σε µοίρες ( 0 ). 2. Σε τι µονάδες είναι το αποτέλεσµα της αντίστροφης εφαπτοµένης Atn(x) ; Να υποδείξετε µια µέθοδο µετατροπής του αποτελέσµατος σε µοίρες ( 0 ). 3. Τι εκφράζουν οι συναρτήσεις Int(x) και Fix(x) ; Ποιος είναι ο χαρακτήρας συνέχειας γραµµής και για ποιο λόγο χρησιµοποιείται ; 4. Να αναφέρετε τις µεταβλητές για καθένα από τα προηγούµενα τρία πρώτα παραδείγµατα. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 78

79 Μάθηµα 7. ΜΑΘΗΜΑΤΙΚΕΣ Συναρτήσεις (2) 7.1. Τετραγωνική ρίζα Sqr(x) Η τιµή της παραµέτρου x της συνάρτησης Sqr(x) πρέπει να είναι οπωσδήποτε θετικός αριθµός ή µια παράσταση µε θετική τιµή. Αν δώσουµε αρνητικό αριθµό, η εκτέλεση του προγράµµατος θα διακοπεί και θα εµφανιστεί στην οθόνη του Η/Υ το µήνυµα: Illegal function call. Να σηµειωθεί ότι η τιµή της τετραγωνικής ρίζας (Square root) µπορεί να υπολογιστεί και µε ύψωση στη δύναµη 0.5. Παραδείγµατα 1. Η δήλωση µιας µεταβλητής που υπολογίζει την υποτείνουσα (Hypotenuse) ενός ορθογωνίου τριγώνου από τις κάθετες πλευρές του Χ και Υ γίνεται ως εξής: Hypotenuse=Sqr(X^2+Y^2) 2. Η δήλωση µιας µεταβλητής που υπολογίζει την διακρίνουσα (Discriminant) ενός τριωνύµου ax 2 +bx+c γίνεται ως εξής: Discriminant=Sqr(B^2-4*A*C) 3. Η δήλωση µιας µεταβλητής που υπολογίζει την ένταση του ρεύµατος Amperes από την ισχύ Watts και την αντίσταση Ohms του αγωγού µπορεί να γίνει ως εξής: Amperes=Sqr(Watts/Ohms) 7.2. Απόλυτη τιµή Abs(x) Η συνάρτηση που δίνει την απόλυτη (Absolute) τιµή ενός αριθµού ή µιας παράστασης δίνεται στη Visual Basic από τη συνάρτηση Abs(x). Ως παράµετρος µιας συνάρτησης µπορεί να είναι και µια παράσταση που περιέχει συναρτήσεις. Για να αποφύγουµε τυχόν λάθη στην κωδικοποίηση και για να είναι πιο κατανοητή από κάποιον τρίτο που θα µελετήσει το πρόγραµµα, οι πολύπλοκες παραστάσεις καλό είναι να διασπώνται σε όσο το δυνατόν απλούστερες παραστάσεις. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 79

80 Παραδείγµατα 1. Η παράσταση y= a+b - a-b κωδικοποιείται στη Visual Basic ως εξής: y=abs(a+b)-abs(a-b) Η παράσταση 2 w = x y α β κωδικοποιείται στη Visual Basic ως εξής: w=abs(abs(x-y^2)-sqr(abs(α - β ) ) ) 7.3. Πρόσηµο Sgn(x) Η τιµή της συνάρτησης Sgn(x) που ονοµάζεται πρόσηµο (Sign) περιγράφεται από τις ακόλουθες σχέσεις: 1 αν x>0 Sgn(x)= 0 αν x=0-1 αν x<0 Παράδειγµα Η παράσταση Max=(Sgn(X-Y)*(X-Y)+X+Y)/2 έχει τιµή ίση µε το µέγιστο αριθµό µεταξύ των αριθµών Χ και Υ κάτι που φαίνεται αναλυτικότερα στον παρακάτω Πίνακα: Συνθήκη Τιµή της συνάρτησης Sgn(X-Y) Τιµή της παράστασης Max Αν Χ>Υ Sgn(X-Y)=1 Max=(X-Y+X+Y)/2=2X/2=X Αν Χ=Υ Sgn(X-Y)=0 Max=(X+Y)/2=2X/2=X=Y Αν Χ<Υ Sgn(X-Y)=-1 Max=(Y-X+X+Y)/2=2Y/2=Y 7.4. Εκθετική συνάρτηση Exp(x) Η εκθετική (Exponential) συνάρτηση Exp(x) εκφράζει το αποτέλεσµα της ύψωσης του αριθµού e στη δύναµη x, όπου e η βάση των φυσικών ή νεπερίων λογαρίθµων µε τιµή 2, κατά προσέγγιση. Η εκθετική συνάρτηση χρησιµοποιείται σε αρκετούς τύπους της Φυσικής, της Στατιστικής αλλά και της Ηλεκτρολογίας. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 80

81 Παράδειγµα Η καµπύλη εκφόρτισης ενός πυκνωτή σε ένα κύκλωµα που περιλαµβάνει ένα πυκνωτή, µια αντίσταση και ένα διακόπτη, δίνεται από τη σχέση: U - = Uo e Όπου Uo η τάση στα άκρα του πυκνωτή τη χρονική στιγµή 0, R η αντίσταση εκφόρτισης του κυκλώµατος και C η χωρητικότητα του πυκνωτή. Η κωδικοποίηση της παράστασης αυτής στη Visual Basic είναι: t RC U=U0*Exp(-t/(R*C)) 7.5. Λογαριθµική συνάρτηση Log(x) Η λογαριθµική (Logarithmic) συνάρτηση Log(x) είναι η αντίστροφη της εκθετικής συνάρτησης µε βάση το e και υπολογίζει το νεπέριο λογάριθµο του x. Στην ουσία πρόκειται για τη συνάρτηση Ln(x). Η παράµετρος x πρέπει να παίρνει θετικές τιµές. Παραδείγµατα 1. Για τον υπολογισµό του δεκαδικού λογάριθµου ενός αριθµού (µε βάση το 10) χρησιµοποιούµε τον τύπο: Log x = 10 Logex Log 10 και η κωδικοποίηση στη γλώσσα Visual Basic έχει ως εξής: TenBaseLog=Log(x)/Log(10) e 2. Ο υπολογισµός της εξασθένισης σε Decibel που υφίσταται ένα σήµα από το ένα άκρο ενός καλωδίου στο άλλο γίνεται από τον τύπο: A = P εισ 10 Log 10 Pej όπου Pεισ η ισχύς του σήµατος στην είσοδο και Pεξ η ισχύς του σήµατος στην έξοδο. Η κωδικοποίηση του τύπου αυτού στη Visual Basic έχει ως εξής: Attenuation=10*Log(Pin/Pout)/Log(10) ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 81

82 Παραδείγµατα Παράδειγµα 7.1 (Τετραγωνική ρίζα Sqr(x) και απόλυτη τιµή Abs(x)) Να γραφεί πρόγραµµα για τον υπολογισµό των ακόλουθων µαθηµατικών παραστάσεων στη Visual Basic: 2 2 S0 = A S1 = A + B S3 2 A A 2 B 3 3 = 4 S5 = A 1 Α0 = Β A A B S2 = S4 = A+B - A-B S6 = 3 2 A A + B Sub Main() Dim A As Single Dim B As Single A = InputBox("A=") B = InputBox("B=") S0 = Sqr(A) A0 = Abs(B) S1 = Sqr(A ^ 2 + B ^ 2) S2 = Sqr(A) / A ^ (2 / 3) Λύση Πρόγραµµα S3 = Sqr(2) - Sqr(A ^ 3-2 * A / B) S4 = Abs(A + B) - Abs(A - B) S5 = (Abs(A - 1)) ^ (4 / 3) S6 = Abs((A - B) / (A + B)) MsgBox S0 & vbcrlf & A0 & vbcrlf & S1 & vbcrlf & S2 & _ vbcrlf & S3 & vbcrlf & S4 & vbcrlf & S5 & vbcrlf & S6 Εναλλακτικά: MsgBox "S0 = " + Str(S0) & vbcrlf & "A0 = " + Str(A0) & _ vbcrlf & "S1 = " + Str(S1) & vbcrlf & "S2 = " + Str(S2) & _ vbcrlf & "S3 = " + Str(S3) & vbcrlf & "S4 = " + Str(S4) & _ vbcrlf & "S5 = " + Str(S5) & vbcrlf & "S6 = " + Str(S6) End Sub εδοµένα εισόδου Αποτελέσµατα για την εναλλακτική σύνταξη του MsgBox ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 82

83 Α = 2, Β = -1 Α = 5, Β = -2 Α = 8, Β = -3 Παράδειγµα 7.2 (Πρόσηµο Sgn(x), εκθετική Exp(x) και λογαριθµική συνάρτηση Log(x)) Να γραφεί πρόγραµµα για τον υπολογισµό των ακόλουθων παραστάσεων: SgnA = Sgn(A) ExpA = Exp(A) MaxAB=(Sgn(A-B)*(A-B)+A+B)/2 LogeA=Log(A) LogeA Log10A = Log 10 Log10AB = 10 Log10 e A B ExpAB= A e A A e e SinhA = 2 A e + e CoshA = 2 A - B A ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 83

84 Όπου: Η παράσταση Max=(Sgn(A-B)*(A-B)+A+B)/2 έχει τιµή ίση µε το µέγιστο αριθµό µεταξύ των αριθµών A και B. Loge A Η συνάρτηση Log(A) δίνει το λογάριθµο του Α µε βάση το e, ενώ η παράσταση Loge10 δίνει το λογάριθµο του Α µε βάση το 10. Οι συναρτήσεις Sinh(A) και Cosh(A) δίνουν το υπερβολικό ηµίτονο και συνηµίτονο του Α αντίστοιχα. Λύση Πρόγραµµα Sub Main() Dim A As Single Dim B As Single A = InputBox("A=") B = InputBox("B=") SgnA = Sgn(A) MaxAB = (Sgn(A - B) * (A - B) + A + B) / 2 LogeA = Log(A) Log10A = Log(A) / Log(10) Log10AB = 10 * Log(A / B) / Log(10) ExpA = Exp(A) ExpAB = A * Exp(-A / B) SinhA = (Exp(A) - Exp(-A)) / 2 CoshA = (Exp(A) + Exp(-A)) / 2 MsgBox SgnA & vbcrlf & MaxAB & vbcrlf & LogeA & vbcrlf & _ Log10A & vbcrlf & Log10AB & vbcrlf & ExpA & vbcrlf & _ ExpAB & vbcrlf & SinhA & vbcrlf & CoshA Εναλλακτικά: MsgBox "SgnA = " + Str(SgnA) & vbcrlf & "MaxAB = " + Str(MaxAB) & _ vbcrlf & "LogeA = " + Str(LogeA) & vbcrlf & "Log10A = " + Str(Log10A) & _ vbcrlf & "Log10AB = " + Str(Log10AB) & vbcrlf & "ExpA = " + Str(ExpA) & _ vbcrlf & "ExpAB = " + Str(ExpAB) & vbcrlf & "SinhA = " + Str(SinhA) & _ vbcrlf & "CoshA = " + Str(CoshA) End Sub εδοµένα εισόδου Αποτελέσµατα για την εναλλακτική σύνταξη του MsgBox ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 84

85 Α = 2, Β = 1 Α = 2, Β = 3 Α = 4, Β = 4 Παράδειγµα 7.3 (Παραστάσεις µε συναρτήσεις Sqr(x), Abs(x), Exp(x) και Log(x)) Να γραφεί πρόγραµµα για τον υπολογισµό των ακόλουθων παραστάσεων: A B B A 2 S1 = S5 = A B A B B A S2 = 7 A 7 +5 A S6 = Log e ( A B ) 3 3 (A + B) A B S3 = S7 = Log 10 ( ) 2 A + B 2 2A B + B 4 A B e 1 S4 = S8 = 2A 2A e + 1 ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 85

86 Ενδεικτικά αποτελέσµατα της άσκησης Α = 1 Β = 2 Α = 3 Β = 4 Α = 5 Β = 6 Πρόγραµµα Sub Main() Dim A As Single Dim B As Single A = InputBox("A=") B = InputBox("B=") S1 = Abs(A / B - B / A) / Abs(1 / B + 1 / A) S2 = 7 * Abs(A) ^ * Abs(A) ^ S3 = Sqr(3) * (A + B) / 2 S4 = (-B + Sqr(Abs(B ^ 2-4 * A * B))) / (2 * A) S5 = Abs(Abs(A - B ^ 2) - Sqr(Abs(A - B))) S6 = Log(1 / 3 * A * B ^ 2) S7 = Log(A * B / (A + B)) / Log(10) S8 = (Exp(2 * A) - 1) / (Exp(2 * A) + 1) MsgBox "S1 = " + Str(S1) & vbcrlf & "S2 = " + Str(S2) & _ vbcrlf & "S3 = " + Str(S3) & vbcrlf & "S4 = " + Str(S4) & _ vbcrlf & "S5 = " + Str(S5) & vbcrlf & "S6 = " + Str(S6) & _ vbcrlf & "S7 = " + Str(S7) & vbcrlf & "S8 = " + Str(S8) End Sub ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 86

87 Ερωτήσεις και ασκήσεις ανακεφαλαίωσης 1. Τι εκφράζουν οι συναρτήσεις Sqr(x), Abs(x), Sgn(x), Exp(x) και Log(x) και από ποιες αγγλικές λέξεις προέκυψαν ; 2. Τι µπορεί να είναι η παράµετρος x όλων των παραπάνω µαθηµατικών συναρτήσεων καθώς και των µαθηµατικών συναρτήσεων που αναφέρθηκαν στην προηγούµενη ενότητα; Π.χ. ένας αριθµός, µια µεταβλητή, µια σταθερά, µια παράσταση, κάτι άλλο ; 3. Να αναφέρετε τις µεταβλητές για καθένα από τα προηγούµενα παραδείγµατα-ασκήσεις. 4. Έστω x = - 1. Να σηµειώσετε ποιες από τις παρακάτω εντολές ή πράξεις είναι σωστές και το αποτέλεσµα σε αυτή την περίπτωση. Αν είναι λάθος, να δικαιολογήσετε την απάντησή σας. α/α Εντολή/ές Σωστό/Λάθος α/α Εντολή/ές Σωστό/Λάθος 1 MsgBox Str(Abs(x)) 5 LogX = Log(Exp(x)) 2 B = Sgn(x-1) 6 Πρόσηµο = Sgn(2*3) 3 Ρίζα = Sqr(x) 7 Abs_Y = Abs( x ) 4 Exp^2x = Exp(x^2) 8 Log(x) = Log(-x) ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 87

88 Μάθηµα 8. ΛΟΓΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ ΚΑΙ ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ 8.1. Εισαγωγή Στα προηγούµενα κεφάλαια αναπτύξαµε προγράµµατα, τα οποία ήταν πολύ απλά και οι εντολές των οποίων εκτελούνται η µία µετά την άλλη. Αυτή η σειριακή εκτέλεση των εντολών είναι κατάλληλη όµως µόνο για πολύ απλά προγράµµατα, τα οποία εισάγουν δεδοµένα, τα επεξεργάζονται και τυπώνουν το αποτέλεσµα, χωρίς να υπάρχει η δυνατότητα της επιλεκτικής εκτέλεσης τµηµάτων του προγράµµατος, σύµφωνα µε την τιµή κάποιων δεδοµένων ή την επανάληψη τµηµάτων του προγράµµατος. Οι τρεις βασικές δοµές στον προγραµµατισµό είναι η δοµή της ακολουθίας, της επιλογής και της επανάληψης µε τη χρήση των οποίων µπορούν να υλοποιηθούν όλα τα προγράµµατα υπολογιστών. Στο κεφάλαιο αυτό θα ασχοληθούµε µε τις βασικές δοµές της επιλογής όπου απαιτείται να γίνει κάποιος έλεγχος και ανάλογα µε το αποτέλεσµά του να επιλέγεται κάποια αντίστοιχη λειτουργία. Για παράδειγµα, αν µας δώσουν ένα αριθµό και µας ζητήσουν την απόλυτη τιµή του, πρέπει να ελέγξουµε αν ο αριθµός αυτός είναι θετικός, µηδέν ή αρνητικός και στη συνέχεια αν είναι θετικός ή µηδέν επιστρέφουµε ως απόλυτη τιµή του αριθµού τον ίδιο τον αριθµό και αν είναι αρνητικός επιστρέφουµε ως απόλυτη τιµή τον αντίθετό του. Ως ένα δεύτερο παράδειγµα, ας θεωρήσουµε το πολύ απλό πρόβληµα της καταµέτρησης των θετικών και των αρνητικών αριθµών. Πρέπει λοιπόν να γράψουµε ένα πρόγραµµα, το οποίο εισάγει αριθµούς και µετράει πόσοι από αυτούς είναι θετικοί και πόσοι αρνητικοί. Για να αποφασίσουµε, αν ένας αριθµός είναι θετικός ή αρνητικός, πρέπει να τον συγκρίνουµε µε το 0. Το αποτέλεσµα αυτής της σύγκρισης καθορίζει το είδος του αριθµού, αν είναι µεγαλύτερος από το 0, τότε ο αριθµός είναι θετικός, ενώ αντίθετα αν είναι µικρότερος από το 0, είναι αρνητικός. Η γλώσσα Visual Basic διαθέτει δύο βασικές δοµές επιλογές, την If Then Else και την Select Case. Οι δοµές αυτές είναι αρκετά ευέλικτες όσον αφορά τη σύνταξή τους και µπορούν να καλύψουν όλες τις περιπτώσεις κωδικοποίησης Λογικές παραστάσεις Οι έλεγχοι στον προγραµµατισµό βασίζονται στην αλήθεια ή µη κάποιων λογικών παραστάσεων (εκφράσεων). Για τη σύνταξη µιας λογικής έκφρασης ή συνθήκης χρησιµοποιούνται σταθερές, µεταβλητές, αριθµητικές ή αλφαριθµητικές παραστάσεις, συγκριτικοί τελεστές (ή σύµβολα ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 88

89 σύγκρισης), δηλαδή τα: =, >, <, <>, >=, <= και λογικοί τελεστές (ή λογικοί σύνδεσµοι, δηλαδή τα: ΚΑΙ (And), Ή (Or) ΟΧΙ (Not)) καθώς και παρενθέσεις. Στις λογικές εκφράσεις γίνεται σύγκριση της τιµής µίας έκφρασης, που βρίσκεται αριστερά από το συγκριτικό τελεστή µε την τιµή µιας άλλης έκφρασης που βρίσκεται δεξιά. Το αποτέλεσµα είναι µία λογική τιµή ΑΛΗΘΗΣ (true) ή ΨΕΥ ΗΣ (false). Παραδείγµατα λογικών παραστάσεων Sum > ErrorType = 3 X^2 + Y^3 >= W^4 Current.Enabled = True Not Value = False (LimitUp < X) And (X < LimitDown) Υπάρχουν απλές και σύνθετες λογικές παραστάσεις. Στις απλές λογικές παραστάσεις γίνεται σύγκριση της τιµής της παράστασης που βρίσκεται αριστερά του συµβόλου (τελεστή) σύγκρισης µε την τιµή της παράστασης που βρίσκεται δεξιά του. Αν το αποτέλεσµα της σύγκρισης είναι σύµφωνο µε το σύµβολο, η λογική τιµή της παράστασης είναι αληθής (true), διαφορετικά είναι ψευδής (false). Ο επόµενος Πίνακας περιλαµβάνει τα σύµβολα σύγκρισης: Τελεστής Ελεγχόµενη σχέση = Ισότητα > Μεγαλύτερο από < Μικρότερο από <> ή >< Ανισότητα >= ή => Μεγαλύτερο ή ίσο από <= ή =< Μικρότερο ή ίσο από Παραδείγµατα 1. Έστω η λογική παράσταση: Value1 > Value2. Αν Value1 = 40 και Value2 = 39, τότε η τιµή της λογικής παράστασης είναι αληθής. Αν όµως Value1 = 25 και Value2 = 33, τότε η τιµή της λογικής παράστασης είναι ψευδής. 2. Η τιµή της λογικής παράστασης Χ ^ 2 > 4 * Υ * Ζ είναι αληθής για Χ=4, Υ=2, Ζ=1 και ψευδής για Χ = 2, Υ = 1, Ζ = 1.5. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 89

90 Εκτός από τη σύγκριση µεταξύ αριθµών, µπορεί να γίνει και σύγκριση µεταξύ συµβολοσειρών (αλφαριθµητικών ποσοτήτων). Στην περίπτωση της σύγκρισης µεταξύ αλφαριθµητικών ποσοτήτων, η σύγκριση γίνεται χαρακτήρα-χαρακτήρα και ελέγχεται αν ένας χαρακτήρας προηγείται ή έπεται του άλλου στον πίνακα που χρησιµοποιείται από την Visual Basic για την παράσταση των χαρακτήρων από το υπολογιστικό σύστηµα. Σε αυτόν τον πίνακα, τα ψηφία προηγούνται των λατινικών γραµµάτων και τα λατινικά γράµµατα προηγούνται των ελληνικών. Επίσης, τα κεφαλαία γράµµατα κάθε αλφαβήτου είναι διαφορετικά και προηγούνται. Παραδείγµατα Έστω ή λογική παράσταση Word1 > Word2. Η τιµή της λογικής παράστασης είναι αληθής για τις ακόλουθες περιπτώσεις: Word1= ΜΕΓΙΣΤΟΣ και Word2= ΜΕΓΑΛΟΣ ENTEKA 11 Οι αριθµοί προηγούνται των γραµµάτων minimum MINIMUM Τα κεφαλαία προηγούνται των µικρών ΜΕΓΙΣΤΟ MAXIMUM Τα ελληνικά έπονται των λατινικών KENO KENO Περισσότεροι χαρακτήρες στον 2 ο όρο KENO KENO Το διάστηµα προηγείται των γραµµάτων και ψευδής στις ακόλουθες περιπτώσεις: Word1= Kbit και Word2= KBYTE Watt! Watt# Amp Amperes Θα πρέπει να σηµειωθεί ότι δε µπορεί να γίνει σύγκριση µεταξύ παραστάσεων διαφορετικού τύπου. Μόνο η σύγκριση µεταξύ αριθµητικών παραστάσεων ή µεταξύ αλφαριθµητικών παραστάσεων είναι αποδεκτή ενώ µια σύγκριση µεταξύ µιας αριθµητικής και µιας αλφαριθµητικής παράστασης δεν είναι αποδεκτή. Επίσης, δεν επιτρέπεται να χρησιµοποιήσουµε δύο σύµβολα σύγκρισης σε µια λογικά παράσταση. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 90

91 Παραδείγµατα Οι παρακάτω παραστάσεις δεν είναι αποδεκτές λογικές παραστάσεις: Χ +5= Σύγκριση αριθµητικής µε αλφαριθµητική ποσότητα Minimum<<Maximum εν υπάρχει τελεστής << LimitUp>Y>LimitUp ύο τελεστές σύγκρισης στη σειρά 8.3. Σύνθετες λογικές παραστάσεις - Λογικοί σύνδεσµοι Με τη βοήθεια των λογικών συνδέσµων (τελεστών) µπορούν να δηµιουργηθούν σύνθετες λογικές παραστάσεις (εκφράσεις). Οι πιο κοινοί λογικοί σύνδεσµοι είναι το Λογικό ΚΑΙ (And), το Λογικό Η (Or) και το Λογικό ΟΧΙ (Not) Λογικό ΚΑΙ (And) Η σύνθετη λογική παράσταση που προκύπτει από το λογικό ΚΑΙ (ή σύζευξη) δύο απλών λογικών παραστάσεων είναι αληθής όταν και οι δύο λογικές παραστάσεις είναι αληθείς. Για τη σύζευξη δύο λογικών παραστάσεων στη γλώσσα Visual Basic χρησιµοποιείται η κωδική λέξη And. Παράδειγµα Έστω ότι µια αντλία νερού εκκινεί όταν η θερµοκρασία (temperature) νερού µιας δεξαµενής είναι µεταξύ C (κατώτερο όριο) και 35 0 C (ανώτερο όριο). Η λογική παράσταση στη Visual Basic για αυτή την περίπτωση είναι: (-10< temperature) And (temperature<35) Ας εξετάσουµε τις ακόλουθες περιπτώσεις: - Αν είναι temperature=0, δηλαδή έχει τιµή µεγαλύτερη από -10 και ταυτόχρονα µικρότερη από 35, η σύνθετη λογική παράσταση είναι αληθής (ΚΑΙ οι δύο απλές λογικές παραστάσεις είναι αληθείς). - Αν temperature=-15, δηλαδή µικρότερη από -10, η σύνθετη λογική παράσταση είναι ψευδής αφού µία από τις απλές λογικές εκφράσεις (η πρώτη) είναι ψευδής. - Αν temperature=50, δηλαδή µεγαλύτερη από 35, η σύνθετη λογική παράσταση είναι ψευδής αφού µία από τις λογικές παραστάσεις (η δεύτερη) είναι ψευδής. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 91

92 Λογικό Ή (Or) Η σύνθετη λογική παράσταση που προκύπτει από το λογικό Ή (ή διάζευξη) δύο απλών λογικών παραστάσεων είναι αληθής όταν µία τουλάχιστον από τις δύο λογικές παραστάσεις είναι αληθής. Για τη διάζευξη δύο λογικών παραστάσεων στη γλώσσα Visual Basic χρησιµοποιείται η κωδική λέξη Or. Παράδειγµα Έστω ότι µια αντλία νερού εκκινεί όταν η θερµοκρασία (temperature) νερού µιας δεξαµενής είναι µικρότερη από -5 0 C ή µεγαλύτερη από 40 0 C. Η λογική παράσταση στη Visual Basic για αυτή την περίπτωση είναι: (temperature<-5) Or (temperature>40) Ας εξετάσουµε τις ακόλουθες περιπτώσεις: - Αν είναι temperature=0, δηλαδή έχει τιµή µεγαλύτερη από -5 και ταυτόχρονα µικρότερη από 40, η σύνθετη λογική παράσταση είναι ψευδής (ΚΑΙ οι δύο απλές λογικές παραστάσεις είναι ψευδείς). - Αν temperature=-15, δηλαδή µικρότερη από -5, η σύνθετη λογική παράσταση είναι αληθής αφού µία από τις απλές λογικές εκφράσεις (η πρώτη) είναι αληθής. - Αν temperature=50, δηλαδή µεγαλύτερη από 40, η σύνθετη λογική παράσταση είναι αληθής αφού µία από τις λογικές παραστάσεις (η δεύτερη) είναι αληθής Λογικό ΟΧΙ (Not) Το λογικό ΟΧΙ (ή άρνηση) δε συνδέει δύο απλές λογικές παραστάσεις αλλά µπαίνει µπροστά από µία λογική παράσταση δίνοντας στην τελική παράσταση αντίθετη τιµή αλήθειας από την παράσταση µετά το ΟΧΙ. Για την άρνηση µιας λογικής παράστασης στη γλώσσα Visual Basic χρησιµοποιείται η κωδική λέξη Not. Παράδειγµα Οι λογικές παραστάσεις: Not temperature > 40 Not Expression = False Ισοδυναµούν µε τις λογικές παραστάσεις: temperature<40 Expression=True ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 92

93 Συνδυασµοί σύνθετων λογικών παραστάσεων Οι σύνθετες λογικές παραστάσεις µπορεί να περιλαµβάνουν περισσότερες από δύο λογικές παραστάσεις που συνδέονται µε περισσότερους από ένα λογικούς συνδέσµους. Ο έλεγχος αληθείας της σύνθετης λογικής παράστασης βασίζεται στους ακόλουθους κανόνες: 1. Αν δεν υπάρχουν παρενθέσεις στη λογική παράσταση, ακολουθείται η εξής σειρά προτεραιότητας: α) Αριθµητικές πράξεις β) Συγκρίσεις γ) Λογικές πράξεις µε την εξής σειρά: Not, And, Or. 2. Αν υπάρχουν παρενθέσεις, η σειρά των πράξεων καθορίζεται από τις παρενθέσεις. Είναι συνήθης πρακτική να χρησιµοποιούµε πάντα παρενθέσεις µεταξύ των απλών λογικών παραστάσεων που συνδέονται µε λογικούς συνδέσµους ακόµα και αν δε χρειάζεται έτσι ώστε να είναι ευκολότερα αναγνώσιµες διότι έτσι διακρίνονται καλύτερα και ο τρόπος δράσης των λογικών συνδέσµων είναι πιο προφανής. Επίσης, µια λογική παράσταση µπορεί να γραφεί στο δεξί µέλος µιας εντολής εκχώρησης αρκεί στο αριστερό της µέλος να υπάρχει µεταβλητή ή ιδιότητα τύπου Boolean. Σε αυτή την περίπτωση, συνηθίζεται να γράφουµε τη λογική παράσταση χρησιµοποιώντας παρενθέσεις. Σηµείωση: Μια αριθµητική παράσταση µε τιµή µηδέν (0) ισοδυναµεί µε ψευδή λογική παράσταση και µια αριθµητική παράσταση µε τιµή διάφορη του µηδενός ισοδυναµεί µε αληθή λογική παράσταση. Το αντίστροφο ισχύει κάπως διαφορετικά. Μια ψευδής λογική παράσταση ισοδυναµεί µε αριθµητική παράσταση µε τιµή 0 και µια αληθής λογική παράσταση ισοδυναµεί µε αριθµητική παράσταση µε τιµή -1. Παραδείγµατα 1. Οι παρακάτω σύνθετες λογικές παραστάσεις περιέχουν περισσότερες από δύο απλές λογικές παραστάσεις: ((Χ < Υ ) And (Y<Z)) Or (Z<W) (A<B) And ((E<A) Or (E<B)) Not ((X>Y) Or (Not Y>Z)) 2. Στις παρακάτω περιπτώσεις εκχωρείται στη µεταβλητή του αριστερού µέλους η τιµή της λογικής παράστασης του δεξιού µέλους: Χ _LowerThan_Y = (X<Y) Z = X And Y A = B Or C Or E ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 93

94 Παραδείγµατα Παράδειγµα 8.1 (Απλές λογικές παραστάσεις µε αριθµητικές µεταβλητές και εκχώρηση τιµής µιας απλής λογικής παράστασης σε µεταβλητή) Να γραφεί πρόγραµµα που να επαληθεύει το κατά πόσον είναι αληθείς (true) ή ψευδείς (false) οι ακόλουθες λογικές παραστάσεις για διάφορες αριθµητικές τιµές των Α και Β: Α=Β Int(A) <> Fix(A) A ^ 2 > 4 * B 3 - Sin(A) >= Sqr(Abs(B)) Atn(A) < 1 - Tan(B) Log(A) <= Exp(B) Επίσης, να παρατηρηθούν οι διαφορές στη χρήση του & και του +Str(Λογική Μεταβλητή) στην εµφάνιση του αποτελέσµατος µε χρήση του MsgBox. Τα σχόλια να µην πληκτρολογηθούν. Λύση Πρόγραµµα Sub Main() A = InputBox("A=") B = InputBox("B=") Equal = A = B GreaterThan = A ^ 2 > 4 * B LowerThan = Atn(A) < 1 - Tan(B) Unequal = Int(A) <> Fix(A) ' or >< GreaterOrEqual = 3 - Sin(A) >= Sqr(Abs(B)) ' or => LowerOrEqual = Log(A) <= Exp(B) ' or =< MsgBox "Equal = " & Equal & vbcrlf & "GreaterThan = " + Str(GreaterThan) & _ vbcrlf & "LowerThan = " & LowerThan & vbcrlf & "Unequal = " & Unequal & _ vbcrlf & "GreaterOrEqual = " & GreaterOrEqual & vbcrlf & "LowerOrEqual = " & LowerOrEqual End Sub εδοµένα εισόδου Αποτελέσµατα εδοµένα εισόδου Αποτελέσµατα Α = 1, Β = 1 Α = 2, Β = -3 ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 94

95 Παράδειγµα 8.2 (Λογικοί σύνδεσµοι Not, And, Or - Σύνθετες λογικές παραστάσεις µε µεταβλητές τύπου Boolean) Να γραφεί πρόγραµµα που να επαληθεύει το κατά πόσον είναι αληθείς (true) ή ψευδείς (false) οι ακόλουθες λογικές παραστάσεις µεταξύ των λογικών µεταβλητών (τύπου Boolean) Α και Β. Να σηµειωθεί ότι αν η τιµή µιας λογικής µεταβλητής είναι διαφορετική του 0 θεωρείται αληθής (true) και αν είναι ίση µε το 0 θεωρείται ψευδής (false). NotA = Not A S1 = ((A < B) And (-A < -B)) Or (-B < A) AndAB = A And B OrAB = A Or B S2 = (A ^ 2 < B) And ((Abs(B) < Exp(A)) Or (Int(B) < B)) S3 = Not ((A > B) Or (Not -A > -B)) εδοµένα εισόδου Sub Main() Dim A As Boolean Dim B As Boolean A = InputBox("A=") B = InputBox("B=") NotA = Not A AndAB = A And B OrAB = A Or B Λύση Πρόγραµµα S1 = ((A < B) And (-A < -B)) Or (-B < A) S2 = (A ^ 2 < B) And ((Abs(B) < Exp(A)) Or (Int(B) < B)) S3 = Not ((A > B) Or (Not -A > -B)) MsgBox "NotA = " & NotA & vbcrlf & "AndAB = " & AndAB & _ vbcrlf & "OrAB = " & OrAB & vbcrlf & "S1 = " & S1 & _ vbcrlf & "S2 = " & S2 & vbcrlf & "S3 = " & S3 End Sub Αποτελέσµατα εδοµένα εισόδου Αποτελέσµατα εδοµένα εισόδου Αποτελέσµατα εδοµένα εισόδου Αποτελέσµατα Α = 0 Α = 0 Α = 3 Α = -2 Β = 0 Β = -1 Β = 0 Β = 5 ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 95

96 Παράδειγµα 8.3 (Σύγκριση συµβολοσειρών και ειδικών χαρακτήρων) Το παρακάτω πρόγραµµα επαληθεύει το κατά πόσον είναι αληθείς ή ψευδείς οι ακόλουθες λογικές παραστάσεις µε συµβολοσειρές. Λογική παράσταση Σχόλια Αποτέλεσµα ΜΕΓΙΣΤΟΣ > ΜΕΓΑΛΟΣ Αληθές ENTEKA > 11 Οι αριθµοί προηγούνται των γραµµάτων Αληθές minimum > MINIMUM Τα κεφαλαία προηγούνται των µικρών Αληθές ΜΕΓΙΣΤΟ > MAXIMUM Τα ελληνικά έπονται των λατινικών Αληθές KENO > KENO Περισσότεροι χαρακτήρες στον 1 ο όρο Αληθές KENO > KENO Το διάστηµα προηγείται των γραµµάτων Αληθές KBYTE > Kbit Ψευδές Watt! > Watt# Ψευδές Amp > Amperes Ψευδές "25/09/2010" > "25/12/2010" Ψευδές Πρόγραµµα Αποτελέσµατα Sub Main() S1 = "ΜΕΓΙΣΤΟΣ" > "ΜΕΓΑΛΟΣ" S2 = "ENTEKA" > "11" Οι αριθµοί προηγούνται των γραµµάτων S3 = "minimum" > "MINIMUM" Τα κεφαλαία προηγούνται των µικρών S4 = "ΜΕΓΙΣΤΟ" > "MAXIMUM" Τα ελληνικά έπονται των λατινικών S5 = "KENO " > "KENO" Περισσότεροι χαρακτήρες στον 1 ο όρο S6 = "KENO" > " KENO" Το διάστηµα προηγείται των γραµµάτων S7 = "KBYTE" > "Kbit" S8 = "Watt!" > "Watt#" S9 = "Amp" > "Amperes" S10 = "25/09/2010" > "25/12/2010" MsgBox "S1 = " & S1 & vbcrlf & "S2 = " & S2 & vbcrlf & "S3 = " & S3 & _ vbcrlf & "S4 = " & S4 & vbcrlf & "S5 = " & S5 & vbcrlf & "S6 = " & S6 & _ vbcrlf & "S7 = " & S7 & vbcrlf & "S8 = " & S8 & vbcrlf & "S9 = " & S9 & _ vbcrlf & "S10 = " & S10 End Sub Να γραφεί πρόγραµµα που να συγκρίνει ορισµένους από τους ειδικούς χαρακτήρες του πληκτρολογίου # $ κλπ). Συγκεκριµένα, θα πρέπει να δέχεται δύο χαρακτήρες και τα αποτελέσµατα του προγράµµατος θα καθορίζουν ποιος θα είναι ο τελεστής ( < ή > ) στον παρακάτω πίνακα συγκρίσεων: ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 96

97 α/α Χαρακτήρας Τελεστής Χαρακτήρας α/α Χαρακτήρας Τελεστής Χαρακτήρας 10 - _ # 11 _ + 3 # $ 12 + = 4 $ % 13,. 5 % ^ 14? ; 6 ^ & 15 < > 7 & * 16 8 * ( 17 [ ] 9 ( ) 18 { } Λύση Με βάση το ακόλουθο πρόγραµµα, εισάγουµε τους ειδικούς χαρακτήρες και αν το αποτέλεσµα είναι αληθές τότε ο τελεστής είναι ο > ενώ αν είναι ψευδές, ο τελεστής είναι ο <. Sub Main() Dim A As String Dim B As String A = InputBox("A=") B = InputBox("B=") AB = A > B MsgBox "AB = " & AB End Sub Πρόγραµµα Ερωτήσεις και ασκήσεις ανακεφαλαίωσης 1. Ποιοι είναι οι συγκριτικοί τελεστές στη γλώσσα Visual Basic και τι εκφράζει ο καθένας από αυτούς ; Ποιοι είναι οι λογικοί τελεστές (ή σύνδεσµοι) στη γλώσσα Visual Basic και τι εκφράζει ο καθένας από αυτούς; 2. Τι ισχύει στην περίπτωση σύγκρισης δύο αλφαριθµητικών ποσοτήτων (συµβολοσειρών) στη Visual Basic; Σε ποιους κανόνες βασίζεται ο έλεγχος αληθείας µιας σύνθετης λογικής παράστασης ; 3. Να αναφέρετε ονοµαστικά τις µεταβλητές για τα Παραδείγµατα 8.1 και Να σηµειώσετε ποιες από τις παρακάτω εκχωρήσεις τιµής σε λογική παράσταση ή λογικές παραστάσεις είναι σωστές στη Visual Basic. Αν είναι λάθος, να δώσετε την σωστή εκδοχή. α/α Εκχώρηση τιµής σε λογική παράσταση Σωστό/Λάθος α/α Λογική παράσταση Σωστό/Λάθος 1 AB = A < B 5 (Α > 5) And (B > 100) 2 AB = A = B 6 (a = b) And (b = c) 3 ABC = (A = B = C) 7 (a = b) Or (b = c) Or (c = a) 4 AB = (-A < B < = A) 8 (A <> B) Or (B >< C) 5. Να δώσετε το αποτέλεσµα (T για True, F για False) των ακόλουθων λογικών παραστάσεων για τις αντίστοιχες τιµές των Α και Β. Α = 0, Β = 0 Α=0, Β=10 Α = -5, Β = 0 Α = 1, Β = -1 Αποτέλεσµα Αποτέλεσµα Αποτέλεσµα Αποτέλεσµα A > = B A <> B A And B A Or (Not A) ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 97

98 Μάθηµα 9. ΟΜΗ ΕΠΙΛΟΓΗΣ IF THEN ELSE Η δοµή επιλογής If Then Else (ΕΑΝ ΤΟΤΕ ΑΛΛΙΩΣ) χρησιµοποιείται για την εκτέλεση µιας οµάδας εντολών, αν η τιµή µιας λογικής παράστασης (συνθήκης) είναι αληθής και για την εκτέλεση µιας άλλης οµάδας εντολών, αν η τιµή µιας λογικής παράστασης είναι ψευδής (δεν ικανοποιείται η προηγούµενη συνθήκη). Η γενική µορφή της προγραµµατιστικής δοµής επιλογής If Then Else έχει ως εξής: If συνθήκη Then εντολή-1 Οµάδα εντολών για εντολή-2 συνθήκη αληθή : Else εντολή-3 Οµάδα εντολών για εντολή-4 συνθήκη ψευδή : End If όπου συνθήκη, µια λογική (απλή ή σύνθετη) ή µια αριθµητική παράσταση. Η δοµή επιλογής If Then Else λειτουργεί ως εξής: 1. Ελέγχεται η συνθήκη, δηλαδή υπολογίζεται η αλήθεια της λογικής παράστασης 2. Αν η συνθήκη είναι αληθής εκτελείται η πρώτη οµάδα εντολών (εντολή-1, εντολή-2, ) που περιλαµβάνονται µεταξύ της γραµµής If Then και της γραµµής Else και η δεύτερη οµάδα εντολών (εντολή-3, εντολή-4, ) µεταξύ της γραµµής Else και της γραµµής End If (ΤΕΛΟΣ_ΕΑΝ) αγνοείται. Αν όµως η συνθήκη είναι ψευδής, αγνοείται η πρώτη οµάδα εντολών και εκτελείται η δεύτερη οµάδα εντολών. 3. Η εκτέλεση του προγράµµατος συνεχίζεται µε την εντολή που ακολουθεί την End If Η σχηµατική παράσταση (µπλοκ διάγραµµα) της δοµής επιλογής If Then Else φαίνεται στο παρακάτω σχήµα. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 98

99 Αν µετά τις κωδικές λέξεις Then και Else είχαµε να γράψουµε από µία µόνο εντολή, µπορούµε να συµπτύξουµε τον τρόπο γραφής σε µία γραµµή και να παραλείψουµε την κωδική λέξη End If. Η σύνταξη της δοµής έχει ως εξής: If Συνθήκη Then Εντολή Else Εντολή Μια πιο απλή µορφή της δοµής επιλογής είναι η εντολή If Then. Στην περίπτωση αυτή µας αρκεί η εκτέλεση µιας οµάδας εντολών όταν ικανοποιείται µια συνθήκη αλλά δε θέλουµε να γίνει κάποια άλλη λειτουργία στην περίπτωση που δεν ικανοποιείται η συγκεκριµένη συνθήκη. Η δοµή If Then λειτουργεί ως εξής: If συνθήκη Then εντολή-1 Οµάδα εντολών για εντολή-2 συνθήκη αληθή : End If Η παραπάνω δοµή λειτουργεί ως εξής: 1. Ελέγχεται η συνθήκη, δηλαδή υπολογίζεται η αλήθεια της λογικής παράστασης 2. Αν η συνθήκη είναι αληθής εκτελείται η οµάδα εντολών (εντολή-1, εντολή-2, ) µεταξύ If Then και End If αγνοείται. Αν η συνθήκη είναι ψευδής, η οµάδα εντολών δεν θα εκτελεστεί καθόλου (θα αγνοηθεί). 3. Η εκτέλεση του προγράµµατος συνεχίζεται µε την εντολή που ακολουθεί την End If Η δεσµευµένη λέξη End If προσδιορίζει το τέλος της δοµής απόφασης If Then, είναι µη εκτελέσιµη εντολή και πρέπει απαραίτητα να υπάρχει. Είναι προαιρετική µόνο στην περίπτωση που µετά τη δεσµευµένη λέξη Then ακολουθεί µια και µόνο εντολή, τότε η σύνταξη της δοµής If Then µπορεί να έχει την ακόλουθη µορφή: If Συνθήκη Then Εντολή ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 99

100 Σηµείωση 1: Σαν συνθήκη µπορεί να χρησιµοποιηθεί και αριθµητική παράσταση. Μια αριθµητική παράσταση µε τιµή µηδέν (0) ισοδυναµεί µε ψευδή λογική παράσταση και µια αριθµητική παράσταση µε τιµή διάφορη του µηδενός ισοδυναµεί µε αληθή λογική παράσταση. Σηµείωση 2: Το αντίστροφο ισχύει κάπως διαφορετικά. Μια ψευδής λογική παράσταση ισοδυναµεί µε αριθµητική παράσταση µε τιµή 0 και µια αληθής λογική παράσταση ισοδυναµεί µε αριθµητική παράσταση µε τιµή -1. Περισσότερες από µία συνεχόµενες δοµές If Then. Όταν υπάρχουν περισσότερες από µία συνεχόµενες δοµές If Then, τότε κάθε υποθετική δοµή αποτιµάται ατοµικά και µε τη σειρά που έχουν γραφεί οι δοµές, ανεξάρτητα από τα αποτελέσµατα της προηγούµενης εντολής If. Ένα παράδειγµα τέτοιας περίπτωσης είναι οι ακόλουθες συνεχόµενες δοµές: Y = 0 If X > 4 Then Y = 4 + Y If X > 3 Then Y = 3 + Y If X > 2 Then Y = 2 + Y If X > 1 Then Y = 1 + Y Παραδείγµατα 1. Παρατηρείστε ότι οι δύο παρακάτω δοµές είναι ισοδύναµες. Η πρώτη δοµή χρησιµοποιεί τη δεσµευµένη λέξη End If ενώ η δεύτερη δεν την χρησιµοποιεί. 1 η δοµή 2 η δοµή (ισοδύναµα) If MemberNo <=120 Then If MemberNo<=120 Then Price=10000 Price=10000 End If 2. Το ακόλουθο τµήµα προγράµµατος υπολογίζει την απόλυτη τιµή ενός αριθµού: AbsoluteValue = Number If Number < 0 Then AbsoluteValue = -Number ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 100

101 Στην πρώτη εντολή καταχωρείται η τιµή του Number στη µεταβλητή AbsoluteValue. Στη δεύτερη γραµµή, αν ο αριθµός Number είναι αρνητικός, τότε καταχωρείται στη µεταβλητή AbsoluteValue ο αντίθετος του αριθµού Number, οπότε υπολογίστηκε η απόλυτη τιµή του αριθµού Number. Αν ο Number είναι θετικός ή µηδέν, η δεύτερη γραµµή εντολών δεν εκτελείται καθόλου. 3. Οι παρακάτω δοµές επιστρέφουν ένα µήνυµα ανάλογα µε την τιµή µιας µεταβλητής: 1 η δοµή 2 η δοµή If Score >= 20 Then If grade >= 5 Then Prize=10000 MsgBox "Περνάει" MsgBox "Κερδίσατε!" Else End If MsgBox "Απορρίπτεται" End If 4. Στο παρακάτω πρόγραµµα, εάν η συνθήκη LeapYear="Yes" είναι αληθής τότε εκτελείται η εντολή DaysInFebruary=29, εάν όµως η συνθήκη είναι ψευδής τότε εκτελείται η εντολή DaysInFebruary=28. If LeapYear = "Yes" Then DaysInFebruary = 29 Else DaysInFebruary = 28 End If 5. Τα παρακάτω προγράµµατα είναι ισοδύναµα. 1 ο πρόγραµµα 2 ο πρόγραµµα If (Sales > ) Then If (UnitSold > 100) Then Bonus = 5000 If (Sales > ) And (UnitSold > 100) Then End If Bonus = 5000 End If End If ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 101

102 Παραδείγµατα Παράδειγµα 9.1 (Εισαγωγή στην δοµή επιλογής If Then Else - Υπολογισµός µέγιστου αριθµού) Να γραφεί πρόγραµµα που να δέχεται δύο αριθµούς και να επιστρέφει τον µεγαλύτερο. Λύση Έστω ότι στις µεταβλητές Α και Β έχουν καταχωρηθεί δύο αριθµοί. Το ακόλουθο πρόγραµµα καταχωρεί τον µεγαλύτερο από τους δύο αριθµούς στη µεταβλητή Max. ηλαδή, αν Α>Β εκτελείται η εντολή µεταξύ Then και Else (εκχώρηση της τιµής του Α στη βοηθητική µεταβλητή Max), ενώ αν Α Β, εκτελείται η εντολή που υπάρχει µετά την κωδική λέξη Else (εκχώρηση της τιµής του B στη βοηθητική µεταβλητή Max). Sub Main() Dim A As Single, B As Single A = InputBox("A=") B = InputBox("B=") Πρόγραµµα If A > B Then Max = A Else Max = B ' ισοδύναµα: ' If A > B Then ' Max = A ' Else ' Max = B ' End If MsgBox "Max=" + Str(Max) End Sub εδοµένα εισόδου Αποτελέσµατα εδοµένα εισόδου Αποτελέσµατα Α = 0, Β = 0 Α = 2, Β = 1 εδοµένα εισόδου Αποτελέσµατα εδοµένα εισόδου Αποτελέσµατα Α = 3, Β = 5 Α = -3, Β = -1 ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 102

103 Παράδειγµα 9.2 (Εντολές του If Then σε µία γραµµή - Υπολογισµός µέγιστου και ελάχιστου αριθµού) Να γραφεί πρόγραµµα που να δέχεται δύο αριθµούς Min και Max διαφορετικούς µεταξύ τους και να καταχωρεί τον µεγαλύτερο αριθµό στη µεταβλητή Max και τον µικρότερο στη µεταβλητή Min ακόµη και αν έχει δοθεί ως αριθµός Min µεγαλύτερος από τον αριθµό Max. Να χρησιµοποιηθεί µια βοηθητική µεταβλητή µε όνοµα Temp. Λύση Με το παρακάτω πρόγραµµα ικανοποιείται η απαίτηση να βρίσκεται ο µεγαλύτερος δύο αριθµών στη µεταβλητή Max και στη µεταβλητή Min ο µικρότερός τους. Πράγµατι, αν στη µεταβλητή Min καταχωρηθεί αριθµός µεγαλύτερος από αυτόν της µεταβλητής Max, θα εκτελεστούν οι εντολές στο εσωτερικό της δοµής, οι οποίες θα αντιµεταθέσουν το περιεχόµενο των µεταβλητών. Αν στη µεταβλητή Min καταχωρηθεί αριθµός µικρότερος ή ίσος από αυτόν της µεταβλητής Max δεν θα εκτελεστεί καµία εντολή από το εσωτερικό της δοµής και οι µεταβλητές µετά από την End If θα διατηρήσουν τις επιθυµητές τιµές. Πρόγραµµα Sub Main() Min = InputBox("Min=") Max = InputBox("Max=") If Min > Max Then Temp = Max: Max = Min: Min = Temp ' ισοδύναµα: ' If Min > Max Then ' Temp = Max ' Max = Min ' Min = Temp ' End If ' Εναλλακτική δοµή σε µία γραµµή: If Min > Max Then Temp = Min: Min = Max: Max = Temp MsgBox "Max=" + Str(Max) & vbcrlf & "Min=" + Str(Min) End Sub εδοµένα εισόδου Αποτελέσµατα εδοµένα εισόδου Αποτελέσµατα Min = 2, Max = 5 Min = 7, Max = 6 εδοµένα εισόδου Αποτελέσµατα εδοµένα εισόδου Αποτελέσµατα Min = 0, Max = -3 Min = 7, Max = -8 ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 103

104 Παράδειγµα 9.3 ( οµές επιλογής µε σύνθετη λογική συνθήκη και επιστροφή µια συµβολοσειρά) Α. Το παρακάτω πρόγραµµα δέχεται την τιµή της θερµοκρασίας σε 0 C και επιστρέφει µια συµβολοσειρά ως εξής: Αν η θερµοκρασία είναι µικρότερη από 20 0 C τότε επιστρέφει το µήνυµα COLD Αν η θερµοκρασία είναι µεταξύ 20 και 35 0 C τότε επιστρέφει το µήνυµα WARM Αν η θερµοκρασία είναι µεγαλύτερη από 35 0 C τότε επιστρέφει το µήνυµα HOT Πρόγραµµα Sub Main() t = InputBox("Temperature =") If (t < 20) Then MsgBox "COLD" If (t >= 20) And (t <= 35) Then MsgBox "WARM" If (t > 35) Then MsgBox "HOT" End Sub Αποτελέσµατα t =-5 t = 20 t = 36 Β. Να γραφεί πρόγραµµα που δέχεται την rms τιµή της πολικής τάσης σε kv και επιστρέφει µια συµβολοσειρά για το επίπεδο τάσης ως εξής: Αν 0 kv τάση 1 kv, τότε επιστρέφει το µήνυµα LOW Αν 1 kv < τάση 38 kv, τότε επιστρέφει το µήνυµα MEDIUM Αν τάση > 38 kv, τότε επιστρέφει το µήνυµα HIGH Αν τάση < 0 kv, τότε επιστρέφει το µήνυµα NOT ACCEPTABLE VALUE Sub Main() kv = InputBox("kV=") Λύση Πρόγραµµα If (kv >= 0) And (kv <= 1) Then MsgBox "LOW" If (kv > 1) And (kv <= 38) Then MsgBox "MEDIUM" If kv > 38 Then MsgBox "HIGH" If kv < 0 Then MsgBox "NOT ACCEPTABLE VALUE" End Sub ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 104

105 Αποτελέσµατα kv=-10 kv=0,4 kv=20 kv=150 Παράδειγµα 9.4 (Παραστάσεις, συναρτήσεις και υποθετικές εντολές) Το παρακάτω πρόγραµµα υπολογίζει την τιµή µιας συνάρτησης µε βάση τις ακόλουθες συνθήκες: F(x) = 0 αν x > 3 F( x) x 2 = 9 σε κάθε άλλη περίπτωση Λύση Πρόγραµµα Sub Main() x = InputBox("x=") If Abs(x) > 3 Then F = 0 Else F = Sqr(9 - x ^ 2) MsgBox "F(x) = " + Str(F) End Sub Αποτελέσµατα x = 0 x = 1 x = 2 Παράδειγµα 9.5 (Περισσότερες από µία και συνεχόµενες εντολές If Then) Το παρακάτω πρόγραµµα περιλαµβάνει περισσότερες από µία εντολές If Then σε συνεχόµενες γραµµές. Στο πρόγραµµα αυτό καταχωρείται στην µεταβλητή Y η τιµή µιας παράστασης, όπου η παράσταση διαφέρει ανάλογα µε τη συνθήκη για τη µεταβλητή εισόδου Χ. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 105

106 Πρόγραµµα Τιµές του Υ βήµα-βήµα Sub Main() X = InputBox("X=") Χ = 5 Χ = 2 Χ = 0 Y = 0 Συνθήκη Υ Συνθήκη Υ Συνθήκη Υ If X > 4 Then Y = 4 + Y 5>4(Αληθής) Υ=4+0=4 2>4(Ψευδής) If X > 3 Then Y = 3 + Y 5>3(Αληθής) Υ=3+4=7 2>3(Ψευδής) If X > 2 Then Y = 2 + Y 5>2(Αληθής) Υ=2+7=9 2>2(Ψευδής) Υ=0 (καµία εκχώρηση τιµής) Υ=0 (καµία εκχώρηση τιµής) Υ=0 (καµία εκχώρηση τιµής) 0>4(Ψευδής) Υ=0 0>3(Ψευδής) Υ=0 0>2(Ψευδής) Υ=0 If X > 1 Then Y = 1 + Y 5>1(Αληθής) Υ=1+9=10 2>1(Αληθής) Υ=1+0=1 0>1(Ψευδής) Υ=0 MsgBox "Y = " & Y End Sub Υ = 10 Υ = 1 Υ = 0 (καµία εκχώρηση τιµής) εδοµένα εισόδου Αποτελέσµατα εδοµένα εισόδου Αποτελέσµατα εδοµένα εισόδου Αποτελέσµατα Χ = 5 Χ = 2 Χ = Ερωτήσεις και ασκήσεις ανακεφαλαίωσης 1. Ποιοι είναι η γενική µορφή σύνταξης της δοµής επιλογής If Then Else ; Σε ποιές ελληνικές λέξεις αντιστοιχούν οι τρεις αυτές αγγλικές λέξεις; 2. Σε ποια περίπτωση µπορούµε να γράψουµε τη συγκεκριµένη δοµή σε µία µόνο γραµµή; Τι άλλο ισχύει σε αυτή την περίπτωση; 3. Τι ισχύει στην περίπτωση που η συνθήκη της δοµής επιλογής είναι αριθµητική παράσταση; 4. Τι ισχύει στην περίπτωση που σε ένα πρόγραµµα περιλαµβάνονται περισσότερες από µία δοµές If Then διαδοχικά; 5. Να αναφέρετε τις µεταβλητές για καθένα από τα προηγούµενα παραδείγµατα-ασκήσεις. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 106

107 Μάθηµα 10. ΟΜΗ ΕΠΙΛΟΓΗΣ IF THEN ELSEIF 1. οµή επιλογής If Then ElseIf. Όταν πρέπει να ελεγχθούν περισσότερες από µία συνθήκες στη σειρά και ο έλεγχος να σταµατήσει στην πρώτη που ικανοποιείται για να εκτελεστούν οι εντολές της αντίστοιχης οµάδας, µπορεί να χρησιµοποιηθεί µια πιο σύνθετη δοµή, η δοµή If Then ElseIf (ΕΑΝ ΤΟΤΕ ΑΛΛΙΩΣ_ΕΑΝ). 2. Γενική σύνταξη της δοµής επιλογής If Then ElseIf. Η γενική σύνταξη της δοµής επιλογής If Then ElseIf έχει ως εξής: If συνθήκη1 Then εντολή 1_1 : εντολή 1_2 ElseIf συνθήκη2 Then Else End If εντολή 2_1 : εντολή 2_2 εντολή v_1 εντολή v_2 : Οµάδα εντολών για συνθήκη αληθή Οµάδα εντολών για συνθήκη2 αληθή Οµάδα εντολών για όλες τις συνθήκες ψευδείς 3. Λειτουργία της δοµής If Then ElseIf. Αρχικά ελέγχεται η συνθήκη1. Αν είναι αληθής εκτελείται η πρώτη οµάδα εντολών αλλά αν είναι ψευδής ελέγχεται η επόµενη συνθήκη, δηλαδή η συνθήκη2. Αν η συνθήκη2 είναι αληθής εκτελείται η δεύτερη οµάδα εντολών ενώ αν είναι ψευδής ελέγχεται η επόµενη συνθήκη κ.ο.κ έως ότου εξαντληθούν όλες οι συνθήκες, οπότε εκτελούνται οι εντολές της οµάδας Else (αν υπάρχουν). Μετά την εκτέλεση µιας οµάδας εντολών, όλες οι άλλες οµάδες που ακολουθούν αγνοούνται. 4. Σειρά δήλωσης των συνθηκών της δοµής If Then ElseIf. H σειρά δήλωσης των συνθηκών σε µια δοµή If Then ElseIf όπως και σε µια δοµή If Then Else είναι πολύ σηµαντική γιατί µπορεί να δώσει λάθος αποτέλεσµα. Η σηµασία της σειράς δήλωσης των συνθηκών σε ορισµένες περιπτώσεις, θα γίνει πιο ξεκάθαρη στις ασκήσεις που ακολουθούν. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 107

108 5. Ισοδύναµες δοµές επιλογής If Then και If Then ElseIf. Πολλές περιπτώσεις προβληµάτων µπορούν να λυθούν ισοδύναµα τόσο µε συνεχόµενες δοµές If Then όσο και µε δοµές If Then ElseIf. 6. Εντολές σε µία γραµµή. Όπως και µε τη δοµή If Then έτσι και µε τη δοµή If Then ElseIf οι εντολές µετά το ElseIf Then µπορούν να γραφούν σε µία γραµµή αλλά όχι και στο πρώτο If Then της δοµής If Then ElseIf. Αν υπάρχουν περισσότερες από µία εντολές, αυτές µπορούν να συνενωθούν µε χρήση του χαρακτήρα : που έχουµε δει σε προηγούµενα µαθήµατα ως χαρακτήρα για τη συνένωση εντολών. Επίσης, οι εντολές µετά το Else µπορούν να γραφούν σε µία γραµµή µε προσθήκη (γίνεται και αυτόµατα από το Περιβάλλον Εργασίας της Visual Basic) του ίδιου χαρακτήρα συνένωσης εντολών :. Το παράδειγµα που ακολουθεί, απεικονίζει τους κανόνες γραφής των εντολών σε µία γραµµή σε µία δοµή If Then ElseIf. 1 ο Πρόγραµµα 2 ο Πρόγραµµα (ισοδύναµο) Sub Main() kv = InputBox("kV=") If (kv >= 0) And (kv <= 1) Then x = "L" V = "V" ElseIf (kv > 1) And (kv <= 38) Then x = "M" V = "V" ElseIf kv > 38 Then x = "H" V = "V" ElseIf kv < 0 Then x = "?" V = "V" Else x = "?" V = "V" End If MsgBox x + V End Sub Sub Main() kv = InputBox("kV=") If (kv >= 0) And (kv <= 1) Then x = "L": V = "V" ElseIf (kv > 1) And (kv <= 38) Then x = "M": V = "V" ElseIf (kv > 38) And (kv <= 700) Then x = "H": V = "V" ElseIf kv < 0 Then x = "?": V = "V" Else: x = "?": V = "V" End If MsgBox x + V End Sub ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 108

109 Παραδείγµατα Παράδειγµα 10.1 ( οµή επιλογής If Then ElseIf ) Ας εξετάσουµε ξανά το πρόγραµµα που δέχεται την rms τιµή της πολικής τάσης σε kv και επιστρέφει µια συµβολοσειρά για το επίπεδο τάσης ως εξής: Αν 0 kv τάση 1 kv, τότε επιστρέφει το µήνυµα LOW Αν 1 kv < τάση 38 kv, τότε επιστρέφει το µήνυµα MEDIUM Αν τάση > 38 kv, τότε επιστρέφει το µήνυµα HIGH Αν τάση < 0 kv, τότε επιστρέφει το µήνυµα NOT ACCEPTABLE Το πρόγραµµα αυτό υλοποιήθηκε σε προηγούµενο µάθηµα µε συνεχόµενες δοµές επιλογής If Then. Το συγκεκριµένο πρόγραµµα µπορεί να υλοποιηθεί ισοδύναµα µε τη δοµή επιλογής If Then ElseIf και µάλιστα µε δύο διαφορετικούς τρόπους. 1 ος Τρόπος: Μπορούµε να χρησιµοποιήσουµε τις ίδιες ακριβώς συνθήκες που χρησιµοποιήσαµε στην προηγούµενη υλοποίηση µε τις δοµές If Then αλλά από τη 2 η δοµή και µετά αντί για If να χρησιµοποιούµε το ElseIf. Ο τρόπος αυτός φαίνεται στο 1 ο Πρόγραµµα που ακολουθεί. 2 ος Τρόπος: Μπορούµε έµµεσα να υλοποιήσουµε τα διαστήµατα που ορίζονται από την εκφώνηση της άσκησης για την τάση kv µε σχέσεις < ή <= και τιµή στα δεξιά την µικρότερη που ορίζεται από την άσκηση (πλάγια έντονα γράµµατα) η οποία αυξάνεται σε κάθε επόµενη συνθήκη του ElseIf σύµφωνα µε τα δεδοµένα της άσκησης. Ο τρόπος αυτός φαίνεται στο 2 ο Πρόγραµµα. 1 ο Πρόγραµµα 2 ο Πρόγραµµα Sub Main() Sub Main() kv = InputBox("kV=") kv = InputBox("kV=") If (kv >= 0) And (kv <= 1) Then If kv < 0 Then Level = "LOW" Level = "NOT ACCEPTABLE" ElseIf (kv > 1) And (kv <= 38) Then ElseIf kv <= 1 Then Level = "MEDIUM" Έµµεση υλοποίηση διαστήµατος [0,1] ElseIf kv > 38 Then Level = "LOW" Level = "HIGH" ElseIf kv <= 38 Then ElseIf kv < 0 Then Έµµεση υλοποίηση διαστήµατος (1,38] Level = "NOT ACCEPTABLE" Level = "MEDIUM" End If Else MsgBox Level Ισοδύναµα: ElseIf kv > 38 End Sub Level = "HIGH" End If MsgBox Level End Sub Αποτελέσµατα kv=-10 kv=0,4 kv=20 kv=150 ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 109

110 Παράδειγµα 10.2 (Χαρακτηρισµός βαθµολογίας µε κατάλληλη σειρά εντολών If Then ή µε ισοδύναµη χρήση της δοµής If Then ElseIf ) Α. Τα παρακάτω δύο προγράµµατα είναι ισοδύναµα, δηλαδή εκτελούν την ίδια λειτουργία. Συγκεκριµένα, ανάλογα µε τον βαθµό εξέτασης G σε ένα µάθηµα, επιστρέφουν ένα µήνυµα που χαρακτηρίζει τον συγκεκριµένο βαθµό εξέτασης σύµφωνα µε τις ακόλουθες συνθήκες: Αν 0 G < 5, τότε ο βαθµός εξέτασης χαρακτηρίζεται ΚΑΚΟΣ Αν 5 G <7, τότε ο βαθµός εξέτασης χαρακτηρίζεται ΚΑΛΟΣ Αν 7 G <9, τότε ο βαθµός εξέτασης χαρακτηρίζεται ΠΟΛΥ ΚΑΛΟΣ Αν 9 G 10, τότε ο βαθµός εξέτασης χαρακτηρίζεται ΑΡΙΣΤΑ Όταν ο βαθµός που δίνεται είναι εκτός του εύρους 0-10 επιστρέφει το µήνυµα "ΕΚΤΟΣ ΕΥΡΟΥΣ 0-10" Το 1 ο πρόγραµµα περιλαµβάνει συνεχόµενες δοµές If Then µε έµµεση υλοποίηση των διαστηµάτων του G που ορίζουν τα δεδοµένα της άσκησης. Το 2 ο πρόγραµµα περιλαµβάνει επίσης συνεχόµενες δοµές If Then µε όµοια διαστήµατα του G µε αυτά που ορίζει η άσκηση. 1 ο Πρόγραµµα 2 ο Πρόγραµµα Sub Main() G = InputBox("G =") If G <= 10 Then F = "ΑΡΙΣΤΑ" If G < 9 Then F = "ΠΟΛΥ ΚΑΛΟΣ" If G < 7 Then F = "ΚΑΛΟΣ" If G < 5 Then F = "ΚΑΚΟΣ" If G < 0 Then F = "ΕΚΤΟΣ ΕΥΡΟΥΣ 0-10" If G > 10 Then F = "ΕΚΤΟΣ ΕΥΡΟΥΣ 0-10" MsgBox F End Sub Sub Main() G = InputBox("G =") If (G >= 0) And (G < 5) Then MsgBox "ΚΑΚΟΣ" 'ΛΑΘΟΣ: If (0=< G<=5) Then MsgBox "ΚΑΚΟΣ" If (G >= 5) And (G < 7) Then MsgBox "ΚΑΛΟΣ" 'ΛΑΘΟΣ: If (5=< G <=7) Then MsgBox "ΚΑΛΟΣ" If (G >= 7) And (G < 9) Then MsgBox "ΠΟΛΥ ΚΑΛΟΣ" 'ΛΑΘΟΣ: If (7=< G <=8.5) Then MsgBox "ΠΟΛΥ ΚΑΛΟΣ" If (G >= 9) And (G <= 10) Then MsgBox "ΑΡΙΣΤΑ" 'ΛΑΘΟΣ: If (9=< G <=10) Then MsgBox "ΑΡΙΣΤΑ" If (G < 0) Or (G > 10) Then MsgBox "ΕΚΤΟΣ ΕΥΡΟΥΣ 0-10" 'ΛΑΘΟΣ: If (10< G <0) Then MsgBox "ΕΚΤΟΣ ΕΥΡΟΥΣ 0-10" End Sub Αποτελέσµατα G = -2 G = 3,5 G = 5 ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 110

111 G = 7 G = 9 G = 11 Β. Να γραφεί ισοδύναµο πρόγραµµα µε χρήση της δοµής επιλογής If Then ElseIf. Λύση 3 ο Πρόγραµµα 3 ο Πρόγραµµα (Παραλλαγή) Sub Main() G = InputBox("G =") If G < 0 Then F = "ΕΚΤΟΣ ΕΥΡΟΥΣ 0-10" ElseIf G < 5 Then F = "ΚΑΚΟΣ" ElseIf G < 7 Then F = "ΚΑΛΟΣ" ElseIf G < 9 Then F = "ΠΟΛΥ ΚΑΛΟΣ" ElseIf G < 10 Then F = "ΑΡΙΣΤΑ" Else F = " ΕΚΤΟΣ ΕΥΡΟΥΣ 0-10" End If MsgBox F End Sub Sub Main() G = InputBox("G =") If G < 0 Then MsgBox "ΕΚΤΟΣ ΕΥΡΟΥΣ 0-10" ElseIf G < 5 Then MsgBox "ΚΑΚΟΣ" ElseIf G < 7 Then MsgBox "ΚΑΛΟΣ" ElseIf G < 9 Then MsgBox "ΠΟΛΥ ΚΑΛΟΣ" ElseIf G < 10 Then MsgBox "ΑΡΙΣΤΑ" Else MsgBox " ΕΚΤΟΣ ΕΥΡΟΥΣ 0-10" End If End Sub ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 111

112 Παράδειγµα 10.3 (Μετατροπή µιγαδικού αριθµού από καρτεσιανή σε πολική µορφή) Να γραφεί πρόγραµµα µε χρήση της δοµής επιλογής If Then ElseIf για τη µετατροπή ενός µιγαδικού αριθµού a + j b από την καρτεσιανή σε πολική µορφή (µέτρο και γωνία) µε βάση τις ακόλουθες σχέσεις και συνθήκες: Το µέτρο µιγαδικού δίδεται από τη σχέση: Μέτρο = a 2 + b 2 Η γωνία φ του µιγαδικού να υπολογίζεται σε µοίρες µε βάση τα ακόλουθα: b Αν a > 0 και b 0 τότε : φ = tan -1 ( ) σε µοίρες ( 0 ) a b Αν a < 0 και b 0 τότε : φ = tan -1 ( ) σε µοίρες ( 0 ) a Αν a = 0 και b > 0 τότε : φ = 90 0 Αν a = 0 και b < 0 τότε : φ = Αν b = 0 και a > 0 τότε : φ = 0 0 Αν b = 0 και a < 0 τότε : φ = Υπόδειξη 1: Η µετατροπή ακτινίων (rads) σε µοίρες ( 0 ) για το αποτέλεσµα του Τοξεφ γίνεται από τη σχέση: Τοξεφ 180 / π Υπόδειξη 2: Για τον υπολογισµό του π να χρησιµοποιηθεί η σχέση : π = 4 * Atn(1) Ενδεικτικά αποτελέσµατα Αποτελέσµατα a = 1 b = 1 a =1 b = -1 a = -1 b = 1 a = -1 b = -1 ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 112

113 a = 0 b = 1 a = 0 b = -1 a = 1 b = 0 a = -1 b = 0 Πρόγραµµα Sub Main() a = InputBox("a=") b = InputBox("b=") Metro = Sqr(a ^ 2 + b ^ 2) π = 4 * Atn(1) If (a > 0) And (b <> 0) Then Gwnia = Atn(b / a) * 180 / π ElseIf (a < 0) And (b <> 0) Then Gwnia = Atn(b / a) * 180 / π ElseIf (a = 0) And (b > 0) Then Gwnia = 90 ElseIf (a = 0) And (b < 0) Then Gwnia = -90 ElseIf (b = 0) And (a > 0) Then Gwnia = 0 ElseIf (b = 0) And (a < 0) Then Gwnia = 180 End If MsgBox "Metro= " + Str(Metro) & vbcrlf & "Gwnia= " + Str(Gwnia) End Sub ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 113

114 Παράδειγµα 10.4 (Υπολογισµός τιµής συνάρτησης τριών µεταβλητών µε υποθετικές εντολές) Να γραφεί πρόγραµµα υπολογισµού της τιµής µιας συνάρτησης F3(x, y, z) τριών µεταβλητών x, y, z µε βάση τις ακόλουθες σχέσεις και συνθήκες: F3 = x y f όπου : f = 2,5 αν z 3 f = 1,7 αν z < 2 f = 2,1 σε κάθε άλλη περίπτωση Λύση Πρόγραµµα Sub Main() Dim x As Single, y As Single, z As Single, F3 As Single x = InputBox("x=") y = InputBox("y=") z = InputBox("z=") If z >= 3 Then f = 2.5 ElseIf z < 2 Then f = 1.7 Else f = 2.1 End If F3 = x * y * f MsgBox " F3= " + Str(F3) End Sub Αποτελέσµατα x=1 y=1 z=10 x=3 y=-5 z=-5 x=-2 y=0 z=0 x=-10 y=1 z=-5 ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 114

115 Ερωτήσεις και ασκήσεις ανακεφαλαίωσης 1. Σε ποιες περιπτώσεις χρησιµοποιείται η δοµής επιλογής If Then ElseIf ; Σε ποιες αγγλικές λέξεις αντιστοιχούν αυτές οι τρεις λέξεις; Τι συµβαίνει σε περίπτωση που µια από τις συνθήκες είναι αληθής ; 2. Με ποια λογική επιλέγονται οι συνθήκες σε µια έµµεση υλοποίηση ενός διαστήµατος (π.χ. 0 Χ <3) για τις δοµές If Then ElseIf και τις δοµές If Then ; 3. Να αναφέρετε τις µεταβλητές για καθένα από τα Παραδείγµατα 10.1 έως Να γραφεί πρόγραµµα υπολογισµού της τιµής µιας συνάρτησης F3(x, y, z) τριών µεταβλητών x, y, z µε βάση τις ακόλουθες σχέσεις και συνθήκες: F x ηµ ( x + Ln( x + 2,5 ) = 2 4 x + y ) + συν ( y ) + e f όπου: f = Τοξεφ(z) αν 0 < z 0,5 f = 1,5 αν 0,5 < z 1 f = 2,5 σε κάθε άλλη περίπτωση ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 115

116 Μάθηµα 11. ΟΜΗ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ SELECT CASE Κάποιες φορές είναι επιθυµητή η σύγκριση µιας αριθµητικής ή αλφαριθµητικής παράστασης µε πολλές διαφορετικές τιµές και ανάλογα µε την τιµή τους να εκτελεστεί µια αντίστοιχη οµάδα εντολών. Μια τέτοια λειτουργία µπορεί να κωδικοποιηθεί όπως είδαµε µε τη δοµή If Then ElseIf. Όµως η γλώσσα Visual Basic διαθέτει ακόµη µία δοµή πολλαπλής επιλογής, τη δοµή Select Case (ΕΠΕΛΕΞΕ ΠΕΡΙΠΤΩΣΗ), µε την οποία οι κωδικοποιήσεις γίνονται πιο ευανάγνωστες. Η γενική µορφή της δοµής είναι: Select Case παράσταση Case τιµή1_1, τιµή 1_2, εντολή 1_1 εντολή 1_2 : Case τιµή2_1, τιµή 2_2, εντολή 2_1 εντολή 2_2 : Case Else εντολή v_1 εντολή v_2 : End Select 1 η οµάδα εντολών 2 η οµάδα εντολών Ν-οστή οµάδα εντολών Στην αρχή υπολογίζεται η τιµή της παράστασης και στη συνέχεια συγκρίνεται µε κάθε τιµή της λίστας τιµών που ακολουθεί την πρώτη Case. Αν η τιµή της παράστασης βρεθεί ίση µε µια από αυτές τις τιµές εκτελείται η πρώτη οµάδα εντολών και οι υπόλοιπες οµάδες εντολών αγνοούνται. Αν η τιµή της παράστασης δε βρεθεί ίση µε κάποια από αυτές τις τιµές, αγνοείται η πρώτη οµάδα εντολών και γίνεται έλεγχος µε τις τιµές της δεύτερης Case κ.ο.κ. Αν καµιά από τις τιµές των Case δεν είναι ίση µε την τιµή της παράστασης, εκτελούνται οι εντολές της οµάδας Case Else. Η ύπαρξη της Case Else δεν είναι υποχρεωτική και χρησιµοποιείται ώστε να συµπεριληφθούν οποιεσδήποτε ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 116

117 τιµές µπορεί να µας έχουν διαφύγει. Επίσης, θα πρέπει να σηµειωθεί ότι οι όροι Case και Case Else χρησιµοποιούνται µόνο µέσα στη δοµή Select Case και ποτέ ανεξάρτητα από αυτή. Συγκρίνοντας τη δοµή Select Case µε τη δοµή If Then ElseIf θα πρέπει να σηµειωθεί ότι στη δοµή Select Case χρησιµοποιείται µόνο µία παράσταση της οποίας η τιµή υπολογίζεται στην κορυφή της δοµής ενώ στη δοµή If Then ElseIf υπάρχει η δυνατότητα χρήσης περισσότερων από µία διαφορετικών παραστάσεων, µιας στο If και µιας σε κάθε ElseIf. Αντικατάσταση της δοµής If Then ElseIf µε δοµή Select Case µπορεί να γίνει µόνο αν χρησιµοποιείται η ίδια παράσταση µετά το If και µετά από κάθε ElseIf. Η δοµή Select Case έχει τη δυνατότητα χρήσης συγκριτικών τελεστών (=, <>, >, <, >=, <=). Η δυνατότητα αυτή πραγµατοποιείται µε τη χρήση της δεσµευµένης λέξης Is. Η δεσµευµένη λέξη Is συγκρίνει τη µεταβλητή µε την παράσταση που ακολουθεί τη δεσµευµένη λέξη Is (π.χ. Is<=10). Επίσης, η δοµή Select Case µπορεί να χρησιµοποιήσει τη δεσµευµένη λέξη To για να ορίσει το εύρος τιµών της µεταβλητής (π.χ. 10 To 30). Σηµείωση 1: Η συνθήκη µε το Is δεν επιτρέπεται να µπει σε παρένθεση είτε για απλή είτε για σύνθετη λογική συνθήκη (όταν χρησιµοποιείται ένας από τους λογικούς συνδέσµους And ή Or). Π.χ. η ακόλουθη σύνταξη εµφανίζει µήνυµα λάθους: Case ( Is <=70 ) And Value >= 50 Αντίθετα, η συνθήκη Value >= 50 επιτρέπεται να βρίσκεται µέσα σε παρενθέσεις. Σηµείωση 2: Σε µια σύνθετη λογική συνθήκη, η πρώτη πρέπει υποχρεωτικά να υλοποιείται µε το Is και µάλιστα µε συγκριτικό τελεστή <= ή < και στη δεύτερη να χρησιµοποιείται υποχρεωτικά η µεταβλητή (π.χ. Value). Π.χ. η παρακάτω σειρά είναι επίσης λανθασµένη: Case Is >=50 And Value <= 70 Οι τιµές µετά από κάθε Case στη δοµή Select Case µπορεί να είναι: Αριθµός ή αριθµητική έκφραση (π.χ. 12.2, cos(a)) Αλφαριθµητικό ή έκφραση αλφαριθµητικού (π.χ. "John", NumMonths) ιάστηµα τιµών (π.χ. 15 Τo 20, "C" To "CF") Συγκριτική τιµή (π.χ. Is < 10, Is > "Β") Σύνθετη λογική παράσταση στην οποία υπάρχει ένας από τους λογικούς συνδέσµους Or, And. Συνδυασµός (π.χ. Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber) υπό τον όρο ότι η παράσταση και οι τιµές της πρέπει να είναι ή όλες αριθµητικές ή όλες αλφαριθµητικές. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 117

118 Παραδείγµατα Παράδειγµα 11.1 ( οµή πολλαπλής επιλογής Select Case) Να γραφεί πρόγραµµα µε χρήση της δοµής πολλαπλής επιλογής Select Case που να λειτουργεί ως αριθµοµηχανή, δηλαδή όταν δέχεται έναν από τους τελεστές (operators) +, -, *, /, \ και mod να εκτελεί την αντίστοιχη πράξη µεταξύ δύο αριθµών. Επίσης, όταν δέχεται τον τελεστή ^ να εκτελεί την πράξη x y και όταν δέχεται τον τελεστή ^(1/ να εκτελεί την πράξη 1 y x που αντιστοιχεί στην πράξη y x. Λύση Πρόγραµµα Sub Main() Dim x As Single, y As Single, Result As Single x = InputBox("x =") Operator = InputBox("Operator=") y = InputBox("y =") Select Case Operator Case "+" Χωρίς κενά πριν και µετά το +, οµοίως και για τους άλλους τελεστές Result = x + y Case "-" Result = x - y Case "*" Result = x * y Case "/" Result = x / y Case "\" Result = x \ y Case "mod" Result = x Mod y Case "^" Result = x ^ y Case " ^( 1 / " Result = x ^ (1 / y) End Select MsgBox Str(x) & " " & Operator + Str(y) & _ " = " + Str(Result) End Sub Αποτελέσµατα x = 9 + y = 2 x = 9 - y = 2 x = 9 * y = 2 x = 9 / y = 2 x = 9 \ y = 2 x = 9 mod y = 2 x = 9 ^ y = 2 x = 9 (^1/ y = 2 ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 118

119 Παράδειγµα 11.2 (Σύνθετες λογικές συνθήκες, δεσµευµένη λέξη Το) Το παρακάτω πρόγραµµα δέχεται την τιµή (value) ενός αριθµού και επιστρέφει ένα µήνυµα ανάλογα µε την τιµή που δόθηκε. Στο πρόγραµµα χρησιµοποιούνται οι κωδικές λέξεις Is (ως υποκατάστατο της µεταβλητής) και Το όπου απαιτείται εύρος τιµών. Στην τέταρτη περίπτωση (4 ο Case) που χρησιµοποιείται ο λογικός σύνδεσµος And πρέπει να επαναληφθεί υποχρεωτικά το όνοµα της µεταβλητής. Αυτό ισχύει και στις περιπτώσεις που χρησιµοποιείται ο λογικός σύνδεσµος Or. Να σηµειωθεί επίσης ότι στην τέταρτη περίπτωση (4 ο Case), οι παρακάτω εντολές δίνουν λάθος αποτελέσµατα, κάτι που σηµειώνεται και στα σχόλια του προγράµµατος: Case Is >=50 And Value <=70 Πρόγραµµα Sub Main() Dim Value As Single Value = InputBox("Value=") Select Case Value Case Is < 0 Message = "Αρνητική τιµή" Case 0 To 10 Message = Μεταξύ 0 και 10 Case 11, 12, 17 To 25 Message = 11, 12 ή µεταξύ 17 και 25 Case Is <= 70 And Value >= 50 ' Λάθος σειρά: Case Is >=50 And Value <=70 Message = Μεταξύ 50 και 70 Case 71 To 99.9 Message = Μεταξύ 71 και 99,9 Case 100, 101, Is > 110 Message = 101, 102 ή µεγαλύτερο του 110 Case Else Message = Εκτός εύρους τιµών End Select MsgBox Message End Sub Αποτελέσµατα µε τη σωστή µορφή του προγράµµατος Value = -3 Value = 0,5 Value = 55 Value = 71,9 Value = 100 Value = 105 Value = 11,8 Value = 25 ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 119

120 Παράδειγµα 11.3 (Χαρακτηρισµός βαθµολογίας µε ισοδύναµες δοµές Select Case) Τo 1 ο πρόγραµµα που φαίνεται παρακάτω χρησιµοποιεί τη δοµή επιλογής If Then ElseIf για να επιστρέφει ένα µήνυµα ανάλογα µε τον βαθµό εξέτασης σε ένα µάθηµα. Συγκεκριµένα: Αν 0 Χ < 5, τότε ο βαθµός εξέτασης χαρακτηρίζεται ως D Αν 5 Χ <7, τότε ο βαθµός εξέτασης χαρακτηρίζεται ως C Αν 7 Χ <9, τότε ο βαθµός εξέτασης χαρακτηρίζεται ως B Αν 9 Χ 10, τότε ο βαθµός εξέτασης χαρακτηρίζεται ως A Όταν ο βαθµός που δίνεται είναι εκτός του εύρους 0-10 επιστρέφει το µήνυµα "ΜΗ ΑΠΟ ΕΚΤΗ ΤΙΜΗ" Όπως έχουµε δει ήδη σε προηγούµενο σετ εργαστηριακών ασκήσεων, στη δοµή If Then ElseIf του 1 ου Προγράµµατος, τα διαστήµατα της µεταβλητής x υλοποιούνται έµµεσα αρχίζοντας από το µικρότερο κάτω όριο (το 0) και µεταβαίνοντας στο επόµενο άνω όριο του επόµενου διαστήµατος (π.χ. το 5). Α. Να γραφεί ένα ισοδύναµο πρόγραµµα (2 ο ) που να χρησιµοποιεί τη δοµή πολλαπλής επιλογής Select Case, τη δεσµευµένη λέξη Is αλλά και όµοια έµµεση υλοποίηση των διαστηµάτων του x όπως και στη δοµή If Then ElseIf. Β. Να γραφεί ένα ισοδύναµο πρόγραµµα ( 3 ο ) που να χρησιµοποιεί τη δοµή πολλαπλής επιλογής Select Case, τη δεσµευµένη λέξη Is αλλά και ακριβή υλοποίηση των διαστηµάτων του x όπως και στη όπως δίνεται στα δεδοµένα της άσκησης. Γ. Θεωρώντας ότι οι αποδεκτοί βαθµοί είναι σε βήµατα του 0,5 (π.χ. 5.5, 6, 6.5 κλπ), να γραφεί ένα ισοδύναµο πρόγραµµα (4 ο ) που να χρησιµοποιεί τη δοµή πολλαπλής επιλογής Select Case και τις δεσµευµένες λέξεις Is και Το. Τα κύρια διαστήµατα που ορίζει η άσκηση υλοποιούνται µε τη δεσµευµένη λέξη To (π.χ. 0 Το 4.5 ). 1 ο Πρόγραµµα 2 ο Πρόγραµµα Sub Main() Dim x As Single x = InputBox("x =") If x < 0 Then MsgBox "ΜΗ ΑΠΟ ΕΚΤΗ ΤΙΜΗ" ElseIf x < 5 Then MsgBox "D" ElseIf x < 7 Then MsgBox "C" ElseIf x < 9 Then MsgBox "B" ElseIf x =< 10 Then MsgBox "A" Else MsgBox "ΜΗ ΑΠΟ ΕΚΤΗ ΤΙΜΗ" End If End Sub Sub Main() Dim x As Single x = InputBox("x=") Select Case x Case Is < 0 MsgBox "ΜΗ ΑΠΟ ΕΚΤΗ ΤΙΜΗ" Case Is < 5 MsgBox "D" Case Is < 7 MsgBox "C" Case Is < 9 MsgBox "B" Case Is <= 10 MsgBox "A" Case Else MsgBox "ΜΗ ΑΠΟ ΕΚΤΗ ΤΙΜΗ" End Select End Sub ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 120

121 3 ο Πρόγραµµα 4 ο Πρόγραµµα Sub Main() Sub Main() Dim x As Single Dim x As Single x = InputBox("x=") x = InputBox("x=") Select Case x Select Case x Case Is < 0 Case Is < 0 MsgBox "ΜΗ ΑΠΟ ΕΚΤΗ ΤΙΜΗ" MsgBox "ΜΗ ΑΠΟ ΕΚΤΗ ΤΙΜΗ" Case Is < 5 And x >= 0 Case 0 To 4.5 MsgBox "D" MsgBox "D" Case Is < 7 And x >= 5 Case 5 To 6.5 MsgBox "C" MsgBox "C" Case Is < 9 And x >= 7 Case 7 To 8.5 MsgBox "B" MsgBox "B" Case Is <= 10 And x >= 9 Case 9 To 10 MsgBox "A" MsgBox "A" Case Else Case Else MsgBox "ΜΗ ΑΠΟ ΕΚΤΗ ΤΙΜΗ" MsgBox "ΜΗ ΑΠΟ ΕΚΤΗ ΤΙΜΗ" End Select End Select End Sub End Sub Αποτελέσµατα Χ= -2 Χ= 3,5 Χ= 5 Χ= 7 Χ= 9 Χ= 11 Παράδειγµα 11.4 (Select Case, Case Else, λογικές συνθήκες, δεσµευµένη λέξη Is) Να γραφεί πρόγραµµα όπου δίνεται η θερµοκρασία περιβάλλοντος και εµφανίζει ένα µήνυµα µε βάση τις ακόλουθες συνθήκες: Εάν η θερµοκρασία είναι µικρότερη ή ίση µε 8 βαθµούς εµφανίζει το µήνυµα "Παγωνιά" Εάν η θερµοκρασία είναι µεγαλύτερη από 8 και µικρότερη ή ίση µε 15 εµφανίζει το µήνυµα "Ψύχρα" Εάν η θερµοκρασία είναι µεγαλύτερη από 15 και µικρότερη ή ίση µε 28 εµφανίζει το µήνυµα "Καλός καιρός" Εάν η θερµοκρασία είναι µεγαλύτερη από 28 τότε εµφανίζει το µήνυµα "Πολύ ζέστη". ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 121

122 Λύση Πρόγραµµα Sub Main() Temp = InputBox(" ώστε τη θερµοκρασία περιβάλλοντος ") Select Case Temp Case Is <= 8 MsgBox " Παγωνιά " Case Is <= 15 MsgBox " Ψύχρα " Case Is <= 28 MsgBox " Καλός καιρός " Case Else MsgBox " Πολύ ζέστη " End Select End Sub Αποτελέσµατα Temp = 0 Temp = 10 Temp = 25 Temp = Ερωτήσεις και ασκήσεις ανακεφαλαίωσης 1. Σε ποιες περιπτώσεις χρησιµοποιείται η δοµής επιλογής Select Case ; 2. Ποιες οι διαφορές µεταξύ των δοµών Select Case και If Then ElseIf ; 3. Ποια η λειτουργία των δεσµευµένων λέξεων Is και To που χρησιµοποιούνται στη δοµή Select Case ; 4. Να αναφέρετε τις µεταβλητές για καθένα από τα προηγούµενα παραδείγµατα (όχι την άσκηση). ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 122

123 Μάθηµα 12. ΕΜΦΩΛΕΥΜΕΝΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΟΜΕΣ ΕΠΙΛΟΓΗΣ Όταν υπάρχουν δοµές επιλογής στο εσωτερικό µιας άλλης δοµής επιλογής, δηµιουργούνται οι λεγόµενες εµφωλευµένες ή ένθετες δοµές (nested structures) επιλογής Παραδείγµατα Παράδειγµα 12.1 (Εµφωλευµένες προγραµµατιστικές δοµές επιλογής If Then Else) Το παρακάτω πρόγραµµα δέχεται δύο πραγµατικούς αριθµούς x και y, τους συγκρίνει και επιστρέφει ένα µήνυµα ανάλογα µε τη σχέση µεταξύ τους ( >, < =). Το πρόγραµµα περιλαµβάνει µια δοµή επιλογής If Then Else µέσα σε µία άλλη δοµή If Then Else. Να γραφεί ισοδύναµο πρόγραµµα όπου η 2 η δοµή If Then Else µε γκρι σκίαση να αντικαθίσταται από δοµή ElseIf Then Else και οι εντολές να γράφονται σε µία γραµµή όπου αυτό είναι επιτρεπτό. 1 ο Πρόγραµµα 2 ο Πρόγραµµα (ισοδύναµο) Sub Main() Sub Main() Dim x As Single, y As Single Dim x As Single, y As Single x = InputBox("x=") x = InputBox("x=") y = InputBox("y=") y = InputBox("y=") If x > y Then If x > y Then MsgBox Str(x) + " > " + Str(y) MsgBox Str(x) + " > " + Str(y) Else ElseIf x < y Then MsgBox Str(x) + " < " + Str(y) If x < y Then Else: MsgBox Str(x) + " = " + Str(y) MsgBox Str(x) + " < " + Str(y) End If Else End Sub MsgBox Str(x) + " = " + Str(y) End If End If End Sub Αποτελέσµατα Α. x = -2 y = -3 x = 4 y = 5 x = 2 y = 2 ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 123

124 Παράδειγµα 12.2 (Εµφωλευµένες προγραµµατιστικές δοµές επιλογής Select Case και If..Then Else) Το παρακάτω πρόγραµµα δέχεται το Έτος (Year) π.χ και τον αριθµό του Μήνα (Month) από 1-12 του ίδιου Έτους και επιστρέφει τον αριθµό των ηµερών του µήνα για το συγκεκριµένο Έτος. Περιλαµβάνει µια δοµή επιλογής Select Case µε µια ένθετη δοµή επιλογής If Then Else End If στο τελευταίο Case. 1o Πρόγραµµα Sub Main() Dim Year As Integer, MonthNo As Integer Year = InputBox("Year=") MonthNo = InputBox("MonthNo=") Select Case MonthNo Case 1, 3, 5, 7, 8, 10, 12 Days = 31 Case 4, 6, 9, 11 Days = 30 Case 2 If Year Mod 4 <> 0 Then Days = 28 Else Days = 29 End Select MsgBox "Ο" + Str(MonthNo) & "ος Μήνας του Έτους" + _ Str(Year) + " έχει" + Str(Days) + " ηµέρες" End Sub Αποτελέσµατα Year = 2008 MonthΝο = 2 Year = 2099 MonthΝο = 2 Year = 1900 MonthΝο = 6 Year = 2150 MonthΝο = 7 Να συµπληρωθεί το πρόγραµµα ώστε να εµφανίζει και το όνοµα του µήνα στα Αγγλικά (3 πρώτα γράµµατα µόνο) όπως φαίνεται στα παρακάτω αποτελέσµατα µε βάση και τον πίνακα αντιστοίχισης που ακολουθεί. Υπόδειξη: Να χρησιµοποιηθεί µια επιπλέον µεταβλητή µε όνοµα π.χ. MonthName. Επίσης, να χρησιµοποιηθούν δοµές If Then µέσα στη δοµή Select Case και σε όποιο Case χρειάζεται ώστε να αποδίδεται στη µεταβλητή MonthName η αντίστοιχη συµβολοσειρά (όνοµα µήνα µε σύντµηση). ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 124

125 Αριθµός (MonthNo) Όνοµα Μήνα (µε σύντµηση) Πλήρες όνοµα 1 Jan January 2 Feb February 3 Mar March 4 Apr April 5 May May 6 Jun June 7 Jul July 8 Aug August 9 Sep September 10 Oct October 11 Nov November 12 Dec December Αποτελέσµατα Year = 2008 MonthΝο=2 Year = 2099 MonthΝο=2 Year = 1900 MonthΝο=6 Year = 2150 MonthΝο=7 2 ο Πρόγραµµα Sub Main() Dim Year As Integer, MonthNo As Integer Dim MonthName As String Year = InputBox("Year=") MonthNo = InputBox("MonthNo=") Select Case MonthNo Case 1, 3, 5, 7, 8, 10, 12 If MonthNo = 1 Then MonthName = "Jan" If MonthNo = 3 Then MonthName = "Mar" If MonthNo = 5 Then MonthName = "May" If MonthNo = 7 Then MonthName = "Jul" If MonthNo = 8 Then MonthName = "Aug" If MonthNo = 10 Then MonthName = "Oct" If MonthNo = 12 Then MonthName = "Dec" Days = 31 Case 4, 6, 9, 11 If MonthNo = 4 Then MonthName = "Apr" If MonthNo = 6 Then MonthName = "Jun" If MonthNo = 9 Then MonthName = "Sep" If MonthNo = 11 Then MonthName = "Nov" Days = 30 Case 2 MonthName = "Feb" If Year Mod 4 <> 0 Then Days = 28 Else Days = 29 End Select MsgBox "Ο" + Str(MonthNo) & "ος Μήνας( & MonthName & ) του Έτους" + _ Str(Year) + " έχει" + Str(Days) + " ηµέρες" End Sub ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 125

126 Παράδειγµα 12.3 (Υπολογισµός φόρου εισοδήµατος µε δοµή επιλογής If..Then ElseIf) Το 1 ο πρόγραµµα παρακάτω υπολογίζει το φόρο (tax) που αναλογεί στο εισόδηµα (income) µε χρήση της δοµής επιλογής If Then ElseIf και µε βάση τις ακόλουθες συνθήκες: Για εισόδηµα µέχρι και δεν αναλογεί φόρος Για εισόδηµα µεγαλύτερο από µέχρι και αναλογεί φόρος 25% Για εισόδηµα µεγαλύτερο από µέχρι και αναλογεί φόρος 35% Για εισόδηµα µεγαλύτερο από αναλογεί φόρος 40% Να συµπληρωθεί το ισοδύναµο (2 ο ) πρόγραµµα ώστε να χρησιµοποιεί ένθεση µιας εσωτερικής (2 ης ) δοµής επιλογής If Then Else µετά το 2 ο ElseIf της εξωτερικής (1 ης ) δοµής επιλογής If Then ElseIf. 1 ο Πρόγραµµα Sub Main() Dim Income As Single Income = InputBox("Income=") If Income <= Then Tax = 0 ElseIf Income <= Then Tax = (Income ) * 0.25 ElseIf Income <= Then Tax = (18000 * 0.25) + ((Income ) * 0.35) Else: Tax = (18000 * 0.25) + (45000 * 0.35) + ((Income ) * 0.4) End If MsgBox "Tax= " + Str(Tax) & " ευρώ" End Sub 2 ο Πρόγραµµα (ισοδύναµο) Sub Main() Dim Income As Single Income = InputBox("Income=") If Income <= Then Tax = 0 ElseIf Income <= Then Tax = (Income ) * 0.25 Else If Income <= Then Tax = (18000 * 0.25) + ((Income ) * 0.35) Else Tax = (18000 * 0.25) + (45000 * 0.35) + ((Income ) * 0.4) End If End If MsgBox "Tax= " + Str(Tax) & " ευρώ" End Sub ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 126

127 Αποτελέσµατα Income = Income = Income = Income = Income = Income = Ερωτήσεις και ασκήσεις ανακεφαλαίωσης 1. Τι είναι οι εµφωλευµένες προγραµµατιστικές δοµές ; 2. Να αναφέρετε τις µεταβλητές για καθένα από τα προηγούµενα παραδείγµατα (όχι την άσκηση). 3. Να γραφεί πρόγραµµα (όµοιο µε το 1 ο Πρόγραµµα του Παραδείγµατος 12.3) που να υπολογίζει τον φόρο (tax) που αναλογεί στο εισόδηµα (income) µε βάση τις ακόλουθες συνθήκες: Για εισόδηµα µέχρι και δεν αναλογεί φόρος Για εισόδηµα µεγαλύτερο από µέχρι και αναλογεί φόρος 15% Για εισόδηµα µεγαλύτερο από µέχρι και αναλογεί φόρος 25% Για εισόδηµα µεγαλύτερο από µέχρι και αναλογεί φόρος 35% Για εισόδηµα µεγαλύτερο από αναλογεί φόρος 45% ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 127

128 Μάθηµα 13. ΣΥΝΘΕΤΕΣ ΛΟΓΙΚΕΣ ΣΥΝΘΗΚΕΣ ΚΑΙ ΟΜΕΣ ΕΠΙΛΟΓΗΣ ΕΜΒΕΛΕΙΑ ΣΤΑΘΕΡΩΝ ΚΑΙ ΜΕΤΑΒΛΗΤΩΝ Σύνθετες λογικές συνθήκες και δοµές επιλογής Όταν υπάρχουν σύνθετες λογικές συνθήκες, δηλαδή λογικές παραστάσεις που περιλαµβάνουν έναν από τους λογικούς συνδέσµους And, Or ή Not, τότε οι επιµέρους λογικές παραστάσεις πρέπει να µπαίνουν σε παρένθεση. Επίσης, µια λογική συνθήκη της µορφής: τιµή1 παράσταση τιµή2 θα πρέπει οπωσδήποτε να µετατραπεί στη µορφή : παράσταση >=τιµή1 And παράσταση <=τιµή Παραδείγµατα Παράδειγµα 13.1 (Τύπος τριγώνου) Στο παρακάτω πρόγραµµα εισάγονται τα µήκη a, b και c έχουν των τριών πλευρών ενός τριγώνου και ανάλογα µε τα µήκη των πλευρών, να επιστρέφει µήνυµα µε τον τύπο του τριγώνου. Πρόγραµµα Sub Main() a = InputBox( a= ) b = InputBox ( b= ) c = InputBox("c=") If (a = b) And (b = c) Then ΤύποςΤριγώνου= Ισόπλευρο (equilateral) ElseIf (a = b) Or (b = c) Or (c = a) Then ΤύποςΤριγώνου = Ισοσκελές (isosceles) Else ΤύποςΤριγώνου = Σκαληνό (scalene) End If MsgBox ΤύποςΤριγώνου End Sub Αποτελέσµατα a=b=c=4 a = 4 b = c = 5 a = 4 b = 5 c = 6 Παράδειγµα 13.2 (Αριθµός ψηφίων θετικού ακεραίου) Στο παρακάτω πρόγραµµα εκχωρείται ένας θετικός ακέραιος στο εύρος και το πρόγραµµα επιστρέφει των αριθµό των ψηφίων του ακεραίου. Αν ο αριθµός που θα δοθεί είναι εκτός εύρους να επιστρέφει ένα µήνυµα. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 128

129 Πρόγραµµα Sub Main() Ακέραιος= InpuBox( Ακέραιος= ) If (Ακέραιος < 0) Or (Ακέραιος >= 1000) Then Ψηφία = "ΛΑΘΟΣ ΑΚΕΡΑΙΟΣ" ElseIf Ακέραιος < 10 Then Ψηφία = 1 ElseIf Ακέραιος< 100 Then Ψηφία = 2 ElseIf Ακέραιος < 1000 Then Ψηφία = 3 End If MsgBox Ψηφία End Sub Αποτελέσµατα Ακέραιος = 7 Ακέραιος = 99 Ακέραιος = 100 Ακέραιος = - 5 Ακέραιος = 4444 Παράδειγµα 13.3 (Συνάρτηση δύο µεταβλητών µε δοµή επιλογής και σύνθετη λογική συνθήκη) Να γραφεί πρόγραµµα που να υπολογίζει την τιµή µιας συνάρτησης F(x,n) σύµφωνα µε τις ακόλουθες συνθήκες: F(x,n) = x n αν x < 2 και 0 n 1 F(x,n) = e x n σε κάθε άλλη περίπτωση Πρόγραµµα Sub Main() Dim x As Single, n As Single, Fxn As Single x = InputBox("x=") n = InputBox("n=") If (x < 2) And ((n >= 0) And (n <= 1)) Then Fxn = x ^ n Else: Fxn = Exp(x * n) MsgBox "Fxn=" + Str(Fxn) End Sub Αποτελέσµατα x = 0 x=-1 x=3 x=3 n=2 n=2 n=5 n=3 ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 129

130 13.2. Εµβέλεια σταθερών και µεταβλητών Η περιοχή του προγράµµατος µέσα στην οποία µπορεί να χρησιµοποιηθεί η τιµή µιας σταθεράς ή µιας µεταβλητής ονοµάζεται εµβέλεια (scope) της σταθεράς ή της µεταβλητής αντίστοιχα. Προσδιορίζεται από το σηµείο και την εντολή (λέξη) δήλωσής της. Υπάρχουν τριών ειδών τύποι σταθερών και µεταβλητών ως προς την εµβέλειά τους: 1. Οι τοπικές (local) σταθερές ή µεταβλητές 2. Οι ιδιωτικές ή προγραµµατιστικής µονάδας (private) 3. Οι καθολικές (public) Τοπικές σταθερές ή µεταβλητές Οι σταθερές αυτού του είδους µπορούν να χρησιµοποιηθούν µόνο µέσα στην περιοχή (υπορουτίνα) που έχουν δηλωθεί και για το λόγο αυτό ονοµάζονται τοπικές (local). Η δήλωση των σταθερών και των µεταβλητών γίνεται µε τις λέξεις Const και Dim που αναφέραµε σε προηγούµενες ενότητες. Μπορούµε να χρησιµοποιήσουµε το ίδιο όνοµα για τοπικές σταθερές ή µεταβλητές σε διαφορετικές υπορουτίνες καθώς αυτές έχουν τοπική εµβέλεια και δεν µπορούν να χρησιµοποιηθούν σε άλλη υπορουτίνα. Για παράδειγµα, στο παρακάτω πρόγραµµα έχουµε δύο διαφορετικές υπορουτίνες όπου χρησιµοποιούµε το ίδιο όνοµα για δύο µεταβλητές. Private Sub Form_Load() Const X=30 Dim Sum As Double Dim Y As Integer : End Sub Private Sub OK_Click() Dim Total As Single Dim Y As Integer : End Sub Ο κύκλος ζωής µιας τοπικής µεταβλητής ξεκινά από την αρχικοποίηση της µόλις εκτελείται η δηλωτική της εντολή µέσα στην υπορουτίνα και τελειώνει µε το τέλος της υπορουτίνας. Κατά την αρχικοποίηση µιας µεταβλητής αµέσως µετά την εκτέλεση της δηλωτικής της εντολής, της αποδίδεται η τιµή 0 αν είναι αριθµητική, η τιµή False αν είναι λογική (Boolean) και η τιµή αν είναι συµβολοσειρά. Σε περίπτωση που δεν επιθυµούµε την αρχικοποίηση µιας µεταβλητής κάθε φορά ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 130

131 που εκτελείται η υπορουτίνα αλλά µόνο την πρώτη φορά, χρησιµοποιούµε την εντολή Static αντί για την Dim και η µεταβλητή ονοµάζεται στατική (Static). Στο παρακάτω παράδειγµα, η µεταβλητή Sum δηλώνεται σαν στατική και αρχικοποιείται µόνο την πρώτη φορά που εκτελείται η υπορουτίνα, δηλαδή διατηρεί την τιµή της µεταξύ δύο διαδοχικών εκτελέσεων της υπορουτίνας. Αντίθετα, η µεταβλητή Υ αρχικοποιείται κάθε φορά που εκτελείται η υπορουτίνα. Static Sum As Double Dim Y As Integer Ιδιωτικές (προγραµµατιστικής µονάδας) σταθερές ή µεταβλητές Όταν χρειάζεται να χρησιµοποιηθεί η ίδια µεταβλητή ή σταθερά σε περισσότερες από µία υπορουτίνες µιας προγραµµατιστικής µονάδας (βασικής ή φόρµας), η δήλωσή τους επιβάλλεται να γίνει στο τµήµα δηλώσεων (declaration section) της συγκεκριµένης προγραµµατιστικής µονάδας το οποίο βρίσκεται πάνω από όλες τις υπορουτίνες, δηλαδή στην αρχή κάθε προγραµµατιστικής µονάδας. Η δήλωση των σταθερών αυτού του είδους γίνεται µε την προσθήκη της λέξης Private πριν από την λέξη Const. Η δήλωση των µεταβλητών γίνεται ισοδύναµα είτε µε τη λέξη Dim είτε µε τη λέξη Private που χρησιµοποιείται συνηθέστερα. Ακολουθεί ένα παράδειγµα προγράµµατος µε δήλωση ιδιωτικών σταθερών και µεταβλητών. Σε αυτό το πρόγραµµα, οι µεταβλητές Sum είναι διαφορετικές παρόλο που έχουν το ίδιο όνοµα και στο εσωτερικό της Form_Load υπερισχύει η τοπική δήλωση. Private Const HoursOfDay = 24 Private Sum As Single Private Average As Double Private Sub Form_Load() Const X = 30 Dim Sum As Double Dim Y As Integer : End Sub Private Sub OK_Click() Dim Total As Single Dim Y As Integer : End Sub ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 131

132 Καθολικές σταθερές και µεταβλητές Οι καθολικές (public) σταθερές ή µεταβλητές είναι διαθέσιµες σε όλο το πρόγραµµα και η δήλωσή τους γίνεται µε την εντολή Public. Η δήλωση των καθολικών σταθερών γίνεται στο τµήµα δηλώσεων των βασικών προγραµµατιστικών µονάδων και όχι σε προγραµµατιστικές µονάδες φόρµας. Αντίθετα, η δήλωσή των καθολικών µεταβλητών µπορεί να γίνει στο τµήµα δηλώσεων οποιασδήποτε προγραµµατιστικής µονάδας (βασικής ή φόρµας) µε την ίδια εντολή Public. Ακολουθεί ένα παράδειγµα µε δηλώσεις καθολικών, ιδιωτικών και τοπικών µεταβλητών ή σταθερών: Public Sum As Double Καθολική µεταβλητή Private Average As Double Private Salary As Single Private Sub Form_Load() Dim Total As Double Dim X As Integer : : End Sub ηλώσεις προγραµµατιστικής µονάδας Τοπικές δηλώσεις της υπορουτίνας Form_Load Η χρήση και διαχείριση καθολικών µεταβλητών απαιτεί ιδιαίτερη προσοχή. Γενικά, οι καθολικές µεταβλητές χρησιµοποιούνται αν δεν υπάρχει άλλος τρόπος µεταφοράς τιµών µεταξύ φορµών. Συνηθίζεται για διάφορους λόγους να τοποθετούνται όλες οι καθολικές µεταβλητές σε µία προγραµµατιστική µονάδα µε κατάλληλο όνοµα (π.χ. Global) Υποχρεωτική δήλωση µεταβλητής ή σταθεράς Η χρήση µιας µεταβλητής δεν απαιτεί υποχρεωτικά τη δήλωσή της και σε αυτή την περίπτωση η Visual Basic την αποδέχεται ως τύπου Variant. Σε αυτές τις περιπτώσεις χρειάζεται ιδιαίτερη προσοχή. Για παράδειγµα, αν σε κάποιο σηµείο του προγράµµατος γράψουµε την ίδια µεταβλητή µε λάθος όνοµα, π.χ. Sam αντί για Sum, τότε η Visual Basic θα την αντιληφθεί σαν νέα µεταβλητή κάτι που µπορεί να φέρει ανεπιθύµητα αποτελέσµατα. Το πρόβληµα αυτό µπορεί να λυθεί µε τον υποχρεωτικό ορισµό κάθε µεταβλητής και σταθεράς µέσω της εντολής Option Explicit, η οποία τοποθετείται στην περιοχή δηλώσεων κάθε προγραµµατιστικής µονάδας πριν τον ορισµό των µεταβλητών ή σταθερών. Με αυτό τον τρόπο, όταν η Visual Basic συναντήσει ένα νέο όνοµα µεταβλητής ή σταθεράς που δεν έχει οριστεί, θα εµφανίσει µήνυµα λάθους. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 132

133 Για να ρυθµίσουµε το Περιβάλλον Εργασίας ώστε να τοποθετεί αυτόµατα την εντολή Option Explicit ακολουθούµε τα παρακάτω βήµατα: Από το Περιβάλλον Εργασίας της Visual Basic πηγαίνουµε: Μενού Tools Options. Στην καρτέλα Editor µαρκάρουµε την επιλογή Require Variable Declaration και πατάµε OK. ρ Μοσχάκης Μάριος Προγραµµατισµός Η/Υ Ι (Θεωρία) 133

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Εισαγωγή στον προγραµµατισµό Η έννοια του προγράµµατος Ο προγραµµατισµός ασχολείται µε τη δηµιουργία του προγράµµατος, δηλαδή του συνόλου εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί

Διαβάστε περισσότερα

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος Κεφάλαιο 2.3: Προγραμματισμός 1 2.3.1 Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα» 2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού Πρόγραμμα: σύνολο εντολών που χρειάζεται να δοθούν

Διαβάστε περισσότερα

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το Σηµαντικά σηµεία κεφαλαίου Τα τρία στάδια επίλυσης ενός προβλήµατος: Ακριβής προσδιορισµό του προβλήµατος Ανάπτυξη του αντίστοιχου αλγορίθµου. ιατύπωση του αλγορίθµου σε κατανοητή µορφή από τον υπολογιστή.

Διαβάστε περισσότερα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

Διαβάστε περισσότερα

6. 1 Η έννοια του προγράμματος

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

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια.

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια. ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια. Τον ακριβή προσδιορισμό του προβλήματος. Την ανάπτυξη του αντίστοιχου αλγορίθμου.

Διαβάστε περισσότερα

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ 2.3.1.1. Παπαγιάννη Νάσια Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών ΕΜΠ 1 περιλαμβάνει: Η έννοια του προγράμματος Επίλυση προβλήματος 1. Ακριβή προσδιορισμό

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό 6.1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, τρία σημαντικά στάδια: 1. Τον ακριβή προσδιορισμό του προβλήματος. 2. Την ανάπτυξη

Διαβάστε περισσότερα

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Μάριος Αραποστάθης Καθηγητής πληροφορικής Βαρβάκειου Λύκειου http://users.sch.gr/mariosarapostathis 6.1 Η έννοια του

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ VI. Εισαγωγή στον προγραμματισμό

ΚΕΦΑΛΑΙΟ VI. Εισαγωγή στον προγραμματισμό ΚΕΦΑΛΑΙΟ VI Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου σημαντικά στάδια. Τον ακριβή προσδιορισμό του προβλήματος. Την ανάπτυξη του αντίστοιχου αλγορίθμου.

Διαβάστε περισσότερα

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

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

Διαβάστε περισσότερα

Μαλούτα Θεανώ Σελίδα 1

Μαλούτα Θεανώ Σελίδα 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Προγραµµατισµός Η/Υ Ο προγραµµατισµός είναι η διατύπωση του αλγορίθµου σε µορφή κατανοητή από τον Η/Υ ώστε να τον εκτελέσει («τρέξει» όπως λέµε στην ορολογία της

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1 ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 03/01/09 Χαράλαμπος Τζόκας 1 Πρόγραμμα - Προγραμματισμός Πρόγραμμα: Σύνολο εντολών που πρέπει να δοθούν στον Υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος της επίλυσης

Διαβάστε περισσότερα

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Η έννοια του προγράμματος Η επίλυση ενός πρβλήματος περιλαμβάνει Προσδιορισμό προβλήματος Ανάπτυξη αλγορίθμου Διατύπωση

Διαβάστε περισσότερα

Εισαγωγή στον προγραμματισμό

Εισαγωγή στον προγραμματισμό Ενότητες: Εισαγωγή στον προγραμματισμό Η έννοια του προγράμματος Ιστορική αναδρομή Φυσικές και τεχνητές γλώσσες Τεχνικές σχεδίασης προγραμμάτων Ιεραρχική Σχεδίαση Τμηματικός Προγραμματισμός Δομημένος προγραμματισμός

Διαβάστε περισσότερα

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

Διαβάστε περισσότερα

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19 Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών Κεφ. 2 Θεωρητική Επιστήμη Υπολογιστών 2.3.1.1 Έννοια προγράμματος Τι είναι πρόγραμμα και τι προγραμματισμός; Πρόγραμμα είναι το σύνολο εντολών που χρειάζεται

Διαβάστε περισσότερα

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Κεφάλαιο 6ο Εισαγωγή στον Προγραµµατισµό Μέρος Πρώτο (6.1, 6.2 και 6.3) Α. Ερωτήσεις Σωστού Λάθους 1. Η γλώσσα µηχανής είναι µία γλώσσα υψηλού επιπέδου.

Διαβάστε περισσότερα

7 ο ΓΕΛ Καλλιθέας Οδηγός Α.Ε.Π.Π. ΚΕΦΑΛΑΙΟ 6 ο

7 ο ΓΕΛ Καλλιθέας Οδηγός Α.Ε.Π.Π. ΚΕΦΑΛΑΙΟ 6 ο ΚΕΦΑΛΑΙΟ 6 ο 1. Ποια είναι τα στάδια που περιλαµβάνει η υλοποίηση ενός προβλήµατος σε Η/Υ; Η επίλυση ενός προβλήµατος µε τον υπολογιστή περιλαµβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου σηµαντικά στάδια.

Διαβάστε περισσότερα

Ενότητα 2 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Ενότητα 2 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ενότητα 2 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΩΝ ΜΕ ΥΠΟΛΟΓΙΣΤΗ: Στάδιο 1: Ακριβής Προσδιορισμός του Προβλήματος Στάδιο 2: Ανάπτυξη του Αντίστοιχου Αλγόριθμου Στάδιο 3: Διατύπωση του αλγόριθμου

Διαβάστε περισσότερα

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Pascal- Εισαγωγή Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου

Διαβάστε περισσότερα

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Ποιες γλώσσες αναφέρονται ως φυσικές και ποιες ως τεχνητές; Ως φυσικές γλώσσες αναφέρονται εκείνες οι οποίες χρησιμοποιούνται για την επικοινωνία μεταξύ ανθρώπων,

Διαβάστε περισσότερα

6. Εισαγωγή στον προγραµµατισµό

6. Εισαγωγή στον προγραµµατισµό 6. Εισαγωγή στον προγραµµατισµό 6.1 Η έννοια του προγράµµατος. 6.2 Ιστορική αναδροµή. 6.2.1 Γλώσσες µηχανής. ΗΜ04-Θ1Α 1. Ένα πρόγραµµα σε γλώσσα µηχανής είναι µια ακολουθία δυαδικών ψηφίων. 5. Ένα πρόγραµµα

Διαβάστε περισσότερα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Καθηγητής Πληροφορικής ΠΕ19 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 6 ο : ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ Η έννοια του προγράμματος

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Στέφανος Ουγιάρογλου

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Στέφανος Ουγιάρογλου ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Κεφάλαιο 6 «Εισαγωγή στον Προγραμματισμό» Στέφανος Ουγιάρογλου Διαφάνειες από υλικό του Χ. Μουρατίδη Προγραμματισμός Η/Υ Ο προγραμματισμός είναι η διατύπωση

Διαβάστε περισσότερα

.EVAL push bx Xor bx,bh Add si,ax.loop dec cx. 1. Fortran. 2. Cobol. 3. Algol

.EVAL push bx Xor bx,bh Add si,ax.loop dec cx. 1. Fortran. 2. Cobol. 3. Algol ΚΕΦΑΛΑΙΟ 6 Ο Ερωτήσεις- Απαντήσεις Η έννοια του προγράµµατος 1. Τι περιλαµβάνει η επίλυση ενός προβλήµατος µε τον υπολογιστή; Η επίλυση ενός προβλήµατος µε τη βοήθεια υπολογιστή περιλαµβάνει τρία εξίσου

Διαβάστε περισσότερα

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 6 Ο ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΚΕΦΑΛΑΙΟ 6 Ο ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΚΕΦΑΛΑΙΟ 6 Ο ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΕΡΙΕΧΟΜΕΝΑ Η έννοια του προγράµµατος Γλώσσες προγραµµατισµού Κατηγορίες προγραµµατισµού Προγραµµατιστικά περιβάλλοντα 30 AΕσΠΠ Η έννοια του προγράµµατος Η επίλυση

Διαβάστε περισσότερα

Εργαστήρι Πληροφορικής Αλγόριθµος 92 Σηµειώσεις Τεχνολογικής Κατεύθυνσης Γλώσσες µηχανής Αρχικά για να µπορέσει ο υπολογιστής να εκτελέσει µία οποιαδή

Εργαστήρι Πληροφορικής Αλγόριθµος 92 Σηµειώσεις Τεχνολογικής Κατεύθυνσης Γλώσσες µηχανής Αρχικά για να µπορέσει ο υπολογιστής να εκτελέσει µία οποιαδή Εργαστήρι Πληροφορικής Αλγόριθµος 91 Σηµειώσεις Τεχνολογικής Κατεύθυνσης ΚΕΦΑΛΑΙΟ 6 Ο ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Η έννοια του προγράµµατος Ποια τα στάδια επίλυσης ενός προβλήµατος στον Υπολογιστή; Ο

Διαβάστε περισσότερα

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 6 ο

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 6 ο Με τι ασχολείται ο προγραμματισμός; Ο προγραμματισμός ασχολείται με την διατύπωση του αλγορίθμου σε κατανοητή μορφή από τον Η/Υ, δηλ. τη δημιουργία του προγράμματος, του συνόλου των εντολών που πρέπει

Διαβάστε περισσότερα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΣΚΗΣΕΙΣ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΩΤΗΣΕΙΣ ΣΩΣΤΟ ΛΑΘΟΣ Σημειώστε αν είναι σωστή ή

Διαβάστε περισσότερα

ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος.

ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος. ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος 1 2 3 Εικόνα 43: Διάφορες πλακέτες υπολογιστών Μέσα σε δύο

Διαβάστε περισσότερα

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

Διαβάστε περισσότερα

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1 ΚΕΦΑΛΑΙΟ 7 ο ΠΡΟΓΡΑΜΜΑ : Το πρόγραμμα αποτελείται από μια σειρά οδηγιών, που ονομάζονται εντολές, για την εκτέλεση τέτοιου είδους πράξεων, καθώς επίσης και από ένα σύνολο πρόσθετων οδηγιών ελέγχου, που

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 7.1. Ανάπτυξη Προγράµµατος Τι είναι το Πρόγραµµα; Το Πρόγραµµα: Είναι ένα σύνολο εντολών για την εκτέλεση ορισµένων λειτουργιών από τον υπολογιστή.

Διαβάστε περισσότερα

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Προγραμματισμός Η/Υ Προτεινόμενα θέματα εξετάσεων Εργαστήριο Μέρος 1 ό ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Ιανουάριος 2011 Καλογιάννης Γρηγόριος Επιστημονικός/ Εργαστηριακός

Διαβάστε περισσότερα

Π ρ ο γ ρ α μ μ α τ ι σ μ ό ς Β α σ ι κ έ ς έ ν ν ο ι ε ς Ι σ τ ο ρ ι κ ή α ν α δ ρ ο μ ή Η έννοια του προγράμματος Ιστορική αναδρομή

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

Διαβάστε περισσότερα

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις Προγραµµατισµός Η/Υ Ανασκόπηση - Ορισµοί Περιεχόµενα Ο κύκλος ανάπτυξης προγράµµατος Περιγραφή προβλήµατος Ανάλυση προβλήµατος Λογικό ιάγραµµα Ψευδοκώδικας Κωδικοποίηση Συντήρηση Γλώσσες Προγραµµατισµού

Διαβάστε περισσότερα

Κεφάλαιο 1 Προγραμματισμός Υπολογιστή. Εφαρμογές Πληροφορικής Κεφ. 7 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 1 Προγραμματισμός Υπολογιστή. Εφαρμογές Πληροφορικής Κεφ. 7 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 1 Προγραμματισμός Υπολογιστή Καραμαούνας Πολύκαρπος 1 7.1 Η προγραμματιζόμενη μηχανή Από τις βασικότερες διαφορές ανάμεσα στον υπολογιστή και στις περισσότερες ηλεκτρονικές συσκευές είναι η δυνατότητα

Διαβάστε περισσότερα

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

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή. ΑΕσΠΠ-Κεφ6. Εισαγωγή στον προγραμματισμό 1 ΣΩΣΤΟ ΛΑΘΟΣ 1. Οι γλώσσες προγραμματισμού αναπτυχθήκαν με σκοπό την επικοινωνία ανθρώπου μηχανής. 2. Αλγόριθμος = Πρόγραμμα + Δομές Δεδομένων 3. Ένα πρόγραμμα

Διαβάστε περισσότερα

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

Διαβάστε περισσότερα

ΑΕΠΠ Ερωτήσεις τύπου Σωστό-Λάθος

ΑΕΠΠ Ερωτήσεις τύπου Σωστό-Λάθος ΑΕΠΠ Ερωτήσεις τύπου Σωστό-Λάθος Κεφάλαιο 1 1. Πρόβλημα είναι μια μαθηματική κατάσταση που πρέπει να αντιμετωπίσουμε 2. Αν υποβάλλουμε τα δεδομένα σε επεξεργασία παίρνουμε πληροφορίες 3. Ο υπολογιστής

Διαβάστε περισσότερα

κ ε φ ά λ α ι ο 7 0 Α. Θ Ε Ω Ρ Ι Α Η έ ν ν ο ι α τ ο υ π ρ ο γ ρ ά µ µ α τ ο ς Ι σ τ ο ρ ι κ ή Α ν α δ ρ ο µ ή π α ρ α τ ή ρ η σ η

κ ε φ ά λ α ι ο 7 0 Α. Θ Ε Ω Ρ Ι Α Η έ ν ν ο ι α τ ο υ π ρ ο γ ρ ά µ µ α τ ο ς Ι σ τ ο ρ ι κ ή Α ν α δ ρ ο µ ή π α ρ α τ ή ρ η σ η κ ε φ ά λ α ι ο 7 0 Α. Θ Ε Ω Ρ Ι Α 7. 1. Η έ ν ν ο ι α τ ο υ π ρ ο γ ρ ά µ µ α τ ο ς Συνοπτική αναφορά βηµάτων επίλυσης ενός προβλήµατος: Ακριβής προσδιορισµός προβλήµατος Ανάπτυξη αντίστοιχου αλγορίθµου

Διαβάστε περισσότερα

Αρχές Προγραμματισμού Υπολογιστών

Αρχές Προγραμματισμού Υπολογιστών Αρχές Προγραμματισμού Υπολογιστών Ανάπτυξη Προγράμματος Β ΕΠΑΛ Τομέας Πληροφορικής Βελώνης Γεώργιος Καθηγητής Πληροφορικής ΠΕ20 Κύκλος ανάπτυξης προγράμματος/λογισμικού Η διαδικασία ανάπτυξης λογισμικού,

Διαβάστε περισσότερα

Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό. 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1

Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό. 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1 Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1 6.3 Φυσικές και τεχνητές γλώσσες Μια γλώσσα γενικά προσδιορίζεται από: 1. Το αλφάβητο: το σύνολο των στοιχείων που χρησιμοποιεί

Διαβάστε περισσότερα

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

Μ Ε Ρ Ο Σ Γ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Μ Ε Ρ Ο Σ Γ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Γλώσσες Προγραμματισμού 6.1.1 Γλώσσες μηχανής (1 η γενιά) Η γλώσσα στην οποία ένας ηλεκτρονικός υπολογιστής καταλαβαίνει

Διαβάστε περισσότερα

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

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Ενότητες βιβλίου: 6.4, 6.7 Ώρες διδασκαλίας: 1 Τεχνικές σχεδίασης προγραμμάτων Στο βιβλίο γίνεται αναφορά σε μία τεχνική για την ανάπτυξη

Διαβάστε περισσότερα

Πληροφορική 2. Γλώσσες Προγραμματισμού

Πληροφορική 2. Γλώσσες Προγραμματισμού Πληροφορική 2 Γλώσσες Προγραμματισμού 1 2 Γλώσσες προγραμματσιμού Επιτρέπουν την κωδικοποίηση των αλγορίθμων Η εκτέλεση ενός προγράμματος θα πρέπει να δίνει τα ίδια αποτελέσματα με την νοητική εκτέλεση

Διαβάστε περισσότερα

Βασίλειος Κοντογιάννης ΠΕ19

Βασίλειος Κοντογιάννης ΠΕ19 Ενότητα2 Προγραμματιστικά Περιβάλλοντα Δημιουργία Εφαρμογών 6.1 Γλώσσες και εργαλεία προγραμματισμού Τι είναι οι γλώσσες προγραμματισμού; Είναι οι τεχνητές γλώσσες στις οποίες γράφονται οι εντολές των

Διαβάστε περισσότερα

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

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ Α) Να γράψετε στο τετράδιό σας τον αριθμό κάθε πρότασης και δίπλα το γράμμα "Σ", αν είναι σωστή, ή το γράμμα "Λ", αν είναι λανθασμένη. (Μονάδες 25) 1. Ένα αδόμητο πρόβλημα είναι ταυτόχρονα και ανοικτό

Διαβάστε περισσότερα

Κεφάλαιο 10 ο Υποπρογράµµατα

Κεφάλαιο 10 ο Υποπρογράµµατα Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 1 Ο. Εισαγωγή στις έννοιες Πρόβλημα, Αλγόριθμος, Προγραμματισμός, Γλώσσες Προγραμματισμού

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 1 Ο. Εισαγωγή στις έννοιες Πρόβλημα, Αλγόριθμος, Προγραμματισμός, Γλώσσες Προγραμματισμού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 1 Ο Εισαγωγή στις έννοιες Πρόβλημα, Αλγόριθμος, Προγραμματισμός, Γλώσσες Προγραμματισμού ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Πρόβλημα Ως πρόβλημα θεωρείται μια κατάσταση που πρέπει

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου 49 Διδακτικές ενότητες 6.1 Γλώσσες και εργαλεία προγραμματισμού 6.2 Σύγχρονα προγραμματιστικά περιβάλλοντα Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν την ανάγκη ύπαρξης τόσο

Διαβάστε περισσότερα

Γεωγραφικά Συστήµατα Πληροφοριών και Αρχές Τηλεπισκόπησης

Γεωγραφικά Συστήµατα Πληροφοριών και Αρχές Τηλεπισκόπησης Γεωγραφικά Συστήµατα Πληροφοριών και Αρχές Τηλεπισκόπησης Ενότητα: Αλγόριθµοι, Λογικά Διαγράµµατα, Γλώσσες Προγραµµατισµού Γεώργιος Σκιάνης Γεωλογίας και Γεωπεριβάλλοντος Σελίδα 2 1. Περιεχόµενα ενότητας...

Διαβάστε περισσότερα

Visual Basic Γλώσσα οπτικού

Visual Basic Γλώσσα οπτικού Visual Basi Γλώσσα οπτικού προγραµµατισµού «Η αρχή είναι το ήµισυ του παντός» Κουλλάς Χρίστος www.oullas.om oullas 2 Στόχοι Μαθήµατος Οι µαθητές να µπορούν: να εξηγούν τι είναι η Visual Basi. ναεξηγούνταστάδιαδηµιουργίας

Διαβάστε περισσότερα

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

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία

Διαβάστε περισσότερα

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

Πως θα κατασκευάσω το πρώτο πρόγραμμα; Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να γίνει εξοικείωση το μαθητών με τον ΗΥ και το λειτουργικό σύστημα. - Επίδειξη του My Computer

Διαβάστε περισσότερα

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

Διαβάστε περισσότερα

Ενότητα 13. Εισαγωγή στην Πληροφορική. Κεφάλαιο 13Α. Αρχεία. Χειµερινό Εξάµηνο ρ. Παναγιώτης Χατζηδούκας (Π..407/80) προγραµµατισµός

Ενότητα 13. Εισαγωγή στην Πληροφορική. Κεφάλαιο 13Α. Αρχεία. Χειµερινό Εξάµηνο ρ. Παναγιώτης Χατζηδούκας (Π..407/80) προγραµµατισµός Ενότητα 13 Εισαγωγή στην Πληροφορική Χειµερινό Εξάµηνο 2006-07 Προγραµµατισµός Κεφάλαιο 13Α: ηµιουργία Προγραµµάτων Υπολογιστή Κεφάλαιο 13Β: Γλώσσες Προγραµµατισµού και η ιαδικασία Προγραµµατισµού ρ. Παναγιώτης

Διαβάστε περισσότερα

Εισαγωγή στη Χρήση της Εφαρµογής Compaq Visual Fortran & του Microsoft Developer Studio

Εισαγωγή στη Χρήση της Εφαρµογής Compaq Visual Fortran & του Microsoft Developer Studio Εισαγωγή στη Χρήση της Εφαρµογής Compaq Visual Fortran & του Microsoft Developer Studio Το κείµενο που ακολουθεί είναι ένας σύντοµος οδηγός στο περιβάλλον προγραµµατισµού της γλώσσας Fortran, για τις ανάγκες

Διαβάστε περισσότερα

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 1.3-1.4: Εισαγωγή Στον Προγραµµατισµό ( ιάλεξη 2) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγικές Έννοιες - Ορισµοί Ο κύκλος ανάπτυξης προγράµµατος Παραδείγµατα Πότε χρησιµοποιούµε υπολογιστή?

Διαβάστε περισσότερα

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD Σε ορισµένες περιπτώσεις είναι ιδιαίτερα χρήσιµη η δηµιουργία ιστοσελίδων ενηµερωτικού περιεχοµένου οι οποίες στη συνέχεια µπορούν να δηµοσιευθούν σε κάποιο τόπο

Διαβάστε περισσότερα

ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΘΕΜΑ 1 Α.

ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΘΕΜΑ 1 Α. ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΘΕΜΑ 1 Α. 1. Αν το Α έχει την τιµή 10 και το Β την τιµή 20 τότε η έκφραση (Α > 8 ΚΑΙ Β < 20) Ή (Α > 10 Ή Β = 10) είναι αληθής 2. Σε περίπτωση εµφωλευµένων βρόχων, ο εσωτερικός

Διαβάστε περισσότερα

Microsoft Excel Κεφάλαιο 1. Εισαγωγή. Βιβλίο εργασίας

Microsoft Excel Κεφάλαιο 1. Εισαγωγή. Βιβλίο εργασίας Περιεχόμενα Κεφάλαιο 1 Microsoft Excel 2010... 7 Κεφάλαιο 2 Η δομή ενός φύλλου εργασίας... 19 Κεφάλαιο 3 ημιουργία νέου βιβλίου εργασίας και καταχώριση δεδομένων... 24 Κεφάλαιο 4 Συμβουλές για την καταχώριση

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΤΗ ΔΙΟΙΚΗΣΗ ΚΑΙ ΣΤΗΝ ΟΙΚΟΝΟΜΙΑ 9 Ο ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΟΣΤΟΛΙΑ ΠΑΓΓΕ Περιεχόμενα 2 Η λειτουργία του υπολογιστή Κατηγορίες Εντολών Μορφή Εντολών

Διαβάστε περισσότερα

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

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ Εισαγωγή ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ Όπως για όλες τις επιστήμες, έτσι και για την επιστήμη της Πληροφορικής, ο τελικός στόχος της είναι η επίλυση προβλημάτων. Λύνονται όμως όλα τα προβλήματα;

Διαβάστε περισσότερα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ - ΓΛΩΣΣΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Τεχνικές Σχεδίασης Αλγορίθμων Εισαγωγή στον Προγραμματισμό - ΓΛΩΣΣΑ Επιμέλεια: Ομάδα Διαγωνισμάτων από Το στέκι των πληροφορικών ο Θέμα 1 Α. α) Ποια είναι

Διαβάστε περισσότερα

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

Ο ΗΓΙΕΣ ΣΥΜΠΛΗΡΩΣΗΣ ΤΗΣ ΦΟΡΜΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΥΠΟΒΟΛΗΣ Ο ΗΓΙΕΣ ΣΥΜΠΛΗΡΩΣΗΣ ΤΗΣ ΦΟΡΜΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΥΠΟΒΟΛΗΣ 1 Περιεχόµενα 1. ΓΕΝΙΚΑ... 3 2. ΒΑΣΙΚΕΣ ΕΝΕΡΓΕΙΕΣ ΓΙΑ ΤΗ ΣΥΜΠΛΗΡΩΣΗ ΤΗΣ ΦΟΡΜΑΣ... 3 α. Ανάκτηση (downloading) της ηλεκτρονικής φόρµας και αποθήκευση

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα ιοικητικής Επιστήµης & Τεχνολογίας ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Κεφάλαιο 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Γιώργος Γιαγλής Το σηµερινό µάθηµα Ταξινόµηση γλωσσών

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης Κ.Π. Γιαλούρης Στόχοι του μαθήματος Απόκτηση αναλυτικής και αλγοριθμικής σκέψης Απόκτηση δεξιοτήτων επίλυσης προβλημάτων Γνώση προγραμματισμού σε Python 2 Στόχοι του σημερινού μαθήματος Κατανόηση της έννοιας

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα.

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα. ΚΕΦΑΛΑΙΟ 7 ο 1. Επιλογή της κατάλληλης γλώσσας προγραµµατισµού Εκατοντάδες γλώσσες προγραµµατισµού χρησιµοποιούνται όπως αναφέρθηκε σήµερα για την επίλυση των προβληµάτων µε τον υπολογιστή, τη δηµιουργία

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών Πρόγραμμα σε γλώσσα μηχανής του ΕΚΥ Θέση μνήμης Περιεχόμενα μνήμης Εντολή (assembly) 0 0001 000000000011 lda 3 1 0011 000000000100 ada

Διαβάστε περισσότερα

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω: Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω: 1ο ΓΕΛ Καστοριάς Βασικές Έννοιες Αλγορίθμων Δομή Ακολουθίας (κεφ. 2 και 7 σχολικού βιβλίου) 1. Οι μεταβλητές αντιστοιχίζονται από τον μεταγλωττιστή κάθε

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β Καβακλή Χειμερινό Εξάμηνο 2001 Στόχοι του Μαθήματος! Ανάπτυξη αναλυτικής

Διαβάστε περισσότερα

Γλώσσες Προγραμματισμού Μεταγλωττιστές

Γλώσσες Προγραμματισμού Μεταγλωττιστές Γλώσσες Προγραμματισμού Μεταγλωττιστές Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Γλώσσες Προγραμματισμού Εισαγωγικά Γλώσσα Μηχανής Γλώσσες υψηλού επιπέδου Μεταγλωττιστές

Διαβάστε περισσότερα

To περιβάλλον Ανάπτυξης εφαρμογών της Visual Basic 2008 Express Edition

To περιβάλλον Ανάπτυξης εφαρμογών της Visual Basic 2008 Express Edition To περιβάλλον Ανάπτυξης εφαρμογών της Visual Basic 2008 Express Edition Πίνακας Περιεχομένων To περιβάλλον Ανάπτυξης εφαρμογών της Visual Basic 2008 Express Edition... 1 Εκτέλεση του περιβάλλοντος ανάπτυξης

Διαβάστε περισσότερα

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25 Περιεχόμενα Κεφάλαιο 1 Εισαγωγή στην Access...9 Γνωριμία με την Access... 12 Δημιουργία βάσης δεδομένων... 18 Άνοιγμα και κλείσιμο βάσης δεδομένων... 21 Ερωτήσεις ανακεφαλαίωσης... 22 Πρακτική εξάσκηση...

Διαβάστε περισσότερα

Προγραμματισμός I (Θ)

Προγραμματισμός I (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός I (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Οκτώβριος 2017 Δρ. Δημήτρης Βαρσάμης Οκτώβριος

Διαβάστε περισσότερα

Εισαγωγή στις Αρχές της επιστήμης των ΗΥ

Εισαγωγή στις Αρχές της επιστήμης των ΗΥ Εισαγωγή στις Αρχές της επιστήμης των ΗΥ Ερωτήσεις και ασκήσεις για επανάληψη 1. Τι είναι πρόβλημα (σελ 14) 2. Ποιες είναι οι κατηγορίες προβλημάτων με βάση την επίλυση; Δώστε τον ορισμό για κάθε μια κατηγορία.

Διαβάστε περισσότερα

Εισαγωγή στο περιβάλλον Code::Blocks

Εισαγωγή στο περιβάλλον Code::Blocks Εισαγωγή στο περιβάλλον Code::Blocks Στο παρόν εγχειρίδιο παρουσιάζεται η διαδικασία ανάπτυξης, μεταγλώττισης και εκτέλεσης ενός προγράμματος C στο περιβάλλον του Code::Blocks. Η διαδικασία αυτή παρουσιάζεται

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β. Καβακλή Χειμερινό Εξάμηνο 2001 1 Δοκιμή Έλεγχος Αλγορίθμου Για να

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1 Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων Octave - Διαδικασία ανάπτυξης προγραμμάτων MATLAB - Απλά

Διαβάστε περισσότερα

Πρόλογος... 7 ΕΙΔΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

Πρόλογος... 7 ΕΙΔΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 7 ΕΙΔΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ Α Δομή και λειτουργία προσωπικού υπολογιστή...11 ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ Β Δομή και χρήση λειτουργικών συστημάτων DOS, UNIX και λειτουργικού

Διαβάστε περισσότερα

Εισαγωγή στον προγραμματισμό

Εισαγωγή στον προγραμματισμό Κεφάλαιο 6 Εισαγωγή στον προγραμματισμό 6.1 Γενικός διδακτικός σκοπός Ο γενικός σκοπός του κεφαλαίου είναι να καταστούν ικανοί ο μαθητές να αναγνωρίζουν τις βασικές τεχνικές προγραμματισμού και να χειρίζονται

Διαβάστε περισσότερα

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

Ράβδος Εργαλείων, σχεδόν τα ίδια εργαλεία και εικονίδια υπάρχουν όπως στα άλλα προγράμματα που έχετε μάθει μέχρι σήμερα. Σαχπατζίδης Αβραάμ Καθηγητής Πληροφορικής Π.Ε 20 Master of Arts (M.A) in "Gender, New Forms of Education, New Forms of Employment and New Technologies in the Information Age". Η Γλώσσα Προγραμματισμού

Διαβάστε περισσότερα

ΑΣΚΗΣΕΙΣ ΘΕΩΡΙΑΣ. ΘΕΜΑ 1 Δίνεται το παρακάτω τμήμα δηλώσεων ενός προγράμματος σε «ΓΛΩΣΣΑ»: ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: Π[10] ΛΟΓΙΚΕΣ: ΒΡΕΘΗΚΕ ΑΚΕΡΑΙΕΣ: i

ΑΣΚΗΣΕΙΣ ΘΕΩΡΙΑΣ. ΘΕΜΑ 1 Δίνεται το παρακάτω τμήμα δηλώσεων ενός προγράμματος σε «ΓΛΩΣΣΑ»: ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: Π[10] ΛΟΓΙΚΕΣ: ΒΡΕΘΗΚΕ ΑΚΕΡΑΙΕΣ: i ΑΣΚΗΣΕΙΣ ΘΕΩΡΙΑΣ ΘΕΜΑ 1 Δίνεται το παρακάτω τμήμα δηλώσεων ενός προγράμματος σε «ΓΛΩΣΣΑ»: ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: Π[10] ΛΟΓΙΚΕΣ: ΒΡΕΘΗΚΕ ΑΚΕΡΑΙΕΣ: i Να μετατρέψετε τις ενέργειες που δίνονται παρακάτω σε

Διαβάστε περισσότερα

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5 ΕΛΛΗΝΙΚΟ ΑΝΟΙΧΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Πρόγραµµα σπουδών "ΠΛΗΡΟΦΟΡΙΚΗ" - Θ.Ε. ΠΛΗ11 Τεχνολογία Λογισµικού Ι Κεφάλαιο 5 Βασίλειος Βεσκούκης ιδάκτωρ Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών v.vescoukis@cs.ntua.gr

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ Η έννοια του προγράμματος Ιστορική αναδρομή Φυσικές και τεχνητές γλώσσες Τεχνικές σχεδίασης προγραμμάτων Αντικειμενοστραφής

ΠΕΡΙΕΧΟΜΕΝΑ Η έννοια του προγράμματος Ιστορική αναδρομή Φυσικές και τεχνητές γλώσσες Τεχνικές σχεδίασης προγραμμάτων Αντικειμενοστραφής ΠΕΡΙΕΧΟΜΕΝΑ Η έννοια του προγράμματος Ιστορική αναδρομή Φυσικές και τεχνητές γλώσσες Τεχνικές σχεδίασης προγραμμάτων Αντικειμενοστραφής προγραμματισμός Παράλληλος προγραμματισμός Προγραμματιστικά περιβάλλοντα

Διαβάστε περισσότερα

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5)

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5) ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ Τοποθετώ μια δισκέτα στον οδηγό τη δισκέτας του υπολογιστή. Τοποθετώ τη δισκέτα που έχει το αρχείο μου στον οδηγό τη δισκέτας του υπολογιστή.

Διαβάστε περισσότερα

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Κεφάλαια 2,7,8

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Κεφάλαια 2,7,8 Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Επιμέλεια : Δρεμούσης Παντελής Κεφάλαια 2,7,8 1. Τι είναι αλγόριθμος; Μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο

Διαβάστε περισσότερα

ζωγραφίζοντας µε τον υπολογιστή

ζωγραφίζοντας µε τον υπολογιστή ζωγραφίζοντας µε τον υπολογιστή Μια από τις εργασίες που µπορούµε να κάνουµε µε τον υπολογιστή είναι και η ζωγραφική. Για να γίνει όµως αυτό πρέπει ο υπολογιστής να είναι εφοδιασµένος µε το κατάλληλο πρόγραµµα.

Διαβάστε περισσότερα

Μέρος Α. Λογισµικό & Προγράµµατα συστήµατος και εφαρµογών ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ. Το σηµερινό µάθηµα. Λογισµικό συστηµάτων & εφαρµογών

Μέρος Α. Λογισµικό & Προγράµµατα συστήµατος και εφαρµογών ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ. Το σηµερινό µάθηµα. Λογισµικό συστηµάτων & εφαρµογών ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΙΟΙΚΗΣΗΣ Το σηµερινό µάθηµα ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ιδάσκων: Πέτρος Βασιλικός Λογισµικό Υπολογιστικών Συστηµάτων Λογισµικό & Προγράµµατα συστηµάτων

Διαβάστε περισσότερα

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7 Κεφάλαιο 1: Windows XP Κεφάλαιο 2: Επιφάνεια εργασίας (desktop)... 15

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7 Κεφάλαιο 1: Windows XP Κεφάλαιο 2: Επιφάνεια εργασίας (desktop)... 15 Περιεχόμενα Λίγα λόγια από το συγγραφέα... 7 Κεφάλαιο 1: Windows XP... 9 Κεφάλαιο 2: Επιφάνεια εργασίας (desktop)... 15 Κεφάλαιο 3: Γραμμή εργασιών (taskbar)... 26 Κεφάλαιο 4: Χειρισμός παραθύρων... 44

Διαβάστε περισσότερα

Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ

Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ 1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ Τάξη: Γ Μάθημα: Πληροφορική Εξεταστέα ύλη: Παρ11.1 & 11.2 Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών που περιγράφει τη διαδικασία

Διαβάστε περισσότερα