ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΡΙΣΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ι (ΕΡΓΑΣΤΗΡΙΟ) Δρ Μοσχάκης Μάριος ΛΑΡΙΣΑ 2011
Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 2
ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ ΤΗΣ ΓΛΩΣΣΑΣ VISUAL BASIC... 6 ΑΣΚΗΣΗ 1. ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ, MODULE, SUB MAIN, ΑΠΛΟ ΠΡΟΓΡΑΜΜΑ, ΛΑΘΗ.... 11 Άσκηση 1.1. Module και Sub Main().... 11 Άσκηση 1.2. Απλό πρόγραμμα.... 13 Άσκηση 1.3. Συμπεριφορά της VB σε περίπτωση λαθών.... 14 ΑΣΚΗΣΗ 2. ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΕΞΟΔΟΥ ΑΠΟΤΕΛΕΣΜΑΤΩΝ, ΕΝΤΟΛΗ ΕΚΧΩΡΗΣΗΣ.... 18 Άσκηση 2.1. Συνάρτηση (Πλαίσιο) εξόδου αποτελεσμάτων (μηνυμάτων), συνάρτηση Str και κωδική λέξη vbcrlf.... 20 Άσκηση 2.2. Συνάρτηση (Πλαίσιο) εισόδου δεδομένων.... 21 Άσκηση 2.3. Εντολή εκχώρησης, χαρακτήρες συνένωσης συμβολοσειρών και συνέχισης εντολών σε διαφορετική γραμμή.... 22 Άσκηση 2.4. Ανταλλαγή τιμών μεταξύ δύο ποσοτήτων (swap).... 24 ΑΣΚΗΣΗ 3. ΣΤΑΘΕΡΕΣ (ΑΡΙΘΜΗΤΙΚΕΣ, ΛΟΓΙΚΕΣ, ΑΛΦΑΡΙΘΜΗΤΙΚΕΣ, ΗΜΕΡΟΜΗΝΙΕΣ).26 Άσκηση 3.1. Αριθμητικές σταθερές... 28 Άσκηση 3.2. Αριθμητικές σταθερές με επιστημονικό συμβολισμό.... 29 Άσκηση 3.3. Λανθασμένες δηλώσεις σταθερών και εναλλακτικοί τρόποι δήλωσης.... 30 Άσκηση 3.4. Λογικές σταθερές, αλφαριθμητικές σταθερές και ημερομηνίες.... 31 Άσκηση 3.5. Υπολογισμός ισοδύναμης αντίστασης τριών παράλληλων αντιστάσεων... 32 ΑΣΚΗΣΗ 4. ΔΗΛΩΣΗ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΠΡΑΞΕΙΣ ΜΕ ΑΡΙΘΜΗΤΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ.... 35 Άσκηση 4.1. Δηλώσεις μεταβλητών και πράξεις με αριθμητικές παραστάσεις... 37 Άσκηση 4.2. Αριθμητικές παραστάσεις... 39 Άσκηση 4.3. Απλοί υπολογισμοί με το Excel... 40 Άσκηση 4.4. Αριθμητικές παραστάσεις στο Excel... 40 ΑΣΚΗΣΗ 5. ΠΡΑΞΕΙΣ ΚΑΙ ΠΑΡΑΣΤΑΣΕΙΣ ΜΕ ΣΥΜΒΟΛΟΣΕΙΡΕΣ ΚΑΙ ΗΜΕΡΟΜΗΝΙΕΣ.... 42 Άσκηση 5.1. Πράξεις με συμβολοσειρές... 43 Άσκηση 5.2. Πράξεις με ημερομηνίες... 44 Άσκηση 5.3. Υπολογισμός διαφοράς εβδομάδων και ημερών μεταξύ ημερομηνιών... 45 Άσκηση 5.4. Υπολογισμοί με συμβολοσειρές στο Excel... 46 Άσκηση 5.5. Υπολογισμοί με ημερομηνίες στο Excel... 46 ΑΣΚΗΣΗ 6. ΠΑΡΑΣΤΑΣΕΙΣ ΜΕ ΤΡΙΓΩΝΟΜΕΤΡΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ INT(X), FIX(X)... 48 Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 3
Άσκηση 6.1. Τριγωνομετρικές συναρτήσεις ημx, συνx, εφx και σφx... 49 Άσκηση 6.2. Αντίστροφες τριγωνομετρικές συναρτήσεις τοξημx, τοξσυνx, τοξεφx, τοξσφx... 50 Άσκηση 6.3. Συναρτήσεις Int(x), Fix(x) και στρογγυλοποίησης θετικών και αρνητικών αριθμών... 52 Άσκηση 6.4. Εισαγωγή ορισμάτων σε μοίρες και παραστάσεις με τριγωνομετρικές συναρτήσεις... 53 Άσκηση 6.5. Τριγωνομετρικές συναρτήσεις και παραστάσεις στο Excel... 55 Άσκηση 6.6. Αντίστροφες τριγωνομετρικές συναρτήσεις και παραστάσεις στο Excel... 55 Άσκηση 6.7. Συναρτήσεις Int(X), Ι(Χ,Ν), Fixed(X;N) και Round(X;N) στο Excel... 56 ΑΣΚΗΣΗ 7. ΠΑΡΑΣΤΑΣΕΙΣ ΜΕ ΜΑΘΗΜΑΤΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ SQR(X), ABS(X), SGN(X), EXP(X) ΚΑΙ LOG(X)... 58 Άσκηση 7.1. Τετραγωνική ρίζα Sqr(x) και απόλυτη τιμή Abs(x).... 59 Άσκηση 7.2. Πρόσημο Sgn(x), εκθετική Exp(x) και λογαριθμική συνάρτηση Log(x).... 61 Άσκηση 7.3. Παραστάσεις με συναρτήσεις Sqr(x), Abs(x), Exp(x) και Log(x).... 63 Άσκηση 7.4. Τετραγωνική ρίζα Sqrt(x) και απόλυτη τιμή Abs(x) στο Excel.... 64 Άσκηση 7.5. Πρόσημο Sign(x), εκθετική Exp(x) και λογαριθμική συνάρτηση, Log(x) στο Excel.... 65 Άσκηση 7.6. Παραστάσεις με συναρτήσεις Sqrt(x), Abs(x), Exp(x) και Log(x) στο Excel.... 66 ΑΣΚΗΣΗ 8. ΛΟΓΙΚΟΙ ΤΕΛΕΣΤΕΣ ΚΑΙ ΛΟΓΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ... 68 Άσκηση 8.1. Απλές λογικές παραστάσεις με αριθμητικές μεταβλητές και εκχώρηση τιμής μιας απλής λογικής παράστασης σε μεταβλητή... 69 Άσκηση 8.2. Λογικοί σύνδεσμοι Not, And, Or - Σύνθετες λογικές παραστάσεις με μεταβλητές τύπου Boolean... 70 Άσκηση 8.3. Σύγκριση συμβολοσειρών και ειδικών χαρακτήρων... 71 Άσκηση 8.4. Λογικοί σύνδεσμοι Not, And, Or στο Excel... 73 Άσκηση 8.5. Σύγκριση συμβολοσειρών στο Excel... 73 ΑΣΚΗΣΗ 9. ΔΟΜΗ ΕΠΙΛΟΓΗΣ IF THEN ELSE... 75 Άσκηση 9.1. Εισαγωγή στην δομή επιλογής If Then Else - Υπολογισμός μέγιστου αριθμού... 77 Άσκηση 9.2. Εντολές του If Then σε μία γραμμή - Υπολογισμός μέγιστου και ελάχιστου αριθμού78 Άσκηση 9.3. Δομές επιλογής με σύνθετη λογική συνθήκη και επιστροφή μια συμβολοσειρά... 79 Άσκηση 9.4. Συναρτήσεις με υποθετικές εντολές στη Visual Basic και το Excel... 80 ΑΣΚΗΣΗ 10. ΔΟΜΗ ΕΠΙΛΟΓΗΣ IF THEN ELSEIF... 84 Άσκηση 10.1. Δομή επιλογής If Then ElseIf με σύνθετη λογική συνθήκη και επιστροφή μια συμβολοσειρά... 86 Άσκηση 10.2. Χαρακτηρισμός βαθμολογίας με κατάλληλη σειρά εντολών If Then ή με ισοδύναμη χρήση της δομής If Then ElseIf... 87 Άσκηση 10.3. Μετατροπή μιγαδικού αριθμού από καρτεσιανή σε πολική μορφή... 88 Άσκηση 10.4. Υπολογισμός τιμής συνάρτησης τριών μεταβλητών με υποθετικές εντολές... 90 Άσκηση 10.5. Σύνθετες εντολές If στο Excel... 91 Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 4
ΑΣΚΗΣΗ 11. ΔΟΜΗ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ SELECT CASE... 92 Άσκηση 11.1. Δομή πολλαπλής επιλογής Select Case... 94 Άσκηση 11.2. Σύνθετες λογικές συνθήκες, δεσμευμένες λέξεις Is και Το... 95 Άσκηση 11.3. Χαρακτηρισμός βαθμολογίας με ισοδύναμες δομές Select Case... 96 ΑΣΚΗΣΗ 12. ΕΜΦΩΛΕΥΜΕΝΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΔΟΜΕΣ ΕΠΙΛΟΓΗΣ... 99 Άσκηση 12.1. Εμφωλευμένες προγραμματιστικές δομές επιλογής If Then Else... 99 Άσκηση 12.2. Εμφωλευμένες προγραμματιστικές δομές επιλογής Select Case και If..Then Else.. 100 Άσκηση 12.3. Υπολογισμός φόρου εισοδήματος με δομή επιλογής If..Then ElseIf... 102 ΑΣΚΗΣΗ 13. ΣΥΝΘΕΤΕΣ ΛΟΓΙΚΕΣ ΣΥΝΘΗΚΕΣ ΚΑΙ ΔΟΜΕΣ ΕΠΙΛΟΓΗΣ... 104 Άσκηση 13.1. Τύπος τριγώνου... 104 Άσκηση 13.2. Αριθμός ψηφίων θετικού ακεραίου... 105 Άσκηση 13.3. Συνάρτηση δύο μεταβλητών με δομή επιλογής και σύνθετη συνθήκη... 105 Άσκηση 13.4. Συνάρτηση με δομή επιλογής στο Excel... 106 Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 5
ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ ΤΗΣ ΓΛΩΣΣΑΣ VISUAL BASIC Το Περιβάλλον Εργασίας της Visual Basic καλείται όπως και όλα τα άλλα προγράμματα στο περιβάλλον των Windows: Μενού Έναρξη Όλα τα προγράμματα Microsoft Visual Basic - Microsoft Visual Basic. Θα εμφανιστεί το παρακάτω Παράθυρο Διαλόγου που ονομάζεται New Project (Νέο Έργο). Στο Παράθυρο αυτό υπάρχουν τρεις Καρτέλες: 1. Η καρτέλα New για τη δημιουργία ενός νέου έργου το οποίο είναι ήδη προεπιλεγμένο 2. Η καρτέλα Existing για την επιλογή ενός έργου από τα ήδη υπάρχοντα 3. Η καρτέλα Recent για την επιλογή ενός έργου από αυτά που επεξεργαστήκαμε πρόσφατα Στο Παράθυρο Διαλόγου New Project μπορεί να υπάρχει ένας αριθμός υποδειγμάτων/προτύπων (templates) πάνω στο οποίο θα βασιστεί το Νέο Έργο που θα ξεκινήσουμε. Η επιλογή του υποδείγματος γίνεται κάνοντας κλικ πάνω στο αντίστοιχο εικονίδιο. Για απλά αυτοδύναμα προγράμματα σαν αυτά που θα αναλύσουμε στα επόμενα κεφάλαια, θα επιλέγουμε αυτό που είναι προεπιλεγμένο, δηλαδή το Standard.EXE (Τυπικό εκτελέσιμο). Μετά την επιλογή του Standard.ΕΧΕ κάνοντας κλικ πάνω στο εικονίδιο εμφανίζεται η παρακάτω οθόνη που αποτελεί το Περιβάλλον Εργασίας της Visual Basic: Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 6
Στο Περιβάλλον Εργασίας της γλώσσας Visual Basic διακρίνουμε τα εξής τμήματα: Γραμμή Τίτλου(Title Bar), Γραμμή Μενού (Menu Bar) και Γραμμές Εργαλείων (Toolbars). Βρίσκονται στο πάνω μέρος της οθόνης. Έχουν παρόμοιες ιδιότητες και λειτουργία με τα Windows και τα προγράμματα αυτοματισμού γραφείου (Word, Excel Κλπ). Σχεδιαστής Φόρμας (Form Designer). Βρίσκεται στο κέντρο της οθόνης και αφορά το τμήμα όπου γράφεται ο κώδικας της εφαρμογής. Στο Σχεδιαστή Φόρμας ο χρήστης δημιουργεί τις φόρμες των παραθύρων επικοινωνίας του χρήστη με την εφαρμογή. Οι φόρμες αποτελούν το σημείο από το οποίο αρχίζει ο σχεδιασμός και η υλοποίηση κάθε εφαρμογής. Όταν ξεκινάμε μια νέα εργασία, το περιβάλλον παρουσιάζει μια κενή φόρμα σχεδίασης (με το όνομα Form1) η οποία, όπως και κάθε νέα φόρμα, περιέχει Γραμμή Τίτλου (Title Bar), Πλαίσιο Ελέγχου (Control Box), πλήκτρα επαναφοράς/μεγιστοποίησης (Restore/Maximize), ελαχιστοποίησης (Minimize) και κλεισίματος (Close). Το πλέγμα των σημείων που παρουσιάζονται στο εσωτερικό της φόρμας αποτελεί βοήθημα για το σχεδιασμό των αντικειμένων. Το πλέγμα εμφανίζεται μόνο τη στιγμή που το περιβάλλον εργασίας βρίσκεται σε κατάσταση σχεδιασμού. Κατά την εκτέλεση του προγράμματος το πλέγμα γίνεται αόρατο. Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 7
Γραμμή Τίτλου της φόρμας Πλήκτρο κλεισίματος Πλήκτρο Επαναφοράς-Μεγιστοποίησης Πλήκτρο Ελαχιστοποίησης Πλαίσιο ελέγχου Στη φόρμα σχεδίασης επισυνάπτονται από τον προγραμματιστή τα αντικείμενα ελέγχου που παρουσιάζουν δεδομένα στο χρήστη (π.χ. πλαίσια κειμένου) και αντικείμενα ελέγχου χειρισμών (π.χ. πλήκτρα). Ο προγραμματιστής δημιουργεί όσες φόρμες σχεδίασης απαιτεί το πρόγραμμά του, καθορίζει τις διαστάσεις τους και τις τοποθετεί στην κατάλληλη θέση. Η θέση και οι διαστάσεις που δίνονται στη φόρμα κατά το σχεδιασμό της είναι αυτές που θα έχει και κατά την εκτέλεση του προγράμματος. Εργαλειοθήκη (Toolbox). Βρίσκεται στα αριστερά της οθόνης και είναι το τμήμα από όπου επιλέγονται τα όργανα που τοποθετούνται στη φόρμα. Το πιο σημαντικό χαρακτηριστικό της Visual Basic είναι ότι ο προγραμματιστής δεν είναι αναγκασμένος να δημιουργήσει δικά του αντικείμενα, αλλά μπορεί να χρησιμοποιήσει κάποια διαθέσιμα. Η εργαλειοθήκη περιέχει όλα τα εργαλεία για το σχεδιασμό και την τοποθέτηση αντικειμένων ελέγχου (controls) πάνω στις φόρμες. Με πολύ απλές κινήσεις, ο προγραμματιστής/σχεδιαστής μπορεί να δημιουργήσει σύνθετες αλλά εργονομικές και λειτουργικές φόρμες και να συνθέσει το κατάλληλο περιβάλλον επικοινωνίας χρήστη-εφαρμογής. Κάποια από τα αντικείμενα της εργαλειοθήκης είναι ήδη γνωστά σε ένα χρήστη των Windows μιας και είναι τα ίδια με αυτά που εμφανίζονται στα Παράθυρα Διαλόγου των εφαρμογών. Για παράδειγμα, τα πεδία κειμένου, οι συνδυασμένες και οι απλές λίστες, τα πλήκτρα, τα κουτάκια μαρκαρίσματος, οι ράβδοι κύλισης, και τα πλαίσια επιλογής δίσκων ή καταλόγων ή αρχείων. Για να τοποθετήσει ο προγραμματιστής ένα αντικείμενο ελέγχου στη φόρμα σχεδίασης, επιλέγει πρώτα το εικονίδιο, που το αναπαριστά στην εργαλειοθήκη και στη συνέχεια το σχεδιάζει στις κατάλληλες διαστάσεις πάνω στη φόρμα. Μετά του δίνει ιδιότητες και καθορίζει τον ειδικό τρόπο συμπεριφοράς του γράφοντας κώδικα. Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 8
Παράθυρο Έργου (Project Explorer Window). Βρίσκεται άνω δεξιά της οθόνης. Κάθε εφαρμογή της Visual Basic αποτελεί ένα έργο στο οποίο μπορούμε να έχουμε μία ή περισσότερες φόρμες. Ο κώδικας κάθε εφαρμογής γράφεται σε τμήματα που ονομάζονται προγραμματιστικές μονάδες φόρμας (form modules) που καθεμιά τους συνοδεύει μια φόρμα αλλά και σε τμήματα που ονομάζονται βασικές προγραμματιστικές μονάδες (standard modules ή απλά modules) που δεν ανήκουν σε καμιά φόρμα. Για κάθε έργο δημιουργείται ένα αρχείο που περιγράφει τον τρόπο δόμησής του και περιέχει και άλλες λειτουργικές του πληροφορίες. Τα αρχεία τύπου έργου έχουν κατάληξη.vbp. Για κάθε φόρμα δημιουργείται και ένα αρχείο που περιγράφει τον τρόπο δόμησής της και περιέχει τα αντικείμενα ελέγχου της και τον κώδικα σε γλώσσα Basic που συνοδεύει τη φόρμα. Κάθε αρχείο φόρμας έχει κατάληξη.frm. Τέλος, οι βασικές προγραμματιστικές μονάδες αποθηκεύονται και αυτές σε αρχεία τα οποία έχουν κατάληξη.bas. Τα δομικά στοιχεία του έργου, η ιεραρχική σύνδεσή τους και τα αρχεία στα οποία έχουν αποθηκευτεί, παρουσιάζονται σε μορφή παρόμοια με αυτή του εξερευνητή αρχείων των Windows. Αυτού οι τύποι δομικών στοιχείων ενός έργου δεν είναι και οι μοναδικοί. Για πιο σύνθετες εφαρμογές, χρησιμοποιούνται και άλλες μορφές φορμών και προγραμματιστικών μονάδων. Τέλος, να σημειωθεί ότι μιας και κάθε δομικό στοιχείο ενός έργου αποθηκεύεται και σε ξεχωριστό αρχείο, είναι δυνατόν ένα δομικό στοιχείο να ανήκει σε περισσότερα από ένα έργα. Εικονίδιο για τα αρχεία.vbp Εικονίδιο για τα αρχεία.frm Εικονίδιο για τα αρχεία.bas Πλήκτρο για εμφάνιση φόρμας Πλήκτρο για εμφάνιση κώδικα Διπλό κλικ για να αναδιπλωθεί ή να ξεδιπλωθεί η λίστα Διπλό κλικ για να εμφανιστεί η φόρμα Παράθυρο ιδιοτήτων (Properties window) Βρίσκεται δεξιά της οθόνης. Οι ιδιότητες είναι τα ιδιαίτερα χαρακτηριστικά των αντικειμένων. Κάποιες από τις ιδιότητες καθορίζουν τα χαρακτηριστικά εμφάνισης των αντικειμένων όπως τη θέση, το μέγεθος, το χρώμα και το ίχνος της μύτης του «μολυβιού» που χρησιμοποιείται για τη σχεδίαση τους. Επίσης, κάποιες άλλες ιδιότητες καθορίζουν τον τρόπο αντίδρασης και συμπεριφοράς των αντικειμένων όπως το κλείδωμα, την ενεργοποίηση, το είδος επικοινωνίας για ανταλλαγές τιμών κ.α. Κάθε είδος αντικειμένου έχει διαφορετικό σύνολο ιδιοτήτων. Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 9
Το αντικείμενο το οποίο χαρακτηρίζουν οι ιδιότητες στη λίστα που ακολουθεί Ταξινόμηση ιδιοτήτων ανά κατηγορία Αλφαβητική ταξινόμηση όλων των Ιδιοτήτων Σύντομη περιγραφή της ιδιότητας που ακολουθεί Το Παράθυρο Ιδιοτήτων περιέχει μια λίστα με τις ιδιότητες και τις τιμές των ιδιοτήτων του αντικειμένου που έχουμε επιλέξει. Η επιλογή του αντικειμένου μπορεί να γίνει είτε από τη φόρμα σχεδίασης είτε από την πτυσσόμενη λίστα που βρίσκεται στο πάνω μέρος του παραθύρου. Στην περίπτωση που έχουν επιλεγεί πάνω από ένα αντικείμενα, προβάλλονται μόνο οι κοινές ιδιότητες όλων των αντικειμένων. Η παρουσίαση των ιδιοτήτων μέσα στο παράθυρο μπορεί να γίνει αλφαβητικά ή κατά κατηγορίες. Τέλος, να σημειωθεί ότι υπάρχουν και ιδιότητες οι οποίες δεν αναφέρονται στο παράθυρο ιδιοτήτων. Σκαρίφημα Εμφάνισης Παραθύρων (Form Layout Window) Πρόκειται για ένα παράθυρο που παρουσιάζει σε μικρογραφία την οθόνη και τη σχετική θέση κάθε παραθύρου ανοιχτής φόρμας στο εσωτερικό της οθόνης. Χρησιμεύει δτην προεπισκόπηση των σχετικών διαστάσεων του παραθύρου κάθε φόρμας και την τοποθέτηση του μέσα στο χώρο της οθόνης σε σχέση με τα άλλα παράθυρα που τυχαίνει να είναι ανοιχτά. Όταν ο δείκτης του ποντικιού πάρει τη μορφή σταυρονήματος, μπορούμε να σύρουμε το παράθυρο και να το τοποθετήσουμε σε μια νέα θέση. Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 10
ΑΣΚΗΣΗ 1. Περιβάλλον Εργασίας, Module, Sub Main, Απλό Πρόγραμμα, Λάθη. Άσκηση 1.1. Module και Sub Main(). Εισαγωγή δομικής ενότητας (module) και ρύθμιση ιδιοτήτων (properties) ως Sub Main. Εκτέλεση της Άσκησης Να γίνουν οι ακόλουθες ενέργειες βήμα προς βήμα. Βήματα-Ενέργειες Αποτέλεσμα 1. Καλούμε το Περιβάλλον Εργασίας της Visual Basic: Μενού Έναρξη Όλα τα προγράμματα Microsoft Visual Basic - Microsoft Visual Basic ή πατώντας την αντίστοιχη συντόμευση (Shortcut) στην Επιφάνεια Εργασίας (αν υπάρχει). Θα εμφανιστεί το διπλανό Παράθυρο Διαλόγου που ονομάζεται New Project (Νέο Έργο). 2. Επιλέγουμε αυτό που είναι προεπιλεγμένο, δηλαδή το Standard.EXE (Τυπικό εκτελέσιμο) και κάνουμε διπλό κλικ πάνω του ή πατάμε το κουμπί «Άνοιγμα». Θα εμφανιστεί το Περιβάλλον Εργασίας της Visual Basic. Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 11
3. Κλείνουμε το κεντρικό παράθυρο του έργου Project1 από το κουμπί Χ. Έπειτα, πηγαίνουμε: Μενού Project - Add Μodule για να προσθέσουμε μια νέα δομική ενότητα (module), όπως φαίνεται στην διπλανή εικόνα. 4. Εμφανίζεται το διπλανό παράθυρο και πατάμε Άνοιγμα. 5. Εμφανίζεται το παράθυρο στο Περιβάλλον Εργασίας της Visual Basic. 6. Στη συνέχεια επιλέγουμε Μενού Project-Project1 Properties.. όπως φαίνεται δίπλα: Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 12
7. Εμφανίζεται η ακόλουθη οθόνη: 8. Στην καρτέλα General επιλέγουμε ως Startup Object το Sub Main (αντί για το Form1) όπως φαίνεται στην ακόλουθη οθόνη: 9. Οι εντολές του προγράμματος πληκτρολογούνται πλέον μέσα στο λευκό τμήμα του παραθύρου Project1 Module 1 (Code) σε μορφή υποπρογράμματος Sub Main( ) End Sub Άσκηση 1.2. Απλό πρόγραμμα. Να πληκτρολογηθεί και εκτελεστεί το ακόλουθο πρόγραμμα εμφανίζει απλά ένα μήνυμα στην οθόνη. Sub Main() MsgBox "Hello (Γεια σας)!!! " End Sub Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 13
Εκτέλεση της Άσκησης Για την εισαγωγή και εκτέλεση αυτού του προγράμματος ακολουθούμε την ακόλουθη διαδικασία: 10. Πληκτρολογούμε τις εντολές στο λευκό τμήμα του Project1-Module1 (Code) όπως φαίνεται δίπλα: 11. Για να το εκτελέσουμε, πατάμε το πλήκτρο F5 και, αν δεν έχουμε κάνει κάποιο λάθος, θα δούμε στην οθόνη μας το εξής αποτέλεσμα: Άσκηση 1.3. Συμπεριφορά της VB σε περίπτωση λαθών. Να πληκτρολογηθεί ξανά το προηγούμενο πρόγραμμα με ορισμένα λάθη ώστε να φανεί η λειτουργία της Visual Basic σε κάθε περίπτωση. Εκτέλεση της Άσκησης Να γίνουν οι ακόλουθες ενέργειες βήμα προς βήμα. Βήματα-Ενέργειες Αποτέλεσμα 12. Πληκτρολόγηση Sub Main() και πάτημα του Enter από το πληκτρολόγιο: Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 14
13. Πληκτρολόγηση εντολών με κεφαλαία γράμματα, π.χ. του προγράμματος: SUB MAIN() MSGBOX "HELLO" END SUB 14. Σε περίπτωση που πληκτρολογήσουμε λάθος μια εντολή, το πρόγραμμα επιστρέφει ένα μήνυμα και προσδιορίζει το σημείο όπου υπάρχει λάθος. Π.χ. αν πληκτρολογήσουμε λάθος την εντολή MsgBox, έστω Box, τότε το πρόγραμμα θα εμφανίσει στην οθόνη ένα μήνυμα λάθους στη μεταγλώττιση. Πατώντας, το πρόγραμμα κιτρινίζει το τμήμα του προγράμματος όπου εντοπίστηκε σφάλμα και μαρκάρει (μαυρίζει) την εντολή που είναι λάθος, δηλαδή στην προκειμένη περίπτωση το Box. Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 15
15. Αν πληκτρολογήσουμε δύο (ή περισσότερα) εισαγωγικά αντί για ένα δεξιά του Hello, δηλαδή πληκτρολογήσουμε το πρόγραμμα: Sub Main() Msgbox "Hello"" End Sub Τότε το πρόγραμμα εισάγει ακόμη ένα εισαγωγικό. Η μορφή του προγράμματος και το αποτέλεσμα της εκτέλεσής του (Run ή πατώντας F5) φαίνονται δίπλα. 16. Μπορούμε να αλλάξουμε το όνομα του Module1 π.χ. σε Hello από το παράθυρο ιδιοτήτων στη δεξιά πλευρά του Περιβάλλοντος Εργασίας και από την ιδιότητα Name. Το νέο όνομα του Module φαίνεται πλέον στη γραμμή τίτλου του παραθύρου του Module. Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 16
17. Μπορούμε να αποθηκεύσουμε το αρχείο Module1 με ένα όνομα ίδιο ή διαφορετικό από το Hello. Πηγαίνουμε: Μενού File Save 18. Εμφανίζεται το διπλανό Παράθυρο Διαλόγου όπου μπορούμε να επιλέξουμε το όνομα του αρχείου και τη θέση αποθήκευσης. 19. Πατήστε «Άκυρο» ώστε να μη γίνει καμία αποθήκευση. Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 17
ΑΣΚΗΣΗ 2. Συναρτήσεις εισόδου δεδομένων και εξόδου αποτελεσμάτων, Εντολή Εκχώρησης. ΠΕΡΙΛΗΨΗ ΘΕΩΡΙΑΣ 1. Συναρτήσεις MsgBox και InputBox. Η εντολή (συνάρτηση) για την εμφάνιση μηνυμάτων ή αποτελεσμάτων προς τον χρήστη είναι η συνάρτηση MsgBox (από τις λέξεις Message Box: Πλαίσιο μηνυμάτων) ενώ για την εισαγωγή δεδομένων από τον χρήστη χρησιμοποιείται η συνάρτηση InputBox (Input Box: Πλαίσιο δεδομένων εισόδου). Η γενική σύνταξη των εντολών αυτών έχει ως εξής: MsgBox μήνυμα, μορφή, τίτλος ή MsgBox (μήνυμα, μορφή, τίτλος) InputBox(μήνυμα, τίτλος, προεπιλογή, x, y) Όπου: o Μήνυμα. Αποτελεί το μήνυμα το οποίο θα εμφανιστεί στο εσωτερικό του διαλογικού παραθύρου, είναι δηλαδή μια συμβολοσειρά και πρέπει να περικλείεται μέσα σε διπλά εισαγωγικά. Για να καθορίσουμε τα σημεία στα οποία θα γίνεται η αλλαγή της γραμμής μεταξύ των συμβολοσειρών που αποτελούν το περιεχόμενο κάθε γραμμής πρέπει να παρεμβάλλουμε τους χαρακτήρες που αντιστοιχούν στην εσωτερική σταθερά (κωδική λέξη) vbcrlf της Visual Basic που συνοδεύονται συνήθως από τους ειδικούς χαρακτήρες & ή + (πριν και μετά) αφήνοντας ένα κενό πριν και μετά τη χρήση των χαρακτήρων. o Μορφή. Καθορίζει τον αριθμό και τον τύπο των πλήκτρων διαταγής που θα τοποθετηθούν στο διαλογικό παράθυρο. Η παράμετρος μορφή μπορεί να παραλειφθεί και η συνάρτηση συμπεριφέρεται σαν να δόθηκε μορφή 0 οπότε εμφανίζεται στο εσωτερικό του διαλογικού παραθύρου μόνο ένα πλήκτρο διαταγής (π.χ. ΟΚ). o Τίτλος. Καθορίζει τον τίτλο του διαλογικού παραθύρου (μέσα στο μπλε πλαίσιο). Αν παραλειφθεί, τότε στον τίτλο θα αναγράφεται το όνομα του έργου (project) της εφαρμογής (π.χ. Project1). o Προεπιλογή. Η παράμετρος προεπιλογή επιτρέπει την αυτόματη εμφάνιση ενός μηνύματος σε περίπτωση που ο χρήστης δεν πληκτρολογήσει κάποια τιμή μέσα στο πλαίσιο κειμένου. Αν παραλειφθεί αυτή η τιμή τότε το πλαίσιο κειμένου εμφανίζεται άδειο. o Παράμετροι x και y. Χρησιμοποιούνται για να προσδιορίσουμε τη θέση εμφάνισης του διαλογικού παραθύρου σε σχέση με την πάνω αριστερή γωνία της οθόνης και μπορούν να παραλειφθούν όπως και οι παράμετροι τίτλος και προεπιλογή. Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 18
2. Εντολή εκχώρησης. Η εντολή εκχώρησης χρησιμοποιείται για την απόδοση τιμών στις μεταβλητές κατά τη διάρκεια εκτέλεσης του προγράμματος. Ο τελεστής εκχώρησης (assignment operator) στη γλώσσα Visual Basic είναι το «=» (ίσον). Η γενική της σύνταξη της εκχώρησης είναι της μορφής: Όνομα_Μεταβλητής = Παράσταση Σχετικά με την εντολή εκχώρησης θα πρέπει να τονιστούν τα ακόλουθα: - Η παράσταση μπορεί να είναι μόνο μια μεταβλητή ή σταθερά ή συνδυασμός πράξεων μεταξύ μεταβλητών και σταθερών. - Μετά την εκτέλεση της εντολής εκχώρησης, η προηγούμενη τιμή της μεταβλητής χάνεται και στη θέση εκχωρείται το αποτέλεσμα της παράστασης. - Μια εντολή εκχώρησης σε καμία περίπτωση δεν πρέπει να εκλαμβάνεται ως εξίσωση. Στην εξίσωση το αριστερό μέλος ισούται με το δεξιό, ενώ στην εντολή εκχώρησης η τιμή του δεξιού μέλους εκχωρείται, μεταβιβάζεται, αποδίδεται στη μεταβλητή του αριστερού μέλους. Σε άλλες γλώσσες μπορεί να είναι διαφορετικός ο τελεστής ώστε να μη συγχέεται με την εξίσωση και να δείχνει τη φορά εκχώρησης τιμής μιας παράστασης σε μια μεταβλητή (π.χ. ο τελεστής εκχώρησης μπορεί να είναι το, δηλαδή ένα βέλος με φορά από τα δεξιά προς τα αριστερά). - Δεν επιτρέπεται να αντιστοιχισθεί μια παράσταση με τιμή μια συμβολοσειρά σε μια αριθμητική μεταβλητή αλλά και μια παράσταση με αριθμητική τιμή σε μια αλφαριθμητική μεταβλητή. Αν γίνει κάτι τέτοιο, η Visual Basic θα εμφανίσει ένα μήνυμα λάθους. 3. Συνάρτηση Str. Xρησιμοποιείται για τη μετατροπή μιας αριθμητικής τιμής σε συμβολοσειρά (String). Η γενική της σύνταξη είναι: Str(n) όπου n είναι μια αριθμητική σταθερά ή μεταβλητή του προγράμματος. Η συνάρτηση Str(n) θα επιστρέψει την τιμή της σταθεράς ή μεταβλητής ως συμβολοσειρά πλέον εισάγοντας και ένα κενό πριν την αριθμητική τιμή και μπορεί να εμφανιστεί ως μέρος ενός μηνύματος με χρήση της εντολής MsgBox. Για να συνδεθεί («κολλήσει») με άλλες συμβολοσειρές, χρησιμοποιούνται οι χαρακτήρες + και & αφήνοντας ένα κενό πριν και μετά τη χρήση των χαρακτήρων. Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 19
ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ Άσκηση 2.1. Συνάρτηση (Πλαίσιο) εξόδου αποτελεσμάτων (μηνυμάτων), συνάρτηση Str και κωδική λέξη vbcrlf. Η συγκεκριμένη άσκηση αποσκοπεί στην επίδειξη της λειτουργίας της συνάρτησης εξόδου αποτελεσμάτων, της λειτουργίας της συνάρτησης Str και της κωδικής λέξης vbcrlf. Εκτέλεση της Άσκησης Να πληκτρολογήσετε όλες τις παρακάτω εντολές την κάθε μία σε διαφορετική γραμμή και μεταξύ των Sub Main() και End Sub. Να εκτελέσετε το πρόγραμμα και πατώντας διαδοχικά ΟΚ σε κάθε μήνυμα που εμφανίζεται στην οθόνη, παρατηρούμε τα αποτελέσματα. Τα σχόλια να μην πληκτρολογηθούν. Τα αντίστοιχα αποτελέσματα για κάθε εντολή περιέχονται στον παρακάτω Πίνακα. Εντολή MsgBox "ένα συν ένα = " + Str(1 + 1) Αποτέλεσμα Σχόλιο: Αντί για το + πριν από τη συνάρτηση Str θα μπορούσαμε να χρησιμοποιήσουμε το χαρακτήρα & για το συγκεκριμένο παράδειγμα αλλά και για τα επόμενα παραδείγματα. MsgBox "Το εμβαδό του δωματίου είναι " + Str(3 * 5) + " τετραγωνικά μέτρα." MsgBox Str(36.7) + " βαθμοί Celsius = " + Str(32 + 9.0 / 5.0 * 36.7) + " βαθμοί Fahrenheit." MsgBox Str(1 + 2 * 3) MsgBox Str((1 + 2) * 3) MsgBox "Hello, students..." & vbcrlf & "Γειά σας!!!",, "HELLO" Σχόλιο: Ισοδύναμα θα μπορούσαμε να χρησιμοποιήσουμε τον χαρακτήρα + αντί για τον χαρακτήρα & πριν και μετά την κωδική λέξη vbcrlf Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 20
Άσκηση 2.2. Συνάρτηση (Πλαίσιο) εισόδου δεδομένων. Α. Να πληκτρολογηθεί και να εκτελεστεί το παρακάτω πρόγραμμα. Το πρόγραμμα δέχεται ως εισόδους (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). Εκτέλεση της Άσκησης Α. Πληκτρολογούμε το παραπάνω πρόγραμμα και ζητάμε την εκτέλεσή του. Θα εμφανιστούν μηνύματα για την εισαγωγή ενός δεκαδικού αριθμού και στο τέλος το αποτέλεσμα. Πρόγραμμα Μηνύματα εισόδου δεδομένων Αποτελέσματα Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 21
Β. Πρόγραμμα Μηνύματα εισόδου δεδομένων Αποτελέσματα x = 0,3 y = 0,25 Άσκηση 2.3. Εντολή εκχώρησης, χαρακτήρες συνένωσης συμβολοσειρών και συνέχισης εντολών σε διαφορετική γραμμή. Α. Να πληκτρολογηθεί και να εκτελεστεί το παρακάτω πρόγραμμα. Στο πρόγραμμα εισάγονται ένας περιττός και ένας αριθμός και υπολογίζεται ο επόμενος περιττός αριθμός και ο προηγούμενος άρτιος αριθμός από αυτούς που δόθηκαν. Σημείωση 1: Η συγκεκριμένη άσκηση αποσκοπεί στην επίδειξη της λειτουργίας της εντολής εκχώρησης =. Μια εντολή εκχώρησης σε καμία περίπτωση δεν πρέπει να εκλαμβάνεται ως εξίσωση. Στην εξίσωση το αριστερό μέλος ισούται με το δεξιό, ενώ στην εντολή εκχώρησης η τιμή του δεξιού μέλους εκχωρείται, μεταβιβάζεται, αποδίδεται στη μεταβλητή του αριστερού μέλους. Σημείωση 2: Οι χαρακτήρες συνένωσης συμβολοσειρών είναι οι + και & και ο χαρακτήρας συνέχισης εντολών σε διαφορετική γραμμή είναι η κάτω παύλα (underscore) ( _ ). Σε όλες τις περιπτώσεις χρήσης ενός από αυτούς του χαρακτήρες, είναι απαραίτητη η πληκτρολόγηση ενός κενού πριν και μετά τον χαρακτήρα. Β. Να τροποποιηθεί το πρόγραμμα ώστε να εισάγεται ένα θετικό πολλαπλάσιο του 5 (5, 10, 15, ) και να υπολογίζεται η τετραγωνική ρίζα ( ) του προηγούμενου πολλαπλάσιου του 5 και το επόμενο πολλαπλάσιο του 5. Τα αποτελέσματα να παρουσιάζονται όπως φαίνεται στην παρακάτω εικόνα για δοθέν πολλ/σιο του 5 ίσο με 30. Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 22
A. Εκτέλεση της Άσκησης Πρόγραμμα Μηνύματα εισόδου δεδομένων Αποτελέσματα B. Πρόγραμμα Μηνύματα εισόδου δεδομένων Αποτελέσματα x = 30 Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 23
Άσκηση 2.4. Ανταλλαγή τιμών μεταξύ δύο ποσοτήτων (swap). A. Να γραφεί και εκτελεστεί το παρακάτω πρόγραμμα στο οποίο γίνεται ανταλλαγή (swap) των τιμών δύο ποσοτήτων Α και Β χρησιμοποιώντας μια βοηθητική μεταβλητή Temp. Στο Πρόγραμμα (Α) οι τιμές εισόδου είναι οποιοσδήποτε συνδυασμός χαρακτήρων (συμβολοσειρές) π.χ. αν Α = Α και Β = Β, μετά την εκτέλεση του προγράμματος θα είναι Α = Β και Β = Α. Β. Να γραφεί και εκτελεστεί το Πρόγραμμα (Β) που περιέχει λάθη στη σωστή του μορφή. Στο Πρόγραμμα (Β), οι τιμές εισόδου είναι αριθμοί, π.χ. αν Α = 1 και Β = 2, μετά την εκτέλεση του προγράμματος θα είναι Α = 2 και Β = 1. Γ. Να τροποποιηθεί ο κώδικας για το Πρόγραμμα (Α) ώστε να γίνεται πρώτα εκχώρηση της ποσότητας Β στην βοηθητική μεταβλητή Temp. Εκτέλεση της Άσκησης Διάγραμμα επεξήγησης περίπτωσης Α. a Temp=a a a a A A a=b B b=temp B Temp b Temp b Temp b Temp b B A B A B A A Πρόγραμμα (A) Sub Main() A = InputBox( A= ) B = InputBox( B= ) Temp = Α Α = Β Β = Temp MsgBox A= + A +, B= + B End Sub Δεδομένα εισόδου : Αποτελέσματα : Β. Πρόγραμμα (Β) Sub Main() A = putbox( A= ) B = OutBox(B=) Temp <- ΑA Α == ΒB ΒB >= Temp MsgBox A= + String(A) +, B= + String(B) End Sub Δεδομένα εισόδου : Α= 1, Β= 2 Αποτελέσματα : A= 2, B= 1 Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 24
Γ. Sub Main() A = InputBox( A= ) B = InputBox( B= ) Temp = B Πρόγραμμα (Γ) MsgBox A= + A +, B= + B End Sub Εργασία για παράδοση (Εργαστηριακή Άσκηση 2) Να παραδώσετε την συγκεκριμένη εργασία μέχρι την έναρξη εκτέλεσης της επόμενης εργαστηριακής άσκησης στην Εργαστηριακή Ομάδα που ανήκετε: 1. Να αναφέρετε τον τρόπο σύνταξης των συναρτήσεων MsgBox και InputBox και τι εκφράζει η κάθε παράμετρός τους (συνοπτικά). Τι εκφράζει η κωδική λέξη vbcrlf και με ποιους χαρακτήρες συνδέεται με άλλες αλφαριθμητικές ποσότητες (συμβολοσειρές) ; Ποια η λειτουργία της συνάρτησης Str και με ποιους χαρακτήρες συνδέεται με άλλες συμβολοσειρές; 2. Να αναφέρετε τον τρόπο σύνταξης μιας εντολής εκχώρησης και τον χαρακτήρα με τον οποίο υλοποιείται στη Visual Basic. Ποια είναι η αλληλουχία ενεργειών που εκτελείται στην εντολή εκχώρησης; Ποιόν τελεστή εκχώρησης σε άλλη γλώσσα προγραμματισμού γνωρίζετε; 3. Να σημειώσετε ποιες από τις παρακάτω εντολές εκχώρησης είναι σωστή ή λάθος. Σε περίπτωση που είναι λάθος, να δικαιολογήσετε την απάντησή σας και να δώσετε μία σωστή εκδοχή. α/α Εντολή Σωστό/Λάθος α/α Εντολή Σωστό/Λάθος 1 X = Y 5 X = Y + Z 2 X = 3 + 5 6 X = Y & Z 3 X + 1 = X 7 X <= X + 1 4 X -Y = X - Y 8 X + Y = Z 4. Να γράψετε ολοκληρωμένο τον κώδικα για την περίπτωση (B) της Άσκησης 2.2. 5. Να γράψετε ολοκληρωμένο τον κώδικα για την περίπτωση (B) της Άσκησης 2.3. 6. Να γράψετε ολοκληρωμένο τον κώδικα για τις περιπτώσεις (Β) και (Γ) της Άσκησης 2.4. Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 25
ΑΣΚΗΣΗ 3. Σταθερές (αριθμητικές, λογικές, αλφαριθμητικές, ημερομηνίες). ΠΕΡΙΛΗΨΗ ΘΕΩΡΙΑΣ 1. Τύποι δεδομένων. Σε ένα πρόγραμμα μπορούμε να χρησιμοποιήσουμε τους εξής τύπους δεδομένων: - Σταθερές (constants), δηλαδή αριθμούς, χαρακτήρες, σειρές συμβόλων και ημερομηνίες που δεν αλλάζουν κατά τη διάρκεια εκτέλεσης του προγράμματος. - Μεταβλητές (variables), δηλαδή ποσότητες που η τιμή τους μπορεί να μεταβληθεί από τις εντολές του προγράμματος με στόχο να αποθηκεύουμε προσωρινά κάποιες τιμές και να τις χρησιμοποιήσουμε σε άλλα σημεία του προγράμματος ή σε άλλες χρονικές στιγμές. - Παραστάσεις (expressions) που βασίζονται πάνω σε σύνθετους μαθηματικούς τύπους (σχέσεις) για να κάνουμε υπολογισμούς. 2. Σταθερές. Η Visual Basic περιλαμβάνει τεσσάρων ειδών σταθερές o Αριθμητικές σταθερές (numeric constants). Είναι γενικά οι αριθμοί κάθε μορφής. Υπάρχουν δύο ειδών αριθμητικές σταθερές: οι ακέραιες (integer) που παριστάνουν ορισμένους από τους ακέραιους αριθμούς και οι πραγματικές (real) που παριστάνουν ορισμένους από τους πραγματικούς αριθμούς. Οι αρνητικές αριθμητικές σταθερές δηλώνονται τοποθετώντας μπροστά υποχρεωτικά το πρόσημο «μείον» (-) ενώ για τις θετικές σταθερές δεν απαιτείται το πρόσημο «συν» (+). Οι δεκαδικοί δηλώνονται με την υποδιαστολή το σύμβολο της οποίας είναι η τελεία (.) και όχι το κόμμα (,). Για τους ακέραιους με περισσότερα από τρία ψηφία, δε χρησιμοποιείται κανένα σύμβολο για το χωρισμό των ψηφίων του ακεραίου μέρους σε τριάδες (π.χ. 1000 και όχι π.χ. 1.000). Κατά την πληκτρολόγηση μιας αριθμητικής σταθεράς, υπάρχει περίπτωση η Visual Basic να αλλάξει την γραφή σύμφωνα με τα δικά της πρότυπα γραφής, αμέσως μετά τη συμπλήρωση της εντολής που την περιέχει. Εκτός από τον κλασικό τρόπο συμβολισμού υπάρχει και ο επιστημονικός συμβολισμός (scientific notation) όπου χρησιμοποιούμε ένα μόνο ακέραιο ψηφίο, κάποια ψηφία μετά την υποδιαστολή και την τάξη μεγέθους τη δηλώνουμε με μια δύναμη του 10 για την οποία χρησιμοποιείται το λατινικό γράμμα E. o Λογικές σταθερές (boolean). Οι λογικές σταθερές παίρνουν τιμή είτε True (Αληθές) είτε False (Ψευδές) ακολουθώντας τη δυαδική λογική (0 ή 1) και αποτελούν συμβολισμούς σταθερών. Χρησιμοποιούνται για την λήψη αποφάσεων και για τον προσδιορισμό μιας συνθήκης (αληθής ή ψευδής). o Αλφαριθμητικές σταθερές ή συμβολοσειρές (strings). Είναι μια σειρά από χαρακτήρες, δηλαδή γράμματα του ελληνικού και του αλφαβήτου, ψηφία και σύμβολα. Για τη δήλωσή τους περικλείονται σε διπλά εισαγωγικά (quotes) ( ) και παριστάνουν αριθμητικές ποσότητες, ονόματα, διευθύνσεις, μηνύματα προς το χρήστη κλπ. Το πλήθος των χαρακτήρων μιας Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 26
συμβολοσειράς ονομάζεται μήκος της συμβολοσειράς. Η συμβολοσειρά έχει μηδενικό μήκος και ονομάζεται μηδενική συμβολοσειρά. o Ημερομηνίες (dates). Οι ημερομηνίες στη Visual Basic σε αντίθεση με άλλες γλώσσες, περικλείονται μεταξύ συμβόλων (#) και ακολουθούν τον αμερικάνικο τρόπο συμβολισμού, δηλαδή γράφεται πρώτα ο μήνας και μετά η ημέρα, ενώ το έτος γράφεται τελευταίο και είναι τετραψήφιο. Η γενική τους μορφή είναι: #μμ/ηη/εεεε# 3. Δήλωση σταθερών στη Visual Basic. Η δήλωση μιας σταθεράς στη Visual Basic γίνεται με την εντολή Const και είναι της μορφής: Const όνομα_σταθεράς = τιμή Η τιμή είναι είτε ένας αριθμός ή μια συμβολοσειρά ή μια ημερομηνία. Επίσης, μπορεί να είναι και μια παράσταση από σταθερές που δεν περιέχει συναρτήσεις. Για το όνομα_σταθεράς μπορούμε να χρησιμοποιήσουμε και ελληνικά γράμματα (και τονισμένα) αλλά πρέπει το όνομα να αρχίζει με γράμμα και όχι αριθμό. Από χαρακτήρες, μόνο ο χαρακτήρας (_) μπορεί να χρησιμοποιηθεί αλλά όχι ως πρώτος. Οι κανόνες που ακολουθεί το όνομα μιας σταθεράς ή μιας μεταβλητής είναι ίδιοι. Στη συνέχεια δίνονται παραδείγματα δήλωσης σταθερών: Δήλωσης της σταθεράς π=3,141592. Η δήλωση γίνεται ως εξής: Const π = 3.141592 Δήλωση της σταθεράς 2*π, που αποτελεί παράσταση αριθμών με όνομα π2 (και όχι 2π διότι οι σταθερές δεν επιτρέπεται να αρχίζουν από ψηφίο) : Const π2 = 2 * π Το πλήθος των μη εργάσιμων ημερών μιας εβδομάδας μπορεί να συμβολιστεί σαν NumOfNonWorkDays. Η δήλωση γίνεται ως εξής: Const NumOfNonWorkDays = 2 Μια καταληκτική ημερομηνία, π.χ. η 31 η Δεκεμβρίου 2020 μπορεί να ονομαστεί ως EndDate και να δηλωθεί ως εξής: Const EndDate = #12/31/2020# Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 27
ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ Άσκηση 3.1. Αριθμητικές σταθερές Να γραφεί πρόγραμμα όπου να δηλώνονται οι παρακάτω αριθμητικές σταθερές (arithmetic constants) και να παρατηρηθεί η αλλαγή γραφής από τη Visual Basic. Επίσης, με χρήση της εντολής εξόδου MsgBox να εμφανιστούν τα αποτελέσματα. Αριθμός Αλλαγή γραφής από Visual Basic 89 89-90 -90 0 0 0.0 0# 4.0 4# -34.56-34.56 Εκτέλεση της Άσκησης Πληκτρολογούμε το παρακάτω πρόγραμμα χωρίς τα σχόλια και το εκτελούμε (Run) π.χ. πατώντας το πλήκτρο F5. Πρόγραμμα Αποτελέσματα Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 28
Άσκηση 3.2. Αριθμητικές σταθερές με επιστημονικό συμβολισμό. Να γραφεί πρόγραμμα όπου να δηλώνονται οι παρακάτω αριθμητικές σταθερές (arithmetic constants) με επιστημονικό συμβολισμό όπου για να δηλώσουμε τη δύναμη του 10 χρησιμοποιούμε το λατινικό γράμμα Ε. Επίσης, με χρήση της εντολής εξόδου MsgBox να εμφανιστούν τα αποτελέσματα. Αριθμός Δήλωση σε Visual Basic 2.032.000.000.000 ή 2,032x10 12 2.032Ε+12 0,0006 ή 6x10-4 6E-4 10 x 10 10 ή 1x10 11 1E11 10 x 10-10 ή 1x10-9 1E-9 Εκτέλεση της Άσκησης Πληκτρολογούμε το παρακάτω πρόγραμμα αλλά όχι τα σχόλια (μετά το ) τα οποία είναι για να μας υπενθυμίσουν το τι πρέπει να πληκτρολογήσουμε. Εκτελούμε (τρέχουμε) το πρόγραμμα π.χ. πατώντας το πλήκτρο F5 και παρατηρούμε τον τρόπο εμφάνισης των αποτελεσμάτων. Παρατήρηση: Το αποτέλεσμα που εμφανίζεται στην οθόνη για τις σταθερές ω3 και ω6 στις οποίες δεν δώσαμε τιμή είναι 0. Πρόγραμμα Αποτελέσματα Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 29
Άσκηση 3.3. Λανθασμένες δηλώσεις σταθερών και εναλλακτικοί τρόποι δήλωσης. Το παρακάτω πρόγραμμα περιλαμβάνει ορισμένες λανθασμένες δηλώσεις σταθερών και εναλλακτικές δηλώσεις αυτών. Οι σταθερές, η γραφή σε Visual Basic, τα λάθη και ο σωστός ή ένας εναλλακτικός τρόπος γραφής περιέχονται στον ακόλουθο Πίνακα. Αριθμός Λανθασμένη γραφή σε Visual Basic Λάθος Σωστός ή εναλλακτικός τρόπος δήλωσης 205,65 205,65 Κόμμα αντί για τελεία 206.65 5,67x10 0,5 5.67E0.5 Εκθέτης μη ακέραιος. 5.67*10^0.5 Λάθος επίσης και το: 5.67*Sqr(10) 2 3 2Ε3 Βάση όχι το 10 2^3 10 13 10Ε13 Αντιστοιχεί σε 10*10 13 1Ε13 ή 10^13 422x10 7 422E Δεν υπάρχει εκθέτης e 7 1E7 Βάση όχι το 10. Const E=2.718282 Λάθος επίσης και το: Exp(7) 2 π 2*π Το π δεν αναγνωρίζεται από τη Visual Basic αλλά θα πρέπει πρώτα να δηλωθεί σαν σταθερά. Εκτέλεση της Άσκησης Const E7=E^7 Const π=3.141592 Const π2=2*π (όχι 2π γιατί το όνομα σταθεράς δεν πρέπει να αρχίζει από αριθμό αλλά μόνο από γράμμα) Πρόγραμμα με λάθη Sub Main() Const Λ1 = 205,65 Const Λ2 = 5.67E0.5 Const Λ3 = 2Ε3 Const Λ4 = 10Ε13 Const Λ5 = 422Ε Const E7 = E ^ 7 Const π2 = 2 * π MsgBox Str(Λ1) + "," + Str(Λ2) + "," + Str(Λ3) + "," + Str(Λ4) + "," + Str(Λ5) + "," + Str(E) + "," + Str(E7) + "," + Str(π) + "," + Str(π2) End Sub Αποτελέσματα Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 30
Άσκηση 3.4. Λογικές σταθερές, αλφαριθμητικές σταθερές και ημερομηνίες. Α. Να γραφεί πρόγραμμα όπου να δηλώνονται οι παρακάτω λογικές σταθερές (Boolean constants), αλφαριθμητικές σταθερές (string constants) και σταθερές ημερομηνίας (dates). Επίσης, να χρησιμοποιηθούν 3 εντολές MsgBox, μία για κάθε ομάδα σταθερών του παρακάτω Πίνακα αλλά να εμφανιστούν τα αποτελέσματα κάθε ομάδας από ένα σε κάθε γραμμή χρησιμοποιώντας τους χαρακτήρες & vbcrlf &. Επίσης, παρατηρήστε ότι η ημερομηνία 2/29/2007 δεν θα γίνει αποδεκτή (αφού δεν υφίσταται) οπότε αλλάξτε την σε 2/28/2007. Λογικές σταθερές Αλφαριθμητικές σταθερές Ημερομηνίες True False Δώστε την τιμή της αντίστασης R1 R1= A#*/().,!&^$ 157,35 17 η Νοεμβρίου 2010 21 Μαΐου 2000 4 Απριλίου 2005 29 η Φεβρουαρίου 2007 Β. Να τροποποιήσετε τον τρόπο εμφάνισης των αποτελεσμάτων ώστε να εμφανίζονται το καθένα σε μία ξεχωριστή γραμμή χρησιμοποιώντας μία μόνο εντολή MsgBox, τους χαρακτήρες & vbcrlf & και τον χαρακτήρα κάτω παύλα (underscore) _ για συνέχιση της γραφής σε άλλη γραμμή ώστε να περιοριστεί το πλάτος γραφής του κώδικα. Τα αποτελέσματα θα πρέπει να εμφανίζονται όπως δείχνει η ακόλουθη εικόνα: Εκτέλεση της Άσκησης Α. Στο πρόγραμμα θα χρησιμοποιήσουμε 3 εντολές MsgBox, μία για κάθε ένα από τους τύπους σταθερών του παραπάνω Πίνακα. Εκτελώντας το πρόγραμμα (πλήκτρο F5) και πατώντας διαδοχικά το ΟΚ στο μήνυμα που εμφανίζεται, παίρνουμε τα αποτελέσματα που φαίνονται στον παρακάτω Πίνακα. Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 31
Πρόγραμμα Αποτελέσματα Β. Τμήμα προγράμματος με αλλαγές στον τρόπο εμφάνισης των αποτελεσμάτων Άσκηση 3.5. Υπολογισμός ισοδύναμης αντίστασης τριών παράλληλων αντιστάσεων Να γραφεί πρόγραμμα υπολογισμού της ισοδύναμης αντίστασης Rισ τριών παράλληλων αντιστάσεων R1, R2 και R3. Η ισοδύναμη αντίσταση ν παράλληλων αντιστάσεων δίνεται από τα η σχέση : 1 R 1 R 1 R... 1 1 2 R ν Οπότε για δύο αντιστάσεις μπορούμε να χρησιμοποιήσουμε την ακόλουθη παράσταση για εκχώρηση της τιμής της ισοδύναμης αντίστασης με βάση την τιμή των R1, R2 και R3: R123 = 1 / ( (1 / R1) + (1 / R2) + (1 / R3) ) Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 32
Επίσης, στα αποτελέσματα να εμφανίζεται η τιμή των R1, R2, R3 και Rισ η μία κάτω από την άλλη με κατάλληλη διαμόρφωση της συνάρτησης MsgBox. Ενδεικτικά αποτελέσματα άσκησης Αποτελέσματα R1 = 3, R2 =3, R3 = 3 R1 = 6, R2 = 4, R3 = 2 Δομή προγράμματος Πρόγραμμα σε Visual Basic ΕΝΑΡΞΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΕΙΣΑΓΩΓΗ ΤΙΜΗΣ ΓΙΑ ΤΗΝ R1 ΕΙΣΑΓΩΓΗ ΤΙΜΗΣ ΓΙΑ ΤΗΝ R2 ΕΙΣΑΓΩΓΗ ΤΙΜΗΣ ΓΙΑ ΤΗΝ R3 ΥΠΟΛΟΓΙΣΜΟΣ ΙΣΟΔΥΝΑΜΗΣ ΑΝΤΙΣΤΑΣΗΣ R123 ΕΜΦΑΝΙΣΗ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΤΕΛΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Εργασία για παράδοση (Εργαστηριακή Άσκηση 3) Να παραδώσετε την συγκεκριμένη εργασία μέχρι την έναρξη εκτέλεσης της επόμενης εργαστηριακής άσκησης στην Εργαστηριακή Ομάδα που ανήκετε: 1. Τι εκφράζουν οι σταθερές, οι μεταβλητές και οι παραστάσεις ; 2. Ποια τα είδη των σταθερών ; Να δώσετε ένα παράδειγμα δήλωσης σταθεράς για κάθε είδος. Τι κανόνες ακολουθεί το όνομα μιας σταθεράς ; 3. Να σημειώσετε ποιες από τις παρακάτω δηλώσεις σταθερών ή σετ εντολών είναι σωστά ή λάθος. Σε περίπτωση που είναι λάθος, να δικαιολογήσετε την απάντησή σας και να δώσετε μία σωστή εκδοχή. α/α Εντολή/ές Σωστό/Λάθος α/α Εντολή/ές Σωστό/Λάθος 1 Const C1_1_1= 100 6 Const A-B+C = ABC 2 Const Ημέρα = #3/25/2020# 7 Const π = 1,15 π = π + 1 3 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 4. Να δώσετε το τμήμα προγράμματος για την εναλλακτική εμφάνιση των αποτελεσμάτων της Άσκησης 3.4.Β. Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 33
5. Να δώσετε το πρόγραμμα για την Άσκηση 3.5. Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 34
ΑΣΚΗΣΗ 4. Δήλωση μεταβλητών και πράξεις με αριθμητικές παραστάσεις. ΠΕΡΙΛΗΨΗ ΘΕΩΡΙΑΣ 1. Μεταβλητές. Η τιμή των μεταβλητών (variables) μεταβάλλεται κατά τη διάρκεια εκτέλεσης ενός προγράμματος. Η τιμή κάθε μεταβλητής καταχωρείται σε τμήμα της μνήμης του ΗΥ το οποίο δεσμεύεται για το σκοπό αυτό. Τα ονόματα των μεταβλητών όπως και αυτά των σταθερών πρέπει να ακολουθούν κάποιους κανόνες, οι οποίοι συνοψίζονται στη συνέχεια: Ως όνομα των μεταβλητών (ή των σταθερών) δε μπορεί να χρησιμοποιηθεί κάποια λέξη που χρησιμοποιείται από τη Visual Basic για κάποιο σκοπό π.χ. ως εντολή κλπ. Για παράδειγμα δε μπορούν να χρησιμοποιηθούν οι λέξεις True, Const, If, Loop, Case κλπ. Τα ονόματα πρέπει να αρχίζουν πάντα με γράμμα και να αποτελούνται από γράμματα (ελληνικά ή αγγλικά, μικρά ή κεφαλαία), αριθμούς και από σύμβολα μόνο ο χαρακτήρας (_). Δεν επιτρέπονται άλλα σύμβολα ή κενά μέσα σε ένα όνομα. 2. Τύποι μεταβλητών. Όπως και με τις σταθερές, οι μεταβλητές κατατάσσονται σε αριθμητικές, λογικές, αλφαριθμητικές και ημερομηνίες. Οι αριθμητικές μπορεί να είναι είτε ακέραιες είτε δεκαδικές. Το μέγεθος της μνήμης του ΗΥ που δεσμεύεται για την καταχώρηση της τιμής μιας μεταβλητής εξαρτάται από τον τύπο της μεταβλητής. Για τις αριθμητικές μεταβλητές εξαρτάται από το εύρος τιμών που μπορεί να πάρει και την ακρίβεια παράστασης αυτών. Γενικά, ο τρόπος αποθήκευσης και παράστασης (πλήθος bytes και ακολουθία bits) των μεταβλητών στη μνήμη εξαρτάται από τον τύπο της μεταβλητής με τον οποίο δηλώθηκε στο πρόγραμμα. Ο επόμενος Πίνακας περιλαμβάνει όλους τους τύπους μεταβλητών για τη γλώσσα Visual Basic: Τύπος μεταβλητής και Μνήμη Εύρος τιμών τιμών δεδομένων (bytes) Integer 2 Ακέραιοι με εύρος τιμών: -32.768 έως 32.767 Long 4 Ακέραιοι με εύρος τιμών: -2.147.483.648 έως 2.147.483.647 (μεγάλος ακέραιος) Byte 1 Ακέραιοι με εύρος τιμών: 0 έως 255 (μικρός ακέραιος) Single (απλής ακρίβειας) 4 Το 0 και οι πραγματικοί αριθμοί με απόλυτη τιμή από 1,401298x10-34 έως 3,402823x10 38 Double (διπλής ακρίβειας) 8 Το 0 και οι πραγματικοί αριθμοί με απόλυτη τιμή από 4,94065645841247x10-324 έως 1,79769313486232x10 308 Boolean 2 Δύο τιμές (True, False) String 10 + Εύρος τιμών: από 0 έως 2.000.000.000 χαρακτήρες περίπου (μεταβλητού μεγέθους) Πλήθος χαρακτήρων String * Πλήθος Εύρος τιμών: από 1 έως 65.400 χαρακτήρες περίπου (σταθερού μεγέθους) χαρακτήρων Date 8 Εύρος τιμών: από 1 η Ιανουαρίου 100 έως 31 η Δεκεμβρίου 9999 Currency 8 Από -922.337.203.685.477,5808 έως 922. (νόμισμα) 337.203.685.477,5807 Variant 16 Κάθε αριθμητική τιμή που μπορεί να δεχτεί ο τύπος double (με αριθμούς) Variant (με χαρακτήρες) 22 + Πλήθος χαρακτήρων Κάθε συμβολοσειρά που μπορεί να δεχτεί ο τύπος String μεταβλητού μεγέθους Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 35
3. Δήλωση μεταβλητών στη Visual Basic. Η δήλωση του ονόματος και του τύπου μιας μεταβλητής, όπως και με τις σταθερές, είναι απαραίτητη στη Visual Basic. Η δήλωση γίνεται με την εντολή Dim και είναι της μορφής: Dim όνομα_μεταβλητής As τύπος όπου όνομα_μεταβλητής είναι το όνομα της μεταβλητής σύμφωνα με τους κανόνες που αναλύσαμε πιο πάνω και τύπος ένας από τους τύπους που αναφέραμε στον προηγούμενο Πίνακα. Στη συνέχεια δίνονται παραδείγματα δήλωσης τύπου μεταβλητών: Dim Counter As Integer Dim Average As Long Dim Total As Double Dim Current As Single Dim Α As Single, Β As Single Dim Α, Β As Single Dim CustomerName As String * 25 Dim Code As Variant Dim Barcode 4. Αριθμητικές πράξεις και παραστάσεις. Στον επόμενο Πίνακα δίνονται τα σύμβολα για κάθε πράξη στη visual Basic: Σύμβολο Πράξη + Πρόσθεση - Αφαίρεση * Πολλαπλασιασμός / Διαίρεση \ Ακέραια διαίρεση mod Modulo (υπόλοιπο) ^ Ύψωση σε δύναμη 5. Ιεραρχία (προτεραιότητα) πράξεων. Οι πράξεις που παρουσιάζονται σε μια έκφραση, εκτελούνται σύμφωνα με την επόμενη ιεραρχία: 1. Παρενθέσεις ( ). Σημείωση: Όχι αγκύλες, άγκιστρα κλπ για περισσότερες από μία συνεχόμενες παρενθέσεις. 2. Υψώσεις σε δύναμη ( ^ ) 3. Κανονικές διαιρέσεις ( / ) και μετά πολλαπλασιασμοί ( *) 4. Ακέραιες διαιρέσεις ( \ ) και μετά υπόλοιπα διαίρεσης ( mod ) 5. Προσθέσεις και αφαιρέσεις ( +, - ) 6. Λογικοί τελεστές (=,, >,, <, ) Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 36
ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ Άσκηση 4.1. Δηλώσεις μεταβλητών και πράξεις με αριθμητικές παραστάσεις Να γραφεί πρόγραμμα υπολογισμού των παρακάτω παραστάσεων που περιλαμβάνουν τέσσερις διαφορετικές μεταβλητές a, b, c, d. Να δηλωθεί ο τύπος κάθε μεταβλητής με βάση τα ακόλουθα: Η μεταβλητή a πρόκειται να πάρει τιμές μέσα στο εύρος 5 έως 20.000. Η μεταβλητή b πρόκειται να πάρει τιμές μέσα στο εύρος -1.000 έως 50.000 Η μεταβλητή c πρόκειται να πάρει τιμές μέσα στο εύρος 0 έως 5.000.000.000 Η μεταβλητή d πρόκειται να πάρει τιμές με ακρίβεια δύο δεκαδικών ψηφίων (π.χ. 0.03). Επίσης, να γίνουν τα εξής: Α. Να μη δηλωθεί ο τύπος των μεταβλητών a1 έως a6. Β. Να δηλωθεί ο τύπος των μεταβλητών a1 και a5 ως Single και να παρατηρηθούν οι διαφορές. Αριθμητική παράσταση Γραφή σε Visual Basic και εκχώρηση σε μεταβλητή 2πa 2 a1 = 2*3.141592 * 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 Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 37
A. B. Πρόγραμμα (Τα σχόλια να μην πληκτρολογηθούν) 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 * 3.141592 * a ^ 2 a2 = 5 * a ^ 3 + 6 * a ^ 2 + 1 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 Dim a1 As Single Dim a5 As Single Ενδεικτικά αποτελέσματα του προγράμματος για a = -3, b = 4, c = 2, d = 2 A. B. Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 38
Άσκηση 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 2 b b a b 5 4 b d (a 1) 1 1 2a b d 4ac A. Ενδεικτικά αποτελέσματα του προγράμματος για a = -3, b = 4, c = 2, d = 2 B. Πρόγραμμα Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 39
Άσκηση 4.3. Απλοί υπολογισμοί με το Excel Να γραφεί πρόγραμμα υπολογισμού στο Excel που να υπολογίζει τον Τελικό Βαθμό δύο (2) σπουδαστών με βάση τον Βαθμό Εξέτασης και τον Βαθμό Εξέτασης στο Εργαστήριο με τιμές από 0 έως 10. Η σχέση υπολογισμού του τελικού βαθμού έχει ως εξής: Τελικός Βαθμός = Βαθμός Θεωρίας * 60% + Βαθμός Εργαστηρίου * 40% Επίσης, να υπολογιστεί ο Μέσος Όρος (Μ.Ο.), ο Μέγιστος (Max) και ο ελάχιστος (Min) από τους βαθμούς στη Θεωρία, το Εργαστήριο και τον Τελικό Βαθμό. Εκτέλεση της Άσκησης Σε ένα Φύλλο Εργασίας του Excel πληκτρολογούμε τα στοιχεία του παρακάτω Πίνακα. Οι γραμμές και στήλες που περιέχουν την επίδειξη των εντολών (με πλάγια γράμματα και με τα ) για τη λήψη των αντίστοιχων αποτελεσμάτων να μην πληκτρολογηθούν. A B C D E Βαθμοί/Αποτελέσματα/Εντολές Β. Θεωρ. Β. Εργ. Β. Τελικός Εντολές (χωρίς τα " ") Βαθμός 1 8 7 7,6 "=B2*0,6+C2*0,4" Βαθμός 2 7 4 5,8 "=B3*0,6+C3*0,4" Αποτέλεσμα Μ.Ο. (να μην πληκτρολογηθεί) 7,5 5,5 6,7 Εντολές (χωρίς τα " ") Μ.Ο. "=AVERAGE(B2:B3)" "=AVERAGE(C2:C3)" "=AVERAGE(D2:D3)" Αποτέλεσμα Max (να μην πληκτρολογηθεί) 8 7 7,6 Εντολές (χωρίς τα " ") Max "=MAX(B2:B3)" "=MAX(C2:C3)" "=MAX(D2:D3)" Αποτέλεσμα Min (να μην πληκτρολογηθεί) 7 4 5,8 Εντολές (χωρίς τα " ") Min "=MIN(B2:B3)" "=MIN(C2:C3)" "=MIN(D2:D3)" Άσκηση 4.4. Αριθμητικές παραστάσεις στο Excel Να υπολογιστούν οι αριθμητικές παραστάσεις των ασκήσεων 4.1 και 4.2 για τις μεταβλητές a1 έως a11 με χρήση του Excel. Να γίνει σύγκριση των αποτελεσμάτων με τα αποτελέσματα των προγραμμάτων σε Visual Basic (ασκήσεις 4.1 και 4.2, υποερωτήματα Α και Β) και να παρατηρήσετε τυχόν διαφορές για ίδιες τιμές των παραμέτρων a, b, c και d. Σημείωση 1: Η τιμή του π = 3,141592 υπάρχει έτοιμη στο Excel και δίνεται από τη συνάρτηση : PI() χωρίς όρισμα μέσα στην παρένθεση. Σημείωση 2: O υπολογισμός της τετραγωνικής ρίζας μπορεί να γίνει με ύψωση στη δύναμη 0,5 ή χρησιμοποιώντας τη συνάρτηση SQRT() με όρισμα μέσα στην παρένθεση. Π.χ αν η τιμή του ορίσματος βρίσκεται στο κελί Α3 και το αποτέλεσμα θέλουμε να εμφανιστεί στο κελί B3 θα γράψουμε μέσα στο κελί B3: = SQRT(A3) Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 40
Εκτέλεση της Άσκησης Σε ένα Φύλλο Εργασίας του Excel πληκτρολογούμε τα στοιχεία του παρακάτω Πίνακα. Στις γραμμές που περιέχουν τις εντολές να μην πληκτρολογηθούν τα διπλά εισαγωγικά ). Έτσι, θα προκύψουν τα αποτελέσματα υπολογισμού των παραστάσεων a1 έως a11 για τις τιμές των a, b, c και d. A B C D E F G H 1 Τιμές παραμέτρων 2 a b c d 3 2 4 2 2 4 Παράσταση (χωρίς τα "") Αποτελέσματα (!!! Να μην πληκτρολογηθούν) 5 a1 "=2*PI()*A3^2" 25,13274123 6 a2 "=5*A3^3+6*A3^2+1" 65 7 a3 "=(A3+B3)*C3/3" 4 8 a4 "=1/3*A3*B3^2" 10,66666667 9 a5 "=SQRT(A3)/A3^(2/3)" 0,890898718 10 a6 "=(A3+B3)^C3^D3" 1296 11 a7 "=0,9*A3^4-7" 7,4 12 a8 "=A3*B3/(A3+B3)" 1,333333333 13 a9 "=(A3+1)^(-3/2)" 0,19245009 14 a10 "=(A3/B3+C3/D3)/((1/B3)+(1/D3))" 2 15 a11 "=(-B3+(B3^2-4*A3*C3)^0,5)/(2*A3)" -1 Εργασία για παράδοση (Εργαστηριακή Άσκηση 4) Να παραδώσετε την συγκεκριμένη εργασία μέχρι την έναρξη εκτέλεσης της επόμενης εργαστηριακής άσκησης στην Εργαστηριακή Ομάδα που ανήκετε: 1. Τι εκφράζει μια μεταβλητή ; Τι κανόνες ακολουθεί το όνομα μιας μεταβλητής (ή μιας σταθεράς) ; 2. Ποια η προτεραιότητα των αριθμητικών πράξεων και ποιος ο ρόλος των παρενθέσεων; 3. Να υπολογίσετε το αποτέλεσμα των ακόλουθων παραστάσεων στη Visual Basic : Α = 45 / 3 * 2 \ 4 Mod 4 Β = 15 * 3 / 5 \ 2 Mod 3 4. Να αναφέρετε ονομαστικά τις μεταβλητές για τις Ασκήσεις 4.1 και 4.2. 5. Ποιες διαφορές παρατηρείτε στην εισαγωγή αριθμητικών παραστάσεων μεταξύ της Visual Basic και του Excel στη συγκεκριμένη εργαστηριακή άσκηση; Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 41
ΑΣΚΗΣΗ 5. Πράξεις και παραστάσεις με συμβολοσειρές και ημερομηνίες. ΠΕΡΙΛΗΨΗ ΘΕΩΡΙΑΣ 1. Πράξεις μεταξύ συμβολοσειρών. Η μόνη πράξη μεταξύ αλφαριθμητικών σταθερών και μεταβλητών είναι η συνένωση (concatenation) όπου προκύπτει μια τιμή που αποτελείται από τους χαρακτήρες (σύμβολα) του ενός και του άλλου όρου. Η συνένωση γίνεται με τη χρήση του συμβόλου & ή του + αφήνοντας ένα κενό πριν και μετά το σύμβολο. 2. Πράξεις μεταξύ ημερομηνιών. Τις ημερομηνίες μπορούμε να τις διαχειριστούμε σαν αριθμούς. Αφαιρώντας δύο ημερομηνίες θα πάρουμε ως αποτέλεσμα ένα αριθμό που αντιστοιχεί στις μέρες που μεσολαβούν μεταξύ τους. Προσθέτοντας ένα αριθμό σε μια ημερομηνία, το αποτέλεσμα θα είναι μια ημερομηνία τόσες μέρες μετά όσος είναι και ο αριθμός που προσθέσαμε. Η γλώσσα Visual Basic έχει εσωτερικά όλες τις ιδιομορφίες του ημερολογίου (τους μήνες με 30 ή 31 μέρες, τα δίσεκτα έτη κλπ). Αν σε μια μεταβλητή που δηλώσαμε ως ημερομηνία δώσουμε αριθμητική τιμή, τότε το ακέραιο μέρος της αριθμητικής τιμής μετατρέπεται σε μέρα και το δεκαδικό μέρος σε ώρα. Η τιμή 0 αντιστοιχεί στην ημερομηνία 12/30/1899, επομένως οι θετικές τιμές είναι μεταγενέστερες ημερομηνίες και ο αρνητικές τιμές προγενέστερες ημερομηνίες. Τα μεσάνυχτα έχουν δεκαδικό μέρος 0 (π.χ. 0.0) και το μεσημέρι 5 (π.χ. 0.5). 3. Τεκμηρίωση προγράμματος-σχόλια. Όταν εξετάζουμε τον κώδικα ενός προγράμματος που είχαμε γράψει πριν από πολύ καιρό, σίγουρα θα δυσκολευτούμε να καταλάβουμε τι ακριβώς κάνει ή τι συμβολίζουν οι διάφορες μεταβλητές, παραστάσεις κλπ. Όσο πιο σύνθετα είναι τα προγράμματα αυτά και όσο πιο πολύπλοκες διαδικασίες ή προγραμματιστικά τεχνάσματα περιέχουν, τόσο πιο δύσκολα θα μπορέσουμε να καταλάβουμε το πώς λειτουργεί. Για να αντιμετωπιστεί μια τέτοια κατάσταση, υπάρχει η λειτουργία της εσωτερικής τεκμηρίωσης του προγράμματος με την οποία γράφουμε σχόλια σε καίρια σημεία του προγράμματος ώστε να είμαστε μπορέσουμε να καταλάβουμε τι κάνει μετά από αρκετό καιρό που θα το επανεξετάσουμε. Έτσι, γράφουμε σχόλια για το ρόλο κάθε υπορουτίνας, τα βήματα των αλγορίθμων που χρησιμοποιούνται, τα τεχνάσματα που εφαρμόζονται κλπ. Στη Visual Basic, τα σχόλια δηλώνονται με το χαρακτήρα ( ). Τα σχόλια αυτά παρακάμπτονται από τη Visual Basic κατά τη διάρκεια μετάφρασης του προγράμματος. Επίσης, τα σχόλια δε μπορούν να τοποθετηθούν μαζί με μία εντολή που συνεχίζεται σε περισσότερες από μία γραμμές ούτε και να γραφούν ενδιάμεσα σε εντολές που υπάρχουν σε μια γραμμή. Συνήθως, τοποθετούνται ή στο τέλος μιας γραμμής μετά από τις εντολές ή σε μία γραμμή που δεν περιέχει άλλες εντολές. Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 42
Άσκηση 5.1. Πράξεις με συμβολοσειρές ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ Να γραφεί πρόγραμμα σε Visual Basic για τη δημιουργία σύνθετης λέξης με πρώτο συνθετικό την συμβολοσειρά (string) ΚΑΤΑ και δεύτερο συνθετικό μία νέα λέξη η οποία να αντιστοιχεί σε μεταβλητή που δίνει ο χρήστης. Παραδείγματα τιμών της μεταβλητής StringVar δίνονται στον ακόλουθο Πίνακα: Τιμή της μεταβλητής 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 λεπτά Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 43
Άσκηση 5.2. Πράξεις με ημερομηνίες Να γραφεί πρόγραμμα που να δέχεται μια Αρχική και μια Τελική Ημερομηνία της μορφής ηη/μμ/έτος και να υπολογίζει την Επόμενη Ημερομηνία και τη Διαφορά Ημερών μεταξύ των δύο ημερομηνιών. Σημείωση: Σε περίπτωση που δοθεί ημερομηνία λανθασμένη ημερομηνία π.χ. 31/11/2010 ή 29/02/2011, τότε η Visual Basic επιστρέφει μήνυμα λάθους Εκτέλεση της Άσκησης Να πληκτρολογηθεί και εκτελεστεί το παρακάτω πρόγραμμα και να διαπιστωθούν τα αποτελέσματα με βάση τις ημερομηνίες εισόδου. Το πρόγραμμα θα χρησιμοποιηθεί και στην επόμενη άσκηση. Πρόγραμμα 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/2010 20/10/2010 13/10/2010 8 1/1/2010 31/12/2050 2/1/2010 14974 28/2/2012 29/02/2048 29/02/2012 13150 25/12/2045 28/10/2020 26/12/2045-9189 Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 44
Άσκηση 5.3. Υπολογισμός διαφοράς εβδομάδων και ημερών μεταξύ ημερομηνιών Να γραφεί πρόγραμμα που να δέχεται μια Αρχική και μια Τελική Ημερομηνία της μορφής ηη/μμ/έτος και να υπολογίζει: Τη Διαφορά Ημερών Τη Διαφορά Εβδομάδων Τις Εναπομείναντες Ημέρες από τη Διαφορά Εβδομάδων ως την Τελική Ημερομηνία. Π.χ. για Αρχική Ημερομηνία = 12/10/2010 και Τελική Ημερομηνία = 22/10/2010, είναι: Διαφορά Εβδομάδων=1 και Εναπομείναντες Ημέρες =3. Υπόδειξη: Για τον υπολογισμό της Διαφοράς Εβδομάδων να χρησιμοποιηθεί η ακέραια διαίρεση \. Π.χ. αν Χ= 8 και Υ=6, τότε Χ \ Υ= 1. Επίσης, για τον υπολογισμό των Εναπομεινάντων Ημερών να χρησιμοποιηθεί το υπόλοιπο διαίρεσης mod. Π.χ. αν Χ= 8 και Υ=6, τότε Χ mod Υ = 2. Ενδεικτικά αποτελέσματα του προγράμματος Ημερομηνίες Αποτελέσματα Αρχική ημερομηνία Τελική ημερομηνία Ημέρες διαφορά Διαφορά Εβδομάδων Εναπομείναντες Ημέρες 12/10/2010 22/10/2010 10 1 3 1/1/2010 31/12/2050 14974 2139 1 28/2/2012 29/02/2048 13150 1878 4 25/12/2045 28/10/2020-9189 -1312-5 Πρόγραμμα Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 45
Άσκηση 5.4. Υπολογισμοί με συμβολοσειρές στο Excel Να γίνουν οι υπολογισμοί της Άσκησης 5.1 με το Excel. Να σημειωθεί ότι για τη συνένωση συμβολοσειρών στο Excel χρησιμοποιείται ο χαρακτήρας & χωρίς κενό πριν και μετά το χαρακτήρα. Επίσης, οι συμβολοσειρές δηλώνονται από τα διπλά εισαγωγικά όπως και στη Visual Basic. Εκτέλεση της Άσκησης A B C D E F G H 1 1ο συνθετικό 2ο συνθετικό Σύνθετη λέξη Εντολές χωρίς τα " " Total Time Μήνυμα Εντολές σε μία γραμμή χωρίς τα!! 2 ΚΑΤΑ ΛΗΨΗ ΚΑΤΑΛΗΨΗ "=A2&B2 " 10 Συνολικός χρόνος 25 λεπτά! ="Συνολικός χρόνος "&(F2+15)&"λεπτά"! 3 ΚΑΤΑ ΠΟΣΗ ΚΑΤΑΠΟΣΗ "=A3&B3 " 15 Συνολικός χρόνος 30 λεπτά! ="Συνολικός χρόνος "&(F3+15)&"λεπτά"! 4 ΚΑΤΑ ΘΕΣΗ ΚΑΤΑΘΕΣΗ "=A4&B4 " 20 Συνολικός χρόνος 35 λεπτά! ="Συνολικός χρόνος "&(F4+15)&"λεπτά"! Άσκηση 5.5. Υπολογισμοί με ημερομηνίες στο Excel Να γίνουν οι υπολογισμοί των Ασκήσεων 5.2 και 5.3 με το Excel με βάση τις ακόλουθες υποδείξεις: Η αφαίρεση κελιών με ημερομηνίες γίνεται όπως και η αφαίρεση κελιών με αριθμούς. Η μορφή των κελιών με τον αριθμό ημερών κλπ να είναι η Γενική από την Καρτέλα Αριθμός. Το υπόλοιπο διαίρεσης mod, π.χ. 8 mod 6, συντάσσεται ως εξής: mod(8;6). Η ακέραια διαίρεση υλοποιείται με τη συνάρτηση Quotient και συντάσσεται ως εξής: Quotient(8;6). Αν η συνάρτηση Quotient δεν είναι διαθέσιμη και αποδίδει το σφάλμα #ΟΝΟΜΑ?, θα πρέπει να γίνει εγκατάσταση και φόρτωση του πρόσθετου Πακέτου Εργαλείων Ανάλυσης. Αυτό γίνεται ως εξής: 1. Στο μενού Εργαλεία, κάντε κλικ στην εντολή Πρόσθετα. 2. Στη λίστα Διαθέσιμα πρόσθετα, επιλέξτε το πλαίσιο Πακέτο Εργαλείων Ανάλυσης και στη συνέχεια κάντε κλικ στο κουμπί ΟΚ. 3. Αν χρειαστεί, ακολουθήστε τις οδηγίες του προγράμματος Εγκατάστασης. Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 46
Εκτέλεση της Άσκησης A B C D E F G H 1 Αρχική ημερομηνία Τελική ημερομηνία Διαφορά Ημερών Εντολές χωρίς τα Διαφορά Εβδομάδων Εντολές χωρίς τα Εναπομείναντες Ημέρες Εντολές χωρίς τα 2 12/10/2010 22/10/2010 10 =B2-A2 1 =QUOTIENT(C2;7) 3 =MOD(C2;7) 3 1/1/2010 31/12/2050 14974 =B3-A3 4 28/2/2012 29/2/2048 13150 =B4-A4 5 25/12/2045 28/10/2020-9189 =B5-A5 2139 1878-1312 =QUOTIENT(C3;7) 1 =MOD(C3;7) =QUOTIENT(C4;7) 4 =MOD(C4;7) =QUOTIENT(C5;7) -5 =MOD(C5;7) Εργασία για παράδοση (Εργαστηριακή Άσκηση 5) Να παραδώσετε την συγκεκριμένη εργασία μέχρι την έναρξη εκτέλεσης της επόμενης εργαστηριακής άσκησης στην Εργαστηριακή Ομάδα που ανήκετε: 1. Ποιες πράξεις μπορούν να γίνουν μεταξύ συμβολοσειρών και με ποιά σύμβολα (χαρακτήρες); Ποιες πράξεις μπορούν να γίνουν μεταξύ ημερομηνιών ή μεταξύ ημερομηνίας και αριθμών; Τι παρατηρείτε στη σύνταξη του MsgBox για την εμφάνιση του αποτελέσματος μιας μεταβλητής που είναι τύπου Date (Ημερομηνία) ; 2. Για ποιο σκοπό προστίθενται σχόλια σε ένα πρόγραμμα και ποιοι κανόνες ακολουθούνται για την εισαγωγή σχολίων στη Visual Basic; 3. Να αναφέρετε τις μεταβλητές για τις Ασκήσεις 5.1 και 5.2 και να παραδώσετε το πρόγραμμα για την Άσκηση 5.3. 4. Έστω Α = ΠΑΡΑ και Β = 29/02/2032. Να σημειώσετε ποιες από τις παρακάτω εντολές ή πράξεις είναι σωστές στη Visual Basic και το αποτέλεσμα σε αυτή την περίπτωση. Αν είναι λάθος, να δικαιολογήσετε την απάντησή σας. α/α Εντολή/ές Σωστό/Λάθος α/α Εντολή/ές Σωστό/Λάθος 1 MsgBox A + ΤΑΣΗ 6 K = A & 29/02/2032 2 B = A & 35 7 L = B +1 3 C = A + A + ΛΙΑ 8 M = B + 30/4/2040 4 2*Α = 2 * A 9 N = B * 2 5 5_E = A - A 10 P = B mod 2 5. Ποιες διαφορές παρατηρείται στις πράξεις μεταξύ συμβολοσειρών στη Visual Basic και το Excel ; Ποιες εντολές χρησιμοποιούνται στο Excel για την ακέραια διαίρεση και το υπόλοιπο διαίρεσης και πως συντάσσονται αυτές ; Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 47
ΑΣΚΗΣΗ 6. Παραστάσεις με τριγωνομετρικές συναρτήσεις και συναρτήσεις Int(X), Fix(X) ΠΕΡΙΛΗΨΗ ΘΕΩΡΙΑΣ 1. Μαθηματικές συναρτήσεις (ενσωματωμένες ή συναρτήσεις βιβλιοθήκης). Οι συναρτήσεις περιλαμβάνουν μετά το όνομά τους μέσα σε παρένθεση μία ή περισσότερες μεταβλητές που θα τις ονομάζουμε παραμέτρους. Αν και στον προγραμματισμό ο όρος μεταβλητή έχει καθιερωθεί να υπονοεί μεταβλητή προγράμματος, χρησιμοποιούμε τον όρο παράμετρος συνάρτησης αντί για τον όρο μεταβλητή συνάρτησης ώστε να μη δημιουργείται σύγχυση. Οι παράμετροι μπορεί να είναι σταθερές, μεταβλητές ή παραστάσεις. Για κάθε συνάρτηση, η τιμή των παραμέτρων καθορίζει την τιμή της συνάρτησης. Οι μαθηματικές συναρτήσεις της Visual Basic έχουν ως παραμέτρους αριθμητικές τιμές όλων των τύπων που είδαμε σε προηγούμενο κεφάλαιο (μικρούς ή μεγάλους ακεραίους, πραγματικούς αριθμούς απλής ή διπλής ακρίβειας κλπ). 2. Τριγωνομετρικές συναρτήσεις. Οι τριγωνομετρικές συναρτήσεις που διαθέτει η Visual Basic (έκδοση 6.0) και οι αντίστοιχες συναρτήσεις στο Excel φαίνονται στον παρακάτω Πίνακα. ΝΑ σημειωθεί ότι στο Excel υπάρχουν επίσης ενσωματωμένες οι συναρτήσεις Asin(x), Acos(x) και PI() για την τιμή του π. Αντίθετα, στη Visual Basic 6.0, οι συναρτήσεις Τοξημ(χ), Τοξσυν(χ), Τοξεφ(χ) και το π = 3,141592 μπορούν να υπολογιστούν με βάση τις ακόλουθες σχέσεις (σε νεότερες εκδόσεις της Visual Basic αυτές οι συναρτήσεις υπάρχουν ενσωματωμένες και δίνονται από όμοιες συναρτήσεις με αυτές του Excel): A r c S i n = A t n ( x /(1- x * x ) ^ 0. 5 ), Τόξο ημιτόνου (arcsin ή sin -1 ) όπου: -1<x<1 A r c Cot=-Atn( x ) + 3. 1 4 1 5 9 3 / 2, Τόξο συνεφαπτομένης (arccot ή cot -1 ) A r c Co s = - At n ( x/ ( 1 - x* x ) ) + 3. 1 4 1 5 9 3 / 2, Τόξο συνημιτόνου (arccos ή cos -1 ) όπου: -1<x<1 π = 4 * A t n ( 1 ) Συνάρτηση στη VB Αντίστοιχη συνάρτηση στο Excel Λειτουργία Sin(x) Sin(x) Ημίτονο του x (το x σε ακτίνια) Cos(x) Cos(x) Συνημίτονο του x (το x σε ακτίνια) Tan(x) Tan(x) Εφαπτομένη του x (το x σε ακτίνια) Atn(x) Atan(x) Τόξο εφαπτομένης του x (αποτέλεσμα σε ακτίνια) 3. Συναρτήσεις Int(x), Fix(x) και συναρτήσεις στρογγυλοποίησης. Η τιμή της συνάρτησης Int(x) είναι ο μικρότερος ακέραιος που δεν ξεπερνά την τιμή του x ενώ η τιμή της συνάρτησης Fix(x) είναι ο ακέραιος που προκύπτει από την τιμή του x μετά την αποκοπή των ψηφίων που βρίσκονται στα δεξιά της υποδιαστολής. Με τις συναρτήσεις αυτές, μπορούμε να υλοποιήσουμε συναρτήσεις στρογγυλοποίησης ενός πραγματικού αριθμού με δεκαδικό μέρος με συγκεκριμένο αριθμό ψηφίων Ν (σε νεότερες εκδόσεις της VB και στο Excel υπάρχει η συνάρτηση Round που εκτελεί αυτή τη λειτουργία). Οι παραστάσεις με βάση τις συναρτήσεις Int και Fix είναι οι εξής: Ι = I n t (X*10^N + 0.5 ) /10^N F = Fix ( X*10^N + S gn (X )*0.5 ) /10^N Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 48
ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ Άσκηση 6.1. Τριγωνομετρικές συναρτήσεις ημx, συνx, εφx και σφx Να γραφεί πρόγραμμα για τον υπολογισμό των ακόλουθων παραστάσεων με τριγωνομετρικές συναρτήσεις. Για τον υπολογισμό της συνάρτησης σφx, να χρησιμοποιηθεί η σχέση: σφx = 1 / εφx ( άρα η τιμή του ορίσματος x δε μπορεί να είναι 0). ημα, συνα, εφα, σφa. Υ1 = ημ 2 Α (1+εφ 2 Α) A B Υ2 = A A B B Οι τιμές των ορισμάτων των τριγωνομετρικών συναρτήσεων είναι σε ακτίνια (rads). Υπενθυμίζεται ότι: π = 180 0 = 3,141592 ακτίνια. Να δοθούν οι ακόλουθες τιμές για τα Α και Β: 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 ) Εκτέλεση της άσκησης Τα σχόλια (να μην πληκτρολογηθούν) αφορούν μια εναλλακτική σύνταξη της εντολής MsgBox για την παρουσίαση των αποτελεσμάτων. Να συμπληρωθεί ο κώδικας για τις παραστάσεις Υ1, Υ2. Πρόγραμμα 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 Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 49
Δεδομένα εισόδου (σε ακτίνια) 1 η μορφή παρουσίασης αποτελεσμάτων Αποτελέσματα 2 η μορφή παρουσίασης αποτελεσμάτων Α = Β = 0,7854 Α = Β = 1,0472 Α = Β = 2,0944 Άσκηση 6.2. Αντίστροφες τριγωνομετρικές συναρτήσεις τοξημx, τοξσυνx, τοξεφx, τοξσφx Να γραφεί πρόγραμμα για τον υπολογισμό των παρακάτω αντίστροφων τριγωνομετρικών συναρτήσεων. Επίσης, να υπολογισθεί ο αριθμός π από τη σχέση: π = 4 * A t n ( 1 ). Αντίστροφη τριγωνομετρική συνάρτηση Συνάρτηση στη Visual Basic τοξημa (ημ -1 A ή sin -1 ή arcsina) A t n(a/ ( 1 - A *A)^0.5) τοξσυνa (συν -1 A ή cos -1 ή arccosa ) -Atn(A / (1 - A * A) ^ 0.5) + 3.141592 / 2 τοξεφx (εφ -1 x ή tan -1 ή arctanx) A t n(a) τοξσφx (σφ -1 x ή cot -1 ή arccotx) - A tn(a) + 3.141592/2 Εκτέλεση της άσκησης Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 50
Sub Main() A = InputBox("A=") ArcSinA = Atn(A / (1 - A * A) ^ 0.5) Πρόγραμμα ArcCosA = -Atn(A / (1 - A * A) ^ 0.5) + 3.141592 / 2 ArcTanA = Atn(A) ArcCotA = -Atn(A) + 3.141592 / 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 Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 51
Άσκηση 6.3. Συναρτήσεις Int(x), Fix(x) και στρογγυλοποίησης θετικών και αρνητικών αριθμών Να γραφεί πρόγραμμα υπολογισμού των ακόλουθων συναρτήσεων: Int(X) Ι = In t ( X *10^ N + 0.5)/10^ N Fix(X) F = Fix (X*10^N + S gn( X)*0.5)/10^N Σημείωση: Για τη στρογγυλοποίηση δεκαδικών αριθμών η Visual Basic διαθέτει και τη συνάρτηση Round (X, 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 = " + _ End Sub Str(I) & vbcrlf & "FixX= " + Str(FixX) & vbcrlf & "F = " + Str(F) Δεδομένα εισόδου Χ = 23,15 Χ = -23,15 Ν = 1 Ν = 0 Ν = -1 Ν = 1 Ν = 0 Ν = -1 Αποτελέσματα για την εναλλακτική σύνταξη του MsgBox Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 52
Δεδομένα εισόδου Χ = 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: Τα π ακτίνια αντιστοιχούν σε 180 0 μοίρες. Με μια απλή αναλογική μέθοδο μπορεί να υπολογίσει κανείς οι Α μοίρες ( 0 ) σε πόσες ακτίνια αντιστοιχούν. Αντίστοιχα, μπορεί να υπολογίσει κανείς τα Αtn(Β) ακτίνια σε πόσες μοίρες ( 0 ) αντιστοιχούν για να υπολογίσει τις αντίστοιχες παραστάσεις. Υπόδειξη 2: Με άλλα λόγια, το όρισμα Α της συνάρτησης Sin της Visual Basic να είναι μια παράσταση του Α που μετατρέπει τις μοίρες σε ακτίνια, π.χ. αν Α=30 τότε Sin (Παράσταση) = 0,5. Επίσης, το αποτέλεσμα της συνάρτησης Atn της VB να είναι μια παράσταση της Atn που μετατρέπει τα ακτίνια του αποτελέσματος σε μοίρες π.χ. αν B= 0,5 τότε: Παράσταση του Atn(Β) = 26,56. Υπόδειξη 3: Στις παραστάσεις μετατροπής θα χρειαστεί και το π. Να υπολογιστεί με βάση τη σχέση: π = 4* Atn(1) στην αρχή του προγράμματος. Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 53
Ενδεικτικά αποτελέσματα της άσκησης Δεδομένα εισόδου (Το Α σε μοίρες, Β μεταξύ 0 και 1) Αποτελέσματα Α = 30 Β = 0,5 Α = 60 Β = 0,707 Α = -90 Β = 0,866 Δομή προγράμματος Πρόγραμμα σε Visual Basic ΕΝΑΡΞΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΕΙΣΑΓΩΓΗ ΤΙΜΗΣ ΤΟΥ Α (ΣΕ ΜΟΙΡΕΣ) ΕΙΣΑΓΩΓΗ ΤΙΜΗΣ ΤΟΥ Β (ΜΕΤΑΞΥ 0 ΚΑΙ 1) ΥΠΟΛΟΓΙΣΜΟΣ ΤΟΥ π ΥΠΟΛΟΓΙΣΜΟΣ ΣΥΝΑΡΤΗΣΗΣ Sin(ΠΑΡΑΣΤΑΣΗ TOY A) ΥΠΟΛΟΓΙΣΜΟΣ ΠΑΡΑΣΤΑΣΗΣ ΤΟΥ Atn(B) ΥΠΟΛΟΓΙΣΜΟΣ ΠΑΡΑΣΤΑΣΗΣ Τ1 ΥΠΟΛΟΓΙΣΜΟΣ ΠΑΡΑΣΤΑΣΗΣ Τ2 ΕΜΦΑΝΙΣΗ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΤΕΛΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 54
Άσκηση 6.5. Τριγωνομετρικές συναρτήσεις και παραστάσεις στο Excel Να γίνουν οι υπολογισμοί της Άσκησης 6.1 με το Excel. Εκτέλεση της Άσκησης Πληκτρολογούμε τις εντολές χωρίς τα διπλά εισαγωγικά για κάθε συνάρτηση (π.χ στο κελί C2) και αντιγράφουμε τις εντολές στα υπόλοιπα κελιά (π.χ. C3 και C4) όπως φαίνεται στον επόμενο Πίνακα. Θα πρέπει όμως πρώτα να έχουμε βάλει τις τιμές στα κελιά Α1 - Α3 και Β1 - Β3 (που φαίνονται στον παρακάτω πίνακα) για να δούμε αποτελέσματα για τις αντίστοιχες παραστάσεις. A B C D E F G H 1 A B SinA CosA TanA CotA Y1 Y2 2 "=SIN(A2)" "=COS(A2)" "=TAN(A2)" "=1/TAN(A2)" "=SIN(A2)^2*( 1+TAN(A2)^2) " SIN(B2))/(TAN(A2)/SIN(B 2)-1/(TAN(A2)*COS(B2)))" 3 "=SIN(A3)" "=COS(A3)" "=TAN(A3)" "=1/TAN(A3)" "=SIN(A3)^2*( 1+TAN(A3)^2) " SIN(B3))/(TAN(A3)/SIN(B 3)-1/(TAN(A3)*COS(B3)))" 4 "=SIN(A4)" "=COS(A4)" "=TAN(A4)" "=1/TAN(A4)" "=SIN(A4)^2*( 1+TAN(A4)^2) " "=(COS(A2)- "=(COS(A3)- "=(COS(A4)- SIN(B4))/(TAN(A4)/SIN(B 4)-1/(TAN(A4)*COS(B4)))" Τα αποτελέσματα που παίρνουμε για τις τιμές των Α και Β, δίνονται στον ακόλουθο Πίνακα: A B C D E F G H 1 A B SinA CosA TanA CotA Y1 Y2 2 0,7854 0,7854 0,707108 0,7071055 1,000003673 0,9999963 1,000007-0,5 3 1,0472 1,0472 0,866027 0,4999979 1,732060603 0,577347 3,000034-0,43301 4 2,0944 2,0944 0,866023-0,500004-1,732031217-0,5773568 2,999932 0,433015 Άσκηση 6.6. Αντίστροφες τριγωνομετρικές συναρτήσεις και παραστάσεις στο Excel Να γίνουν οι υπολογισμοί της Άσκησης 6.2 με το Excel. Εκτέλεση της Άσκησης Πληκτρολογούμε τις εντολές χωρίς τα διπλά εισαγωγικά για κάθε συνάρτηση (π.χ στο κελί Β2) και αντιγράφουμε τις εντολές στα υπόλοιπα κελιά (π.χ. Β3 έως Β5). Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 55
A B C D E F 1 A ArcSinA ArcCosA ArcTanA ArcCotA π 2 0,866 "=ASIN(A2)" "=ACOS(A2)" "=ATAN(A2)" "=-D2+PI()/2" "=4*ATAN(1)" 3 0,707 "=ASIN(A3)" "=ACOS(A3)" "=ATAN(A3)" "=-D3+PI()/2" "=4*ATAN(1)" 4 0,5 "=ASIN(A4)" "=ACOS(A4)" "=ATAN(A4)" "=-D4+PI()/2" "=4*ATAN(1)" 5-0,5 "=ASIN(A5)" "=ACOS(A5)" "=ATAN(A5)" "=-D5+PI()/2" "=4*ATAN(1)" Τα αποτελέσματα που παίρνουμε για τις τιμές του Α, δίνονται στον ακόλουθο Πίνακα: A B C D E F 1 A ArcSinA ArcCosA ArcTanA ArcCotA π 2 0,866 1,047147 0,52365 0,71371 0,857086 3,141593 3 0,707 0,785247 0,785549 0,615409 0,955388 3,141593 4 0,5 0,523599 1,047198 0,463648 1,107149 3,141593 5-0,5-0,5236 2,094395-0,46365 2,034444 3,141593 Άσκηση 6.7. Συναρτήσεις Int(X), Ι(Χ,Ν), Fixed(X;N) και Round(X;N) στο Excel Να γίνουν οι υπολογισμοί της Άσκησης 6.3 με το Excel. Εκτέλεση της Άσκησης Πληκτρολογούμε τις εντολές χωρίς τα διπλά εισαγωγικά για κάθε συνάρτηση στο πάνω κουτί και αντιγράφουμε τις εντολές στα υπόλοιπα. A B C D E F 1 X N Int(X) I (X,N) Fή Fixed(X;N) Round(X;N) 2 23,15 1 "=INT(A2)" "=INT(A2*10^B2+0,5)/10^B2" "=FIXED(A2;B2)" "=ROUND(A2;B2)" 3 23,15 0 "=INT(A3)" "=INT(A3*10^B3+0,5)/10^B3" "=FIXED(A3;B3)" "=ROUND(A3;B3)" 4 23,15-1 "=INT(A4)" "=INT(A4*10^B4+0,5)/10^B4" "=FIXED(A4;B4)" "=ROUND(A4;B4)" 5 6 7-23,15-23,15-23,15 1 "=INT(A5)" "=INT(A5*10^B5+0,5)/10^B5" "=FIXED(A5;B5)" "=ROUND(A5;B5)" 0 "=INT(A6)" "=INT(A6*10^B6+0,5)/10^B6" "=FIXED(A6;B6)" "=ROUND(A6;B6)" -1 "=INT(A7)" "=INT(A7*10^B7+0,5)/10^B7" "=FIXED(A7;B7)" "=ROUND(A7;B7)" Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 56
Τα αποτελέσματα που παίρνουμε για τις τιμές των Χ και Ν, δίνονται στον ακόλουθο Πίνακα: A B C D E F 1 X N Int(X) I (X,N) F ή Fixed(X;N) Round(X;N) 2 23,15 1 23 23,2 23,2 23,2 3 23,15 0 23 23 23 23 4 23,15-1 23 20 20 20 5-23,15 1-24 -23,1-23,2-23,2 6-23,15 0-24 -23-23 -23 7-23,15-1 -24-20 -20-20 Εργασία για παράδοση (Εργαστηριακή Άσκηση 6) Να παραδώσετε την συγκεκριμένη εργασία μέχρι την έναρξη εκτέλεσης της επόμενης εργαστηριακής άσκησης στην Εργαστηριακή Ομάδα που ανήκετε: 1. Σε τι μονάδες είναι το όρισμα x των τριγωνομετρικών συναρτήσεων Sin(x), Cos(x), Tan(x); Να υποδείξετε μια μέθοδο μετατροπής του ορίσματος μέσα στην παρένθεση ώστε να εισάγεται σε μοίρες ( 0 ). 2. Σε τι μονάδες είναι το αποτέλεσμα της αντίστροφης εφαπτομένης Atn(x) ; Να υποδείξετε μια μέθοδο μετατροπής του αποτελέσματος σε μοίρες ( 0 ). 3. Τι εκφράζουν οι συναρτήσεις Int(x) και Fix(x) ; Ποιος είναι ο χαρακτήρας συνέχειας γραμμής και για ποιο λόγο χρησιμοποιείται ; 4. Να αναφέρετε τις μεταβλητές για τις Ασκήσεις 6.1, 6.2 και 6.3. 5. Ποιες οι διαφορές μεταξύ των τριγωνομετρικών συναρτήσεων, των συναρτήσεων Int και Fix και των συναρτήσεων στρογγυλοποίησης που είναι διαθέσιμες από τη Visual Basic 6.0 και το Excel; Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 57
ΑΣΚΗΣΗ 7. Παραστάσεις με μαθηματικές συναρτήσεις Sqr(x), Abs(x), Sgn(x), Exp(x) και Log(x) ΠΕΡΙΛΗΨΗ ΘΕΩΡΙΑΣ 1. Τετραγωνική ρίζα Sqr(x). Η τιμή της παραμέτρου x της συνάρτησης Sqr(x) πρέπει να είναι οπωσδήποτε θετικός αριθμός ή μια παράσταση με θετική τιμή. Αν δώσουμε αρνητικό αριθμό, η εκτέλεση του προγράμματος θα διακοπεί και θα εμφανιστεί στην οθόνη του Η/Υ μήνυμα λάθους. Να σημειωθεί ότι η τιμή της τετραγωνικής ρίζας (Square root) μπορεί να υπολογιστεί και με ύψωση στη δύναμη 0.5. 2. Απόλυτη τιμή Abs(x). Η συνάρτηση που δίνει την απόλυτη (Absolute) τιμή ενός αριθμού ή μιας παράστασης δίνεται στη Visual Basic από τη συνάρτηση Abs(x). Ως παράμετρος μιας συνάρτησης μπορεί να είναι και μια παράσταση που περιέχει συναρτήσεις. Για να αποφύγουμε τυχόν λάθη στην κωδικοποίηση και για να είναι πιο κατανοητή από κάποιον τρίτο που θα μελετήσει το πρόγραμμα, οι πολύπλοκες παραστάσεις καλό είναι να διασπώνται σε όσο το δυνατόν απλούστερες παραστάσεις. 3. Πρόσημο Sgn(x). Η τιμή της συνάρτησης Sgn(x) που ονομάζεται πρόσημο (Sign) περιγράφεται από τις ακόλουθες σχέσεις: 1 αν x>0 Sgn(x)= 0 αν x=0-1 αν x<0 4. Εκθετική συνάρτηση Exp(x). Η εκθετική (Exponential) συνάρτηση Exp(x) εκφράζει το αποτέλεσμα της ύψωσης του αριθμού e στη δύναμη x, όπου e η βάση των φυσικών ή νεπερίων λογαρίθμων με τιμή 2,718282 κατά προσέγγιση. 5. Λογαριθμική συνάρτηση Log(x). Η λογαριθμική (Logarithmic) συνάρτηση Log(x) είναι η αντίστροφη της εκθετικής συνάρτησης με βάση το e και υπολογίζει το νεπέριο λογάριθμο του x. Στην ουσία πρόκειται για τη συνάρτηση Ln(x). Η παράμετρος x πρέπει να παίρνει θετικές τιμές. Συνάρτηση στη VB Αντίστοιχη συνάρτηση στο Excel Λειτουργία Sqr(x) Sqrt(x) Τετραγωνική ρίζα του x Abs(x) Abs(x) Απόλυτη τιμή του x Sgn(x) Sign(x) Πρόσημο του x Εxp(x) Εxp(x) Ύψωση του e σε δύναμη x Log(x) Log(x) Νεπέριος λογάριθμος του x Σημείωση: Σε όλες τις παραπάνω συναρτήσεις, το όρισμα (παράμετρος) x μπορεί να είναι είτε ένας αριθμός είτε μια μαθηματική παράσταση. Επίσης, σε νεότερες εκδόσεις της Visual Basic, οι παραπάνω συναρτήσεις είναι όμοιες με αυτές στο Excel. Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 58
ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ Άσκηση 7.1. Τετραγωνική ρίζα Sqr(x) και απόλυτη τιμή Abs(x). Να γραφεί πρόγραμμα για τον υπολογισμό των ακόλουθων μαθηματικών παραστάσεων στη Visual Basic: 2 2 S0 A S1 A B S3 2 A 2 A B S5 A 1 3 3 4 Α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 Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 59
Δεδομένα εισόδου Αποτελέσματα για την εναλλακτική σύνταξη του MsgBox Α = 2, Β = -1 Α = 5, Β = -2 Α = 8, Β = -3 Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 60
Άσκηση 7.2. Πρόσημο Sgn(x), εκθετική Exp(x) και λογαριθμική συνάρτηση Log(x). Να γραφεί πρόγραμμα για τον υπολογισμό των ακόλουθων μαθηματικών παραστάσεων στη Visual Basic: SgnA = Sgn(A) ExpA = Exp(A) MaxAB=(Sgn(A-B)*(A-B)+A+B)/2 ExpAB A - e A B LogeA=Log(A) Log10A Log e A Log 10 Log10AB 10 Log10 e A B SinhA CoshA e A e A e 2 e 2 A A Όπου: Η παράσταση Max=(Sgn(A-B)*(A-B)+A+B)/2 έχει τιμή ίση με το μέγιστο αριθμό μεταξύ των αριθμών A και B. Η συνάρτηση Log(A) δίνει το λογάριθμο του Α με βάση το e, ενώ η παράσταση το λογάριθμο του Α με βάση το 10. Log e A δίνει Log 10 Οι συναρτήσεις Sinh(A) και Cosh(A) δίνουν το υπερβολικό ημίτονο και συνημίτονο του Α αντίστοιχα. Εκτέλεση της Άσκησης e Πρόγραμμα 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 & _ Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 61
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 Α = 2, Β = 1 Α = 2, Β = 3 Α = 4, Β = 4 Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 62
Άσκηση 7.3. Παραστάσεις με συναρτήσεις Sqr(x), Abs(x), Exp(x) και Log(x). Να γραφεί πρόγραμμα για τον υπολογισμό των ακόλουθων παραστάσεων: A B B A 2 S1 S5 A B A B 1 1 B A 1 S2 = 7 A 7 +5 A 5 2 +1 S6 = Log e ( A B ) 3 3 (A B) A S3 S7 = Log 10 ( 2 A B ) B S4 B B 2 2A 4 A B S8 e e 2A 2A 1 1 Ενδεικτικά αποτελέσματα της Άσκησης Δεδομένα εισόδου Αποτελέσματα Α = 1, Β = 2 Α = 3, Β = 4 Α = 5, Β = 6 Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 63
Πρόγραμμα Άσκηση 7.4. Τετραγωνική ρίζα Sqrt(x) και απόλυτη τιμή Abs(x) στο Excel. Να γίνουν οι υπολογισμοί της Άσκησης 7.1 με το Excel. Εκτέλεση της Άσκησης Πληκτρολογούμε τις παρακάτω εντολές για κάθε συνάρτηση στο κουτί C2, D2, και αντιγράφουμε τις εντολές στα υπόλοιπα (C3, C4, D3, D4, ). Οι διαφορές στις συναρτήσεις της Visual Basic και του Excel έγκεινται μόνο στη συνάρτηση τετραγωνικής ρίζας, για την οποία στο Excel χρησιμοποιείται η Sqrt αντί για Sqr που χρησιμοποιείται στη Visual Basic. Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 64
Παράσταση S0 A0 S1 S2 S3 S4 S5 S6 Συναρτήσεις στο Excel =SQRT(A2) =ABS(B2) =SQRT(A2^2+B2^2) =SQRT(A2)/A2^(2/3) =SQRT(2)-SQRT(A2^3-2*A2/B2) =ABS(A2+B2)-ABS(A2-B2) =(ABS(A2-1))^(4/3) =ABS((A2-B2)/(A2+B2)) Τα αποτελέσματα που παίρνουμε για τις τιμές των A και B, δίνονται στον ακόλουθο Πίνακα: A B C D E F G H I J 1 A B S0 A0 S1 S2 S3 S4 S5 S6 2 2-1 1,4142 1 2,23607 0,8909-2,04989-2 1 3 3 5-2 2,2361 2 5,38516 0,76472-9,98754-4 6,35 2,333 4 8-3 2,8284 3 8,544 0,70711-21,3307-6 13,39 2,2 Άσκηση 7.5. Πρόσημο Sign(x), εκθετική Exp(x) και λογαριθμική συνάρτηση, Log(x) στο Excel. Να γίνουν οι υπολογισμοί της Άσκησης 7.2 με το Excel. Εκτέλεση της Άσκησης Πληκτρολογούμε τις παρακάτω εντολές για κάθε συνάρτηση στο C2, D2, και αντιγράφουμε τις εντολές στα υπόλοιπα (C3, C4, D3, D4, ). Για τις συναρτήσεις υπερβολικού ημιτόνου και συνημιτόνου, θα μπορούσαμε να χρησιμοποιήσουμε έτοιμες συναρτήσεις από το Excel, τις Sinh και Cosh (όπως και για την υπερβολική εφαπτομένη Tanh). Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 65
Παράσταση Συναρτήσεις στο Excel SgnA =SIGN(A2) MaxAB =(SIGN(A2-B2)*(A2-B2)+A2+B2)/2 LogeA =LOG(A2) Log10A =LOG(A2) / LOG(10) Log10AB =10*LOG(A2 / B2) / LOG(10) ExpA =EXP(A2) ExpAB =A2 * EXP(-A2 / B2) SinhA =(EXP(A2) - EXP(-A2)) / 2 CoshA =(EXP(A2) + EXP(-A2)) / 2 Τα αποτελέσματα που παίρνουμε για τις τιμές των A και B, δίνονται στον ακόλουθο Πίνακα: A B C D E F G H I J Κ 1 A B SgnA MaxAB LogeA Log10A Log10AB ExpA ExpAB SinhA CoshA 2 2 1 1 2 0,30103 0,30103 3,0103 7,38906 0,2707 3,6269 3,7622 3 2 3 1 3 0,30103 0,30103-1,7609 7,38906 1,0268 3,6269 3,7622 4 4 4 1 4 0,60206 0,60206 0 54,5982 1,4715 27,29 27,308 Άσκηση 7.6. Παραστάσεις με συναρτήσεις Sqrt(x), Abs(x), Exp(x) και Log(x) στο Excel. Να γίνουν οι υπολογισμοί της Άσκησης 7.3 με το Excel. Ενδεικτικά αποτελέσματα της Άσκησης Τα αποτελέσματα που παίρνουμε για τις τιμές των A και B, δίνονται στον ακόλουθο Πίνακα: A B C D E F G H I J 1 A B S1 S2 S3 S4 S5 S6 S7 S8 2 1 2 1 13 2,59808 0 2 0,12494-0,1761 0,761594 3 3 4 1 16525 6,06218 2,48528 12 1,20412 0,2341 0,995055 4 5 6 1 562501 9,52628 7,91288 30 1,77815 0,4357 0,999909 Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 66
Εργασία για παράδοση (Εργαστηριακή Άσκηση 7) Να παραδώσετε την συγκεκριμένη εργασία μέχρι την έναρξη εκτέλεσης της επόμενης εργαστηριακής άσκησης στην Εργαστηριακή Ομάδα που ανήκετε: 1. Τι εκφράζουν οι συναρτήσεις Sqr(x), Abs(x), Sgn(x), Exp(x) και Log(x) και από ποιες αγγλικές λέξεις προέκυψαν ; Επίσης, να αναφέρετε τις διαφορές μεταξύ των συναρτήσεων τετραγωνική ρίζα, απόλυτη τιμή, πρόσημο, εκθετική και λογαριθμική συνάρτηση στη Visual Basic 6.0 και το Excel. 2. Τι μπορεί να είναι η παράμετρος x όλων των παραπάνω μαθηματικών συναρτήσεων καθώς και των μαθηματικών συναρτήσεων που αναφέρθηκαν στην προηγούμενη ενότητα; Π.χ. ένας αριθμός, μια μεταβλητή, μια σταθερά, μια παράσταση, κάτι άλλο ; 3. Να αναφέρετε τις μεταβλητές για τις Ασκήσεις 7.1, 7.2, 7.3. 4. Έστω x = - 1. Να σημειώσετε ποιες από τις παρακάτω εντολές ή πράξεις είναι σωστές στη Visual Basic και το αποτέλεσμα σε αυτή την περίπτωση. Αν είναι λάθος, να δικαιολογήσετε την απάντησή σας. α/α Εντολή/ές Σωστό/Λάθος α/α Εντολή/ές Σωστό/Λάθος 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) 5. Να δοθούν σε μορφή κώδικα σε Visual Basic οι παρακάτω μαθηματικές παραστάσεις: c1 = 5 Α 5 0,5 3 A B c2 = A B c3 = 7 A 4 c4 = ημ 4 B (1 συν 3 B) 6. Να δοθούν τα αποτελέσματα που θα επιστρέψει το παρακάτω πρόγραμμα (χωρίς πληκτρολόγησηεκτέλεση) στο 1 ο και το 2 ο MsgBox για δοθείσες τιμές των x και y από το χρήστη ως εξής: Α. x = 2 και y = 2 B. x = 3 και y = 3 Sub Main() Dim x As Single, y As Single x = InputBox("x=") y = InputBox("y=") x = x + 1 y = 2 * y X1 = x + y Y1 = x - y MsgBox Str(x - 2) & vbcrlf & Str(y - 3) & vbcrlf & Str(X1 + x) & vbcrlf & Str(Y1 - y) x = 1 y = 2 X1 = 2 * x + y / 2 Y1 = x ^ 2 + y * 2 + X1 X1 = X1 + 3 Y1 = Y1-3 MsgBox Str(x + 2) & vbcrlf & Str(y + 3) & vbcrlf & Str(X1 * 2) & vbcrlf & Str(Y1 ^ 2) End Sub Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 67
ΑΣΚΗΣΗ 8. Λογικοί τελεστές και Λογικές παραστάσεις ΠΕΡΙΛΗΨΗ ΘΕΩΡΙΑΣ 1. Απλές λογικές παραστάσεις Συγκριτικοί τελεστές. Οι έλεγχοι στον προγραμματισμό βασίζονται στην αλήθεια ή μη κάποιων λογικών παραστάσεων (εκφράσεων). Για τη σύνταξη μιας λογικής έκφρασης ή συνθήκης χρησιμοποιούνται σταθερές, μεταβλητές, αριθμητικές ή αλφαριθμητικές παραστάσεις, συγκριτικοί τελεστές (ή σύμβολα σύγκρισης), δηλαδή τα: =, >, <, <>, >=, <=. Στις λογικές εκφράσεις γίνεται σύγκριση της τιμής μίας έκφρασης, που βρίσκεται αριστερά από το συγκριτικό τελεστή με την τιμή μιας άλλης έκφρασης που βρίσκεται δεξιά. Το αποτέλεσμα είναι μία λογική τιμή ΑΛΗΘΗΣ (true) ή ΨΕΥΔΗΣ (false). 2. Σύνθετες λογικές παραστάσεις Λογικοί τελεστές. Οι σύνθετες λογικές παραστάσεις περιλαμβάνουν λογικούς τελεστές (ή λογικούς συνδέσμους) και παρενθέσεις και το αποτέλεσμά τους είναι μια λογική τιμή ΑΛΗΘΗΣ (true) ή ΨΕΥΔΗΣ (false). Οι λογικοί τελεστές στη Visual Basic είναι οι εξής: And (Και). Η σύνθετη λογική παράσταση που προκύπτει από το λογικό ΚΑΙ (ή σύζευξη) δύο απλών λογικών παραστάσεων είναι αληθής όταν και οι δύο λογικές παραστάσεις είναι αληθείς. Or (ή). Η σύνθετη λογική παράσταση που προκύπτει από το λογικό Ή (ή διάζευξη) δύο απλών λογικών παραστάσεων είναι αληθής όταν μία τουλάχιστον από τις δύο λογικές παραστάσεις είναι αληθής. Not (όχι). Το λογικό ΟΧΙ (ή άρνηση) δε συνδέει δύο απλές λογικές παραστάσεις αλλά μπαίνει μπροστά από μία λογική παράσταση δίνοντας στην τελική παράσταση αντίθετη τιμή αλήθειας από την παράσταση μετά το ΟΧΙ. 3. Έλεγχος αληθείας σύνθετης λογικής παράστασης προτεραιότητα. Είναι συνήθης πρακτική να χρησιμοποιούμε πάντα παρενθέσεις μεταξύ των απλών λογικών παραστάσεων που συνδέονται με λογικούς συνδέσμους ακόμα και αν δε χρειάζεται έτσι ώστε να είναι ευκολότερα αναγνώσιμες διότι έτσι διακρίνονται καλύτερα και ο τρόπος δράσης των λογικών συνδέσμων είναι πιο προφανής. Αν δεν υπάρχουν παρενθέσεις στη λογική παράσταση, ακολουθείται η εξής σειρά προτεραιότητας: α) Αριθμητικές πράξεις β) Συγκρίσεις γ) Λογικές πράξεις με την εξής σειρά: Not, And, Or. 4. Εκχώρηση τιμής λογικής παράστασης σε μεταβλητή. Μια λογική παράσταση μπορεί να γραφεί στο δεξί μέλος μιας εντολής εκχώρησης αρκεί στο αριστερό της μέλος να υπάρχει μεταβλητή ή ιδιότητα τύπου Boolean. Π.χ. ΑΒ = Α > Β. Σημείωση: Μια αριθμητική παράσταση με τιμή μηδέν (0) ισοδυναμεί με ψευδή (false) λογική παράσταση και μια αριθμητική παράσταση με τιμή διάφορη του μηδενός ισοδυναμεί με αληθή (true) λογική παράσταση. Το αντίστροφο ισχύει κάπως διαφορετικά. Μια ψευδής λογική παράσταση ισοδυναμεί με αριθμητική παράσταση με τιμή 0 και μια αληθής λογική παράσταση ισοδυναμεί με αριθμητική παράσταση με τιμή -1. Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 68
ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ Άσκηση 8.1. Απλές λογικές παραστάσεις με αριθμητικές μεταβλητές και εκχώρηση τιμής μιας απλής λογικής παράστασης σε μεταβλητή Να γραφεί πρόγραμμα που να επαληθεύει το κατά πόσον είναι αληθείς (true) ή ψευδείς (false) οι ακόλουθες λογικές παραστάσεις για διάφορες αριθμητικές τιμές των Α και Β: Α=Β A ^ 2 > 4 * B Atn(A) < 1 - Tan(B) Int(A) <> Fix(A) 3 - Sin(A) >= Sqr(Abs(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 & vbcrlf & GreaterThan & vbcrlf & _ LowerThan & vbcrlf & Unequal & vbcrlf & GreaterOrEqual & vbcrlf & LowerOrEqual Εναλλακτικά: 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 Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 69
Άσκηση 8.2. Λογικοί σύνδεσμοι Not, And, Or - Σύνθετες λογικές παραστάσεις με μεταβλητές τύπου Boolean Να γραφεί πρόγραμμα που να επαληθεύει το κατά πόσον είναι αληθείς (true) ή ψευδείς (false) οι ακόλουθες λογικές παραστάσεις μεταξύ των μεταβλητών Α και Β. Να σημειωθεί ότι μια αριθμητική παράσταση με τιμή μηδέν (0) ισοδυναμεί με ψευδή λογική παράσταση και μια αριθμητική παράσταση με τιμή διάφορη του μηδενός ισοδυναμεί με αληθή λογική παράσταση. NotA = Not (A > 3) S0 = (A > = -3) And (A < 3) Λάθος παράσταση: (-3 <= Α < 3) AndAB = A And B S1 = ((A < B) And (-A < -B)) Or (-B < A) 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 NotA As Boolean, AndAB As Boolean, OrAB As Boolean Dim S0 As Boolean, S1 As Boolean, S2 As Boolean, S3 As Boolean A = InputBox("A=") B = InputBox("B=") NotA = Not (A > 3) AndAB = A And B OrAB = A Or B S0 = (A > = -3) And (A <3) Λάθος παράσταση: (-3 <= Α < 3) 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 & vbcrlf & AndAB & vbcrlf & OrAB & _ vbcrlf & S0 & vbcrlf & S1 & vbcrlf & S2 & vbcrlf & S3 Εναλλακτικά: MsgBox "NotA = " & NotA & vbcrlf & "AndAB = " & AndAB & _ vbcrlf & "OrAB = " & OrAB & "S0 = " & S0 & vbcrlf & "S1 = " & S1 & _ vbcrlf & "S2 = " & S2 & vbcrlf & "S3 = " & S3 End Sub Δεδομένα εισόδου Αποτελέσματα για την εναλλακτική σύνταξη του MsgBox Δεδομένα εισόδου Αποτελέσματα για την εναλλακτική σύνταξη του MsgBox Α = 0, Β = 0 Α = 0, Β = -1 Δεδομένα εισόδου Αποτελέσματα για την εναλλακτική σύνταξη του MsgBox Δεδομένα εισόδου Αποτελέσματα για την εναλλακτική σύνταξη του MsgBox Α = 4, Β = 0 Α = -3, Β = 5,13 Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 70
Άσκηση 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 Να γραφεί πρόγραμμα που να συγκρίνει ορισμένους από τους ειδικούς χαρακτήρες του πληκτρολογίου (! @ # $ κλπ). Συγκεκριμένα, θα πρέπει να δέχεται δύο χαρακτήρες και τα αποτελέσματα του προγράμματος θα καθορίζουν ποιος θα είναι ο τελεστής ( < ή > ) στον παρακάτω πίνακα συγκρίσεων: Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 71
α/α Χαρακτήρας Τελεστής Χαρακτήρας Χαρακτήρας Τελεστής Χαρακτήρας α/α 1! @ 10 - _ 2 @ # 11 _ + 3 # $ 12 + = 4 $ % 13,. 5 % ^ 14? ; 6 ^ & 15 < > 7 & * 16 8 * ( 17 [ ] 9 ( ) 18 { } Με άλλα λόγια, αν το αποτέλεσμα είναι αληθές τότε ο τελεστής είναι ο > ενώ αν είναι ψευδές, ο τελεστής είναι ο <. Δομή προγράμματος Πρόγραμμα σε Visual Basic ΕΝΑΡΞΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΔΗΛΩΣΗ ΜΕΤΑΒΛΗΤΩΝ ΕΙΣΟΔΟΥ ΩΣ ΣΥΜΒΟΛΟΣΕΙΡΕΣ ΕΙΣΑΓΩΓΗ ΤΙΜΗΣ ΓΙΑ ΤΟΝ 1 Ο ΧΑΡΑΚΤΗΡΑ ΕΙΣΑΓΩΓΗ ΤΙΜΗΣ ΓΙΑ ΤΟΝ 2 Ο ΧΑΡΑΚΤΗΡΑ ΕΚΧΩΡΗΣΗ ΤΙΜΗΣ ΛΟΓΙΚΗΣ ΠΑΡΑΣΤΑΣΗΣ (ΑΝΙΣΩΣΗΣ) ΣΕ ΜΕΤΑΒΛΗΤΗ ΠΑΡΟΥΣΙΑΣΗ ΑΠΟΤΕΛΕΣΜΑΤΟΣ ΤΗΣ ΜΕΤΑΒΛΗΤΗΣ ΤΕΛΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 72
Άσκηση 8.4. Λογικοί σύνδεσμοι Not, And, Or στο Excel Να επαληθευτούν τα αποτελέσματα της Άσκησης 8.2 με το Excel.: Εκτέλεση της Άσκησης Πληκτρολογούμε στα κελιά C2 έως I2 τις παρακάτω εντολές θεωρώντας ότι τα δεδομένα βρίσκονται στα κελιά Α2 και Β2. Για NotA = NOT(A2) AndAB = AND(A2;B2) OrAB = OR(A2;B2) S0 = AND(A2>=-3;A2<3) S1 =OR((AND(A2<B2;-A2<-B2));-B2<A2) S2 =AND(A2^2<B2;OR(ABS(B2)<EXP(A2);INT(B2)<B2)) S3 =NOT(OR(A2>B2;NOT(-A2>-B2))) Τα αντίστοιχα αποτελέσματα που παίρνουμε για τα δεδομένα των Α και Β που είχαμε χρησιμοποιήσει στην Άσκηση 8.2 φαίνονται στον ακόλουθο Πίνακα. A B C D E F G H I 1 A B NotA AndAB OrAB S0 S1 S2 S3 2 0 0 TRUE FALSE FALSE TRUE FALSE FALSE FALSE 3 0-1 TRUE FALSE TRUE TRUE FALSE FALSE FALSE 4 3 0 FALSE FALSE TRUE FALSE TRUE FALSE FALSE 5-2 5 FALSE TRUE TRUE TRUE TRUE FALSE TRUE Άσκηση 8.5. Σύγκριση συμβολοσειρών στο Excel. Να προσδιοριστούν τυχόν διαφορές στη σύγκριση συμβολοσειρών μεταξύ της Visual Basic και του Excel για τις συμβολοσειρές της Άσκησης 8.3. Εκτέλεση της Άσκησης Τα αποτελέσματα που παίρνουμε για της λογικές παραστάσεις S1 έως S10 φαίνονται στον ακόλουθο Πίνακα. Με βάση τα αποτελέσματα για τα S3 και S7, συμπεραίνουμε ότι η μόνη διαφορά είναι ότι τα μικρά γράμματα προηγούνται των κεφαλαίων, σε αντίθεση με ότι ισχύει στη Visual Basic. A B C D E F G H I J 1 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 2 TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE FALSE FALSE Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 73
Εργασία για παράδοση (Εργαστηριακή Άσκηση 8) Να παραδώσετε την συγκεκριμένη εργασία μέχρι την έναρξη εκτέλεσης της επόμενης εργαστηριακής άσκησης στην Εργαστηριακή Ομάδα που ανήκετε: 1. Ποιοι είναι οι συγκριτικοί τελεστές στη γλώσσα Visual Basic και τι εκφράζει ο καθένας από αυτούς ; Ποιοι είναι οι λογικοί τελεστές (ή σύνδεσμοι) στη γλώσσα Visual Basic και τι εκφράζει ο καθένας από αυτούς; 2. Τι ισχύει στην περίπτωση σύγκρισης δύο αλφαριθμητικών ποσοτήτων (συμβολοσειρών) στη Visual Basic; Ποιες διαφορές υπάρχουν σε σχέση με τη σύγκριση συμβολοσειρών στο Excel; Σε ποιους κανόνες βασίζεται ο έλεγχος αληθείας μιας σύνθετης λογικής παράστασης ; 3. Να αναφέρετε ονομαστικά τις μεταβλητές για τις Ασκήσεις 8.1 και 8.2. 4. Να σημειώσετε ποιες από τις παρακάτω εκχωρήσεις τιμής σε λογική παράσταση ή λογικές παραστάσεις είναι σωστές στη 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) Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 74
ΑΣΚΗΣΗ 9. Δομή επιλογής If Then Else ΠΕΡΙΛΗΨΗ ΘΕΩΡΙΑΣ 1. Σύνταξη της δομής If Then Else. Η δομή επιλογής If Then Else (ΕΑΝ ΤΟΤΕ ΑΛΛΙΩΣ) χρησιμοποιείται για την εκτέλεση μιας ομάδας εντολών, αν η τιμή μιας λογικής παράστασης (συνθήκης) είναι αληθής και για την εκτέλεση μιας άλλης ομάδας εντολών, αν η τιμή μιας λογικής παράστασης είναι ψευδής (δεν ικανοποιείται η προηγούμενη συνθήκη). Η γενική μορφή της προγραμματιστικής δομής επιλογής If Then Else έχει ως εξής: If συνθήκη Then εντολή-1 Ομάδα εντολών για εντολή-2 συνθήκη αληθή : Else End If εντολή-3 Ομάδα εντολών για εντολή-4 συνθήκη ψευδή : όπου συνθήκη, μια λογική (απλή ή σύνθετη) ή μια αριθμητική παράσταση. 2. Λειτουργία της δομής If Then Else. Η δομή επιλογής If Then Else λειτουργεί ως εξής: Ελέγχεται η συνθήκη, δηλαδή υπολογίζεται η αλήθεια της λογικής παράστασης Αν η συνθήκη είναι αληθής εκτελείται η πρώτη ομάδα εντολών (εντολή-1, εντολή-2, ) που περιλαμβάνονται μεταξύ της γραμμής If Then και της γραμμής Else και η δεύτερη ομάδα εντολών (εντολή-3, εντολή-4, ) μεταξύ της γραμμής Else και της γραμμής End If (ΤΕΛΟΣ_ΕΑΝ) αγνοείται. Αν όμως η συνθήκη είναι ψευδής, αγνοείται η πρώτη ομάδα εντολών και εκτελείται η δεύτερη ομάδα εντολών. Η εκτέλεση του προγράμματος συνεχίζεται με την εντολή που ακολουθεί την End If. 3. Συνθήκη. Σαν συνθήκη μπορεί να χρησιμοποιηθεί και αριθμητική παράσταση. Μια αριθμητική παράσταση με τιμή μηδέν (0) ισοδυναμεί με ψευδή (false) λογική παράσταση και μια αριθμητική παράσταση με τιμή διάφορη του μηδενός ισοδυναμεί με αληθή (true) λογική παράσταση. 4. Απλοποιημένη δομή If Then. Μια πιο απλή μορφή της δομής επιλογής είναι η εντολή If Then End If. Στην περίπτωση αυτή μας αρκεί η εκτέλεση μιας ομάδας εντολών όταν ικανοποιείται μια συνθήκη αλλά δε θέλουμε να γίνει κάποια άλλη λειτουργία στην περίπτωση που δεν ικανοποιείται η συγκεκριμένη συνθήκη. Η δομή If Then λειτουργεί ως εξής: Η παραπάνω δομή λειτουργεί ως εξής: If συνθήκη Then εντολή-1 Ομάδα εντολών για εντολή-2 συνθήκη αληθή : End If Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 75
Ελέγχεται η συνθήκη, δηλαδή υπολογίζεται η αλήθεια της λογικής παράστασης. Αν η συνθήκη είναι αληθής εκτελείται η ομάδα εντολών (εντολή-1, εντολή-2, ) μεταξύ If Then και End If αγνοείται. Αν η συνθήκη είναι ψευδής, η ομάδα εντολών δεν θα εκτελεστεί καθόλου (θα αγνοηθεί). Η εκτέλεση του προγράμματος συνεχίζεται με την εντολή που ακολουθεί την End If. 5. Δομή If Then σε μία γραμμή. Η δεσμευμένη λέξη End If προσδιορίζει το τέλος της δομής απόφασης If Then, είναι μη εκτελέσιμη εντολή και πρέπει απαραίτητα να υπάρχει. Είναι προαιρετική μόνο στην περίπτωση που μετά τη δεσμευμένη λέξη Then ακολουθεί μια και μόνο εντολή, τότε η σύνταξη της δομής If Then μπορεί να έχει την ακόλουθη μορφή: If Συνθήκη Then Εντολή 6. Δομή If Then Else σε μία γραμμή. Αν μετά τις κωδικές λέξεις Then και Else είχαμε να γράψουμε από μία μόνο εντολή, μπορούμε να συμπτύξουμε τον τρόπο γραφής σε μία γραμμή και να παραλείψουμε την κωδική λέξη End If. Η σύνταξη της δομής έχει ως εξής: If Συνθήκη Then Εντολή Else Εντολή 7. Περισσότερες από μία συνεχόμενες δομές 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 8. Ισοδύναμες δομές. Οι παρακάτω δομές είναι ισοδύναμες: 1 η δομή 2 η δομή (ισοδύναμη) If MemberNo <=120 Then If MemberNo<=120 Then Price=10000 Price=10000 End If 1 ο πρόγραμμα 2 ο πρόγραμμα (ισοδύναμο) If (Sales > 100000) Then If (Sales > 100000) And (UnitSold > 100) Then Bonus = 5000 If (UnitSold > 100) Then Bonus = 5000 End If End If Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 76
ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ Άσκηση 9.1. Εισαγωγή στην δομή επιλογής If Then Else - Υπολογισμός μέγιστου αριθμού Έστω ότι στις μεταβλητές Α και Β έχουν καταχωρηθεί δύο (2) αριθμοί. Το ακόλουθο πρόγραμμα καταχωρεί τον μεγαλύτερο από τους δύο αριθμούς στη μεταβλητή Max. Δηλαδή, αν Α>Β εκτελείται η εντολή μεταξύ Then και Else (εκχώρηση της τιμής του Α στη βοηθητική μεταβλητή Max), ενώ αν Α Β, εκτελείται η εντολή που υπάρχει μετά την κωδική λέξη Else (εκχώρηση της τιμής του B στη βοηθητική μεταβλητή Max). Το πρόγραμμα χρησιμοποιεί μία δομή επιλογής If Then Else End If που καταλαμβάνει συνολικά πέντε (5) γραμμές από το σύνολο των γραμμών του προγράμματος. Να τροποποιηθεί το πρόγραμμα ώστε η δομής επιλογής να καταλαμβάνει μόνο μία (1) γραμμή. Sub Main() Dim A As Single, B As Single A = InputBox("A=") B = InputBox("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 Ισοδύναμο Πρόγραμμα Sub Main() Dim A As Single, B As Single A = InputBox("A=") B = InputBox("B=") MsgBox "Max = " + Str(Max) End Sub Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 77
Άσκηση 9.2. Εντολές του If Then σε μία γραμμή - Υπολογισμός μέγιστου και ελάχιστου αριθμού Α. Το παρακάτω πρόγραμμα δέχεται δύο αριθμούς Min και Max διαφορετικούς μεταξύ τους και καταχωρεί τον μεγαλύτερο αριθμό στη μεταβλητή Max και τον μικρότερο στη μεταβλητή Min ακόμη και αν έχει δοθεί ως αριθμός Min μεγαλύτερος από τον αριθμό Max. Το πρόγραμμα χρησιμοποιεί μια βοηθητική μεταβλητή με όνομα Temp και ανταλλάσσει (swap) τις τιμές των Min και Μax σε περίπτωση που δοθεί τιμή για το Min μεγαλύτερη (>) από την τιμή για το Max. Αν στη μεταβλητή Min καταχωρηθεί αριθμός μικρότερος ή ίσος από αυτόν της μεταβλητής Max δεν θα εκτελεστεί καμία εντολή από το εσωτερικό της δομής και οι μεταβλητές μετά από την End If θα διατηρήσουν τις επιθυμητές τιμές. Β. Στο Πρόγραμμα Α, αν Min > Max, τότε εκχωρείται στη βοηθητική μεταβλητή Temp πρώτα η τιμή που έχει δοθεί για το Max. Να τροποποιηθεί το πρόγραμμα ώστε να εκχωρείται στη βοηθητική μεταβλητή Temp πρώτα η τιμή του Min. 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 όπου 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 Sub Main() Min = InputBox("Min=") Max = InputBox("Max=") Πρόγραμμα Β. (Εναλλακτική σύνταξη κώδικα αντιμετάθεσης τιμών) If Min > Max Then Temp = Min MsgBox "Max=" + Str(Max) & vbcrlf & "Min=" + Str(Min) End Sub Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 78
Άσκηση 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 > 3) Then MsgBox "HOT" End Sub Αποτελέσματα t = -5 t = 20 t = 36 Β. Να γραφεί πρόγραμμα με τη δομή If Then Else που να δέχεται την rms τιμή της πολικής τάσης σε kv και επιστρέφει μια συμβολοσειρά για το επίπεδο τάσης ως εξής: Αν 0 kv τάση 1 kv, τότε επιστρέφει το μήνυμα LOW Αν 1 kv < τάση 38 kv, τότε επιστρέφει το μήνυμα MEDIUM Αν τάση > 38 kv, τότε επιστρέφει το μήνυμα HIGH Αν τάση < 0 kv, τότε επιστρέφει το μήνυμα NOT ACCEPTABLE Πρόγραμμα Β. Αποτελέσματα kv=-10 kv=0,4 kv=20 kv=150 Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 79
Άσκηση 9.4. Συναρτήσεις με υποθετικές εντολές στη Visual Basic και το Excel A. Tο παρακάτω πρόγραμμα σε Visual Basic υπολογίζει την τιμή μιας συνάρτησης με βάση τις ακόλουθες συνθήκες: F(x) = 0 αν x > 3 2 F(x) 9 x σε κάθε άλλη περίπτωση Πρόγραμμα 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 Β. Να επαληθευτούν τα αποτελέσματα στο Excel και να γίνει η γραφική παράσταση της συνάρτησης F(x) στο διάστημα -2 έως 2 με βήματα του 0,1 ακολουθώντας τη διαδικασία που περιγράφεται πιο κάτω. Σημείωση 1: Με το Excel μπορούμε να εισάγουμε υποθετικές εντολές (δομές επιλογής) if και μάλιστα να εισάγουμε εντολές if τη μία μέσα στην άλλη. Η γενική σύνταξη της δομής If στο Excel έχει ως εξής: Ή αλλιώς: IF(logical_test;value_if_true;value_if_false) IF(Συνθήκη;Εντολή_1 για ΑΛΗΘΗ συνθήκη;εντολή_2 γιαψευδη συνθήκη) Όπου: Logical_test είναι μια τιμή ή έκφραση που μπορεί να πάρει την τιμή TRUE (αληθής) ή FALSE (ψευδής). Value_if_true είναι η τιμή που αποδίδεται, αν το όρισμα logical_test είναι TRUE (αληθές). Value_if_false είναι η τιμή που αποδίδεται, εάν το όρισμα logical_test είναι FALSE (ψευδές). Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 80
Σημείωση 2: Με το Excel μπορούμε να κάνουμε τη γραφική παράσταση δεδομένων και αποτελεσμάτων αποθηκευμένα π.χ. σε δύο στήλες όπου η μία στήλη αντιστοιχεί στον άξονα x και η άλλη στον άξονα y ως το αποτέλεσμα μιας συνάρτησης F(x). Τα αποτελέσματα της στήλης F(x) μπορεί να είναι τυχαία αλλά μπορεί να ακολουθούν μια συνάρτηση π.χ. x. Εκτελούμε τα ακόλουθα βήματα-ενέργειες: Εκτέλεση της Άσκησης 1. Για να εισάγουμε τα δεδομένα από -2 έως 2 με βήματα του 0,1, πληκτρολογούμε σε ένα κελί π.χ. Α2 το -2 και στο κελί Α3 το -1,9. Επιλέγοντας και τα δύο αυτά κελιά και σέρνοντας τη λαβή στην κάτω δεξιά γωνία του τετραγώνου επιλογής αυτών των δύο κελιών, σέρνουμε προς τα κάτω το ποντίκι με το αριστερό πλήκτρο πατημένο έως ότου φτάσουμε στην τιμή 2 (κελί Α42). 2. Αφού εισάγουμε την συνάρτηση F(x) με βάση τις συνθήκες π.χ. στο κελί Β2, σέρνουμε προς τα κάτω με τον ίδιο τρόπο το ποντίκι έχοντας πατήσει πάνω στη λαβή του επιλεγμένου κελιού Β2 έως το κελί Β42. 3. Για να εισάγουμε μια γραφική παράσταση, επιλέγουμε τα κελιά Α1 έως Β42 και πηγαίνουμε Μενού Εισαγωγή Γράφημα. Στο Παράθυρο Διαλόγου που εμφανίζεται επιλέγουμε Τύπο γραφήματος π.χ. Διασπορά ΧΥ και Δευτερεύων τύπο γραφήματος τον πάνω δεξιά. Ακολουθούμε τα βήματα έως το τέλος και αφού εισαχθεί το Γράφημα, κάνουμε όποιες άλλες αλλαγές επιθυμούμε (αφαίρεση γραμμών πλέγματος, αλλαγή χρώματος υπόβαθρου, αφαίρεση περιγράμματος, κλίμακες στους άξονες κλπ). Δρ Μοσχάκης Μάριος Προγραμματισμός Η/Υ Ι (Εργαστήριο) 81