Oplossingen oefeningen arrays

Eendimensionele tabellen

Sub Array01()
Dim astrVoornamen(10), strEerste As String
Dim intTeller As Integer
For intTeller = 1 To 10
   astrVoornamen(intTeller) = InputBox("Naam " & CStr(intTeller) & ": ")
   If intTeller = 1 Then
      strEerste = astrVoornamen(intTeller)
   Else
      If astrVoornamen(intTeller) < strEerste Then
         strEerste = astrVoornamen(intTeller)
      End If
   End If
Next intTeller
Debug.Print strEerste
End Sub

terug

Sub Array02()
Dim astrVoornamen(5) As String
Dim aintPunten(5), intTeller, intSom, intGemiddelde As Integer
intSom = 0
For intTeller = 1 To 5
   astrVoornamen(intTeller) = InputBox("Naam " & CStr(intTeller) & ": ")
   aintPunten(intTeller) = InputBox("Punten voor " & astrVoornamen(intTeller) & ": ")
   intSom = intSom + aintPunten(intTeller)
Next intTeller
'Gemiddelde berekenen
intGemiddelde = CInt(intSom /5)
Debug.Print intGemiddelde
'Verschil met gemiddelde afdrukken
For intTeller = 1 To 5
   Debug.Print astrVoornamen(intTeller); ": ";
   Debug.Print aintPunten(intTeller) - intGemiddelde
Next intTeller
End Sub

terug


Sub Array03()

Dim aintLengte(150 To 200), intTeller, intLengte As Integer
'Tellers initialiseren
For intTeller = 150 To 200
   aintLengte(intTeller) = 0
Next intTeller
'Lengte leerlingen intikken
For intTeller = 1 To 1000
   intLengte = InputBox("Lengte v/d leerling")
   aintLengte(intLengte) = aintLengte(intLengte) + 1
Next intTeller
'
For intTeller = 150 To 200
   If aintLengte(intTeller) > 0 Then
      Debug.Print aintLengte(intTeller); " leerlingen meten "; intTeller; " cm."
   End If
Next intTeller
End Sub

terug


Sub Array04()
Dim astrWoorden(5), astrKopie(5) As String
Dim intTeller As Integer
astrWoorden(1) = "maandag"
astrWoorden(2) = "dinsdag"
astrWoorden(3) = "woensdag"
astrWoorden(4) = "donderdag"
astrWoorden(5) = "vrijdag"
For intTeller = 1 To 5
   astrKopie(intTeller) = astrWoorden(6 - intTeller)
   Debug.Print astrKopie(intTeller)
Next intTeller
End Sub

terug

Sub Array05()
Dim aintGetallen(10), intTeller, intHulp As Integer
'Originele inhoud afdrukken
For intTeller = 1 To 10
   aintGetallen(intTeller) = intTeller * 10
   Debug.Print aintGetallen(intTeller);
Next intTeller
Debug.Print
'Cellen 2 aan 2 verwisselen
For intTeller = 1 To 5
   intHulp = aintGetallen(intTeller * 2 - 1)
   aintGetallen(intTeller * 2 - 1) = aintGetallen(intTeller * 2)
   aintGetallen(intTeller * 2) = intHulp
Next intTeller
Debug.Print 'Nieuwe regel nemen
'Afdrukken na omwisseling
For intTeller = 1 To 10
   Debug.Print aintGetallen(intTeller);
Next intTeller
End Sub

terug

Sub Arrays06()
Dim alngFib(10)
Dim intTeller, lngHulp As Integer
alngFib(1) = 1
alngFib(2) = 1
'Rij opvullen
For intTeller = 3 To 10
   alngFib(intTeller) = alngFib(intTeller - 2) + alngFib(intTeller - 1)
Next intTeller
'Rij afdrukken
For intTeller = 1 To 10
   Debug.Print alngFib(intTeller);
Next intTeller
Debug.Print
'Verschuiven elementen
lngHulp = alngFib(10)
For intTeller = 10 To 2 Step -1
   alngFib(intTeller) = alngFib(intTeller - 1)
Next intTeller
alngFib(1) = lngHulp
'Rij afdrukken
For intTeller = 1 To 10
   Debug.Print alngFib(intTeller);
Next intTeller
Debug.Print
End Sub

terug

Tweedimensionele tabellen

Public Sub Array11()
'Declaratie van de variabelen
Dim asngTemp2(7, 3) As Single
Dim intRij, intKolom As Integer
Dim sngGem As Single
'Opvullen en afdruken van de array rij per rij
For intRij = 1 To 7
   For intKolom = 1 To 3
      asngTemp2(intRij, intKolom) = CInt(Rnd * 15) + 10
      Debug.Print "Dag " & Str(intRij) & ": "; asngTemp2(intRij, intKolom); "¦";
   Next
   Debug.Print
Next
'Gemiddelde per dag berekenen en afdrukken
For intRij = 1 To 7
   sngGem = 0
   For intKolom = 1 To 3
      sngGem = sngGem + asngTemp2(intRij, intKolom)
   Next
   Debug.Print "Gemiddelde dag " & CStr(intRij) & ": " & CStr(sngGem / 3)
Next
End Sub

terug


Public Sub Array12()
'Declaratie van de variabelen
Dim asngTemp2(7, 3) As Single
Dim intRij, intKolom As Integer
Dim sngGem As Single
'Opvullen en afdruken van de array rij per rij
For intRij = 1 To 7
   For intKolom = 1 To 3
      asngTemp2(intRij, intKolom) = CInt(Rnd * 15) + 10
      Debug.Print "Dag " & Str(intRij) & ": "; asngTemp2(intRij, intKolom); "¦";
   Next
   Debug.Print
Next
'Gemiddelde ochtendtemperatuur berekenen en afdrukken
sngGem = 0
For intRij = 1 To 7
   sngGem = sngGem + asngTemp2(intRij, 1)
Next
Debug.Print "Gemiddelde ochtendtemperatuur: " & CStr(sngGem / 7)
End Sub
terug