INSTR 06 DOC


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.

  1. 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 0x01 graphic

Name

Caption

Height

Left

Top

Width

cmdKoniec

&Koniec

495

2900

1920

1215

Option Button 0x01 graphic

Name

Caption

Height

Left

Top

Value

Width

optOsiem

System ósemkowy

495

600

1332

False

1850

Option Button 0x01 graphic

Name

Caption

Height

Left

Top

Value

Width

optDziesiec

System dziesiętny

495

600

1920

True

1850

Option Button 0x01 graphic

Name

Caption

Height

Left

Top

Value

Width

optSzesnascie

System szesnastkowy

495

600

2520

False

1850

Text Box 0x01 graphic

Name

Height

Left

Top

Width

Text

txtLiczby

285

600

600

3375

(skasować zawartość)

Label 0x01 graphic

Name

Caption

Height

Left

Top

Width

lblLiczby

Wprowadź liczbę:

255

600

600

3375

0x01 graphic

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.

  1. 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.

  1. 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.

  1. 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.

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

Sub cmdKoniec_Click()

End

End Sub

  1. 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.

0x08 graphic

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

Sub txtLiczby_KeyPress(KeyAscii As Integer)

If KeyAscii < 48 Then

KeyAscii = 0

End If

If optOsiem.Value And KeyAscii > 55 Then

KeyAscii = 0

End If

If optDziesiec.Value And KeyAscii > 57 Then

KeyAscii = 0

End If

`Poniższe trzy wiersze stanowią pojedynczą linie kodu

If optSzesnascie.Value And (KeyAscii > 57 And (KeyAscii < 65 Or KeyAscii > 70) And (KeyAscii < 97 Or KeyAscii > 102)) Then

KeyAscii = 0

End If

End Sub

Instrukcja

Procedura KeyPress wykonywana jest zawsze wtedy, gdy użytkownik naciśnie jakikolwiek klawisz. Jako wartość wejściową procedura otrzymuje kod ASCII wciśniętego klawisza (zmienna KeyAscii). Kod umieszczony w procedurze ma za zadanie nie pozwalać na wprowadzenie do okienka tekstowego znaków nie występujących w danym systemie liczbowym. Użytkownik nie ma więc wprowadzać znaków o kodach niższych od 48 (poniżej tego kodu ASCII znajdują się znaki sterujące i niektóre znaki specjalne !, %). Również znak minus „-”, i przecinek, co nie pozwala na wprowadzanie liczb ujemnych oraz ułamkowych. Tą czynność realizują poniższe linie kodu:

If KeyAscii < 48 Then

KeyAscii = 0

End If

Przypisanie KeyAscii = 0 anuluje wciśnięcie klawisza przez użytkownika jeżeli jego kod ASCII jest niższy niż 48.

Kolejne trzy komendy If..Then..End If kontrolują wprowadzanie danych dla kolejnych systemów liczbowych:

If optOsiem.Value And KeyAscii > 55 Then

KeyAscii = 0

End If

Jeżeli wybierzemy wprowadzanie danych w systemie ósemkowym (zaznaczony jest przycisk optOsiem), procedura pozwala na wprowadzanie znaków, których kody mają wartość od 48 (z poprzedniego warunku) do 55 (KeyAscii > 55), co odpowiada kodom cyfr od 0 do 7 (system ósemkowy).

If optDziesiec.Value And KeyAscii > 57 Then

KeyAscii = 0

End If

Jeżeli wybierzemy wprowadzanie danych w systemie dziesiętnym (zaznaczony jest przycisk optDziesiec), procedura pozwala na wprowadzanie znaków, których kody mają wartość od 48 (z pierwszego warunku) do 57 (KeyAscii > 57), co odpowiada kodom cyfr od 0 do 9 (system dziesiętny).

`Poniższe dwa wiersze stanowią pojedynczą linie kodu

If optSzesnascie.Value And (KeyAscii > 57 And (KeyAscii < 65 Or KeyAscii > 70) And (KeyAscii < 97 Or KeyAscii > 102)) Then

KeyAscii = 0

End If

Jeżeli wybierzemy wprowadzanie danych w systemie szesnastkowym (zaznaczony jest przycisk optDziesiec), procedura pozwala na wprowadzanie znaków, których kody mają wartość od 48 (z pierwszego warunku) do 57 (KeyAscii > 57), co odpowiada kodom cyfr od 0 do 9, literom od a do f (kody ASCII od 97 do 102) oraz wielkim literom od A do F (kody ASCII od 65 do 70).

W przypadku kiedy kod wciśniętego klawisza będzie inny niż podane powyżej, fakt przyciśnięcia klawisza jest przez procedurę anulowany poprzez przypisanie:

KeyAscii = 0.

0x08 graphic

Uruchomienie programu Systemy

  1. Uruchom program Systemy

  1. Kliknij na pole tekstowe, wprowadź dowolną wartość.

  1. Klikając na opcje System ósemkowy, System dziesiętny, System szesnastkowy, zmień format wprowadzonej liczby.

  1. Skasuj zawartość pola tekstowego, kliknij na opcje Systemy szesnastkowe, wprowadź wartość FF, a następnie przelicz ją na system dziesiętny.

  1. Kliknij Koniec, aby zakończyć działanie programu.

Tworzenie pliku wykonywalnego (Systemy.exe)

  1. Wybierz z menu File opcję Make EXE File.

  1. Zapamiętaj plik pod nazwą Systemy.exe.

  1. Zakończ działanie Visual Basic wybierając z menu File opcję Exit.

Ćwiczenie końcowe

  1. Zmień program Systemy, tak aby wykonywał konwersje jednostek siły (niuton - N, kilogram siły kG, dyna - dyn,)

Informacja

Pomiędzy poszczególnymi jednostkami występują następujące zależności:

1N = 0.10197 kG

1N = 105 dyn

5

7



Wyszukiwarka

Podobne podstrony:
prawo 06 DOC
INSTR 07 DOC
INSTR 08 DOC
108 06 DOC
1I05 06 DOC
INSTR 05 DOC
~$st metrologia 24 pytania 13 06 06 doc
R02 06 DOC
PI 06 DOC
R19 06 DOC
INSTR 01 DOC
INSTR 09 DOC
06 (6) DOC
II 06 (2) doc
206 06 DOC
spawalnictwo bylo na pulpicie 20 06 doc
III 06 (2) doc
INSTR 02 DOC

więcej podobnych podstron