• Nie Znaleziono Wyników

Przed próbą wykonania działań, gdy nie wpisano żadnych danych zabezpieczymy się konstrukcją:

N/A
N/A
Protected

Academic year: 2021

Share "Przed próbą wykonania działań, gdy nie wpisano żadnych danych zabezpieczymy się konstrukcją: "

Copied!
4
0
0

Pełen tekst

(1)

Copyright © 2009 Janusz Bonarowski

1

VB_3.1_Kalkulator

Wykonajmy aplikację pozwalająca dokonywać obliczeń z wykorzystaniem wartości wprowadzonych w okna tekstowe, patrz propozycja formularza na rys. 1.

Rys. 1. Propozycja formularza

Aplikację zabezpieczymy przed brakiem danych lub przed próbą wykonania działań gdy dane są błędne – np. wpisano litery zamiast cyfr.

Przed próbą wykonania działań, gdy nie wpisano żadnych danych zabezpieczymy się konstrukcją:

If txtA.Text = "" Then

Label2.Text = "Proszę wprowadzić pierwszą liczbę"

Exit Sub End If

Konstrukcja ta spowoduje opuszczenie procedury (Exit Sub)jeśli w oknie tekstowym znajduje się pusty łańcuch tekstowy.

Aby stwierdzić czy wprowadzony ciąg znaków jest liczbą stosujemy funcję IsNumeric.

Funkcja ta ma jeden argument (właśnie łańcuch znaków), a zwraca prawdę lub fałsz w zależności od tego, czy łańcuch znaków jest czy nie jest liczbą:

If Not IsNumeric(txtA.Text) Then

Label2.Text = "A nie jest liczbą!"

Exit Sub End If

Przed wykonaniem działań algebraicznych ciągi znaków znajdujące się w oknach tekstowych trzeba zamienić na ich reprezentację liczbową. Dokonujemy tego stosując funkcje konwersji.

Przykładowe funkcje:

CSng – konwersja do typu Single CDbl – konwersja do typu Double CInt – konwersja do typu Integer CStr – konwersja do typu String lub funkcje

Single.Parse – konwersja do typu Single Double.Parse – konwersja do typy Double Integer.Parse – konwersja do typu Integer

NazwaZmiennej.ToString – konwersja do typu String

(2)

Copyright © 2009 Janusz Bonarowski

2 Kody procedur

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

ByVal e As System.EventArgs) Handles btnPlus.Click Dim A, B, W As Single

If txtA.Text = "" Then

Label2.Text = "Proszę wprowadzić pierwszą liczbę"

Exit Sub End If

If Not IsNumeric(txtA.Text) Then

Label2.Text = "A nie jest liczbą!"

Exit Sub End If

If txtB.Text = "" Then

Label2.Text = "Proszę wprowadzić drugą liczbę"

Exit Sub End If

If Not IsNumeric(txtB.Text) Then

Label2.Text = "B nie jest liczbą!"

Exit Sub End If

A = CSng(txtA.Text) B = CSng(txtB.Text) W = A + B

lblW.Text = W.ToString End Sub

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

ByVal e As System.EventArgs) Handles btnMinus.Click Dim A, B, W As Single

If txtA.Text = "" Then

Label2.Text = "Proszę wprowadzić pierwszą liczbę"

Exit Sub End If

If Not IsNumeric(txtA.Text) Then

Label2.Text = "A nie jest liczbą!"

Exit Sub End If

If txtB.Text = "" Then

Label2.Text = "Proszę wprowadzić drugą liczbę"

Exit Sub End If

If Not IsNumeric(txtB.Text) Then

Label2.Text = "B nie jest liczbą!"

Exit Sub End If

A = CSng(txtA.Text) B = CSng(txtB.Text) W = A - B

lblW.Text = W.ToString End Sub

(3)

Copyright © 2009 Janusz Bonarowski

3

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

ByVal e As System.EventArgs) Handles btnMnozenie.Click Dim A, B, W As Single

If txtA.Text = "" Then

Label2.Text = "Proszę wprowadzić pierwszą liczbę"

Exit Sub End If

If Not IsNumeric(txtA.Text) Then

Label2.Text = "A nie jest liczbą!"

Exit Sub End If

If txtB.Text = "" Then

Label2.Text = "Proszę wprowadzić drugą liczbę"

Exit Sub End If

If Not IsNumeric(txtB.Text) Then

Label2.Text = "B nie jest liczbą!"

Exit Sub End If

A = CSng(txtA.Text) B = CSng(txtB.Text) W = A * B

lblW.Text = W.ToString End Sub

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

ByVal e As System.EventArgs) Handles btnDzielenie.Click Dim A, B, W As Single

If txtA.Text = "" Then

Label2.Text = "Proszę wprowadzić pierwszą liczbę"

Exit Sub End If

If Not IsNumeric(txtA.Text) Then

Label2.Text = "A nie jest liczbą!"

Exit Sub End If

If txtB.Text = "" Then

Label2.Text = "Proszę wprowadzić drugą liczbę"

Exit Sub End If

If Not IsNumeric(txtB.Text) Then

Label2.Text = "B nie jest liczbą!"

Exit Sub End If

A = CSng(txtA.Text) B = CSng(txtB.Text) If B = 0 Then

Label2.Text = "dzielenie przez zero!"

Exit Sub End If

W = A / B

lblW.Text = W.ToString End Sub

(4)

Copyright © 2009 Janusz Bonarowski

4

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

ByVal e As System.EventArgs) Handles btnPotega.Click Dim A, B, W As Single

If txtA.Text = "" Then

Label2.Text = "Proszę wprowadzić pierwszą liczbę"

Exit Sub End If

If Not IsNumeric(txtA.Text) Then

Label2.Text = "A nie jest liczbą!"

Exit Sub End If

If txtB.Text = "" Then

Label2.Text = "Proszę wprowadzić drugą liczbę"

Exit Sub End If

If Not IsNumeric(txtB.Text) Then

Label2.Text = "B nie jest liczbą!"

Exit Sub End If

A = CSng(txtA.Text) B = CSng(txtB.Text) W = A ^ B

lblW.Text = W.ToString End Sub

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

ByVal e As System.EventArgs) Handles btnSin.Click Dim A As Single

Dim rad, W As Double If txtA.Text = "" Then

Label2.Text = "Proszę wprowadzić kąt w stopniach"

Exit Sub End If

If Not IsNumeric(txtA.Text) Then

Label2.Text = "A nie jest liczbą!"

Exit Sub End If

A = CSng(txtA.Text) rad = A * Math.PI / 180 W = Math.Sin(rad)

lblW.Text = W.ToString End Sub

Cytaty

Powiązane dokumenty

Na początku lipca 1943 roku Hosenfeld pisze do syna: „Komunizm i narodowy socjalizm, oba nie potrafi ły rozwiązać problemów naszego stulecia, kiedyś sumienie świata

Wydział Informatyki, Elektrotechniki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych.. Informatyka stacjonarne-dzienne pierwszego stopnia

[r]

Простежуючи діяльність літераторів волинського краю впродовж міжвоєн- ного двадцятиріччя ХХ ст., можна створити картину

The transhipment level and growth in transhipment are negatively related to the distance from an inland port to the nearest access point to a main road or motorway (because a

5.Dla każdej konfiguracji kolektora dokonaj pomiaru przyrostu temperatury w funkcji czasu (czas trwania pomiaru 10 min).2. Rys.4.2 możliwe konfiguracje budowy

Przywoływana przez postaw ione przez nią tezy sfera domysłu każe zastanowić się jednak nad kwestią czy koncepcja wspólnoty synergetycznej - dążącej jak o

Aby zamienić liczbę (dokonać konwersji) z systemu ósemkowego do dwójkowego (OCT → BIN) należy każdą cyfrę ósemkową zastąpić grupą 3 bitów według