Leren programmeren: Oppervlakte


Met InputBox

Met twee invoervakken geheten txtBreedte en txtLengte

Private Sub CommandButton1_Click()
Dim breedte As Single
Dim lengte As Single
Dim oppervlakte As Single

breedte = InputBox("Geef de breedte")
lengte = InputBox("Geef de lengte")
oppervlakte = lengte * breedte
MsgBox "De oppervlakte is " & oppervlakte
End Sub

Private Sub CommandButton1_Click()
Dim breedte As Single
Dim lengte As Single
Dim oppervlakte As Single

breedte = txtBreedte.Text
lengte = txtLengte.Text
oppervlakte = lengte * breedte
MsgBox "De oppervlakte is " & oppervlakte
End Sub

In .NET moeten typen overeenkomen: het resultaat van een InputBox en de Text van een tekstvak zijn strings, en daar kan Visual Basic niet mee rekenen.

Met InputBox

Met twee invoervakken geheten txtBreedte en txtLengte

Private Sub CommandButton1_Click()
Dim buffer As String
Dim breedte As Single
Dim lengte As Single
Dim oppervlakte As Single

buffer = InputBox("Geef de breedte")
breedte=CSng(buffer)
buffer = InputBox("Geef de lengte")
lengte=CSng(buffer)
oppervlakte = lengte * breedte
MsgBox "De oppervlakte is " & oppervlakte
End Sub

Private Sub CommandButton1_Click()
Dim breedte As Single
Dim lengte As Single
Dim oppervlakte As Single

breedte = CSng(txtBreedte.Text)
lengte = CSng(txtLengte.Text)
oppervlakte = lengte * breedte
MsgBox "De oppervlakte is " & oppervlakte
End Sub

Trouwens: ook in de andere versie van Visual Basic is het verstandig om eerst even te kijken of de invoer wel degelijk een getal is. Daarvoor kan je een buffer voor invoer gebruiken die een string is, en de functie IsNumeric. Het resultaat zou kunnen zijn:

Dim getal As Single
Dim buffer As string
Do

  buffer=InputBox("Geef een getal")

Loop Until IsNumeric(buffer)
getal=CSng(buffer)

Vanaf nu gaan we dan ook controle op de invoer doen.


[VB Web] - [Leren programmeren] - [hlrnet] - [copyright]