Γενικές Διαδικασίες
Γενικές Διαδικασίες Οι βασικές λειτουργικές μονάδες εκτός από δημόσιες μεταβλητές μπορούν να περιέχουν και γενικές διαδικασίες που μπορείτε να καλείτε από οποιοδήποτε σημείο του προγράμματος. Οι γενικές διαδικασίες διαφέρουν από τις διαδικασίες (συμβάντων) επειδή δεν συνδέονται με κανένα συμβάν χρόνου εκτέλεσης ή με αντικείμενα της φόρμας.
Στόχοι του μαθήματος Κατανόηση της έννοιας του Τμηματικού Προγραμματισμού στη VB Γνώση δήλωσης και κλήσης των υποπρογραμμάτων (γενικών διαδικασιών) οριζόμενων από τον χρήστη Γνώση δήλωσης και κλήσης των υποπρογραμμάτων FUNCTION Γνώση δήλωσης και κλήσης των υποπρογραμμάτων SUB
Γενικές Διαδικασίες Είναι παρόμοιες με τις ενσωματωμένες εντολές και συναρτήσεις της Visual Basic. Καλούνται με τα ονόματα τους, μπορούν να δεχθούν ορίσματα και κάθε μια εκτελεί μια συγκεκριμένη εργασία.
Γενικές Διαδικασίες (Υποπρογράμματα) Ένα υποπρόγραμμα έχει τη δομή ενός προγράμματος και μέσω μιας σειράς εντολών εκτελεί μία συγκεκριμένη λειτουργία Ένα υποπρόγραμμα καλείται από το κύριο πρόγραμμα με ευθύνη του προγραμματιστή Για να μπορεί ένα υποπρόγραμμα να χρησιμοποιηθεί, πρέπει να έχει δηλωθεί σε κάποιο τμήμα του project Κάθε υποπρόγραμμα καλείται με το όνομά του και εφόσον υπάρχουν παράμετροι ακολουθούν μέσα σε παρενθέσεις ή εκτός παρενθέσεων ανάλογα με τη μορφή
Γενικές Διαδικασίες Πλεονεκτήματα Καταργούν την επανάληψη γραμμών κώδικα Βελτιώνουν την αναγνωσιμότητα του προγράμματος Απλοποιούν την ανάπτυξή του
Τύποι Γενικών Διαδικασιών Διαδικασία Function Διαδικασία Sub
Συναρτήσεις Δύο τύποι συναρτήσεων Ενσωματωμένες συναρτήσεις (π.χ. τετραγωνική ρίζα) τις οποίες μπορείτε να χρησιμοποιήσετε στα προγράμματά σας. Συναρτήσεις οι οποίες κάνουν μια συγκεκριμένη εργασία και τις δημιουργείτε εσείς.
Ενσωματωμένες Συναρτήσεις Οι συναρτήσεις αυτές ενσωματώνονται στο πρόγραμμά μας από τον υπολογιστή. Εμείς απλώς ζητάμε τη σωστή συνάρτηση που θα θέλαμε να χρησιμοποιήσουμε και τις σωστές μεταβλητές (ορίσματα) της συνάρτησης.
Ενσωματωμένες Συναρτήσεις Μαθηματικές συναρτήσεις (αριθμητικές, τριγωνομετρικές, λογαριθμικές) Συναρτήσεις μετατροπής δεδομένων Συναρτήσεις μορφοποίησης
Ενσωματωμένες Συναρτήσεις Abs(x) Επιστρέφει την απόλυτη τιμή του x Cos(x) Επιστρέφει το συνημίτονο της γωνίας x η οποία είναι εκφρασμένη σε ακτίνια Sin(x) Επιστρέφει το ημίτονο της γωνίας x η οποία είναι εκφρασμένη σε ακτίνια
Ενσωματωμένες Συναρτήσεις Tan(x) Επιστρέφει την εφαπτομένη της γωνίας x σε ακτίνια. Sqr(x) Επιστρέφει τη τετραγωνική ρίζα του x Exp(x) Επιστρέφει τη σταθερά e υψωμένη στο x Log(x) Eπιστρέφει το φυσικό λογάριθμο του x
Ενσωματωμένες Συναρτήσεις Len(str) Επιστρέφει το μήκος του αλφαριθμητικού π.χ. Len(“Μήνας”)=5 Left(str, int) Επιστρέφει τους int αριστερούς χαρακτήρες από το αλφαριθμητικό Left(“Μήνας”,2)=Μή Right(str, int) Επιστρέφει τους int δεξιούς χαρακτήρες από το αλφαριθμητικό π.χ. Right(“Μήνας”,2)=ας
Ενσωματωμένες Συναρτήσεις Time Επιστρέφει την ώρα που αντιστοιχεί στην τρέχουσα ώρα του συστήματος. Date Επιστρέφει μια τιμή που αντιστοιχεί στην ημερομηνία του συστήματος. Now Επιστρέφει μια τιμή που αντιστοιχεί στην ημερομηνία και ώρα του συστήματος.
Παράδειγμα Private Sub Command1_Click() Dim FirstName As String Dim LastName As String Dim X As Integer Dim Y As Integer FirstName = InputBox ("Δώσε το όνομά σου") LastName = InputBox("Δώσε το επίθετό σου") X = Len(FirstName) Y = Len(LastName)
Παράδειγμα Print "Γειά σου, " & FirstName & " " & LastName Print "Μήκος Ονόματος:="; X Print "Μήκος Επωνύμου:="; Y Print Time Print Date Print Now End Sub
Διαδικασία Function Η βασική σύνταξη είναι η εξής: Function ΟνομαΣυνάρτησης ([ορίσματα]) As [τύπος] Εντολές συνάρτησης ΟνομαΣυνάρτησης=εντολή ανάθεσης End Function
Διαδικασία Function Μπορεί να θεωρηθεί ως μία ειδική εντολή που εκτελεί μια συγκεκριμένη υπολογιστική διαδικασία και στη συνέχεια επιστέφει στο πρόγραμμα ένα αποτέλεσμα. Πάντα επιστρέφει μία τιμή που ανατίθεται στο όνομα της συνάρτησης και πρέπει να αντιστοιχιστεί σε ένα τύπο δεδομένων. Μπορεί να έχει ορίσματα που εισάγουν δεδομένα στο υποπρόγραμμα της συνάρτησης.
Παράδειγμα 1: Function Να γραφεί πρόγραμμα στο οποίο δίνεται το κόστος κατασκευής ενός προϊόντος και υπολογίζει την συνολική τιμή πώλησης του προϊόντος η οποία είναι το άθροισμα: του κόστους κατασκευής του φόρου ΦΠΑ 19% επί του κόστους κατασκευής ενός ειδικού φόρου 5% επί του κόστους κατασκευής ενός σταθερού φόρου 2 €. Για τον υπολογισμό του φόρου να χρησιμοποιηθεί διαδικασία συνάρτησης.
Παράδειγμα 1: Function Private Sub Command1_Click() Price = Text1.Text TotalCost = Price + TotalTax(Price) MsgBox (TotalCost), ,"Συνολική Τιμή Πώλησης" End Sub
Παράδειγμα 1: Function Module Function TotalTax (Cost As Variant) FPATax=Cost*0.19 ‘ΦΠΑ CityTax=Cost*0.05 ‘Ειδικός Φόρος TotalTax=FPATax+CityTax+2 End Function
Παράδειγμα 2: FUNCTION Κλιμακωτός υπολογισμός αποζημίωσης κτηνοτρόφων με βάση τον αριθμό των ζώων. Αριθμός ζώων Αποζημίωση /ανά ζώο 1- 30 28.5 € 31 - 50 25.7 € 51 και άνω 23 €
Προγραμματισμός και Εφαρμογές Υπολογιστών Παράδειγμα 2: FUNCTION Function apoz(ar as integer) as single dim poso as single if ar<=30 then poso=ar*28.5 else if poso<=50 then poso=30*28.5+(ar-30)*25.7 poso=30*28.5+20*25.7+(ar-50)*23 endif apoz=poso End function Προγραμματισμός και Εφαρμογές Υπολογιστών
Διαδικασία Sub Η βασική σύνταξη είναι η εξής: Εντολές Υπορουτίνας End Sub
Διαδικασία Sub Eίναι παρόμοιες με τις διαδικασίες function με τη διαφορά ότι οι τιμές που επιστρέφουν οι υπορουτίνες δεν αντιστοιχούν στα ονόματά τους Δηλώνονται σε βασικές λειτουργικές μονάδες, είναι δημόσιες και μπορούν να κληθούν από οποιαδήποτε διαδικασία συμβάντος Για την κλήση μια υπορουτίνας σε μια διαδικασία συμβάντος πληκτρολογήστε το όνομά της και τα απαραίτητα ορίσματά της σε μια εντολή (π.χ. Changes x, y)
Διαδικασία Sub Ο αριθμός και ο τύπος των ορισμάτων στη κλήση της υπορουτίνας πρέπει να ταιριάζουν με τον αριθμό και τον τύπο των ορισμάτων στη δήλωσή της Αν οι μεταβλητές (ορίσματα) που μεταβιβάζονται σε μια υπορουτίνα τροποποιηθούν κατά την εκτέλεση της στο πρόγραμμα θα επιστραφούν οι ενημερωμένες μεταβλητές στην καλούσα διαδικασία
Παράδειγμα 1: SUB Να γραφεί πρόγραμμα το οποίο δέχεται δύο τιμές μια τύπου Integer και μια τύπου Single και υπολογίζει τη διπλάσια τιμή τους. Για το διπλασιασμό να χρησιμοποιηθεί υπορουτίνα.
Παράδειγμα 2: SUB Private Sub Command1_Click() Dim nn As Integer Dim ss As Single nn =InputBox("Δώστε έναν ακέραιο αριθμό") ss = InputBox("Δώστε ένα δεκαδικό αριθμό") Changes nn, ss Label1.Caption = nn Label2.Caption = ss End Sub
Παράδειγμα 2: SUB Module Sub Changes (N As Integer, S As Single) N=N*2 ‘Διπλασιάζει και τα δύο ορίσματα S=S*2 End Sub
Παράδειγμα 2: SUB Private sub test_sub(a as integer, b as integer, y as integer) dim x as single x=0 for i=a to b x=x+i next I y=x End sub
Παράδειγμα Σε ένα παρατηρητήριο τιμών της αγοράς καταγράφονται οι τιμές ενός προϊόντος στη διάρκεια της εβδομάδας σε 4 super market. Να γραφεί πρόγραμμα που: Να διαβάζει από την οθόνη τα ονόματα των super market και να τα αποθηκεύει σε μονοδιάστατο πίνακα. Για κάθε super market και για κάθε ημέρα της εβδομάδας, από τις 6 εργάσιμες ημέρες, διαβάζει την τιμή του προϊόντος και την αποθηκεύει σε πίνακα (4x6). Για κάθε super market υπολογίζει την μέση τιμή του προϊόντος στο τέλος της εβδομάδας και την καταχωρεί σε ένα μονοδιάστατο πίνακα. Βρίσκει και εμφανίζει το super market με την μικρότερη μέση τιμή του προϊόντος. Βρίσκει τη μέση τιμή πώλησης του προϊόντος στο τέλος της εβδομάδας.