Upload
-
View
144
Download
3
Embed Size (px)
Citation preview
Μεταβλητές
Μεταβλητές
Πριν χρησιμοποιήσετε μια μεταβλητή θα πρέπει να την ορίσετε.
Ο ορισμός μιας μεταβλητής είναι μια δήλωση που καθορίζει το όνομά της και τον τύπο της.
Εξ ορισμού, η Visual Basic για μεταβλητές που δεν ορίζονται θεωρεί ότι είναι τύπου Variant.
ΜεταβλητέςΤο σημείο στο οποίο ορίζεται η μεταβλητή καθορίζει και την εμβέλεια της, δηλαδή σε ποια άλλα σημεία του προγράμματος μπορεί να χρησιμοποιηθεί.
Οι μεταβλητές ανάλογα με την εμβέλεια τους διακρίνονται σε:
τοπικές μεταβλητές, γενικές μεταβλητές και δημόσιες μεταβλητές.
Μεταβλητές: Τοπικές
Οι τοπικές μεταβλητές ορίζονται στην αρχή μιας διαδικασίας και είναι διαθέσιμες μόνο μέσα στη διαδικασία. Η σύνταξη του ορισμού μιας τοπικής μεταβλητής είναι:
Dim ΟνομαΜεταβλητής As ΤύποςΔεδομένων
Dim A(10) As Single
Μεταβλητές: Γενικές
Οι γενικές μεταβλητές (μεταβλητές λειτουργικής μονάδας) ορίζονται στην περιοχή General μιας φόρμας και είναι διαθέσιμες σε όλες τις διαδικασίες που είναι αποθηκευμένες στο ίδιο αρχείο (π.χ. στο ίδιο αρχείο φόρμας).
Μεταβλητές: Δημόσιες
Οι δημόσιες μεταβλητές ορίζονται στη λειτουργική μονάδα Module και είναι διαθέσιμες σε όλο το πρόγραμμα. Η σύνταξη του ορισμού μιας δημόσιας μεταβλητής είναι:
Public ΟνομαΜεταβλητής As ΤύποςΔεδομένων
Public A(10) As Single
Πίνακες
ΠαράδειγμαΝα γραφεί πρόγραμμα που να επιλύει το ακόλουθο πρόβλημα.
•Δίδονται 4 θετικοί αριθμοί.
•Το πρόγραμμα να εμφανίζει στην έξοδο το μέσο όρο των αριθμών.
for i = 1 to 4
Διάβασε Β
Αρχή
Τέλος
Τύπωσε MO
SUM
Είσοδος
Sum Sum+Β
mo Sum/4
Β
i
Έξοδος
mo
for i = 1 to 4
Διάβασε Β
ΑρχήΕίσοδος
Έξοδος
Sum Sum+Β
mo Sum/4
Τέλος
Τύπωσε MO
SUM
Β
i
mo
for i = 1 to 4
Διάβασε Β
ΑρχήΕίσοδος
Έξοδος
Sum Sum+Β
mo Sum/4
5
Τέλος
Τύπωσε MO
5
SUM
Β
1
i
mo
for i = 1 to 4
Διάβασε Β
ΑρχήΕίσοδος
Έξοδος
Sum Sum+Β
mo Sum/4
5
Τέλος
Τύπωσε MO
5
SUM
Β
1
i
mo
for i = 1 to 4
Διάβασε Β
ΑρχήΕίσοδος
Έξοδος
Sum Sum+Β
mo Sum/4
5
7
Τέλος
Τύπωσε MO
7
5
SUM
Β
2
i
mo
for i = 1 to 4
Διάβασε Β
ΑρχήΕίσοδος
Έξοδος
Sum Sum+Β
mo Sum/4
5
7
Τέλος
Τύπωσε MO
7
12
SUM
Β
2
i
mo
for i = 1 to 4
Διάβασε Β
ΑρχήΕίσοδος
Έξοδος
Sum Sum+Β
mo Sum/4
5
7
15
Τέλος
Τύπωσε MO
15
12
SUM
Β
3
i
mo
for i = 1 to 4
Διάβασε Β
ΑρχήΕίσοδος
Έξοδος
Sum Sum+Β
mo Sum/4
5
7
15
Τέλος
Τύπωσε MO
15
27
SUM
Β
3
i
mo
for i = 1 to 4
Διάβασε Β
ΑρχήΕίσοδος
Έξοδος
Sum Sum+Β
mo Sum/4
5
7
15
10
Τέλος
Τύπωσε MO
10
27
SUM
Β
4
i
mo
for i = 1 to 4
Διάβασε Β
ΑρχήΕίσοδος
Έξοδος
Sum Sum+Β
mo Sum/4
5
7
15
10
Τέλος
Τύπωσε MO
10
37
SUM
Β
4
i
mo
for i = 1 to 4
Διάβασε Β
ΑρχήΕίσοδος
Έξοδος
Sum Sum+Β
mo Sum/4
5
7
15
10
Τέλος
Τύπωσε MO
10
37
SUM
Β
5
i
9,25
mo
for i = 1 to 4
Διάβασε Β
ΑρχήΕίσοδος
9,25
Έξοδος
Sum Sum+Β
mo Sum/4
5
7
15
10
Τέλος
Τύπωσε MO
10
37
SUM
Β
5
i
9,25
mo
for i = 1 to 4
Διάβασε Β
ΑρχήΕίσοδος
9,25
Έξοδος
Sum Sum+Β
mo Sum/4
5
7
15
10
Τέλος
Τύπωσε MO
10
37
SUM
Β
5
i
9,25
mo
Να γραφεί πρόγραμμα που να επιλύει το ακόλουθο πρόβλημα. Δίδονται 4 θετικοί αριθμοί. Το πρόγραμμα να εμφανίζει στην έξοδο:
1. Το μέσο όρο όλων των αριθμών.
2. Το πλήθος των αριθμών που είναι μεγαλύτεροι από το μέσο όρο.
Για να απαντήσουμε το ερώτημα 2, θα πρέπει αφού βρούμε το μέσο όρο, να συγκρίνουμε έναν – έναν τους αριθμούς που δόθηκαν με το μέσο όρο
Το πρόβλημα είναι ότι δεν έχουμε πια τους αριθμούς.
Λύση 1: να αποθηκεύουμε κάθε αριθμό που δίνουμε σε διαφορετική μεταβλητή.
Τότε δε μπορούμε να χρησιμοποιήσουμε επανάληψη
Λύση 2: Θα χρησιμοποιήσουμε ένα πίνακα για να αποθηκεύσουμε τους αριθμούς
Ένας πίνακας αποτελείται από συνεχόμενες θέσεις μνήμης. Όπως θα δούμε, μπορούμε να αριθμήσουμε τις θέσεις του πίνακα, δίνοντας έναν αριθμό στην πρώτη θέση. Το πιο λογικό και σύνηθες είναι να δώσουμε στην πρώτη θέση τον αριθμό 1. Έτσι, αν ο πίνακας έχει συνολικά Ν θέσεις, τότε η τελευταία θέση είναι η Ν. Κάθε πίνακας έχει ένα όνομα. Στο παράδειγμα της παρακάτω εικόνας, ο πίνακας λέγεται Α. Το στοιχείο που
είναι αποθηκευμένο στη θέση i του πίνακα είναι το A(i). Έτσι, A(1) είναι το 4, το A(2) είναι το 6 κ.ο.κ..
4 6 2 1 9 7 8
1 2 3 4 5 6
Πίνακας A
Θέσεις 7
Δήλωση πίνακα
Dim Temp(7) As Integer
Όνομα πίνακα
Αριθμός των θέσεων του πίνακα
Τι αποθηκεύει κάθε θέση
Dim ΌνομαΠίνακα (Μεγαλ. δείκτης) As Τύπος Δεδομένων
Για να θέσουμε τη τιμή του πρώτου δείκτη ίση με ένα χρησιμοποιούμε την εντολή Option Base.
Παράδειγμα:
Option Base 1 Dim Months(12) As
Integer
Dim i As Integer
For i = 1 To 7 Temp(i) = InputBox(“Δώσε το στοιχείο στη θέση ” & i)Next i
Option Base 1 Dim Temp(7) As Single
Dim i As Integer
For i = 1 To 7 Temp(i) = InputBox(“Δώσε το στοιχείο στη θέση ” & i)Next i
Option Base 1Dim Temp(7) As Single
1 2 3 4 5 6
Πίνακας temp
Θέσεις 7
Dim i As Integer
For i = 1 To 7 Temp(i) = InputBox(“Δώσε το στοιχείο στη θέση ” & i)Next i
Dim Temp(7) As Single
1 2 3 4 5 6
Πίνακας temp
Θέσεις 7
0
i
Dim i As Integer
For i = 1 To 7 Temp(i) = InputBox(“Δώσε το στοιχείο στη θέση ” & i)Next i
Dim Temp(7) As Single
1 2 3 4 5 6
Πίνακας temp
Θέσεις 7
1
i
Dim i As Integer
For i = 1 To 7 Temp(i) = InputBox(“Δώσε το στοιχείο στη θέση ” & i)Next i
Dim Temp(7) As Single
4
1 2 3 4 5 6
Πίνακας temp
Θέσεις 7
1
i
Dim i As Integer
For i = 1 To 7 Temp(i) = InputBox(“Δώσε το στοιχείο στη θέση ” & i)Next i
Dim Temp(7) As Single
4
1 2 3 4 5 6
Πίνακας temp
Θέσεις 7
2
i
Dim i As Integer
For i = 1 To 7 Temp(i) = InputBox(“Δώσε το στοιχείο στη θέση ” & i)Next i
Dim Temp(7) As Single
4
1 2 3 4 5 6
Πίνακας temp
Θέσεις 7
2
i
Dim i As Integer
For i = 1 To 7 Temp(i) = InputBox(“Δώσε το στοιχείο στη θέση ” & i)Next i
Dim Temp(7) As Single
4 5
1 2 3 4 5 6
Πίνακας temp
Θέσεις 7
2
i
Dim i As Integer
For i = 1 To 7 Temp(i) = InputBox(“Δώσε το στοιχείο στη θέση ” & i)Next i
Dim Temp(7) As Single
4 5
1 2 3 4 5 6
Πίνακας temp
Θέσεις 7
3
i
Dim i As Integer
For i = 1 To 7 Temp(i) = InputBox(“Δώσε το στοιχείο στη θέση ” & i)Next i
Dim Temp(7) As Single
4 5
1 2 3 4 5 6
Πίνακας temp
Θέσεις 7
3
i
Dim i As Integer
For i = 1 To 7 Temp(i) = InputBox(“Δώσε το στοιχείο στη θέση ” & i)Next i
Dim Temp(7) As Single
4 5 10
1 2 3 4 5 6
Πίνακας temp
Θέσεις 7
3
i
Dim i As Integer
For i = 1 To 7 Temp(i) = InputBox(“Δώσε το στοιχείο στη θέση ” & i)Next i
Dim Temp(7) As Single
4 5 10
1 2 3 4 5 6
Πίνακας temp
Θέσεις 7
4
i
For i = 1 To 7 Print Temp(i)Next i
Αποθήκευση δεδομένων σε πίνακα αριθμών
Εκτύπωση πίνακα αριθμών
For i = 1 To 7
Temp(i) = InputBox("Δώσε τη θερμοκρασία ", & i)
Next i
Dim Temp(7) As Single
Είδαμε πίνακες αριθμών μίας διάστασης. Τι γίνεται όταν σε κάθε κελί του πίνακα αποθηκεύουμε ένα αλφαριθμητικό (string);
Dim StudentName(5) As String
Κ Ω Σ Τ Α Σ
Τ Α Κ Η Σ
Μ Α Ι Ρ Η
Ρ Ο Υ Λ Α
Ν Α Ν Τ Ι Α
1
2
3
4
5
Στην πραγματικότητα είναι ένας πίνακας 2 διαστάσεων. Μόνο που αποθηκεύουμε (και τυπώνουμε) με μία εντολή μία ολόκληρη γραμμή,
For i = 1 To 5 Print StudentName(i)Next i
Αποθήκευση δεδομένων στον πίνακα αλφαριθμητικών
Εκτύπωση πίνακα αλφαριθμητικών
For i = 1 To 5
StudentName(i) = InputBox(" Δώσε το όνομα " & i)
Next i
Να γραφεί πρόγραμμα που να επιλύει το ακόλουθο πρόβλημα. Δίδονται 4 θετικοί αριθμοί. Το πρόγραμμα να εμφανίζει στην έξοδο:
1. Το μέσο όρο όλων των αριθμών
2. Το πλήθος των αριθμών που είναι μεγαλύτεροι από το μέσο όρο
Τα δύο ερωτήματα να απαντώνται από διαφορετικά κουμπιά (command buttons)
Άσκηση 1
for i = 1 to 4
Διάβασε temp(i)
Αρχή
ΤέλοςΤύπωσε MO, N
temp
SUM
Είσοδος
Έξοδος
Sum Sum+temp(i)
mo Sum/4
for i = 1 to 4
Temp(i)>moNAI OXI
N+1 N
1
2
3
4
i
for i = 1 to 4
Διάβασε temp(i)
Αρχή
ΤέλοςΤύπωσε MO, N
temp
SUM
Είσοδος
Έξοδος
Sum Sum+temp(i)
mo Sum/4
for i = 1 to 4
Temp(i)>moNAI OXI
N+1 N
1
2
3
4
1
i
for i = 1 to 4
Διάβασε temp(i)
Αρχή
Τέλος
5
Τύπωσε MO, N
temp
SUM
Είσοδος
Έξοδος
Sum Sum+temp(i)
mo Sum/4
for i = 1 to 4
Temp(i)>moNAI OXI
N+1 N
1
2
3
4
1
i
5
for i = 1 to 4
Διάβασε temp(i)
Αρχή
Τέλος
5
Τύπωσε MO, N
temp
5
SUM
Είσοδος
Έξοδος
Sum Sum+temp(i)
mo Sum/4
for i = 1 to 4
Temp(i)>moNAI OXI
N+1 N
1
2
3
4
1
i
5
for i = 1 to 4
Διάβασε temp(i)
Αρχή
Τέλος
5
Τύπωσε MO, N
temp
5
SUM
Είσοδος
Έξοδος
Sum Sum+temp(i)
mo Sum/4
for i = 1 to 4
Temp(i)>moNAI OXI
N+1 N
12
1
2
3
4
2
i
5
12
for i = 1 to 4
Διάβασε temp(i)
Αρχή
Τέλος
5
Τύπωσε MO, N
temp
17
SUM
Είσοδος
Έξοδος
Sum Sum+temp(i)
mo Sum/4
for i = 1 to 4
Temp(i)>moNAI OXI
N+1 N
12
1
2
3
4
2
i
5
12
for i = 1 to 4
Διάβασε temp(i)
Αρχή
Τέλος
5
Τύπωσε MO, N
temp
17
SUM
Είσοδος
Έξοδος
Sum Sum+temp(i)
mo Sum/4
for i = 1 to 4
Temp(i)>moNAI OXI
N+1 N
12
15
1
2
3
4
3
i
5
12
15
for i = 1 to 4
Διάβασε temp(i)
Αρχή
Τέλος
5
Τύπωσε MO, N
temp
32
SUM
Είσοδος
Έξοδος
Sum Sum+temp(i)
mo Sum/4
for i = 1 to 4
Temp(i)>moNAI OXI
N+1 N
12
15
1
2
3
4
3
i
5
12
15
for i = 1 to 4
Διάβασε temp(i)
Αρχή
Τέλος
5
Τύπωσε MO, N
temp
32
SUM
Είσοδος
Έξοδος
Sum Sum+temp(i)
mo Sum/4
for i = 1 to 4
Temp(i)>moNAI OXI
N+1 N
12
15
10
1
2
3
4
4
i
5
12
15
10
for i = 1 to 4
Διάβασε temp(i)
Αρχή
Τέλος
5
Τύπωσε MO, N
temp
42
SUM
Είσοδος
Έξοδος
Sum Sum+temp(i)
mo Sum/4
for i = 1 to 4
Temp(i)>moNAI OXI
N+1 N
12
15
10
1
2
3
4
4
i
5
12
15
10
for i = 1 to 4
Διάβασε temp(i)
Αρχή
Τέλος
5
Τύπωσε MO, N
temp
42
SUM
Είσοδος
Έξοδος
Sum Sum+temp(i)
mo Sum/4
for i = 1 to 4
Temp(i)>moNAI OXI
N+1 N
12
15
10
1
2
3
4
4
i
5
12
15
10
10.5mo
for i = 1 to 4
Διάβασε temp(i)
Αρχή
Τέλος
5
Τύπωσε MO, N
temp
42
SUM
Είσοδος
Έξοδος
Sum Sum+temp(i)
mo Sum/4
for i = 1 to 4
Temp(i)>moNAI OXI
N+1 N
12
15
10
1
2
3
4
1
i
5
12
15
10
10.5mo
0N
for i = 1 to 4
Διάβασε temp(i)
Αρχή
Τέλος
5
Τύπωσε MO, N
temp
42
SUM
Είσοδος
Έξοδος
Sum Sum+temp(i)
mo Sum/4
for i = 1 to 4
Temp(i)>moNAI OXI
N+1 N
12
15
10
1
2
3
4
1
i
5
12
15
10
10.5mo
0N
for i = 1 to 4
Διάβασε temp(i)
Αρχή
Τέλος
5
Τύπωσε MO, N
temp
42
SUM
Είσοδος
Έξοδος
Sum Sum+temp(i)
mo Sum/4
for i = 1 to 4
Temp(i)>moNAI OXI
N+1 N
12
15
10
1
2
3
4
2
i
5
12
15
10
10.5mo
0N
for i = 1 to 4
Διάβασε temp(i)
Αρχή
Τέλος
5
Τύπωσε MO, N
temp
42
SUM
Είσοδος
Έξοδος
Sum Sum+temp(i)
mo Sum/4
for i = 1 to 4
Temp(i)>moNAI OXI
N+1 N
12
15
10
1
2
3
4
2
i
5
12
15
10
10.5mo
1N
for i = 1 to 4
Διάβασε temp(i)
Αρχή
Τέλος
5
Τύπωσε MO, N
temp
42
SUM
Είσοδος
Έξοδος
Sum Sum+temp(i)
mo Sum/4
for i = 1 to 4
Temp(i)>moNAI OXI
N+1 N
12
15
10
1
2
3
4
3
i
5
12
15
10
10.5mo
1N
for i = 1 to 4
Διάβασε temp(i)
Αρχή
Τέλος
5
Τύπωσε MO, N
temp
42
SUM
Είσοδος
Έξοδος
Sum Sum+temp(i)
mo Sum/4
for i = 1 to 4
Temp(i)>moNAI OXI
N+1 N
12
15
10
1
2
3
4
3
i
5
12
15
10
10.5mo
2N
for i = 1 to 4
Διάβασε temp(i)
Αρχή
Τέλος
5
Τύπωσε MO, N
temp
42
SUM
Είσοδος
Έξοδος
Sum Sum+temp(i)
mo Sum/4
for i = 1 to 4
Temp(i)>moNAI OXI
N+1 N
12
15
10
1
2
3
4
4
i
5
12
15
10
10.5mo
2N
for i = 1 to 4
Διάβασε temp(i)
Αρχή
Τέλος
5
Τύπωσε MO, N
temp
42
SUM
Είσοδος
Έξοδος
Sum Sum+temp(i)
mo Sum/4
for i = 1 to 4
Temp(i)>moNAI OXI
N+1 N
12
15
10
1
2
3
4
4
i
5
12
15
10
10.5mo
2N
10,5
2
for i = 1 to 4
Διάβασε temp(i)
Αρχή
Τέλος
5
Τύπωσε MO, N
temp
42
SUM
Είσοδος
Έξοδος
Sum Sum+temp(i)
mo Sum/4
for i = 1 to 4
Temp(i)>moNAI OXI
N+1 N
12
15
10
1
2
3
4
4
i
5
12
15
10
10.5mo
2N
10,5
2
Άσκηση 2
Γράψτε ένα πρόγραμμα ένα πρόγραμμα που δέχεται τρεις αριθμούς από το πληκτρολόγιο και εμφανίζει στην έξοδο
1. Το άθροισμά τους
2. Το γινόμενό τους
3. Το μεγαλύτερο από τους τρεις αριθμούς
4. Το άθροισμα των συνημίτονων τους
Κάθε ένα από τα παραπάνω υπολογίζεται από διαφορετικό κουμπί
For i = 1 To 3 A(i) = InputBox(«Δώσε αριθμό " & i) Print A(i)Next i
Εισαγωγή και εκτύπωση των αριθμών
Άθροισμα
Sum = 0
For i = 1 To 3
Sum = Sum + A(i)
Next i
Print “Άθροισμα = “; Sum
Megisto = A(1)For i = 1 To 3 If A(i) > Megisto Then Megisto = A(i) End IfNext iPrint «Το μέγιστο είναι:="; Megisto
gin = 1For i = 1 To 3 gin = gin * A(i)Next iPrint «γινόμενο:="; gin
Γινόμενο των αριθμών
Το μέγιστο
Sum1 = 0For i = 1 To 3 Sum1 = Sum1 + Cos(A(i))Next iPrint «Άθροισμα συνημίτονων :="; Sum1
Άθροισμα συνημιτόνων των αριθμών