Zadanie1_17

Rekurencja - silnia

(25 min)

Opis zadania

Oblicz silni dowolnej liczby naturalnej wykorzystuj c do rozwi zania metod rekurencyjn .

Efekt ko cowy

Celem zadania jest nabycie umiej tno ci stosowania rekurencji w programowaniu

- Zadanie nie wymaga plików wiczeniowych.

Realizacja zadania

W zadaniu utworzysz nowe rozwi zanie, obliczaj ce warto silni, rekurencyjnie. Na formularzu umie cisz kontrolki: TextBox, Label, Button. Utworzysz procedur obsługi zdarzenia zwi zanego z klikni ciem przycisku. B dzie ona oblicza i wy wietla w polu tekstowym warto n!.

Krok 1 – Dodanie odpowiednich kontrolek i rozmieszczenie ich na formularzu

!"

!

!

" #

$

%

& ' ()

Kontrolka

Własno Name

Własno Text kontrolki

kontrolki

Label1

Label1

„Obliczanie silni dla danej liczby

naturalnej n”

Label2

Label2

„n! = 1 * 2 * 3 * ... * n”

Label3

Label3

„Podaj liczb n z przedziału <0,27> Label4

Label4

„n! = „

TextBox1

wartoscN

„”

TextBox2

wynikRekurencyjny „”

Button1

btnOblicz

„Oblicz”

Button2

btnWyczysc

„Wyczy ”

Button3

btnKoniec

„Zako cz”

Krok 2 - Dodanie tre ci funkcji obliczaj cej warto silni

!

#

silniaRekurencyjna,

*

& ' "

$

$

+

, $

'

" #

$

)

Private Function silniaRekurencyjna(ByVal n As Integer) As Long If n = 0 Then

Return 1

Else

Return n * silniaRekurencyjna(n - 1) End If

End Function

Krok 3 – Dodanie kodu obsługi przycisku

-

"

.

/ "

)

Dim n As Integer

Dim wynikRek As Long

If (Not IsNumeric(watroscN.Text)) OrElse _

((wartoscN.Text < 0) Or (wartoscN.Text > 27)) Then MessageBox.Show("Nieprawidłowa warto

!")

Exit Sub

End If

n = CInt(wartoscN.Text)

wynikRek = silniaRekurencyjna(n)

wynikRekurencyjny.Text = CStr(wynikRek)

!

* " 0 ,

"

%

(

%

(

Private Sub btnWyczysc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnWyczysc.Click wartoscN.Text = ""

wynikRekurencyjny.Text = ""

wartoscN.Text = "0"

End Sub

Private Sub btnKoniec_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnKoniec.Click Close()

End Sub

Krok 4 - Test aplikacji

#

1

.

* #

"

,

-

"

1

.

* # "

"

"

,

-

"

2 3

4 -

"

$

"

1

" 5

6

#

%

(

"