ΚΕΝΤΡΟ ΠΛΗ.ΝΕ.Τ. Ν. ΦΛΩΡΙΝΑΣ
Ασκήσεις στη Visual Basic
Άσκηση 1η – Οι Συναρτήσεις InputBox(), MsgBox() και MsgBox
Να δημιουργηθεί μια φόρμα που θα περιέχει δύο πλήκτρα εντολής με τις ετικέτες Καταχώρηση Ονόματος και Εμφάνιση Ονόματος αντίστοιχα. Όταν θα κάνουμε κλικ στο πρώτο πλήκτρο εντολής, θα εμφανίζεται ένα πλαίσιο διαλόγου όπου θα καταχωρούμε ένα όνομα και όταν θα κάνουμε κλικ στο δεύτερο πλήκτρο εντολής, θα εμφανίζεται σ’ ένα άλλο πλαίσιο διαλόγου το όνομα που γράψαμε.
Αντικείμενο |
Ιδιότητα |
Τιμή |
Φόρμα |
Name |
frm01 |
Πλήκτρο εντολής-1 |
Name |
cmdGet |
Πλήκτρο εντολής-2 |
Name |
cmdShow |
Στην περιοχή γενικών δηλώσεων της φόρμας γράφουμε τα εξής :
Dim sName As String 'ορατή και από τα δύο πλήκτρα
Η μεταβλητή επιπέδου φόρμας sName θα λάβει είσοδο από τη συνάρτηση InputBox() και θα παρουσιάσει έξοδο με τη συνάρτηση MsgBox().
Στην εφαρμογή αυτή, όταν ο χρήστης πατά το πλήκτρο με τον τίτλο «Καταχώρηση Ονόματος», εμφανίζεται ένα πλαίσιο διαλόγου που ζητά ένα όνομα. Η είσοδος ελέγχεται για να δούμε αν ο χρήστης έχει γράψει κάτι και θα παρουσιάζουμε ένα μήνυμα λάθους αν είναι κενό το πλαίσιο διαλόγου ή αν ο χρήστης πατήσει το πλήκτρο Cancel.
Η διαδικασία cmdGet_Click() είναι η εξής :
Private Sub cmdGet_Click()
sName = InputBox$("Δώστε όνομα : ", "Καταχώρηση Ονόματος")
If sName = "" Then
MsgBox "Δεν δόθηκε κάποια τιμή!", 48, "Λάθος"
End if
End Sub
Τώρα θα γράψουμε και τον κώδικα για το συμβάν «πάτημα» (Click) του πλήκτρου cmsShow. Όταν πατάμε το πλήκτρο αυτό, η τρέχουσα τιμή της μεταβλητής sName παρουσιάζεται σ' ένα πλαίσιο διαλόγου μ’ ένα ερωτηματικό και με τα τρία πλήκτρα Yes, No, Cancel.
Ανάλογα με το ποιο από τα τρία παραπάνω πλήκτρα θα πατήσει ο χρήστης, θα εμφανισθεί κι ένα ανάλογο μήνυμα.
Private Sub cmdShow_Click()
Dim sMsg As String
Dim iRetVal As Integer
iRetVal = MsgBox("Γράψατε : " & sName, 35, "Εμφάνιση Ονόματος")
If iRetVal = 6 Then
sMsg = "Πατήσατε το Ναι"
ElseIf iRetVal = 7 Then
sMsg = "Πατήσατε το Όχι"
Else
sMsg = "Πατήσατε το Άκυρο"
End If
MsgBox sMsg, 64, "Η Διαδικασία MsgBox"
End Sub
Ένας άλλος τρόπος λύσης της παραπάνω διαδικασίας με χρήση της δομής Select Case … End Select είναι ο εξής :
Private Sub cmdShow_Click()
Dim sMsg As String
Dim iRetVal As Integer
iRetVal = MsgBox("Γράψατε : " & sName, 35, "Εμφάνιση Ονόματος")
Select Case iRetVal
Case 6
sMsg = "Πατήσατε το Ναι"
Case 7
sMsg = "Πατήσατε το Όχι"
Case Else
sMsg = "Πατήσατε το Άκυρο"
End Select
MsgBox sMsg, 64, "Η Διαδικασία MsgBox"
End Sub
Στην παραπάνω άσκηση είδαμε τις δύο περιπτώσεις χρήσης της μεθόδου MsgBox, σαν συνάρτηση και σαν διαδικασία. Σαν συνάρτηση επιστρέφει μια ακέραια τιμή, την οποία μπορούμε να ελέγξουμε για να δούμε ποιο από τα τρία πλήκτρα επέλεξε ο χρήστης, ενώ σαν διαδικασία δεν επιστρέφει καμία τιμή και πρέπει απλά να κάνουμε κλικ στο ΟΚ για να κλείσει το πλαίσιο διαλόγου του MsgBox.
Τα πλαίσια διαλόγου InputBox και MsgBox ανήκουν στην κατηγορία των υποχρεωτικών πλαισίων διαλόγου (modal dialog boxes), δηλ. πρέπει να επιλέξουμε κάτι και να τα κλείσουμε πριν συνεχίσουμε την εργασία μας μ’ ένα άλλο παράθυρο.
Άσκηση 2η – Δημιουργία Χρονομέτρου – Οι Συναρτήσεις Now() και Format()
Να δημιουργηθεί μια φόρμα που θα περιέχει δύο πλήκτρα εντολής με τις ετικέτες StartTime και StopTime αντίστοιχα. Όταν θα κάνουμε κλικ στο πρώτο πλήκτρο εντολής, θα εμφανίζεται η τρέχουσα ώρα σ’ ένα διπλανό πλαίσιο κειμένου και όταν θα κάνουμε κλικ στο δεύτερο πλήκτρο εντολής, θα εμφανίζεται η τρέχουσα ώρα σ’ ένα άλλο διπλανό πλαίσιο κειμένου αλλά και ο χρόνος που μεσολάβησε ανάμεσα στα δύο πατήματα σ’ ένα τρίτο πλαίσιο κειμένου.
Αντικείμενο |
Ιδιότητα |
Τιμή |
Φόρμα |
Name |
frm02 |
Πλήκτρο εντολής-1 |
Name |
cmdStartTime |
Πλήκτρο εντολής-2 |
Name |
cmdStopTime |
Πλαίσιο Κειμένου-1 |
Name |
txtStartTime |
Πλαίσιο Κειμένου-2 |
Name |
txtStopTime |
Πλαίσιο Κειμένου-2 |
Name |
txtElapsedTime |
Στην περιοχή γενικών δηλώσεων της φόρμας γράφουμε τα εξής :
Dim StartTime As Variant
Dim StopTime As Variant
Dim ElapsedTime As Variant
Οι υπόλοιπες διαδικασίες που πρέπει να γράψουμε είναι οι εξής :
Private Sub cmdStartTime_Click()
StartTime = Now()
txtStartTime = Format(StartTime, "hh:mm:ss")
cmdStopTime.Enabled = True
End Sub
Private Sub cmdStopTime_Click()
StopTime = Now()
txtStopTime = Format(StopTime, "hh:mm:ss")
ElapsedTime = StopTime - StartTime
txtElapsedTime = Format(ElapsedTime, "hh:mm:ss")
End Sub
Private Sub frm02_Load()
cmdStopTime.Enabled = False
End Sub
Η συνάρτηση Now() επιστρέφει την τρέχουσα ώρα του συστήματος και η συνάρτηση Format() μορφοποιεί μια τιμή σύμφωνα με το πρότυπο που θα της υποδείξουμε.
Με το ξεκίνημα της εφαρμογής, δηλ. στο συμβάν Load της φόρμας, κάνουμε το δεύτερο πλήκτρο εντολής cmdStopTime να μην είναι ενεργό. Θα γίνει ενεργό μόνο όταν κάνουμε κλικ στο πρώτο πλήκτρο εντολής cmdStartTime.
Δηλώσαμε τις τρεις μεταβλητές σαν τύπου
Variant
για να μπορούν να χειριστούν και αριθμούς και αλφαριθμητικά.
Άσκηση 3η – Μετατροπή από Βαθμούς Κελσίου σε Βαθμούς Φαρενάιτ
Να δημιουργηθεί μια φόρμα που να περιέχει τρία πλήκτρα εντολής. Το πρώτο πλήκτρο ενττολής (Καταχώρηση Θερμοκρασίας) θα καλεί μια διαδικασία όπου θα καταχωρούμε έναν αριθμό, το δεύτερο πλήκτρο εντολής θα μετατρέπει αυτόν τον αριθμό από βαθμούς Φαρενάιτ σε βαθμούς Κελσίου (Φαρενάιτ-Κελσίου) και το τρίτο πλήκτρο εντολής θα μετατρέπει αυτόν τον αριθμό από βαθμούς Κελσίου σε βαθμούς Φαρενάιτ (Κελσίου-Φαρενάιτ).
Οι τύποι μετατροπής είναι οι εξής :
K = (F - 32) * 5 / 9
F = 9 * K / 5 + 32
Αντικείμενο |
Ιδιότητα |
Τιμή |
Φόρμα |
Name |
frm03 |
Πλήκτρο εντολής-1 |
Name |
cmdRead |
Πλήκτρο εντολής-2 |
Name |
cmdFK |
Πλήκτρο εντολής-3 |
Name |
cmdKF |
Στην περιοχή γενικών δηλώσεων της φόρμας γράφουμε τα εξής :
Dim b As Integer 'ο βαθμός που θα διαβασθεί
Οι διαδικασίες που πρέπει να γράψουμε είναι οι εξής :
Private Sub cmdFK_Click()
Dim k As Integer
k = (b - 32) * 5 / 9
MsgBox "Θερμοκρασία Κελσίου : " & k, 64,_
"Μετατροπή Φαρενάιτ-Κελσίου"
End Sub
Private Sub cmdKF_Click()
Dim f As Integer
f = 9 * b / 5 + 32
MsgBox "Θερμοκρασία Φαρενάιτ : " & f, 64,_
"Μετατροπή Κελσίου-Φαρενάιτ"
End Sub
Private Sub cmdRead_Click()
b = InputBox("Δώσε Θερμοκρασία", "Καταχώρηση Θερμοκρασίας")
End Sub
Άσκηση 4η – Οι Συναρτήσεις Len(), Mid(), Asc(), UCase(), LCase() και InStr()
Να δημιουργηθεί μια φόρμα που να περιέχει μια ετικέτα (label) με το κείμενο Καταχώρηση Ονόματος και ένα διπλανό πλαίσιο κειμένου (txtName) στο οποίο θα μπορούμε να καταχωρήσουμε ένα όνομα.
Ακριβώς από κάτω θα υπάρχουν 6 πλήκτρα εντολής με αντίστοιχες διπλανές ετικέτες. Αφού καταχωρήσουμε ένα όνομα στο πλαίσιο κειμένου και κάνουμε κλικ σ’ ένα από τα πλήκτρα εντολής, θα εμφανίζεται στη διπλανή ετικέτα το αποτέλεσμα της αντίστοιχης συνάρτησης η οποία θα επιδρά στο περιεχόμενο του πλαισίου κειμένου txtName.
Αντικείμενο |
Ιδιότητα |
Τιμή |
Φόρμα |
Name |
frm04 |
Ετικέτα |
Name |
Label1 |
Πλαίσιο Κειμένου |
Name |
txtName |
Πλήκτρο εντολής-1 |
Name |
cmdLen |
Πλήκτρο εντολής-2 |
Name |
cmdMid |
Πλήκτρο εντολής-3 |
Name |
cmdAsc |
Πλήκτρο εντολής-4 |
Name |
cmdUCase |
Πλήκτρο εντολής-5 |
Name |
cmdLCase |
Πλήκτρο εντολής-6 |
Name |
cmdInStr |
Ετικέτα-1 |
Name |
lblLen |
Ετικέτα-2 |
Name |
lblMid |
Ετικέτα-3 |
Name |
lblAsc |
Ετικέτα-4 |
Name |
lblUCase |
Ετικέτα-5 |
Name |
lblLCase |
Ετικέτα-6 |
Name |
lblInStr |
Οι έξι συναρτήσεις που θα χρησιμοποιήσουμε είναι οι εξής :
Len(), επιστρέφει το μήκος ενός string, δηλ. πόσους χαρακτήρες περιέχει.
Mid(), επιστρέφει ένα κομμάτι ενός string, ξεκινώντας από μια ορισμένη θέση και για ορισμένο πλήθος χαρακτήρων.
Asc(), επιστρέφει την ascii τιμή ενός χαρακτήρα.
UCase(), επιστρέφει ένα string μ’ όλα τα γράμματα κεφαλαία.
LCase(), επιστρέφει ένα string μ’ όλα τα γράμματα πεζά.
InStr(), επιστρέφει τη θέση ενός χαρακτήρα μέσα σ’ ένα string.
Για τους σκοπούς της άσκησης, η συνάρτηση Mid() θα επιστρέψει τους 3 πρώτους χαρακτήρες του ονόματος που θα καταχωρήσουμε, η συνάρτηση Asc() θα επιστρέψει τον ascii κώδικα του πρώτου χαρακτήρα του ονόματος και η συνάρτηση InStr() θα επιστρέψει τη θέση του χαρακτήρα a μέσα στο όνομα. Αν δεν υπάρχει το γράμμα a, η συνάρτηση θα επιστρέψει 0.
Οι διαδικασίες που πρέπει να γράψουμε είναι οι εξής :
Private Sub cmdLen_Click()
lblLen.Caption = Len(txtName)
End Sub
Private Sub cmdMid_Click()
lblMid.Caption = Mid(txtName, 1, 3)
Private Sub cmdAsc_Click()
lblAsc.Caption = Asc(Mid(txtName, 1, 1))
End Sub
Private Sub cmdUCase_Click()
lblUCase.Caption = UCase(txtName)
End Sub
Private Sub cmdLCase_Click()
lblLCase.Caption = LCase(txtName)
End Sub
Private Sub cmdInStr_Click()
lblInStr.Caption = InStr(txtName, "a")
End Sub
Άσκηση 5η – Οι Συναρτήσεις Left(), Right(), Mid() και Chr()
Να δημιουργηθεί μια φόρμα που να περιέχει μια ετικέτα (label) με το κείμενο Καταχώρηση Ονόματος και ένα διπλανό πλαίσιο κειμένου (txtName) στο οποίο θα μπορούμε να καταχωρήσουμε ένα όνομα.
Ακριβώς από κάτω θα υπάρχουν 4 πλήκτρα εντολής με αντίστοιχες διπλανές ετικέτες. Αφού καταχωρήσουμε ένα όνομα στο πλαίσιο κειμένου και κάνουμε κλικ σ’ ένα από τα πλήκτρα εντολής, θα εμφανίζεται στη διπλανή ετικέτα το αποτέλεσμα της αντίστοιχης συνάρτησης η οποία θα επιδρά στο περιεχόμενο του πλαισίου κειμένου txtName.
Αντικείμενο |
Ιδιότητα |
Τιμή |
Φόρμα |
Name |
frm05 |
Ετικέτα |
Name |
Label1 |
Πλαίσιο Κειμένου |
Name |
txtName |
Πλήκτρο εντολής-1 |
Name |
cmdLeft |
Πλήκτρο εντολής-2 |
Name |
cmdRight |
Πλήκτρο εντολής-3 |
Name |
cmdMid |
Πλήκτρο εντολής-4 |
Name |
cmdChr |
Ετικέτα-1 |
Name |
lblLeft |
Ετικέτα-2 |
Name |
lblRight |
Ετικέτα-3 |
Name |
lblMid |
Ετικέτα-4 |
Name |
lblChr |
Οι τέσσερις συναρτήσεις που θα χρησιμοποιήσουμε είναι οι εξής :
Left(), επιστρέφει ένα κομμάτι ενός string από αριστερά για όσους χαρακτήρες δηλώσουμε.
Right(), επιστρέφει ένα κομμάτι ενός string από δεξιά για όσους χαρακτήρες δηλώσουμε.
Mid(), επιστρέφει ένα κομμάτι ενός string, ξεκινώντας από μια ορισμένη θέση και για ορισμένο πλήθος χαρακτήρων.
Chr(), επιστρέφει τον ascii χαρακτήρα ενός κωδικού.
Για τους σκοπούς της άσκησης, η συνάρτηση Left() θα επιστρέψει τους 2 πρώτους χαρακτήρες από αριστερά του ονόματος που θα καταχωρήσουμε, η συνάρτηση Right() θα επιστρέψει τους 3 τελευταίους χαρακτήρες από δεξιά του ονόματος που θα καταχωρήσουμε, η συνάρτηση Mid() θα επιστρέψει ό,τι υπάρχει από τον τρίτο χαρακτήρα και μετά και η συνάρτηση Chr() θα επιστρέψει τον ascii χαρακτήρα ενός κωδικού.
Όσον αφορά τη συνάρτηση Mid(), η σύνταξη που θα δούμε εδώ θα δέχεται σαν ορίσματα ένα string και έναν αριθμό και θα επιστρέφει το κομμάτι του string από τη θέση που δηλώνει ο αριθμός και μετά μέχρι το τέλος του string.
Οι διαδικασίες που πρέπει να γράψουμε είναι οι εξής :
Private Sub cmdLeft_Click()
lblLeft.Caption = Left(txtName, 2)
End Sub
Private Sub cmdRight_Click()
lblRight.Caption = Right(txtName, 3)
Private Sub cmdMid_Click()
lblMid.Caption = Mid(txtName, 3)
End Sub
Private Sub cmdChr_Click()
lblChr.Caption = Chr(Len(txtName) + 60)
End Sub
Άσκηση 6η – Καταχώρηση Συνθηματικού (Password)
Να δημιουργηθεί μια φόρμα που να περιέχει μια ετικέτα (label) με το κείμενο Καταχώρηση Συνθηματικού και ένα διπλανό πλαίσιο κειμένου (txt-Password) στο οποίο θα μπορούμε να καταχωρήσουμε ένα συνθηματικό.
Ακριβώς από κάτω θα υπάρχουν 2 πλήκτρα εντολής με τις ετικέτες Αποδοχή και Ακύρωση. Αφού καταχωρήσουμε ένα συνθηματικό στο πλαίσιο κειμένου και κάνουμε κλικ στο πλήκτρο εντολής Αποδοχή, θα γίνεται έλεγχος αν το συνθηματικό που καταχωρήσαμε είναι το σωστό. Αν όχι, θα μπορούμε να προσπαθήσουμε πάλι, αλλά μέχρι 3 φορές το πολύ.
Αντικείμενο |
Ιδιότητα |
Τιμή |
Φόρμα |
Name |
frm06 |
Ετικέτα |
Name |
Label1 |
Πλαίσιο Κειμένου |
Name |
txtPassword |
Πλήκτρο εντολής-1 |
Name |
cmdAccept |
Πλήκτρο εντολής-2 |
Name |
cmdCancel |
Θα χρησιμοποιήσουμε τις ιδιότητες PasswordChar και Tag του πλαισίου κειμένου, όπου στην πρώτη θα δώσουμε την τιμή *, έτσι ώστε ό,τι καταχωρούμε στο πλαίσιο κειμένου να εμφανίζεται σαν * και στην δεύτερη την τιμή FLORINA, που θα είναι η τιμή του συνθηματικού.
Θα χρησιμοποιήσουμε ακόμα και τις ιδιότητες SelStart και SelLength του πλαισίου κειμένου, όπου η πρώτη ορίζει την αρχή του επιλεγμένου κειμένου και η δεύτερη το μήκος του επιλεγμένου κειμένου.
Με το κλικ στο πλήκτρο εντολής Ακύρωση θα τελειώνει το πρόγραμμα.
Οι διαδικασίες που πρέπει να γράψουμε είναι οι εξής :
Private Sub cmdCancel_Click()
End ‘τελειώνει το πρόγραμμα
End Sub
Private Sub cmdAccept_Click()
Static iTries ‘μεταβλητή που μετρά τις προσπάθειες
‘αυτό που γράψαμε είναι ίδιο με το συνθηματικό
If UCase(txtPassword) = txtPassword.Tag Then
MsgBox "Μπράβο!", vbExclamation, "Αποκτήσατε πρόσβαση!"
Else ‘αυτό που γράψαμε δεν είναι το ίδιο με το συνθηματικό
iTries = iTries + 1 ‘αυξάνονται οι προσπάθειες
If iTries = 3 Then
MsgBox "Λάθος!", vbCritical, "Απαγόρευση πρόσβασης!"
End ‘τελειώνει το πρόγραμμα
Else
MsgBox "Δοκιμάστε Ξανά", vbInformation,
"Λάθος Συνθηματικό!"
‘φωτίζουμε την τελευταία καταχώρηση
txtPassword.SelStart = 0
txtPassword.SelLength = Len(txtPassword)
EndIf
EndIf
‘η μέθοδος SetFocus τοποθετεί τον δείκτη του ποντικιού
‘στο πλαίσιο κειμένου txtPassword
txtPassword.SetFocus
End Sub
Η μεταβλητή που χρησιμοποιήσαμε για να μετρήσουμε τις προσπάθειες, η iTries, δηλώθηκε σαν τύπου Static και αυτό για να μπορεί να διατηρεί την τιμή της στις διαδοχικές κλήσεις της διαδικασίας.
Άσκηση 7η – Αξία Προϊόντος με ΦΠΑ
Να δημιουργηθεί μια φόρμα που να περιέχει τρεις ετικέτες (labels) με τα κείμενα Ποσότητα, Τιμή Μονάδας και ΦΠΑ και τρία διπλανά πλαίσια κειμένου (txtQuantity, txtPrice και txtFPA) όπου θα μπορούμε να καταχωρήσουμε αντίστοιχες τιμές.
Ακριβώς από κάτω θα υπάρχει μια ακόμα ετικέτα (lblTotal) όπου θα εμφανίζεται η τελική αξία του προϊόντος (Καθαρή Αξία + Αξία ΦΠΑ). Θα υπάρχουν ακόμα δύο πλήκτρα εντολής με ετικέτες Υπολογισμός και Καθάρισμα και ονόματα cmdCalc και cmdClear αντίστοιχα, για τον υπολογισμό και την εμφάνιση της τελικής αξίας του προϊόντος και τον μηδενισμό όλων των πεδίων υπολογισμού.
Αντικείμενο |
Ιδιότητα |
Τιμή |
Φόρμα |
Name |
frm07 |
Ετικέτα |
Name |
Label1 |
Ετικέτα |
Name |
Label2 |
Ετικέτα |
Name |
Label3 |
Πλαίσιο Κειμένου |
Name |
txtQuantity |
Πλαίσιο Κειμένου |
Name |
txtPrice |
Πλαίσιο Κειμένου |
Name |
txtFPA |
Ετικέτα |
Name |
lblTotal |
Πλήκτρο εντολής-1 |
Name |
cmdCalc |
Πλήκτρο εντολής-2 |
Name |
cmdClear |
Οι διαδικασίες που πρέπει να γράψουμε είναι οι εξής :
Private Sub cmdCalc_Click()
lblTotal.Caption = txtQuantity * txtPrice * (1 + txtFPA / 100)
End Sub
Private Sub cmdClear_Click()
txtQuantity = 0
txtPrice = 0
txtFPA = 0
lblTotal.Caption = 0
End Sub
Να δημιουργηθεί μια φόρμα που να περιέχει δύο ετικέτες (labels) με τα κείμενα Επίθετο και Όνομα και δύο διπλανά πλαίσια κειμένου (txtEpitheto και txtOnoma) όπου θα μπορούμε να καταχωρήσουμε ένα επίθετο και ένα όνομα αντίστοιχα.
Ακριβώς από κάτω θα υπάρχει μια ακόμα ετικέτα (lblName) όπου θα εμφανίζεται το κείμενο Ονοματεπώνυμο : και δίπλα το επίθετο και το όνομα που καταχωρήσαμε παραπάνω, αλλά με το πρώτο γράμμα κεφαλαίο και όλα τα υπόλοιπα πεζά καθώς και μ’ ένα κενό ανάμεσά τους. Θα υπάρχει ακόμα ένα πλήκτρο εντολής με ετικέτα Εμφάνιση και όνομα cmdDisplay, όπου με το κλικ θα εμφανίζεται στην ετικέτα lblName το ονοματεπώνυμο με την παραπάνω μορφή.
Αντικείμενο |
Ιδιότητα |
Τιμή |
Φόρμα |
Name |
frm08 |
Ετικέτα |
Name |
Label1 |
Ετικέτα |
Name |
Label2 |
Πλαίσιο Κειμένου |
Name |
txtEpitheto |
Πλαίσιο Κειμένου |
Name |
txtOnoma |
Ετικέτα |
Name |
lblName |
Πλήκτρο εντολής |
Name |
cmdDisplay |
Η διαδικασία που πρέπει να γράψουμε είναι η εξής :
Private Sub cmdDisplay_Click()
lblName.Caption = "Ονοματεπώνυμο : " +
UCase(Left(txtEpitheto, 1)) + LCase(Mid(txtEpitheto, 2)) +
" " + UCase(Left(txtOnoma, 1)) + LCase(Mid(txtOnoma, 2))
End Sub
Άσκηση 9η – Πλαίσια Λίστας και Πλαίσια Κειμένου
Να δημιουργηθεί μια φόρμα που να περιέχει ένα πλαίσιο λίστας (list box), δύο πλαίσια κειμένου και δύο πλήκτρα εντολών.
Στο ένα πλαίσιο κειμένου θα καταχωρούμε ένα όνομα και με κλικ στο πρώτο πλήκτρο εντολής, με ετικέτα <-- και όνομα cmdInsert, θα καταχωρείται αυτό το όνομα στο πλαίσιο λίστας, ενώ με κλικ στο δεύτερο πλήκτρο εντολής, με ετικέτα --> και όνομα cmdRemove, θα αφαιρείται το όνομα που έχουμε επιλέξει με κλικ πάνω στο πλαίσιο λίστας.
Κάθε φορά που κάνουμε κλικ σ’ ένα από τα πλήκτρα εντολής, στο δεύτερο πλαίσιο κειμένου θα εμφανίζεται το πλήθος των στοιχείων της λίστας.
Αντικείμενο |
Ιδιότητα |
Τιμή |
Φόρμα |
Name |
frm09 |
Πλαίσιο Κειμένου-1 |
Name |
txtOnoma |
Πλαίσιο Κειμένου-2 |
Name |
txtCount |
Πλαίσιο Λίστας |
Name |
lstA |
Πλήκτρο εντολής-1 |
Name |
cmdInsert |
Πλήκτρο εντολής-2 |
Name |
cmdRemove |
Οι διαδικασίες που πρέπει να γράψουμε είναι οι εξής :
Private Sub cmdInsert_Click()
lstA.AddItem txtOnoma.Text
txtCount.Text = lstA.ListCount
End Sub
Private Sub cmdRemove_Click()
If lstA.ListIndex > -1 Then
lstA.RemoveItem lstA.ListIndex
txtCount.Text = lstA.ListCount
Else
MsgBox "Πρέπει να επιλέξετε κάτι από το πλαίσιο λίστας!"
End If
End Sub
Άσκηση 10η – Πλαίσια Λίστας και Πλαίσια Κειμένου-2
Να δημιουργηθεί μια φόρμα που να περιέχει δύο πλαίσια λίστας (list boxes), δύο πλαίσια κειμένου και τρία πλήκτρα εντολών.
Στο ένα πλαίσιο κειμένου θα καταχωρούμε ένα όνομα και μόλις πατάμε το πλήκτρο enter, τα περιεχόμενα του πλαισίου κειμένου θα καταχωρούνται στη λίστα που βρίσκεται από κάτω και το πλαίσιο κειμένου θα καθαρίζει. Μόλις κάνουμε διπλό κλικ σ’ ένα στοιχείο μιας λίστας, θα μεταφέρεται το στοιχείο αυτό στην άλλη λίστα και θα αφαιρείται από την αρχική.
Τα δύο πλήκτρα εντολής θα έχουν ετικέτες Delete και μόλις κάνουμε κλικ πάνω τους θα αφαιρείται το επιλεγμένο στοιχείο της αντίστοιχης λίστας. Το τρίτο πλήκτρο εντολής θα έχει ετικέτα Clear All και με μόλις κάνουμε κλικ πάνω του θα αφαιρούνται όλα τα στοιχεία και από τις δύο λίστες. Για να γίνει αυτό δεν θα πρέπει να χρησιμοποιηθεί η μέθοδος Clear.
Αντικείμενο |
Ιδιότητα |
Τιμή |
Φόρμα |
Name |
frm10 |
Πλαίσιο Κειμένου-1 |
Name |
txt1 |
Πλαίσιο Κειμένου-2 |
Name |
txt2 |
Πλαίσιο Λίστας-1 |
Name |
lst1 |
Πλαίσιο Λίστας-2 |
Name |
lst2 |
Πλήκτρο εντολής-1 |
Name |
cmdDelete1 |
Πλήκτρο εντολής-2 |
Name |
cmdDelete2 |
Πλήκτρο εντολής-2 |
Name |
cmdClear |
Οι διαδικασίες που πρέπει να γράψουμε είναι οι εξής :
Private Sub txt1_KeyPress(keyascii As Integer)
If keyascii = 13 And txt1.Text <> " " Then
lst1.AddItem txt1.Text
txt1.Text = " "
End If
End Sub
Private Sub txt2_KeyPress(keyascii As Integer)
If keyascii = 13 And txt2.Text <> " " Then
lst2.AddItem txt2.Text
txt2.Text = " "
End If
End Sub
Private Sub lst1_DblClick()
lst2.AddItem lst1.Text
lst1.RemoveItem lst1.ListIndex
End Sub
Private Sub lst2_DblClick()
lst1.AddItem lst2.Text
lst2.RemoveItem lst2.ListIndex
End Sub
Private Sub cmdDelete1_Click()
lst1.RemoveItem lst1.ListIndex
End Sub
Private Sub cmdDelete2_Click()
lst2.RemoveItem lst2.ListIndex
End Sub
Private Sub cmdClear_Click()
Dim i As Integer
For i = lst1.ListCount – 1 To 0 Step –1
lst1.RemoveItem i
Next i
For i = lst2.ListCount – 1 To 0 Step –1
lst2.RemoveItem i
Next i
End Sub
Ακολουθούν άλλοι δύο τρόποι επίλυσης της τελευταίας διαδικασίας :
Private Sub cmdClear_Click()
Dim i, k As Integer
k = lst1.ListCount
For i = 1 To k
lst1.RemoveItem 0
Next i
k = lst2.ListCount
For i = 1 To k
lst2.RemoveItem 0
Next i
End Sub
Private Sub cmdClear_Click()
Do While lst1.ListCount > 0
lst1.RemoveItem 0
Loop
Do While lst2.ListCount > 0
lst2.RemoveItem 0
Loop
End Sub
Άσκηση 11η – Σύνθετο Πλαίσιο Λίστας
Να δημιουργηθεί μια φόρμα που να περιέχει ένα σύνθετο πλαίσιο λίστας (combo box) και τρεις ετικέτες (labels).
Από το σύνθετο πλαίσιο λίστας θα μπορούμε να επιλέγουμε μια από τέσσερις χώρες και θα υπάρχει μια διπλανή ετικέτα με λεζάντα Χώρα :. Παρακάτω θα υπάρχει μια άλλη ετικέτα με λεζάντα Πρωτεύουσα : και δίπλα θα εμφανίζεται σε μια τρίτη ετικέτα το όνομα της πρωτεύουσας της χώρας που επιλέγουμε από το σύνθετο πλαίσιο λίστας.
Αντικείμενο |
Ιδιότητα |
Τιμή |
Φόρμα |
Name |
frm11 |
Σύνθετο Πλαίσιο |
Name |
cbo_country |
Ετικέτα-1 |
Name |
lbl1 |
Ετικέτα-2 |
Name |
lbl2 |
Ετικέτα-3 |
Name |
lbl_country |
Οι διαδικασίες που πρέπει να γράψουμε είναι οι εξής :
General Declarations
Dim Capital(0 To 3) As String
Private Sub Form_Load()
Capital(0) = "Αθήνα"
Capital(1) = "Βουκουρέστι"
Capital(2) = "Σόφια"
Capital(3) = "Βελιγράδι"
cbo_country.AddItem "Ελλάδα"
cbo_country.AddItem "Ρουμανία"
cbo_country.AddItem "Βουλγαρία"
cbo_country.AddItem "Γιουγκοσλαβία"
End Sub
Private Sub cbo_country_Click()
lbl_country.Caption = Capital(cbo_country.ListIndex)
End Sub
Άσκηση 12η – Επιλογή Χώρας από Πλαίσιο Λίστας
Να δημιουργηθεί μια φόρμα που να περιέχει ένα πλαίσιο λίστας (list box), ένα πλήκτρο εντολής και δύο ετικέτες (labels).
Από το πλαίσιο λίστας θα μπορούμε να επιλέγουμε μια από τέσσερις χώρες και παρακάτω θα υπάρχει μια ετικέτα με λεζάντα Επιλεγείσα Χώρα :. Δίπλα από το πλαίσιο λίστας θα υπάρχει ένα πλήκτρο εντολής με λεζάντα Επιλογή.
Όταν κάνουμε διπλό κλικ στο πλαίσιο λίστας, η επιλεγείσα χώρα θα εμφανίζεται σε μια άλλη ετικέτα δίπλα από την ετικέτα με τη λεζάντα Επιλεγείσα Χώρα :. Η επιλεγείσα χώρα θα εμφανίζεται ακόμη και όταν την επιλέξουμε με απλό κλικ και μετά με κλικ στο πλήκτρο εντολής.
Αντικείμενο |
Ιδιότητα |
Τιμή |
Φόρμα |
Name |
frm12 |
Πλαίσιο Λίστας |
Name |
lst_country |
Ετικέτα-1 |
Name |
lbl1 |
Ετικέτα-2 |
Name |
lbl_country |
Πλήκτρο Εντολής |
Name |
cmd_country |
Οι διαδικασίες που πρέπει να γράψουμε είναι οι εξής :
Private Sub Form_Load()
lst_country.AddItem "Γαλλία"
lst_country.AddItem "Ιταλία"
lst_country.AddItem "Γερμανία"
lst_country.AddItem "Ελβετία"
End Sub
Private Sub lst_country_DblClick()
lbl_country.Caption = lst_country.Text
End Sub
Private Sub cmd_country_Click()
lst_country_DblClick
End Sub
Να δημιουργηθεί μια φόρμα που να περιέχει δύο πλαίσια επιλογής, όπου το ένα θα περιέχει τρία πλήκτρα επιλογής με ετικέτες Α, Β και Γ και το άλλο θα περιέχει δύο πλήκτρα επιλογής με ετικέτες Αγόρι και Κορίτσι.
Αφού επιλέξουμε ένα πλήκτρο επιλογής από κάθε πλαίσιο επιλογής και κάνουμε κλικ σ’ ένα πλήκτρο εντολής με ετικέτα ΟΚ, θα πρέπει να εμφανίζεται σε μια ετικέτα το εξής κείμενο : «Είναι Αγόρι (ή Κορίτσι) και πηγαίνει στην Α (ή Β ή Γ) τάξη».
Αντικείμενο |
Ιδιότητα |
Τιμή |
Φόρμα |
Name |
frm13 |
Πλήκτρο Επιλογής-1 |
Name |
opta |
Πλήκτρο Επιλογής-2 |
Name |
optb |
Πλήκτρο Επιλογής-3 |
Name |
optc |
Πλήκτρο Επιλογής-4 |
Name |
optboy |
Πλήκτρο Επιλογής-5 |
Name |
optgirl |
Ετικέτα |
Name |
lbl_result |
Πλήκτρο Εντολής |
Name |
cmd_ok |
Η διαδικασία που πρέπει να γράψουμε είναι η εξής :
Private Sub cmd_ok_Click()
Dim taxi, fylo As String
If opta Then
taxi = "Α"
ElseIf optb Then
taxi = "Β"
Else
taxi = "Γ"
End If
If optboy Then
fylo = "Αγόρι"
Else
fylo = "Κορίτσι"
End If
lbl_result.Caption = "Είναι " & fylo & " και πηγαίνει στην " & taxi & _
" τάξη"
End Sub
Άσκηση 14η – Πλαίσια Λίστας και Πλαίσια Ελέγχου
Να δημιουργηθεί μια φόρμα που να περιέχει μια ετικέτα με λεζάντα Όνομα :, ένα πλαίσιο κειμένου, δύο πλαίσια ελέγχου με λεζάντες ListA και ListB, δύο πλαίσια λίστας και δύο πλήκτρα εντολής με ετικέτες Insert και Delete.
Αφού καταχωρήσουμε ένα όνομα στο πλαίσιο κειμένου και επιλέξουμε ένα ή και τα δύο πλαίσια ελέγχου, με το κλικ στο πλήκτρο εντολής με την ετικέτα Insert θα καταχωρείται το κείμενο του πλαισίου κειμένου στην πρώτη λίστα αν είναι επιλεγμένο το πλαίσιο ελέγχου με ετικέτα ListA ή/και στη δεύτερη λίστα αν είναι επιλεγμένο το πλαίσιο ελέγχου με ετικέτα ListB.
Αφού επιλέξουμε μια καταχώρηση από μια ή και από τις δύο λίστες και ένα ή και τα δύο πλαίσια ελέγχου, με το κλικ στο πλήκτρο εντολής με την ετικέτα Delete θα διαγράφεται η αντίστοιχη καταχώρηση από την ή τις λίστες.
Αντικείμενο |
Ιδιότητα |
Τιμή |
Φόρμα |
Name |
frm14 |
Ετικέτα |
Name |
lbl1 |
Πλαίσιο Κειμένου |
Name |
txtname |
Πλαίσιο Ελέγχου-1 |
Name |
chka |
Πλαίσιο Ελέγχου-2 |
Name |
chkb |
Πλαίσιο Λίστας-1 |
Name |
lsta |
Πλαίσιο Λίστας-2 |
Name |
lstb |
Πλήκτρο Εντολής-1 |
Name |
cmd_insert |
Πλήκτρο Εντολής-2 |
Name |
cmd_delete |
Οι διαδικασίες που πρέπει να γράψουμε είναι οι εξής :
Private Sub cmd_insert_Click()
If chka.Value = 1 Then
lsta.AddItem txtname.Text
End If
If chkb.Value = 1 Then
lstb.AddItem txtname.Text
End If
End Sub
Private Sub cmd_delete_Click()
If chka.Value = 1 And lsta.ListIndex > -1 Then
lsta.RemoveItem lsta.ListIndex
End If
If chkb.Value = 1 And lstb.ListIndex > -1 Then
lstb.RemoveItem lstb.ListIndex
End If
End Sub
Άσκηση 15η – Πλήκτρα Επιλογής και Πλαίσια Ελέγχου
Να δημιουργηθεί μια φόρμα που να περιέχει ένα πλαίσιο επιλογής απ’ όπου θα μπορούμε να επιλέξουμε την τάξη ενός μαθητή (Α’, Β’, Γ’) και ένα άλλο πλαίσιο επιλογής απ’ όπου θα μπορούμε να επιλέξουμε τρία μαθήματα επιλογής από ένα σύνολο πέντε μαθημάτων. Αν τα επιλεγμένα μαθήματα δεν είναι τρία, θα πρέπει να εμφανίζεται ένα σχετικό μήνυμα.
Αντικείμενο |
Ιδιότητα |
Τιμή |
Φόρμα |
Name |
frm15 |
Πλήκτρο Επιλογής-1 |
Name |
opt1 |
Πλήκτρο Επιλογής-2 |
Name |
opt2 |
Πλήκτρο Επιλογής-3 |
Name |
opt3 |
Πλαίσιο Ελέγχου-1 |
Name |
chk1 |
Πλαίσιο Ελέγχου-2 |
Name |
chk2 |
Πλαίσιο Ελέγχου-3 |
Name |
chk3 |
Πλαίσιο Ελέγχου-4 |
Name |
chk4 |
Πλαίσιο Ελέγχου-5 |
Name |
chk5 |
Πλήκτρο Εντολής |
Name |
cmd_ok |
Η διαδικασία που πρέπει να γράψουμε είναι η εξής :
Private Sub cmd_ok_Click()
Dim i As Integer
If chk1.Value = 1 Then
i = i+1
End If
If chk2.Value = 1 Then
i = i+1
End If
If chk3.Value = 1 Then
i = i+1
End If
If chk4.Value = 1 Then
i = i+1
End If
If chk5.Value = 1 Then
i = i+1
End If
If i =3 Then
MsgBox "Οι επιλογές σου είναι εντάξει"
Else
MsgBox "Προσοχή! Πρέπει να επιλέξεις τρία μαθήματα"
End If
End Sub
Άσκηση 16η – Πλήκτρα Επιλογής και Πλαίσια Ελέγχου
Να δημιουργηθεί μια φόρμα που να περιέχει ένα πλαίσιο επιλογής απ’ όπου θα μπορούμε να επιλέξουμε το χρώμα ενός αυτοκινήτου (κόκκινο, πράσινο, μπλε, λευκό) και ένα άλλο πλαίσιο επιλογής απ’ όπου θα μπορούμε να επιλέξουμε τα επιπλέον χαρακτηριστικά του, όπως ABS, Κλιματισμό, Υδραυλικό Τιμόνι, Ηλεκτρικά Παράθυρα, Αερόσακους κ.ά.
Αφού επιλέξουμε το χρώμα και όσα χαρακτηριστικά επιπλέον θέλουμε, με το κλικ σ’ ένα πλήκτρο εντολής θα πρέπει να εμφανίζονται οι επιλογές μας σ’ ένα πλαίσιο μηνύματος.
Αντικείμενο |
Ιδιότητα |
Τιμή |
Φόρμα |
Name |
frm16 |
Πλήκτρο Επιλογής-1 |
Name |
opt1 |
Πλήκτρο Επιλογής-2 |
Name |
opt2 |
Πλήκτρο Επιλογής-3 |
Name |
opt3 |
Πλήκτρο Επιλογής-4 |
Name |
opt4 |
Πλαίσιο Ελέγχου-1 |
Name |
chk1 |
Πλαίσιο Ελέγχου-2 |
Name |
chk2 |
Πλαίσιο Ελέγχου-3 |
Name |
chk3 |
Πλαίσιο Ελέγχου-4 |
Name |
chk4 |
Πλαίσιο Ελέγχου-5 |
Name |
chk5 |
Πλήκτρο Εντολής |
Name |
cmd_ok |
Η διαδικασία που πρέπει να γράψουμε είναι η εξής :
Private Sub cmd_insert_Click()
Dim k As String
k = "Το χρώμα είναι : "
If opt1 Then
k = k & "Κόκκινο" & chr(13)
ElseIf opt2 Then
k = k & "Πράσινο" & chr(13)
ElseIf opt3 Then
k = k & "Μπλε" & chr(13)
Else
k = k & "Λευκό" & chr(13)
End If
If chk1.Value = 1 Then
k = k & "ABS" & chr(13)
End If
If chk2.Value = 1 Then
k = k & "Αυτόματος Κλιματισμός" & chr(13)
End If
If chk3.Value = 1 Then
k = k & "Υδραυλικό Τιμόνι" & chr(13)
End If
If chk4.Value = 1 Then
k = k & "Ηλεκτρικά Παράθυρα" & chr(13)
End If
If chk5.Value = 1 Then
k = k & "Αερόσακος" & chr(13)
End If
MsgBox k
End Sub
Να δημιουργηθεί μια φόρμα μ’ ένα πλαίσιο κειμένου που να καταλαμβάνει το πάνω μέρος της φόρμας και δύο πλήκτρα εντολής στο κάτω μέρος της φόρμας. Κάθε φορά που αλλάζουμε το μέγεθος της φόρμας, θα πρέπει το πλαίσιο κειμένου να καταλαμβάνει πάντα το πλήρες πλάτος της φόρμας και να αφήνει μια περιοχή στο κάτω μέρος της φόρμας για τα πλήκτρα εντολής.
Private Sub frm01_Resize()
text01.Height = frm01.ScaleHeight - 825
text01.Width = frm01.ScaleWidth
cmdOK.Top = frm01.ScaleHeight - 600
cmdCancel.Top = cmdOK.Top
cmdOK.Left = frm01.ScaleWidth / 2 – 690 – cmdOK.Width
cmdCancel.Left = frm01.ScaleWidth / 2 + 690
End Sub
Να δημιουργηθεί μια φόρμα η οποία να τοποθετείται πάντα στο κέντρο της οθόνης.
Private Sub frm01_Load()
frm01.Left = (Screen.Width – frm01.Width) / 2
frm01.Top = (Screen.Height – frm01.Height) / 2
End Sub
Να καταχωρηθούν τα ονόματα κάποιων χωρών σ’ ένα πλαίσιο λίστας και να εμφανίζεται η επιλεγείσα χώρα σε μια ετικέτα είτε κάνοντας διπλό κλικ πάνω στο στοιχείο στη λίστα ή επιλέγοντάς το με απλό κλικ και κάνοντας κλικ σ’ ένα πλήκτρο εντολής
Private Sub Form_Load()
lstCountries.AddItem "Γαλλία"
lstCountries.AddItem "Ιταλία"
lstCountries.AddItem "Ελλάδα"
lstCountries.AddItem "Ισπανία"
End Sub
Private Sub lstCountries_DblClick()
cmdSelect_Click
End Sub
Private Sub cmdSelect_Click()
lblChosenCountry.Caption = "Επιλεγείσα χώρα : " & lstCountries.Text
End Sub
Private Sub cmdOK_Click()
Unload frmCountry
End Sub
Να δημιουργηθεί μια φόρμα με 4 πλαίσια κειμένου, όπου στα δύο πρώτα θα καταχωρούμε το Καθαρό Ποσό και το Ποσοστό ΦΠΑ και στα άλλα δύο θα υπολογίζονται και θα εμφανίζονται το Ποσό ΦΠΑ και το Συνολικό Ποσό. Για να γίνουν οι υπολογισμοί θα κάνουμε κλικ σ’ ένα πλήκτρο εντολής με ετικέτα Υπολογισμός.
Const VatPercentage = 18
Const VatRate = Vat / 100
Private Sub cmdCalculate_Click()
‘Δήλωση τοπικών μεταβλητών
Dim NetAmount, VAT, GrossAmount As Currency
‘Εισαγωγή ποσού για υπολογισμούς
NetAmount = Val(txtNet.Text)
‘Υπολογισμός ποσών
VAT = NetAmount * VatRate
GrossAmount = NetAmount + VAT
‘Εμφάνιση των αποτελεσμάτων στα πλαίσια κειμένου
txtVAT.Text = Format(VAT, "0.00")
txtGross.Text = Format(GrossAmount, "0.00")
End Sub
Private Sub cmdExit_Click()
Unload frmVat
End Sub
Private Sub Form_Load()
‘Εμφάνιση του ποσοστού ΦΠΑ στο αντίστοιχο πλαίσιο
txtRate.Text = Str(VatPercentage)
End Sub
Private Sub txtNet_LostFocus()
cmdCalculate_Click
End Sub
Να δημιουργηθεί μια φόρμα με τίτλο Μετατροπές από Κωδικούς Ascii σε Χαρακτήρες, που θα περιέχει τα εξής τέσσερα πλαίσια κειμένου :
txtFromASCII, καταχωρούμε έναν κωδικό ascii.
txtToChar, εμφανίζει τον χαρακτήρα που αντιστοιχεί στον παραπάνω κωδικό ascii.
txtFromChar, καταχωρούμε έναν χαρακτήρα.
txtToASCII, εμφανίζει τον κωδικό ascii που αντιστοιχεί στον παραπάνω χαρακτήρα.
Κάθε φορά που θα εισάγουμε έναν κωδικό ASCII ή έναν χαρακτήρα στα αντίστοιχα πλαίσια κειμένου, θα εμφανίζεται ο χαρακτήρας ή ο κωδικός ASCII, αντίστοιχα, στα άλλα δύο πλαίσια κειμένου.
Private Sub txtFromASCII_Change()
Dim ASCIINum As Integer
‘Μετατροπή κειμένου σε αριθμό
ASCIINum = Val(txtFromASCII.Text)
‘Μετατροπή κωδικού ASCII σε χαρακτήρα
txtToChar.Text = Chr(ASCIINum)
End Sub
Private Sub
Dim ASCIINum As Integer
‘Μετατροπή κειμένου σε ASCII
‘Το κενό διάστημα χρειάζεται στην περίπτωση που το πλαίσιο
‘κειμένου είναι τελείως κενό
ASCIINum = Asc(txtFromChar.Text & Chr(32))
‘Τα πλαίσια κειμένου μπορούν να εμφανίσουν αριθμούς χωρίς να
‘γίνει μετατροπή τους πρώτα σε αλφαριθμητικό
txtToASCII.Text = ASCIINum
End Sub
Να δημιουργηθεί μια φόρμα με τίτλο Calculator που θα περιέχει τα παρακάτω χειριστήρια :
Δύο πλαίσια κειμένου με ονόματα Ν1 και Ν2 όπου θα μπορούμε να καταχωρούμε αριθμούς για να κάνουμε πράξεις.
Ένα πλαίσιο κειμένου με όνομα R όπου θα εμφανίζεται το αποτέλεσμα της επιλεγμένης πράξης.
Ένα σύνθετο πλαίσιο λίστας (combo box) με όνομα Μ που θα αποτελεί τη μνήμη των αριθμών που καταχωρούμε.
Τρία πλήκτρα εντολής με ονόματα και ετικέτες C1, C2 και CM που θα καθαρίζουν τα δύο πρώτα πλαίσια κειμένου Ν1, Ν2 καθώς και το σύνθετο πλαίσιο λίστας Μ, αντίστοιχα.
Τέσσερα πλήκτρα εντολής με ονόματα add, subtract, multiply, divide και remainder και αντίστοιχες ετικέτες +, -, *, / και mod που θα εκτελούν τις αντίστοιχες πράξεις στο περιεχόμενο των πλαισίων κειμένου Ν1 και Ν2 και θα εμφανίζουν το αποτέλεσμα στο πλαίσιο κειμένου R.
Ένα πλήκτρο εντολής με όνομα swap και ετικέτα <-> που θα ανταλλάσσει τις τιμές των πλαισίων κειμένου Ν1 και Ν2.
Ένα πλήκτρο εντολής με όνομα RM και ετικέτα R->M που θα καταχωρεί το περιεχόμενο του πλαισίου κειμένου R στο σύνθετο πλαίσιο λίστας Μ.
Ένα πλήκτρο εντολής με όνομα ΜΝ1 και ετικέτα Μ->Ν1 που θα καταχωρεί το επιλεγμένο περιεχόμενο του σύνθετου πλαίσιου λίστας Μ στο πλαίσιο κειμένου Ν1.
Ένα πλήκτρο εντολής με όνομα ΜΝ2 και ετικέτα Μ->Ν2 που θα καταχωρεί το επιλεγμένο περιεχόμενο του σύνθετου πλαίσιου λίστας Μ στο πλαίσιο κειμένου Ν2.
Αν δεν έχουμε καταχωρήσει αριθμούς και στα δύο πλαίσια κειμένου Ν1 και Ν2, θα εμφανίζεται αντίστοιχη προειδοποίηση σε Message Box.
Να δημιουργηθεί μια φόρμα με τον τίτλο Μετατροπές Κελσίου-Φαρενάιτ και με τα εξής χειριστήρια :
Ένα πλαίσιο κειμένου με όνομα Celsius και με διπλανή ετικέτα Κελσίου, όπου θα καταχωρούμε μια θερμοκρασία σε βαθμούς Κελσίου.
Ένα πλαίσιο κειμένου με όνομα Fahreneit και με διπλανή ετικέτα Φαρενάιτ, όπου θα καταχωρούμε μια θερμοκρασία σε βαθμούς Φαρενάιτ.
Ένα πλήκτρο εντολής με ετικέτα > όπου με κάθε κλικ θα υπολογίζεται η θερμοκρασία σε βαθμούς Φαρενάιτ με βάση τη θερμοκρασία σε βαθμούς Κελσίου.
Ένα πλήκτρο εντολής με ετικέτα < όπου με κάθε κλικ θα υπολογίζεται η θερμοκρασία σε βαθμούς Κελσίου με βάση τη θερμοκρασία σε βαθμούς Φαρενάιτ.
Ένα πλαίσιο λίστας όπου θα καταχωρούνται μόνο οι θερμοκρασίες Κελσίου.
Ένα πλήκτρο εντολής με ετικέτα Μέση Θερμοκρασία όπου με κάθε κλικ θα υπολογίζεται ο μέσος όρος των θερμοκρασιών που υπάρχουν καταχωρημένες στην προηγούμενη λίστα και θα εμφανίζεται σ’ ένα διπλανό πλαίσιο κειμένου. Για να αφαιρέσουμε κάποια καταχώρηση από τη λίστα, θα πρέπει να κάνουμε διπλό κλικ πάνω του.
Ένα πλήκτρο εντολής με ετικέτα Close για να κλείνει η φόρμα και να τελειώνει το πρόγραμμα.
Να δημιουργηθεί μια φόρμα με τον τίτλο Μετατροπές Νομισμάτων και με τα εξής χειριστήρια :
Ένα πλαίσιο κειμένου με όνομα Drachmas και μια διπλανή ετικέτα με όνομα Δραχμές, όπου θα καταχωρούμε ένα ποσό σε δραχμές.
Ένα πλαίσιο κειμένου με όνομα Coin και μια διπλανή ετικέτα με όνομα Νόμισμα, όπου θα εμφανίζεται μια αντίστοιχη τιμή σε ξένο νόμισμα.
Ένα πλαίσιο λίστας με τις εξής καταχωρήσεις :
Μάρκο
Δολάριο
Λίρα
Γιέν
Ευρώ
Η αντιστοιχία της δραχμής με τα παραπάνω νομίσματα είναι η εξής :
Μάρκο = 1/280
Δολάριο = 1/380
Λίρα = 1/500
Γιέν = 1/240
Ευρώ = 1/341
Ένα πλήκτρο εντολής με ετικέτα Close για να κλείνει η φόρμα και να τελειώνει το πρόγραμμα.
Αφού θα έχουμε καταχωρήσει ένα ποσό σε δραχμές στο πλαίσιο κειμένου Drachmas, θα επιλέγουμε ένα ξένο νόμισμα από τη λίστα και το αποτέλεσμα θα καταχωρείται στο πλαίσιο κειμένου Coin. Επίσης, η ετικέτα Νόμισμα θα αντικαθίσταται με το αντίστοιχο νόμισμα μετατροπής.
Να δημιουργηθεί μια φόρμα με τον τίτλο Μετατροπές Ημερομηνίας-Ώρας και με τα εξής χειριστήρια :
Μια ετικέτα με λεζάντα Τελευταία εισαγωγή ημ/νίας – ώρας : (τρέχουσα ημερομηνία-ώρα), στην κορυφή της φόρμας.
Ένα πλαίσιο που θα περιέχει τα εξής χειριστήρια :
Ένα πλαίσιο κειμένου όπου θα μπορούμε να καταχωρήσουμε μια αριθμητική τιμή ημερομηνίας-ώρας, π.χ. 36724.68, και με μια διπλανή ετικέτα με λεζάντα Εισάγετε μια τιμή ημ/νίας-ώρας :.
Ένα πλαίσιο κειμένου όπου θα εμφανίζεται η ημερομηνία σε πλήρη μορφή, π.χ. Δευτέρα 26/11/2001 και με μια διπλανή ετικέτα με λεζάντα Ημ/νία :.
Ένα διπλανό πλαίσιο κειμένου όπου θα εμφανίζεται η ώρα σε πλήρη μορφή, π.χ. 19:16:32 και με μια διπλανή ετικέτα με λεζάντα Ώρα :.
Ένα πλαίσιο που θα περιέχει τα εξής χειριστήρια :
Ένα πλαίσιο κειμένου όπου θα μπορούμε να καταχωρήσουμε μια ημερομηνία, π.χ. 25/10/2000, και με μια διπλανή ετικέτα με λεζάντα Εισάγετε μια ημ/νία :.
Ένα πλαίσιο κειμένου όπου θα εμφανίζεται η ημέρα της εβδομάδας, π.χ. Τρίτη, και με διπλανή ετικέτα με λεζάντα Μέρα της Εβδομάδας :.
Ένα πλαίσιο κειμένου όπου θα εμφανίζεται η αριθμητική τιμή της ημερομηνίας, π.χ. 31768.12, και με διπλανή ετικέτα με λεζάντα Τιμή ημ/νίας :.
Ένα πλαίσιο κειμένου όπου θα μπορούμε να καταχωρήσουμε μια αριθμητική τιμή ημερών για πρόσθεση ή αφαίρεση ημερών από την παραπάνω ημερομηνία και με διπλανή ετικέτα με λεζάντα Αριθμός ημερών για πρόσθεση (- για αφαίρεση) :.
Ένα πλαίσιο κειμένου όπου θα εμφανίζεται η νέα ημερομηνία μετά την πρόσθεση ή την αφαίρεση των ημερών και με διπλανή ετικέτα με λεζάντα Αποτέλεσμα :.
Ένα πλήκτρο εντολής με λεζάντα Υπολογισμός όπου με το κλικ θα υπολογίζονται οι τιμές των πλαισίων κειμένου.
Στα πλαίσια κειμένου που έχουν διπλανές λεζάντες με έντονη γραφή, θα πρέπει να καταχωρήσουμε εμείς κάποιες τιμές, ενώ στα άλλα πλαίσια κειμένου θα εμφανίζονται τα αποτελέσματα των υπολογισμών.
Στην περιοχή General Declarations της φόρμας γράφουμε την εξής δήλωση :
‘Δήλωση του πίνακα με τις ημέρες της εβδομάδας
Dim WeekDayString(7) As String
Private Sub Form_Load()
‘Δημιουργία του πίνακα με τις ημέρες της εβδομάδας
WeekDayString(1) = "Κυριακή"
WeekDayString(2) = "Δευτέρα"
WeekDayString(3) = "Τρίτη"
WeekDayString(4) = "Τετάρτη"
WeekDayString(5) = "Πέμπτη"
WeekDayString(6) = "Παρασκευή"
WeekDayString(7) = "Σάββατο"
End Sub
Private Sub txtDateTimeIn_Change()
‘Δίνουμε έναν αριθμό κινητής υποδιαστολής και η διαδικασία
‘υπολογίζει την αντίστοιχη πραγματική τιμή ημερομηνίας/ώρας
‘εμφανίζοντας και την ημέρα της εβδομάδας
Dim DateIn As Date
Dim DayNumber As Integer
Dim DateString As String, DayOfWeek As String
Dim HourString As String, MinString As String
Dim SecString As String, TimeString As String
‘Υπολογισμός και εμφάνιση της ημέρας της εβδομάδας
DateIn = Val(txtDateTimeIn.Text)
DayNumber = WeekDay(DateIn)
DayOfWeek = WeekDayString(DayNumber)
‘Εξαγωγή των συστατικών της ημερομηνίας και δημιουργία της
‘συμβολοσειράς
DateString = Day(DateIn) & "/" & Month(DateIn) & "/"_
& Year(DateIn)
txtDate.Text = DayOfWeek & " " & DateString
‘Εξαγωγή των συστατικών της ώρας και δημιουργία της
‘συμβολοσειράς
HourString = Right("00" & Hour(DateIn), 2)
MinString = Right("00" & Minute(DateIn), 2)
SecString = Right("00" & Second(DateIn), 2)
TimeString = HourString & ":" & MinString & ":" & SecString
txtTime.Text = TimeString
‘Ανανέωση της ετικέτας ημερομηνίας-ώρας
lblNow.Caption = "Τελευταία εισαγωγή ημ/νίας – ώρας : " & Str(Now)
End Sub
Private Sub cmdCalculate_Click()
‘Δίνουμε μια πραγματική τιμή ημερομηνίας/ώρας και έναν αριθμό
‘ημερών για πρόσθεση ή αφαίρεση και η διαδικασία υπολογίζει ποια
‘ημέρα της εβδομάδας είναι καθώς και την αριθμητική τιμή
‘της ημερομηνίας αυτής και τη νέα ημερομηνία που προκύπτει από την
‘προσθαφαίρεση των ημερών
Dim DateNumber As Date, ResultDateNumber As Date
Dim DayNumber As Integer
‘Υπολογισμός της τιμής ημ/νίας - ώρας
DateNumber = DateValue(txt.DateIn.Text)
txtDateTime.Text = Format(DateNumber, "#####")
‘Υπολογισμός της ημέρας της εβδομάδας
DayNumber = WeekDay(DateNumber)
txtDayOfWeek.Text = WeekDayString(DayNumber)
‘Υπολογισμός της τιμής για το πλαίσιο αποτελέσματος
ResultDateNumber = DateNumber + Val(textAddDays.Text)
txtResult.Text = Format(ResultDateNumber, "dd/mm/yy")
‘Ανανέωση της ετικέτας ημ/νίας-ώρας
lblNow.Caption = "Τελευταία εισαγωγή ημ/νίας – ώρας : " & Str(Now)
End Sub
Να δημιουργηθεί μια φόρμα με τον τίτλο Κουλοχέρης (Reel Magic) και με τα εξής χειριστήρια :
Ένα πλαίσιο κειμένου όπου θα φαίνεται το ποσό που θα έχει στη διάθεσή του ο παίκτης και με μια διπλανή ετικέτα με λεζάντα Κεφάλαιο. Θα έχει αρχική τιμή 1.000 μονάδες, θα είναι ανενεργό και θα έχει χρώμα κόκκινο.
Ένα πλαίσιο κειμένου όπου θα φαίνονται οι μονάδες που αποφάσισε να ποντάρει ο παίκτης και με μια διπλανή ετικέτα με λεζάντα Ποντάρισμα. Θα είναι ανενεργό και με βάση αυτό το ποσό θα προστίθεται στο Κεφάλαιο το κέρδος ή θα αφαιρείται ανάλογα.
Μια οριζόντια ράβδος κύλισης απ’ όπου ο παίκτης θα μπορεί να μεταβάλλει το ποντάρισμα, με κατώτερο όριο πονταρίσματος 100 μονάδες και ανώτερο 5.000 μονάδες.
Ένα πλήκτρο εντολής με λεζάντα SPIN όπου με κάθε κλικ θα δημιουργούνται τρεις τυχαίοι ακέραιοι αριθμοί με τιμές από 1-4 και θα γεμίζουν αντίστοιχα τρία αρχικά άδεια τετράγωνα με τρία από τα τέσσερα χρώματα των χαρτιών (εικόνων) που βρίσκονται στον φάκελο \icons\misc\ και έχουν ονόματα αρχείων misc34.ico, misc35.ico, misc36.ico και misc37.ico. Επίσης, θα υπολογίζεται αν ο παίκτης έχασε ή κέρδισε και θα ενημερώνεται αντίστοιχα το πλαίσιο κειμένου Κεφάλαιο.
Ένα πλήκτρο εντολής με λεζάντα Έξοδος για να κλείνει η φόρμα και να τελειώνει το πρόγραμμα.
Αν ο παίκτης πετύχει τρεις καρδιές, θα εμφανίζεται το μήνυμα Μεγάλο Κέρδος, ενώ αν πετύχει τρία άλλα ίδια χρώματα, θα εμφανίζεται το μήνυμα Κέρδισες.
Σύμφωνα με τους κανόνες του παιχνιδιού, ο παίκτης κερδίζει 4 φορές το ποντάρισμα που έχει κάνει αν φέρει 3 καρδιές και 2 φορές το ποντάρισμα που έχει κάνει αν φέρει 3 άλλα ίδια χρώματα, ενώ χάνει σε κάθε άλλη περίπτωση.
Επειδή είναι σχετικά δύσκολο να κερδίσει κάποιος, θα προστεθεί ο κατάλληλος κώδικας έτσι ώστε αν υπάρχουν 10 συνεχόμενες αποτυχίες, να κερδίσει οπωσδήποτε μ’ ένα χρώμα της αρεσκείας του. Αν, όμως, ο παίκτης τύχει να κερδίσει κανονικά, θα πρέπει να αρχίσουμε να μετράμε και πάλι από την αρχή μέχρι να συμπληρωθούν 10 συνεχόμενες αποτυχίες.
Στην περιοχή General Declarations της φόρμας γράφουμε τις εξής δηλώσεις :
Const KOUPES=1, SPATHIA=2, KARRO=3, MPASTOUNIA=4
Const MEGALO_KERDOS=4, APLO_KERDOS=2
Const KEFALAIO As Currency
Private Sub cmdSpin_Click()
‘Οι τρεις τυχαίοι αριθμοί
Dim p1 As Integer, p2 As Integer, p3 As Integer
Static every10 As Integer
‘Δημιουργία των τυχαίων αριθμών
p1 = Int(4 * Rnd + 1)
p2 = Int(4 * Rnd + 1)
p3 = Int(4 * Rnd + 1)
‘Αν υπάρχουν 10 συνεχόμενες αποτυχίες, θα κερδίζει στην 11η
‘με απλό κέρδος, π.χ. KARRO
If every10 > 9 Then
p1 = KARRO
p2 = KARRO
p3 = KARRO
‘Οι αποτυχίες αρχίζουν από την αρχή
every10 = 0
End If
‘Εμφάνιση πρώτης εικόνας
If p1 = KOUPES Then
imgSLOT1 = imgKOUPES.Picture
ElseIf p1 = SPATHIA Then
imgSLOT1 = imgSPATHIA.Picture
ElseIf p1 = KARRO Then
imgSLOT1 = imgKARRO.Picture
ElseIf p1 = MPASTOUNIA Then
imgSLOT1 = imgMPASTOUNIA.Picture
End If
‘Εμφάνιση δεύτερης εικόνας
If p2 = KOUPES Then
imgSLOT2 = imgKOUPES.Picture
ElseIf p2 = SPATHIA Then
imgSLOT2 = imgSPATHIA.Picture
ElseIf p2 = KARRO Then
imgSLOT2 = imgKARRO.Picture
ElseIf p2 = MPASTOUNIA Then
imgSLOT2 = imgMPASTOUNIA.Picture
End If
‘Εμφάνιση τρίτης εικόνας
If p3 = KOUPES Then
imgSLOT3 = imgKOUPES.Picture
ElseIf p3 = SPATHIA Then
imgSLOT3 = imgSPATHIA.Picture
ElseIf p3 = KARRO Then
imgSLOT3 = imgKARRO.Picture
ElseIf p3 = MPASTOUNIA Then
imgSLOT3 = imgMPASTOUNIA.Picture
End If
‘Έλεγχος αν έχει κερδίσει ο παίκτης
If p1 = p2 And p2 = p3 Then
‘Έχει κερδίσει
every10 = 0 ‘Οι αποτυχίες αρχίζουν από την αρχή
If p1 = KOUPES Then
KEFALAIO = KEFALAIO +
MEGALO_KERDOS * Val(txtPontarisma.Text)
MsgBox "Μεγάλο Κέρδος"
Else
KEFALAIO = KEFALAIO +
APLO_KERDOS * Val(txtPontarisma.Text)
MsgBox "Κέρδισες"
End If
Else
‘Δεν έχει κερδίσει
KEFALAIO = KEFALAIO – Val(txtPontarisma.Text)
every10 = every10 + 1 ‘αυξάνονται οι ατυχίες
End If
‘Ανάλογα με το αν κέρδισε ή έχασε,
‘γίνεται ενημέρωση του Κεφαλαίου
txtKEFALAIO.Text = Str(KEFALAIO)
End Sub
Private Sub Form_Load()
Randomize
KEFALAIO = 1000
End Sub
Private Sub HScroll1_Change()
TxtPontarisma.Text = HScroll1.Value
End Sub
Να δημιουργηθεί μια φόρμα με τον τίτλο Επιλογή Χώρας και με τα εξής χειριστήρια :
Ένα σύνθετο πλαίσιο λίστας απ’ όπου θα μπορούμε να επιλέγουμε μια από τέσσερις χώρες και με μια διπλανή ετικέτα με λεζάντα Χώρα :.
Μια ετικέτα με λεζάντα Πρωτεύουσα και δίπλα το όνομα της πρωτεύουσας της επιλεγείσας χώρας από τη λίστα.
Private Sub cboCountry_LostFocus()
Dim Reps(0 To 3) As String
Dim SelectedRegion As Integer
Dim Rep as String
‘Απόδοση αρχικών τιμών στα στοιχεία του πίνακα
Reps(0) = "Ρώμη" ‘Ιταλία
Reps(1) = "Μαδρίτη" ‘Ισπανία
Reps(2) = "Παρίσι" ‘Γαλλία
Reps(3) = "Βερολίνο" ‘Γερμανία
‘Εύρεση της τιμής του δείκτη της λίστας και
‘εμφάνιση της αντίστοιχης πρωτεύουσας
SelectedRegion = cboRegion.ListIndex
Rep = Reps(SelectedRegion)
lblRep.Caption = "Πρωτεύουσα : " & Rep
End Sub
Να δημιουργηθεί μια φόρμα με τον τίτλο Μετατροπές Μονάδων και με τα εξής χειριστήρια :
Δύο πλαίσια κειμένου για την καταχώρηση τιμών σε ίντσες ή σε εκατοστά και την εμφάνιση του αποτελέσματος αντίστοιχα. Το πλαίσιο κειμένου για το αποτέλεσμα θα είναι ανενεργό.
Δύο διπλανές ετικέτες σε κάθε πλαίσιο κειμένου που θα έχουν ετικέτες Εκατοστά ή Ίντσες, ανάλογα με την μετατροπή που θέλουμε να κάνουμε.
Ένα πλήκτρο εντολής με λεζάντα Ίντσες σε Εκατοστά και ένα πλήκτρο εντολής με λεζάντα Εκατοστά σε ίντσες.
Ένα πλήκτρο εντολής με λεζάντα Έξοδος.
Private Sub cmdInchCm_Click()
Dim Inches As Single, Cm As Single
Const CmPerInch = 2.54
Inches = Val(txtEntry.Text)
Cm = (Int((Inches * CmPerInch * 100) + 0.5)) / 100
txtResult.Text = Str(Cm)
lblEntry.Caption = "Ίντσες : "
lblResult.Caption = "Εκατοστά : "
End Sub
Private Sub cmdCmInch_Click()
Dim Inches As Single, Cm As Single
Const CmPerInch = 2.54
Cm = Val(txtEntry.Text)
Inches = (Int((Cm / CmPerInch * 100) + 0.5)) / 100
txtResult.Text = Str(Inches)
lblEntry.Caption = "Εκατοστά : "
lblResult.Caption = "Ίντσες : "
End Sub
Private Sub cmdExit_Click()
Unload frmUnits
End Sub
Να δημιουργηθεί μια φόρμα με τον τίτλο Υπολογισμός Εβδομάδων και Ημερών και με τα εξής χειριστήρια :
Δύο πλαίσια κειμένου για την καταχώρηση δύο ημερομηνιών.
Δύο πλαίσια κειμένου για την εμφάνιση των εβδομάδων και των ημερών ανάμεσα στις δύο ημερομηνίες.
Ένα πλήκτρο εντολής για να γίνει ο υπολογισμός των εβδομάδων και των ημερών με λεζάντα Υπολογισμός.
Αφού καταχωρήσουμε δύο ημερομηνίες στα δύο πρώτα πλαίσια κειμένου, με κλικ στο πλήκτρο εντολής θα εμφανίζονται στα άλλα δύο πλαίσια κειμένου ο αριθμός των εβδομάδων και των ημερών που υπάρχουν ανάμεσα στις δύο ημερομηνίες.
Private Sub cmdCalculate_Cclick()
Dim Days1 As Single, Days2 As Single
Dim NumWeeks As Long
Dim NumDays As Integer
‘Μετατροπή των καταχωρήσεων σε τύπο ημερομηνίας
Days1 = DateValue(txtDate1.Text)
Days2 = DateValue(txtDate2.Text)
‘Υπολογισμός εβδομάδων και ημερών
NumWeeks = Int((Days2 – Days1) / 7)
NumDays = (Days2 – Days1) Mod 7
‘Εμφάνιση των αποτελεσμάτων στα αντίστοιχα πλαίσια κειμένου
txtWeeks.Text = NumWeeks
txtDays.Text = NumDays
End Sub
Να γραφεί συνάρτηση που να διαβάζει μια γραμμή κειμένου από ένα αρχείο, να την εμφανίζει στην οθόνη και μετά να την καταχωρεί σ’ ένα άλλο αρχείο (είσοδος – έξοδος σειριακών αρχείων).
Function Input_Output()
Dim Input_Line As String
Open "C:\Data.in" For Input As #1
Open "C:\Data.out" For Output As #2
Line Input #1, Input_Line
MsgBox Input_Line
Print #2, Input_Line
Close #1
Close #2
End Function
Να γραφεί συνάρτηση που να διαβάζει μια τιμή από το πληκτρολόγιο και να την τοποθετεί σ’ ένα κελί λογιστικού φύλλου που θα αποθηκευθεί με το όνομα Data.xls. Ο χρήστης θα πρέπει να δώσει και τις συντεταγμένες i και j του κελιού.
Function Save_Excel()
Dim i, j As Integer
Dim X As Double
Dim xlSheet As Object
X = InputBox("Δώστε τιμή για το λογιστικό φύλλο : ")
i = InputBox("Δώστε αριθμό γραμμής : ")
j = InputBox("Δώστε αριθμό στήλης : ")
xlSheet.Cells(i, j) = X
xlSheet.SaveAs "C:\Data.xls"
End Function
Να καταχωρηθούν δύο λέξεις από το πληκτρολόγιο και να εμφανισθεί ένα μήνυμα στην οθόνη αν έχουν το ίδιο μήκος, ενώ αν έχουν διαφορετικό μήκος να εμφανισθεί η μεγαλύτερη λέξη (δομή If ... Else … End If).
A = InputBox("Δώστε την πρώτη λέξη : ")
B = InputBox("Δώστε τη δεύτερη λέξη : ")
If Len(A) = Len(B) Then
MsgBox "Οι λέξεις έχουν το ίδιο μήκος"
Else
If Len(A) > Len(B) Then
MsgBox A
Else
MsgBox B
End If
End If
Να καταχωρηθεί ο αριθμός ενός μήνα από το πληκτρολόγιο και να εμφανισθεί στην οθόνη ο αριθμός των ημερών του μήνα (δομή Select Case).
M = InputBox("Δώστε τον αριθμό του μήνα (1 – 12) : ")
Select Case M
Case 1, 3, 5, 7, 8, 10, 12
MsgBox "Ο μήνας έχει 31 ημέρες"
Case 4, 6, 9, 11
MsgBox "Ο μήνας έχει 30 ημέρες"
Case 2
MsgBox "Ο μήνας έχει 28 ή 29 ημέρες"
Case Else
MsgBox "Λάθος αριθμός μήνα"
End Select
Να καταχωρηθούν από το πληκτρολόγιο οι βαθμοί της τάξης σ’ ένα διαγώνισμα και να υπολογισθεί και να εμφανισθεί ο μέσος όρος των βαθμών. Το πρόγραμμα τελειώνει όταν καταχωρηθεί ένας αρνητικός αριθμός (δομή While … Wend).
Function MO()
Dim X, S As Double
Dim N As Integer
S = 0 ‘Άθροισμα βαθμών
N = 0 ‘Πλήθος βαθμών
X = InputBox("Δώστε βαθμό : ")
While X >= 0
N = N + 1
S = S + X
X = InputBox("Δώστε επόμενο βαθμό : ")
Wend
X = S / N
MsgBox "Ο μέσος όρος είναι : " & X
End Function
Να καταχωρηθούν από το πληκτρολόγιο οι βαθμοί 5 μαθητών σ’ ένα διαγώνισμα και να υπολογισθεί και να εμφανισθεί ο μέσος όρος των βαθμών (δομή For … Next).
Function MO()
Dim X, S As Double
Dim I, N As Integer
S = 0 ‘Άθροισμα βαθμών
N = 5 ‘Πλήθος βαθμών
For I = 1 To N
X = InputBox("Δώστε βαθμό : ")
S = S + X
Next I
X = S / N
MsgBox "Ο μέσος όρος είναι : " & X
End Function
Να γραφεί μια συνάρτηση που να δέχεται σαν όρισμα τον αριθμό ενός μήνα και να επιστρέφει τον αριθμό των ημερών του μήνα.
Function Hmeres(M As Integer) As Integer
Select Case M
Case 1, 3, 5, 7, 8, 10, 12
Hmeres = 31
Case 4, 6, 9, 11
Hmeres = 30
Case 2
Hmeres = 28
Case Else
Hmeres = 0
End Select
End Function
Η κλήση της παραπάνω συνάρτησης μπορεί να γίνει ως εξής :
…
M = InputBox("Δώστε τον αριθμό του μήνα : ")
MsgBox "Ο μήνας " & Μ & " έχει " & Hmeres(M) & " ημέρες"
…
Να γίνει μια εφαρμογή σε Visual Basic που θα δίνει τη δυνατότητα σ’ έναν καθηγητή να καταγράφει και να παρακολουθεί τους βαθμούς των σπουδαστών. Το πρόγραμμα θα έχει τις εξής τρεις φόρμες :
Μια κύρια φόρμα (main form) απ’ όπου ο χρήστης θα μπορεί να επιλέξει τις εξής φόρμες :
Μια φόρμα για να καταχωρήσει τους βαθμούς των σπουδαστών για ένα συγκεκριμένο μάθημα (module).
Μια φόρμα για να δει τους βαθμούς των σπουδαστών για ένα συγκεκριμένο μάθημα (module).
Από την κάθε φόρμα θα γίνονται τα εξής :
Πηγαίνουμε στη φόρμα input marks.
Πηγαίνουμε στη φόρμα review marks.
Τελειώνει το πρόγραμμα.
Καταχωρούμε το όνομα ενός module, π.χ. Visual Basic Programming 1.
Καταχωρούμε τον κωδικό ενός module, π.χ. CP1007.
Καταχωρούμε το όνομα ενός σπουδαστή, π.χ. Παπαδόπουλος Ιωάννης.
Καταχωρούμε τον βαθμό ενός σπουδαστή σαν ποσοστό, π.χ. 75.
Προσθέτουμε το όνομα του σπουδαστή στο τέλος ενός πίνακα.
Μετατρέπουμε τον βαθμό του σπουδαστή από ποσοστό σε κανονικό βαθμό και
Προσθέτουμε τον βαθμό του σπουδαστή στο τέλος ενός πίνακα.
Αποθηκεύουμε το όνομα του module, τον κωδικό του module, τον πίνακα με τα ονόματα των σπουδαστών και τον πίνακα με τους βαθμούς των σπουδαστών σ’ ένα αρχείο κειμένου (text file).
Αυτή η φόρμα πρέπει να διαβάσει όλα τα στοιχεία ενός module από ένα αρχείο κειμένου και να τα εμφανίσει με μια κατάλληλη μορφή.
Η μετατροπή των βαθμών από ποσοστό σε κανονικό βαθμό γίνεται ως εξής :
80 έως 100 = A
60 έως 79 = B
50 έως 59 = C
40 έως 49 = D
20 έως 39 = E
0 έως 19 = F
Το όνομα του αρχείου κειμένου θα πρέπει να περιέχει τον κωδικό του module, δηλ. για το module CP1007, το όνομα του αρχείου θα πρέπει να είναι CP1007.txt.
Για να υλοποιηθεί αυτή η εφαρμογή, πρέπει να δημιουργηθούν οι εξής τρεις φόρμες :
Form1, με caption Main Form, όπου υπάρχουν τρία command buttons με τις εξής ετικέτες (captions) : Go to input marks form, Go to review marks form και Exit program.
Form2, με caption Input Form, όπου υπάρχουν τα εξής τέσσερα πεδία κειμένου (text fields) : Module Name, Module Code, Student’s Name και Student’s Mark (%) και τα εξής δύο command buttons : Add Student και Add to File.
Form3, με caption Input Form, όπου υπάρχουν οι εξής οκτώ ετικέτες (labels) : μια για να εμφανίσει το όνομα του Module, μια για να εμφανίσει τον κωδικό του Module, μια για να εμφανίσει τα ονόματα των σπουδαστών και μια για να εμφανίσει τους βαθμούς των σπουδαστών. Για κάθε ετικέτα υπάρχει και μια ακόμη ετικέτα με την αντίστοιχη caption.
Στη Form1, όταν κάνουμε κλικ στο command button με την ετικέτα Go to input marks form, εκτελείται η ακόλουθη διαδικασία :
Private Sub Command1_Click()
Form2.Show
End Sub
Στη Form1, όταν κάνουμε κλικ στο command button με την ετικέτα Go to review marks form, εκτελείται η ακόλουθη διαδικασία :
Private Sub Command2_Click()
Form3.Show
End Sub
Στη Form1, όταν κάνουμε κλικ στο command button με την ετικέτα Exit program, εκτελείται η ακόλουθη διαδικασία :
Private Sub Command3_Click()
End
End Sub
Στη Form2, όταν φορτώνουμε (load) τη φόρμα εκτελείται η εξής διαδικασία :
Private Sub Form_Load()
i = 1
End Sub
Στη Form2, όταν κάνουμε κλικ στο command button με την ετικέτα Add Student, εκτελείται η ακόλουθη διαδικασία :
Private Sub Command2_Click()
Dim StudentGrade As String
'Εδώ μετατρέπουμε τον βαθμό του σπουδαστή από ποσοστό σε κανονικό
‘βαθμό (grade)
Select Case Val(StudentMark)
Case 80 To 100
StudentGrade = "A"
Case 60 To 79
StudentGrade = "B"
Case 50 To 59
StudentGrade = "C"
Case 40 To 49
StudentGrade = "D"
Case 20 To 39
StudentGrade = "E"
Case 0 To 19
StudentGrade = "F"
End Select
'Εδώ προσθέτουμε το όνομα και τον βαθμό του σπουδαστή στο τέλος των πινάκων (arrays)
St_Names(i) = StudentName
St_Grades(i) = StudentGrade
'Πηγαίνουμε στην επόμενη θέση του πίνακα
i = i + 1
End Sub
Στη Form2, όταν κάνουμε κλικ στο command button με την ετικέτα Add to File, εκτελείται η ακόλουθη διαδικασία :
Private Sub Command1_Click()
Dim iFileNumber, j As Integer
'Διαλέγουμε έναν τυχαίο αριθμό για το text file
iFileNumber = FreeFile
'Ανοίγουμε το text file μόνο για output
Open "C:\" & ModuleCode & ".txt" For Output As #iFileNumber
'Γράφουμε το Module Name και το Module Code στο text file
Print #iFileNumber, ModuleName
Print #iFileNumber, ModuleCode
'Γράφουμε τα περιεχόμενα των δύο πινάκων στο text file
For j = 1 To i
Print #iFileNumber, St_Names(j)
Print #iFileNumber, St_Grades(j)
Next
'Κλείνουμε το text file
Close #iFileNumber
End Sub
Στη φόρμα3, όταν φορτώνουμε (load) τη φόρμα, εκτελείται η ακόλουθη διαδικασία :
Private Sub Form_Load()
Dim iFileNumber As Integer
'Αυτά τα strings περιέχουν τα ονόματα και τους βαθμούς όλων των
‘σπουδαστών
Dim S_Names, S_Grades As String
'Αυτά είναι τα πεδία (fields) του text file
Dim sModuleName, sModuleCode, sStudentName, sStudentGrade As String
'Δίνουμε αρχικές τιμές στα δύο strings
S_Names = ""
S_Grades = ""
iFileNumber = FreeFile
'Ανοίγουμε το text file μόνο για input
Open "C:\CP1007.txt" For Input As #iFileNumber
'Διαβάζουμε το Module Name και το Module Code από το text file
Line Input #iFileNumber, sModuleName
Line Input #iFileNumber, sModuleCode
'Τοποθετούμε το Module Name και το Module Code στις αντίστοιχες ετικέτες
Label2.Caption = sModuleName
Label3.Caption = sModuleCode
'Διαβάζουμε τα ονόματα και τους βαθμούς των σπουδαστών μέχρι να
‘φθάσουμε στο τέλος του αρχείου
Do Until EOF(iFileNumber)
Line Input #iFileNumber, sStudentName
Line Input #iFileNumber, sStudentGrade
'Προσθέτουμε τα ονόματα και τους βαθμούς των μαθητών στα αντίστοιχα
‘strings συν τους χαρακτήρες return και line feed
S_Names = S_Names + sStudentName + Chr(13) + Chr(10)
S_Grades = S_Grades + sStudentGrade + Chr(13) + Chr(10)
Loop
'Τοποθετούμε τα ονόματα και τους βαθμούς των μαθητών στις αντίστοιχες
‘ετικέτες
Label6.Caption = S_Names
Label7.Caption = S_Grades
'Κλείνουμε το text file
Close #iFileNumber
End Sub
Δημιουργούμε ένα module όπου γράφουμε τα εξής :
Public St_Names(10) As String
Public St_Grades(10) As String
Public i, j As Integer
Να καταχωρηθούν τα λεπτά της ώρας σ’ ένα πλαίσιο κειμένου, να γίνει έλεγχος αν η τιμή είναι μεγαλύτερη του 59 και αν ναι, να εμφανίζεται ένα προειδοποιητικό μήνυμα σε μια ετικέτα, να καταχωρείται η τιμή 59 στο πλαίσιο κειμένου και ο χρήστης να αναγκάζεται να καταχωρήσει μια άλλη τιμή (συμβάν LostFocus).
Private Sub txtMinutes_LostFocus()
If Val(txtMinutes.Text) > 59 Then
lblWarning.Caption = "Όχι τιμή μεγαλύτερη από 59"
txtMinutes.Text = "59"
txtMinutes.SetFocus
End If
End Sub
Να δημιουργηθεί μια φόρμα που θα περιέχει ένα πλαίσιο κειμένου με όνομα txtEntry και ένα μενού με τις επιλογές για Αποκοπή, Αντιγραφή και Επικόλληση του επιλεγμένου κειμένου του πλαισίου κειμένου προς και από το Πρόχειρο. Το μενού θα περιέχει και μια επιλογή για Καθάρισμα του περιεχομένου του πλαισίου κειμένου.
Private Sub mnuEditCut_Click()
‘Καθάρισμα του Προχείρου
Clipboard.Clear
‘Αποκοπή του επιλεγμένου κειμένου στο Πρόχειρο
Clipboard.SetText txtEntry.SelText
txtEntry.SelText = ""
End Sub
Private Sub mnuEditCopy_Click()
‘Καθάρισμα του Προχείρου
Clipboard.Clear
‘Αντιγραφή του επιλεγμένου κειμένου στο Πρόχειρο
Clipboard.SetText txtEntry.SelText
End Sub
Private Sub mnuEditPaste_Click()
‘Επικόλληση του επιλεγμένου κειμένου από το Πρόχειρο
txtEntry.SelText = Clipboard.GetText()
End Sub
Private Sub mnuEditClear_Click()
‘Καθάρισμα του πλαισίου κειμένου
txtEntry.Text = ""
End Sub