Akademia Techniczno-Rolnicza w Bydgoszczy
Wydział Mechaniczny
Katedra Sterowania i Konstrukcji
Systemy mikrokomputerowe
WSTĘP DO PROGRAMOWANIA
W JĘZYKU VISUAL BASIC
Instrukcja nr 5
Opis działania programu Suma
Program Suma pozwala użytkownikowi wybrać liczbę, a następnie dodaje wszystkie liczby całkowite od 1 do tej liczby. Na przykład jeżeli użytkownik wybrał liczbę 5, program przeprowadzi następujące obliczenia:
1+2+3+4+5 = 15
i wyświetli wynik.
Wizualna implementacja programu Suma
1. Otwórz nowy projekt, zachowaj formę projektu w pliku Suma.frm, plik projektu jako Suma.mak.
2. Na podstawie tabeli zbuduj formę frmSuma.
Obiekt |
Własność |
Ustawienie |
Form |
Name Caption Height Left Top Width |
frmSuma Suma 3708 1416 1512 6516 |
Command Button |
Name Caption Height Left Top Width |
cmdSuma &Dodaj 1692 3600 480 2052 |
Vertical Scroll Bar |
Name Height Left Max Min Top Value Width |
vsbLiczba 2652 240 500 1 240 1 252 |
Text Box |
Name Alignment Enabled Height Left MultiLine Top Width Text |
txtWynik 2-Center False 612 600 True 720 2292 (usunąć zawartość) |
Command Button |
Name Caption Height Left Top Width |
cmdKoniec &Koniec 372 4080 2400 972 |
Label |
Name Caption Height Left Top Width |
lblLiczba Wybrana liczba: 372 600 2040 2412 |
Rys.1 Program Suma
Wprowadzanie kodu programu Suma
W części ogólnych deklaracji formy frmSuma wpisz kod:
`Wszystkie zmienne muszą być zadeklarowane
Option Explicit
Do procedury cmdKoniec_Click() formy frmSuma wpisz kod:
Sub cmdKoniec_Click()
End
End Sub
Do procedury cmdSuma_Click() formy frmSuma wpisz kod:
Sub cmdSuma_Click()
Dim I
Dim R
For I = 1 to vsbLiczba.Value Step 1
R = R + I
Next
txtWynik.Text = R
End Sub
Informacja |
Procedura cmdSuma_Click() jest wykonywana zawsze, gdy użytkownik kliknie na przycisk Dodaj:
W procedurze deklarowane są dwie zmienne: I oraz R. Następnie w pętli For...Next jest wyliczana suma: 1 + 2 + 3 + .... + vsbLiczba.Value
Początkowo zmienna R ma wartość 0, ponieważ Visual Basic przypisuje wartość 0 w czasie deklaracji. Ostatnia instrukcja procedury uaktualnia cechę Text pola tekstu wartością zmiennej R.
Uwaga:
Blok For...Next jest rodzajem pętli Visual Basica. Następująca pętla wykonuje liczenie od 1 do 100: For I = 1 to 100 Step 1 txtMojePoleTekstowe.Text = I Next Aby wykonać liczenie od 1 do 100 z krokiem 2 (1,3,5,7, ...) można użyć poniższej pętli For...Next: For I = 1 to 100 Step 2 txtMojePoleTekstowe.Text = I Next
Pominięcie słowa Step powoduje wykorzystanie standardowego kroku 1 (Step 1). Dwa następujące bloki wykonują tą samą operacje: For I = 1 to 100 Step 1 txtMojePoleTekstowe.Txt = I Next I For I = 1 to 100 txtMojePoleTekstowe.Txt = I Next I
Można wyjść z pętli For...Next zanim zmienna osiągnie wartość końcową wywołując instrukcję Exit For. For I = 1 to 1000 txtWynik.Text = I If I = 500 Then Exit For End If Next Powyższy kod liczy z krokiem 1 zaczynając od 1. Gdy I równa się 500, pętla For kończy działanie. |
Do procedury vsbLiczba_Change() formy frmSuma wpisz kod:
Sub vsbLiczba_Change()
lblLiczba.Caption = „Wybrana liczba: ” + str(vsbLiczba.Value)
End Sub
Informacje |
Procedura vsbLiczba_Change() jest wykonywana zawsze, gdy użytkownik zmienia położenie suwaka przewijania. Procedura uaktualnia cechę Text etykiety lblLiczba na wartość pobraną z cechy Value paska przewijania. Pozwala to użytkownikowi wczytać pozycję suwaka. Funkcja Str() kowertuje format zmiennej z cyfrowej na tekstową, co umozliwia dodanie jej do innego łańcucha tekstowego. |
Do procedury vsbLiczba_Scroll() formy frmSuma wpisz kod:
Sub vsbLiczba_Scroll()
lblLiczba.Caption = „Wybrana liczba: ” + str(vsbLiczba.Value)
End Sub
Informacje |
Procedura vsbLiczba_Scrol() jest wykonywana zawsze, gdy użytkownik przeciąga suwak paska przewijania. Procedura uaktualnia cechę Text etykiety lblLiczba na wartość pobraną z cechy Value paska przewijania. |
Uruchomienie programu Suma
Wywołaj program Suma.
Wybierz liczbę, klikając ikony strzałek pionowego paska przewijania lub przeciągając suwak przewijania. W odpowiedzi program wyświetli wybraną liczbę.
Kliknij przycisk Dodaj. W odpowiedzi program wykona obliczenia i wyświetli wynik w polu tekstu.
Zakończ działanie programu klikając przycisk Koniec.
Tworzenie pliku wykonywalnego (Suma.exe)
Wybierz z menu File opcję Make EXE File.
Zapamiętaj plik pod nazwą Suma.exe .
Zakończ działanie Visual Basic wybierając z menu File opcję Exit.
Ćwiczenie końcowe
Zmień program Suma tak, aby zamiast pętli For...Next używał pętli Do While...Loop.
Informacja |
Blok Do...Loop jest używany do wykonywania instrukcji do momentu, aż prawdziwy będzie pewien warunek. Następująca instrukcja Do While...Loop liczy od 1 do 1000:
Licznik = 1
Do While Licznik < 1001
Licznik = Licznik + 1
Loop
Zmienna Licznik otrzymuje wartość 1 i zaczyna się pętla Do...Loop. W pierwszej linii pętli sprawdza się, czy zmienna Licznik jest mniejsza niż 1001. Jeśli jest to spełnione, wykonywane są instrukcje pomiędzy linią Do While i Loop. W tym przykładzie jest to pojedyncza instrukcja:
Licznik = Licznik + 1
zwiększająca o 1 wartość zmiennej Licznik.
Następnie program wraca do linijki Do While i ponownie bada wartość zmiennej Licznik. Teraz Licznik jest równy 2, więc znowu wykonywana jest instrukcja pomiędzy liniami Do While i Loop. Ten proces powtarza się, aż Licznik osiągnie wartość 1001. W tym momencie w linii Do While okazuje się, że Licznik nie jest już mniejszy od 1001 i program przechodzi do instrukcji za linijką Loop.
Instrukcje wewnątrz pętli Do While...Loop opisane powyżej mogą być wykonane, albo nie. Na przykład, w następującej pętli instrukcje między liniami Do While oraz Loop nie zostaną nigdy wykonane:
Licznik = 2000
Do While Licznik < 1001
Licznik = Licznik + 1
Loop
W tym przypadku po dojściu programu do linii Do While okazuje się, że Licznik jest równy 2000 i dlatego instrukcja zawarta wewnątrz pętli nie jest wykonywana. Czasami konieczne jest aby program wchodził do pętli co najmniej raz. W takim przypadku należy użyć instrukcji Do...Loop While:
Licznik = 2000
Do
txtMojePoleTekstowe.Text = Licznik
Licznik = Licznik + 1
Loop While Licznik < 1001
Program w każdym przypadku wykonuje instrukcje między liniami Do oraz Loop While. Następnie sprawdza, czy Licznik jest mniejszy od 1001. Jeżeli tak jest program wraca do wykonywania instrukcji wewnątrz pętli. Po stwierdzeniu, że zmienna Licznik nie jest już mniejsza niż 1001 przechodzi do instrukcji za linijką Loop While.
Następujące instrukcje Do...Loop While liczą od 50 do 300.
Licznik =50
Do
Licznik = Licznik + 1
Loop While Licznik < 301
Pętla Do While...Loop może być przerwana przy użyciu instrukcji Exit Do
I = 1
Do While I < 1001
txtWynik.Text = I
I = I + 2
If I > 500 Then
Exit Do
End If
Loop
Powyższa pętla liczy z krokiem 2 począwszy od 1. Gdy I jest większe od 500, Do While...Loop kończy działanie.
Ulepsz program Suma. Dodaj przycisk poleceń. Przycisk powinien mieć następujące parametry: Name - cmdPierwiastek, Caption - &Pierwiastek. Gdy użytkownik kliknie przycisk Pierwiastek, program powinien wyświetlać pierwiastek kwadratowy liczby wybranej na pasku przewijania.
Informacja |
Do obliczania pierwiastka kwadratowego z liczby należy wykorzystać funkcję Sqr(). |
11
7