C2 R kwadratowe

background image

© W. Treichel, Podstawy Informatyki, sem. 2, Wydział Inżynierii Środowiska

Strona 1 z 3

C2. Instrukcje warunkowe złożone

If ... Then ... ElseIf ... Then ... Else ... EndIf

Z a d C 2 . T r ó j m i a n k w a d r a t o w y . Napisać program na znajdowanie pierwiastków
równania kwadratowego ax

2

+bx+c = 0. Rozważyć wszystkie możliwe przypadki wartości

współczynników a, b, c.
Rozważenie przypadku, gdy a=0 sprowadza zadanie do rozwiązania równania liniowego,
które było rozwiązywane w zadaniu C1. W przeciwnym przypadku, tzn. gdy a jest różne od 0
mamy do czynienia z trójmianem kwadratowym. Należy obliczyć wyróżnik tego trójmianu i
w zależności od jego wartości obliczyć dwa, jeden podwójny lub stwierdzić brak
pierwiastków rzeczywistych trójmianu.


Wskazówki do rozwi
ązania
1. Tworzenie formularza

1.1. Utwórz nowy projekt typu Windows Form Application. Zmień nazwę tworzonego

projektu na R_kwadratowe. W panelu Solution Explorer zmień nazwę utworzonego
formularza z Form1 na R_kwadratowe oraz w panelu właściwości zmień napis (Text)
na pasku formularza na Trójmian kwadratowy

1.2. Umieść napis Rozwiązanie trójmianu kwadratowego ax^2+bx+c=0 w postaci

etykiety (Label). Zadbaj o odpowiednie położenie (wycentrowanie) oraz czcionkę
(Times New Roman, 14, Pogrubiona)

1.3. Umieść na formularzu ramkę (GroupBox) i nadaj jej tytuł (Text) Podaj

współczynniki.

1.4. Umieść wewnątrz tej ramki trzy pola tekstowe (TextBox) i nazwij je odpowiednio

txta , txtb i txtc. Umieść przed tymi polami tekstowymi etykiety (Label) a= , b= oraz
c = .

1.5. Umieść na formularzu drugą ramkę (GroupBox) i nadaj jej tytuł (Text) Wynik.

Wewnątrz tej ramki umieść etykietę (Label), nazwij ją (Name) lblX oraz wyczyść jej
zawartość (Text). W tym miejscu będzie wyświetlony wynik obliczeń.

1.6. Umieść na formularzu przycisk polecenia (Button), nadaj mu nazwę (Name)

btnOblicz oraz zmień napis na nim na Oblicz.

1.7. Na koniec, umieść na formularzu jeszcze jeden przycisk polecenia (Button), nadaj mu

nazwę btnKoniec oraz zmień napis na nim na Koniec.

1.8. Zapisz na dysku utworzony projekt nadając mu nazwę R_kwadratowe.

background image

© W. Treichel, Podstawy Informatyki, sem. 2, Wydział Inżynierii Środowiska

Strona 2 z 3

2. Pisanie kodu programu
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óć do okna obiektu czyli do stworzonego formularza. Dwukrotne kliknięcie pola

tekstowego txta przeniesie cię ponownie do okna kodu, do obsługi zdarzenia zmiany
tego pola, czyli do procedury

Private

Sub

txta_TextChanged(...)

.

Wewnątrz

tej procedury odczytamy wartość wprowadzoną do tego pola tekstowego. Nadaj
zmiennej a wartość pierwszego współczynnika w równaniu tzn. podstaw na a wartość
właściwości Text obiektu txta. Zagwarantuj, że nastąpi konwersja (zamiana) tekstu na
liczbę (zapewnia to funkcja Val. W przypadku, gdy obiekt txta będzie zawierał tekst
nie odpowiadający liczbie, funkcja Val zwróci wartość równą 0). Linia kodu
powinna wyglądać następująco:

a = Val(txta.Text)

2.3. Zrób analogicznie dla zmiennych b oraz c.
2.4. Aby zmienne a, b i c były widoczne w innych procedurach zadeklaruj na samym

początku klasy te zmienne jako zmienne rzeczywiste (Single) wpisując:

Dim a, b, c As Single

.

2.5. Wróć ponownie do okna obiektu. 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 wprowadzonych wartości
oraz wyświetlająca wynik Na początku tej procedury zadeklaruj nowe, lokalne
zmienne typu rzeczywistego wpisując

Dim x1, x2, Delta As Single

.

Następnie

sprawdzimy czy współczynnik a jest równy zero. Jeśli tak, to w tym przypadku
dalsze obliczenia są identyczne jak w zadaniu C1.

2.6. W przeciwnym przypadku, tzn. gdy a jest różne od zera obliczamy wyróżnik

trójmianu korzystając ze znanego wzoru

Delta = b^2-4*a*c

2.7. Sprawdzamy, czy delta jest większa od zera. Jeśli tak, to istnieją dwa pierwiastki

rzeczywiste trójmianu, które obliczamy z zależności:

x1 = (-b-sqrt(Delta))/(2*a)

oraz

x2 = (-b+sqrt(Delta))/(2*a)

.

Uwaga: funkcja

sqrt

pochodzi z kolekcji

System.Math

zatem jej pełne poprawne

wywołanie powinno być następujące:

Math.Sqrt(Delta)

Obydwa pierwiastki wyświetlamy w polu etykiety lblX , dzieląc tekst na trzy wiersze
za pomocą znaku

Chr(10)

, czyli przejścia do nowego wiersza i łącząc je w łańcuch

za pomocą znaku

&

, np. zapisując

lblX.Text =

"Istniej

ą

dwa pierwiastki:"

& Chr(10) _

&

"x1 = "

& Str(x1) & Chr(10) &

"x2 = "

& Str(x2)

Uwaga: Znak podkreślenia poprzedzony spacją pozwala kontynuować długą linię kodu w kolejnych
wierszach

2.8. W przeciwnym razie (tzn. gdy

Delta

nie jest dodatnia) sprawdzamy czy

Delta

jest

równa zero. Jeśli tak, to istnieje pierwiastek podwójny, który obliczamy ze wzoru:

x1 = -b/(2*a)

i wynik

ten wyświetlamy w polu etykiety lblX opatrując go

odpowiednim komentarzem

2.9. W przeciwnym przypadku, tzn. gdy

Delta

jest ujemna, w polu etykiety lblX

umieszczamy komentarz, że brak jest pierwiastków rzeczywistych trójmianu.

2.10. Zapisz swój projekt, a następnie uruchom go i przetestuj jego działanie na kilku

zestawach danych. Sprawdź działanie programu dla błędnych danych np. wprowadź
w pola tekstowe inny tekst niż liczby lub wartości równe 0.

background image

© W. Treichel, Podstawy Informatyki, sem. 2, Wydział Inżynierii Środowiska

Strona 3 z 3

Treści niektórych procedur obsługujących poszczególne kontrolki mogą być następujące:

Public

Class

R_kwadratowe

Dim

a, b, c

As

Single

Private

Sub

btnKoniec_Click(

ByVal

sender

As

System.Object,

ByVal

e

As

System.EventArgs)

Handles

btnKoniec.Click

Close()

End

Sub

Private

Sub

txta_TextChanged(

ByVal

sender

As

System.Object,

ByVal

e

As

System.EventArgs)

Handles

txta.TextChanged

a = Val(txta.Text)

End

Sub

Private

Sub

txtb_TextChanged(

ByVal

sender

As

System.Object,

ByVal

e

As

System.EventArgs)

Handles

txtb.TextChanged

b = Val(txtb.Text)

End

Sub

Private

Sub

txtc_TextChanged(

ByVal

sender

As

System.Object,

ByVal

e

As

System.EventArgs)

Handles

txtc.TextChanged

c = Val(txtc.Text)

End

Sub

Private

Sub

btnOblicz_Click(

ByVal

sender

As

System.Object,

ByVal

e

As

System.EventArgs)

Handles

btnOblicz.Click

Dim

x1, x2, Delta

As

Single

If

a = 0

Then

'Je

ś

li a równa si

ę

zero to mamy równanie liniowe

If

b <> 0

Then

'Je

ś

li b nie równa si

ę

zero

x1 = -c / b
lblX.Text =

"Równanie liniowe"

& Chr(10) & _

"x = "

& Str(x1)

Else

'w przeciwnym przypadku, tzn. gdy b=0

If

c <> 0

Then

'je

ś

li ponadto c nie równa si

ę

zero, czyli b=0 i c<>0

lblX.Text =

"Równanie sprzeczne"

Else

'w przeciwnym razie, tzn. c=0 i b=0

lblX.Text =

"Równanie to

ż

samo

ś

ciowe"

End

If

End

If

Else

'w przeciwnym przypadku, tzn. gdy a<>0

Delta = b ^ 2 - 4 * a * c

If

Delta > 0

Then

'je

ś

li delta dodatnia to mamy dwa pierwiastki

x1 = (-b - Math.Sqrt(Delta)) / (2 * a)
x2 = (-b + Math.Sqrt(Delta)) / (2 * a)
lblX.Text =

"Istniej

ą

dwa pierwiastki:"

& Chr(10) _

&

"x1 = "

& Str(x1) & Chr(10) &

"x2 = "

& Str(x2)

Else

If

Delta = 0

Then

'je

ś

li delta równa 0 to mamy jeden pierwiastek podwójny

x1 = -b / (2 * a)
lblX.Text =

"Istnieje jeden pierwiastek podwójny:"

_

& Chr(10) &

"x1 = "

& Str(x1)

Else

lblX.Text =

"Brak pierwiastków rzeczywistych"

End

If

End

If

End

If

End

Sub

End

Class


Uwaga.
wszystkie linie zaczynające się od apostrofu są komentarzem nie mającym wpływ na realizację
programu. Wielokropek oznacza brakujące fragmenty kodu.


Wyszukiwarka

Podobne podstrony:
Nierówności kwadratowe
Postać kanoniczna funkcji kwadratowej
Test HI kwadrat
Kwadrans przed Przenajświętszym
C2 Bezpieczenstwo pracy z laserami
C2, Matematyka studia, Matematyka dyskretna
PWTC C2, UCZELNIA ARCHIWUM, UCZELNIA ARCHIWUM WIMiIP, Pomiary w Technice Cieplnej, lab moje
kwadrat,nazwy
c2 moje
kwadrat przepływu pieniędzy
Cwiczenie C2
Funkcja kwadratowa
1 Plan całkowicie losowy, blok losowy, kwadrat łaciński
PN B 03264 2002 Konstrukcje betonowe zelbetowe i sprezone Obliczenia statyczne i projektowanie c2
funkcja kwadratowa praca klasowa

więcej podobnych podstron