Προγραμματισμός & Εφαρμογές Υπολογιστών (μεταβλητές...

Post on 12-Jun-2015

142 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Μεταβλητές

Μεταβλητές

Πριν χρησιμοποιήσετε μια μεταβλητή θα πρέπει να την ορίσετε.

Ο ορισμός μιας μεταβλητής είναι μια δήλωση που καθορίζει το όνομά της και τον τύπο της.

Εξ ορισμού, η 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

Άθροισμα συνημιτόνων των αριθμών

top related