• Nie Znaleziono Wyników

Zadanie. Własne procedury i funkcje

N/A
N/A
Protected

Academic year: 2021

Share "Zadanie. Własne procedury i funkcje"

Copied!
2
0
0

Pełen tekst

(1)

VB 2008 Express edition – Zajęcia 4

Copyright © 2012, Janusz Bonarowski

Własne procedury i funkcje

(Poniższe zadanie jest bardzo uproszczoną wersją zadania opracowanego przez dr hab. inż. Witolda Marowskiego).

patrz także inne przykłady: http://www.simr.pw.edu.pl/~jbo/vb/vb_express2008/vb4.0_podprogram_sub_opis.pdf

Zadanie. Wykonać aplikację, która dla podanego promienia koła oblicza jego obwód i pole. Niech obliczenia zostaną wykonane (własną) procedurą i/lub dwoma (własnymi) funkcjami.

Rys. 1. Propozycja formularza

' =========== Wersja BEZ ZABEZPIECZEŃ ===============

' =========== Obliczenia za pomocą procedury Sub ===============' '

Private Sub btnObliczSub_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles btnObliczSub.Click Dim PoleKola, ObwodKola As Single

Call Kolo(txtPromien.Text, PoleKola, ObwodKola) txtPole.Text = PoleKola.ToString

txtObwod.Text = ObwodKola.ToString End Sub

Private Sub Kolo(ByVal strR As String, ByRef Pole As Single, ByRef Obwod As Single) ' --- ++++++++++++++++++++ +++++++++++++++++++++

Dim R As Single R = CSng(strR)

Pole = Math.PI * R ^ 2 Obwod = 2 * Math.PI * R End Sub

Private Sub txtPromien_TextChanged(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles txtPromien.TextChanged txtPole.Clear()

txtObwod.Clear() End Sub

'

' ======== Obliczenia za pomocą procedury Function ================

'

Private Sub btnObliczFun_Click(ByVal sender As System.Object,

ByVal e As System.EventArgs) Handles btnObliczFun.Click Dim R As Single

R = CSng(txtPromien.Text)

txtPole.Text = PoleKola(R).ToString txtObwod.Text = ObwodKola(R).ToString End Sub

Private Function PoleKola(ByVal R As Single) As Single PoleKola = Math.PI * R ^ 2

' lub Return Math.PI * R^2 End Function

Private Function ObwodKola(ByVal R As Single) As Single ObwodKola = 2 * Math.PI * R

' lub Return 2 * Math.PI * R End Function

(2)

VB 2008 Express edition – Zajęcia 4

Copyright © 2012, Janusz Bonarowski '

' =========== Wersja Z ZABEZPIECZENIEM ===============

' ============ Obliczenia za pomocą procedury Sub ===============

'

Private Sub btnObliczSub_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles btnObliczSub.Click Dim PoleKola, ObwodKola As Single

Try

Call Kolo(txtPromien.Text, PoleKola, ObwodKola) If PoleKola < 0 Or ObwodKola < 0 Then

Err.Raise(9998, "ujemne", "Błąd danych") ' Error Number, Source, Description End If

txtPole.Text = PoleKola.ToString txtObwod.Text = ObwodKola.ToString

Catch ex As Exception

MsgBox("Błąd nr: " & Err.Number & vbCrLf & _

"Wpisano: " & Err.Source, MsgBoxStyle.Exclamation, _ Err.Description)

End Try End Sub

Private Sub Kolo(ByVal strR As String, ByRef Pole As Single, ByRef Obwod As Single) ' --- ++++++++++++++++++++ +++++++++++++++++++++

Dim R As Single Try

R = CSng(strR)

Pole = Math.PI * R ^ 2 Obwod = 2 * Math.PI * R Catch ex As Exception

Err.Raise(9999, strR, "Błąd konwersji") ' Error Number, Source, Description End Try

End Sub

Private Sub txtPromien_TextChanged(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles txtPromien.TextChanged txtPole.Clear()

txtObwod.Clear() End Sub

'

' ======== Obliczenia za pomocą procedury Function ================

'

Private Sub btnObliczFun_Click(ByVal sender As System.Object,

ByVal e As System.EventArgs) Handles btnObliczFun.Click Dim R As Single

Try

R = CSng(txtPromien.Text)

txtPole.Text = PoleKola(R).ToString txtObwod.Text = ObwodKola(R).ToString Catch ex As Exception

MsgBox(ex.Message) End Try

End Sub

Private Function PoleKola(ByVal R As Single) As Single PoleKola = Math.PI * R ^ 2

End Function

Private Function ObwodKola(ByVal R As Single) As Single ObwodKola = 2 * Math.PI * R

End Function

Cytaty

Powiązane dokumenty

8]DVDGQLHQLH3RGZ\ĪV]HQLHWHPSHUDWXU\XNáDGX GODSURFHVyZHJ]RHQHUJH- W\F]Q\FK ]JRGQLH]UHJXáąSU]HNRU\SRZRGXMHSU]HVXQLĊFLHVWDQXUyZQRZDJL2.

[r]

Zator lodowy wysadzono dynamitem; ktoś, znajdujący się na rzece w odległości 3·6 km, uczuje najpierw wstrząśnienie a potem usłyszy huk. W jakim odstępie czasu odbierze

Napisz skrypt zadanie5.py, który wczytuje dane z pliku eksponens (zaszu- mione dane z błędami wygenerowane z sumy dwóch eksponensów) oraz dopasowuje do nich krzywą

Wśród nich było sześć razy więcej budynków mieszkalnych (jeden z nich ze spichlerzem) niż szkół, tyle samo zagród co szkół oraz stodoła, wiatrak i sta- cja. Sprawdź, czy

Polecenie: Podaj na jakiej koncepcji obowiązywanie prawa powołał się sąd i krótko ją omów..

1) Każdy poprawny sposób rozwiązania przez ucznia zadań powinien być uznawany za prawidłowy i uczeń otrzymuje maksymalną liczbę punktów. 3) Do zredagowania

Z graniastosłupa prawidłowego czworokątnego o krawędzi podstawy 12 cm i krawędzi bocznej 15 cm wycięto ostrosłup prawidłowy czworokątny, którego wysokość jest równa 8 cm