© W. Treichel, Podstawy Informatyki, sem. 2, Wydział Inżynierii Środowiska
Strona 1 z 3
B3. Instrukcje warunkowe złożone
If ... Then ... ElseIf ... Then ... Else ... EndIf
Z a d B 3 . F u n k c j a z k l a m r ą . Napisać program obliczający wartość funkcji y podanej
wzorem z klamrą:
Wskazówki do rozwiązania
1. Tworzenie formularza
1.1. Utwórz nowy projekt typu Windows Form Application. Zmień nazwę tworzonego
projektu na F_klamra. W panelu Solution Explorer zmień nazwę utworzonego
formularza z Form1 na F_klamra oraz w panelu właściwości zmień napis (Text) na
pasku formularza na Funkcja z klamrą
1.2. Umieść napis Obliczanie wartości funkcji podanej wzorem z klamrą w postaci
etykiety (Label). Zmień właściwość AutoSize na False. Zadbaj o odpowiednie
położenie (wycentrowanie) oraz czcionkę (Times New Roman, 14, Pogrubiona)
1.3. Umieść na formularzu obrazek (PictureBox). Ze strony internetowej tych ćwiczeń
skopiuj obrazek "F_klamra.jpg", zawierający równanie podane w zadaniu wyżej,
zapisując go w swoim katalogu. Wstaw skopiowany obrazek na formularzu
zmieniając właściwość BackgroundImage. Aby dopasować wielkość obrazka do
przewidzianego dla niego miejsca zmień właściwość BackgroundImageLayout na
Stretch
. Możesz zmienić również obramowanie, czyli właściwość BorderSTyle, na
Fixed3D
.
1.4. Umieść pod obrazkiem etykietę (Label) z napisem (Text) x = . Obok niej umieść pole
tekstowe (TextBox) i nazwij je odpowiednio txtX.
1.5. W podobny sposób umieść na formularzu drugą etykietę (Label) z napisem y = .
Obok niej umieść następną etykietę (Label), nazwij ją (Name) WartoscY , zmień
© W. Treichel, Podstawy Informatyki, sem. 2, Wydział Inżynierii Środowiska
Strona 2 z 3
właściwość AutoSize na False, zmień jej obramowanie (właściwość Border Style) na
Fixed3D
oraz wyczyść jej zawartość (Text). W tym miejscu będzie wyświetlony
wynik obliczeń.
1.6. Umieść na formularzu przycisk akcji (Button), nadaj mu nazwę (Name) btnOblicz
oraz zmień napis na nim na Oblicz.
1.7. Na koniec, umieść na formularzu jeszcze jeden przycisk akcji (Button), nadaj mu
nazwę btnKoniec oraz zmień napis na nim na Koniec.
1.8. Zapisz na dysku utworzony projekt nadając mu nazwę F_klamra. Wybierz
odpowiedni katalog roboczy i upewnij się, że zaznaczona jest opcja „Utwórz nowy
katalog dla rozwiązania”.
2. Pisanie kodu programu
Uwaga: Przed przystąpieniem do pisania kodu programu narysuj schemat blokowy dla tego
zadania.
2.1. Dwukrotne kliknięcie przycisku btnKoniec przeniesie cię do okna kodu, do procedury
obsługi zdarzenia kliknięcia tego przycisku, czyli do procedury
Private
Sub
btnKoniec_Click(...)
.
Wpisz wewnątrz tej procedury polecenie
Close()
powodujące zakończenie programu.
2.2. Wróć ponownie do okna tworzonego formularza
F_klamra.vb[Design]
. Dwukrotne
kliknięcie przycisku btnOblicz przeniesie cię ponownie do okna kodu, do obsługi
zdarzenia kliknięcia tego przycisku, czyli do procedury
Private
Sub
btnOblicz_Click(...)
. Będzie to główna procedura realizująca obliczenia w
zależności od wprowadzonej wartości w polu txtX oraz wyświetlająca wynik Na
początku tej procedury zadeklaruj dwie lokalne zmienne typu rzeczywistego wpisując
Dim x, y As Single.
Następnie odczytaj wartość znajdującą się w polu tekstowym txtX
nadając tą wartość zmiennej x tzn. podstaw na x wartość właściwości Text obiektu
txtX. Zagwarantuj, że nastąpi konwersja (zamiana) tekstu na liczbę (zapewnia to
funkcja Val. W przypadku, gdy obiekt txtX będzie zawierał tekst nie odpowiadający
liczbie, funkcja Val zwróci wartość równą 0). Linia kodu powinna wyglądać
następująco:
x = Val(txtX.Text)
2.3. Posługując się przygotowanym na początku schematem blokowym napisz złożoną
instrukcję warunkową:
if ..... then
......
elseif ..... then
......
else
.......
end if
która pozwoli obliczyć odpowiednią wartość funkcji y w zależności od wartości
argumentu x. Możesz zacząć od sprawdzenia warunku czy x = 0? Do obliczenia
pierwiastka użyj funkcji
sqrt
z klasy
System.Math
, którą możesz
wywołać tak:
y = Math.Sqrt(x ^ 2 - 4)
2.4. Wyświetl następnie obliczoną wartość y w miejscu do tego przeznaczonym czyli
nadaj obliczoną wartość właściwości Text etykiety WartoscY. Zadbaj o konwersję
liczby na tekst za pomocą funkcji
Str()
. Zatem
WartoscY.Text = Str(y)
© W. Treichel, Podstawy Informatyki, sem. 2, Wydział Inżynierii Środowiska
Strona 3 z 3
2.5. Zapisz swój projekt, a następnie uruchom go i przetestuj jego działanie na kilku
danych. Sprawdź działanie programu dla błędnych danych np. wprowadź w pole
tekstowe inny tekst niż liczby.
Uwaga: Podczas testowania programu zwróć uwagę na działanie funkcji
Val()
konwersji
tekstu na liczby. Aby dawała ona spodziewane wyniki, tekst musi wyglądać jak poprawna
liczba w Visual Basic, a więc część dziesiętna musi być oddzielona kropką. Innymi funkcjami
konwersji tekstu na liczby, które uwzględniają tzw. ustawienia regionalne (a więc dla Polski
jest to przecinek dziesiętny) są:
-
CSng()
- konwersja tekstu na liczby rzeczywiste Single,
-
CDbl()
- konwersja tekstu na liczby rzeczywiste podwójnej precyzji Double,
-
CInt()
- konwersja tekstu na liczby całkowite Integer.
Poniżej, dla sprawdzenia, przytoczono kod programu dla tego zadania.
Private
Sub
btnKoniec_Click(
ByVal
sender
As
System.Object,
ByVal
e
As
System.EventArgs)
Handles
btnKoniec.Click
Close()
End
Sub
Private
Sub
btnOblicz_Click(
ByVal
sender
As
System.Object,
ByVal
e
As
System.EventArgs)
Handles
btnOblicz.Click
Dim
x, y
As
Single
x = Val(txtX.Text)
If
x = 0
Then
y = 0
ElseIf
x > -2
And
x < 2
Then
y = Math.Sqrt(x ^ 2 + 1) / x
Else
y = Math.Sqrt(x ^ 2 - 4)
End
If
WartoscY.Text = Str(y)
End
Sub