INSTR_06.DOC

(84 KB) Pobierz
Instrukcja nr1

Akademia Techniczno-Rolnicza w Bydgoszczy

Wydział Mechaniczny

Katedra Sterowania i Konstrukcji

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Systemy mikrokomputerowe

 

WSTĘP DO PROGRAMOWANIA

W JĘZYKU VISUAL BASIC

 

 

Instrukcja nr 6


Opis działania programu Systemy

 

Program Systemy pokazuje wprowadzanie danych z klawiatury oraz wykonuje konwersje liczb pomiędzy systemem dziesiętnym, ósemkowym oraz szesnastkowym.

 

Implementacja wizualna programu Systemy.

 

1.   Otwórz nowy projekt, zachowaj jego formę w pliku Systemy.frm, a projekt pod nazwą Systemy.mak.

 

2.   Na podstawie tabeli zbuduj formę tak jak na rysunku 1.

 

Obiekt

Własność

Ustawienie

Form

Name

Caption

Height

Left

Top

Width

frmLiczby

Systemy liczbowe

3795

2100

1605

4635

Command Button

Name

Caption

Height

Left

Top

Width

cmdKoniec

&Koniec

495

2900

1920

1215

Option Button

Name

Caption

Height

Left

Top

Value

Width

optOsiem

System ósemkowy

495

600

1332

False

1850

Option Button

Name

Caption

Height

Left

Top

Value

Width

optDziesiec

System dziesiętny

495

600

1920

True

1850

Option Button

Name

Caption

Height

Left

Top

Value

Width

optSzesnascie

System szesnastkowy

495

600

2520

False

1850

Text Box

Name

Height

Left

Top

Width

Text

txtLiczby

285

600

600

3375

(skasować zawartość)

Label

Name

Caption

Height

Left

Top

Width

lblLiczby

Wprowadź liczbę:

255

600

600

3375

 

Rys.1 Program Systemy

 

Wprowadzanie kodu programu Systemy

 

1.   Wpisz następujący kod do części ogólnych deklaracji frmLiczby:

‘Wszystkie zmienne muszą być zadeklarowane

Option Explicit

Dim Liczba As Variant

 

Instrukcja

Deklaracja Variant oznacz, że zmienna Liczba może zawierać dowolny typ danych (liczbowych lub tekstowych), włączając w to łańcuchy znakowe o zmiennej długości oraz typy danych definiowane przez użytkownika.

 

2.   Do procedury optOsiem_Click() formy frmLiczby wpisz następujący kod:

              Sub optOsiem_Click()

                            txtLiczby.Text = Oct(Liczba)

              End Sub

 

Instrukcja

Funkcja Oct zwraca łańcuch znaków reprezentujący wartość argumentu funkcji (zmienna Liczba) w systemie ósemkowym. Jeżeli wprowadzana wartość nie jest liczbą całkowitą, jest ona zaokrąglana do najbliższej liczby całkowitej przed zmianą systemu liczbowego. Maksymalna długość liczby w formacie ósemkowym nie może przekraczać 11 znaków.

 

3.   Do procedury optSzesnascie_Click() formy frmLiczby wpisz następujący kod:

              Sub optSzesnascie_Click()

                            txtLiczby.Text = Hex(Liczba)

              End Sub

 

Instrukcja

Funkcja Hex zwraca łańcuch znaków reprezentujący wartość argumentu funkcji (zmienna Liczba) w systemie szesnastkowym. Jeżeli wprowadzana wartość nie jest liczbą całkowitą, jest ona zaokrąglana do najbliższej liczby całkowitej przed zmianą systemu liczbowego. Maksymalna długość liczby w formacie szesnastkowym nie może przekraczać 8 znaków.

4.   Do procedury optDziesiec_Click() formy frmLiczby wpisz następujący kod:

              Sub optDziesiec_Click()

                            txtLiczby.Text = Str(Liczba)

              End Sub

 

Instrukcja

Funkcja Str zwraca łańcuch znaków reprezentujący wartość argumentu funkcji (zmienna Liczba) w formacie dziesiętnym.

5.   Do procedury cmdKoniec_Click() formy frmLiczba wpisz następujący kod:

 

  Sub cmdKoniec_Click()

                            End

              End Sub

 

6.   Do procedury txtLiczby_Change() formy frmLiczby wpisz następujący kod:

 

Sub txtLiczby_Change()

                            If optOsiem.Value = True Then

                                          Liczba = Val("&O" + LTrim(txtLiczby.Text) + "&")

                            End If

                            If optDziesiec.Value = True Then

                                          Liczba = Val(LTrim(txtLiczby.Text) + "&")

                            End If

                            If optSzesnascie.Value = True Then

                                          Liczba = Val("&H" + LTrim(txtLiczby.Text) + "&")

                            End If

              End Sub

 

Instrukcja

Procedura txtLiczby_Change() wykonywana jest zawsze, gdy zmieni się zawartość cechy Text obiektu txtLiczby. Zmiana taka następuje w wyniku naciśnięcia klawisza Enter przez użytkownika lub na skutek działania innej procedury. W opisywanym ćwiczeniu procedura ta dokonuje zmiany ciągu znaków wprowadzanych przez użytkownika na wartość liczbową w odpowiednim systemie.

 

Warunki If...Then...End If sprawdzają, który system liczbowy jest wybrany przez użytkownika:

If optOsiem.Value = True Then

              Liczba = Val("&O" + LTrim(txtLiczby.Text) + "&")

End If

Jeżeli zaznaczony jest opcja „System ósemkowy” funkcja Val dokonuje zamiany ciągu znaków wprowadzonego przez użytkownika na liczbę. Do ciągu znaków dodawana jest fraza „&O”, a na końcu znak „&”, co sygnalizuje funkcji Val, że wynik przekształcenia ma być liczbą ósemkową. Funkcja LTrim usuwa znaki spacji znajdujące się z lewej strony ciągu znaków.

 

If optSzesnascie.Value = True Then

              Liczba = Val("&H" + LTrim(txtLiczby.Text) + "&")

End If

Jeżeli zaznaczony jest opcja „System szesnastkowy” funkcja Val dokonuje zamiany ciągu znaków wprowadzonego przez użytkownika na liczbę. Do ciągu znaków dodawana jest fraza „&H” a na końcu znak „&”, co sygnalizuje funkcji Val, że wynik przekształcenia ma być liczbą szesnastkową. Funkcja LTrim usuwa znaki spacji znajdujące się z lewej strony ciągu znaków.

 

If optSzesnascie.Value = True Then

              Liczba = Val("&H" + LTrim(txtLiczby.Text) + "&")

End If

Jeżeli zaznaczony jest opcja „System dziesiętny” funkcja Val dokonuje zamiany ciągu znaków wprowadzonego przez użytkownika na liczbę dziesiętną. Do ciągu znaków dodawany jest na końcu znak „&”, co sygnalizuje funkcji Val, że wynik przekształcenia ma być liczbą dziesiętną. Funkcja LTrim usuwa znaki spacji znajdujące się z lewej strony ciągu znaków.



7.   Do procedury txtLiczby_KeyPress() formy frmLiczby wpisz następujący kod:

              Sub txtLiczby_KeyPress(KeyAscii As Integer)

                            If KeyAscii < 48 Then

                                          KeyAscii =...

Zgłoś jeśli naruszono regulamin