background image

© 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ń 

background image

© 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) 

 

background image

© 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