Własna procedura Function
Copyright © Janusz Bonarowski 1
vb4.3_ciśnienie_Function
Wykonać aplikację, która przy zadanym cięŜarze walca F i promieniu okręgu podstawy R, oblicza nacisk
S
P = F , gdzie S =π⋅R2. Nacisk i pole podstawy obliczać własną funkcją.
Na formularzu, jako wynik sprawdzający, drukować pole podstawy walca S. Zabezpieczyć aplikację przed wprowadzaniem wartości ujemnych, zerowych i nie liczbowych.
Rysunek 1. Propozycja formularza
Kod aplikacji
Funkcja NaciskWalca obliczająca nacisk walca na kołowa podstawę. Funkcja ta, aby obliczyć nacisk musi posiadać wartość pola podstawy walca. Pole to obliczane jest inną funkcją
PoleKola, która jest wywoływana przez funkcję NaciskWalca.
Private Function NaciskWalca(ByVal F As Double, _
ByVal R As Double) As Double 'F - cięŜar walca
'R = promień podstawy If F <= 0.0 Then
Err.Raise(9998, "Funkcja NaciskWalca", _
"Siła mniejsza od zera lub równa zero") End If
NaciskWalca = F / PoleKola(R) 'lub: Return F / PoleKola(R) End Function
Private Function PoleKola(ByVal R As Double) As Double 'R - promień koła
If R <= 0.0 Then
Err.Raise(9999, "Funkcja PoleKola", _
"Promień mniejszy od zera lub równy zero") End If
PoleKola = Math.PI * R ^ 2 'lub: Return Math.PI * R ^ 2 End Function
Uwaga
W funkcjach NaciskWalca i PoleKola moŜemy zwracać ich wynik (1) poprzez podstawienie obliczonej wartości pod nazwę funkcji lub (2) poprzez zastosowanie sława kluczowego Return, po którym powinna znajdować się zmienna zawierająca wynik lub wyraŜenie obliczające wynik, co pokazałem jako komentarz.
Własna procedura Function
Copyright © Janusz Bonarowski 2
Private Sub btnOblicz_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnOblicz.Click Dim F, R, S As Double
Try
F = CDbl(txtF.Text) R = CDbl(txtR.Text)
txtP.Text = (NaciskWalca(F, R)).ToString
lblS.Text = (PoleKola(R)).ToString 'Wydruk kontrolny Catch ex As Exception
MsgBox("Błąd nr: " & Err Number & vbCrLf & Err.Description, , _ "Źródło: " & Err.Source)
End Try End Sub
Private Sub txtF_TextChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles txtF.TextChanged txtP.Clear()
lblS.Text = ""
End Sub
Private Sub txtR_TextChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles txtR.TextChanged txtP.Clear()
lblS.Text = ""
End Sub