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
cmdKoniec
&Koniec
495
2900
1920
1215
Option Button
Value
optOsiem
System ósemkowy
600
1332
False
1850
optDziesiec
System dziesiętny
True
optSzesnascie
System szesnastkowy
2520
Text Box
Text
txtLiczby
285
3375
(skasować zawartość)
Label
lblLiczby
Wprowadź liczbę:
255
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
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)
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)
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
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) + "&")
If optSzesnascie.Value = True Then
Liczba = Val("&H" + LTrim(txtLiczby.Text) + "&")
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:
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.
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.
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 =...
kkkate