Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базові компоненти.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
112.36 Кб
Скачать

IfInStr(Text3.Text, ".") 00 Then

KeyAscii =o End If

Case 13 ' клавіша <Enter>

при натисненні клавіші <Enter> встановлюється фокус на кнопку Обчислити

Cammandi .SetFocus Case Else

KeyAscii = о ’ решта символів не відображається End Select End Sub

Завдання 6. Програма обчислює дохід по вкладу. Вона забезпечує розрахунок простих і складних відсотків. Прості відсотки

нараховуються в кінці терміну вкладу, складні — щомісячно і додаються до первинної суми вкладу. В наступному місяці відсотки нараховуються на нову суму. Форма програми приведена на рис.1.4.

Puc.1.4. Форма програми « Дохід no вкладу»

клацання на кнопці Обчислити Private Sub Conmandi_ClickQ Dim sum As Single ' сума вкладу

Dim pr As Single ' процентна ставка Dim srok As Integer ' термін вкладу Dim dohod As Single ' дохід no вкладу Dim buf As Single Dim і As Integer

отримання початкових даних sum = Val(Texti.Text) srok = Val(Text2.Text)

pr = Val(Text3.Text)

If Optioni.Value = True Then

вибраний перемикач Прості відсотки

dohod » sum * (pr/ioo) * (srok/360)

Else

вибраний перемикач Складні відсотки buf = sum For i = 1 To srok buf= buf+ buf*(pr/ioo) сума в кінці терміну вкладу записується в buf dohod = buf - sum Next і End If

sum = sum + dohod

Labebt.Caption = "Дохід:" +Format$(dohod, "0.00") +. Chr(i3) +_

"Сума в кінці терміну вкладу: " +_ Format$(sum, "0.00")

End Sub

вибір перемикача Прості відсотки Private Sub Optioni_Click()

Labels.Caption = "Термін (днів):"

LabeLfCaption = ""

End Sub

вибір перемикача Складні відсотки Private Sub Option2_Cliek()

Labels.Caption = "Термін (міс.):" LabeLf.Caption =

End Sub

ШІЕМВД

Програма обраховує опір електричного ланцюга, то складається з двох резисторів

Опір R1 (Ом): Опір R2 (Ом):

Тип з'єднання

Послідовне

Паралельне

Завдання 7* Програма обчислює опір електричному ланцюгу, що складається з двох опорів. Опори можуть бути сполучені послідовно або паралельно. Форма програми приведена на рис.1.5. Якщо величина опору ланцюгу перевищує юооОм, результат виводиться в кОм.

Обрамувати

Рис.1.5. Форма програми «Опір електричного ланцюга»

клацання на кнопці Обчислити

Private Sub Convnandi_Click Q

Dim rl, Г2 At Single ' значення опорів

Ri і R2

Dim r KB Single ’ опір ланцюгу Отримання початкових даних

Ri = Val(Texti.Text) гг = Val(Text2.Text)

If (ri = o)And (гг = o) Then

LabeLf.Caption = "Потрібно задати величину хоч би " + _ "одного опору."

Exit Sub End If

Перемикачі "Послідовне з'єднання" і "Паралельне з'єднання" залежні, тому про типа з'єднання можна судити за станом одного з них.

If Optioni.Value = True Then вибраний перемикач Послідовне з'єднання

Г = Г1 + Г2

Else

вибраний перемикач Паралельне з'єднання

Г =(п* Г2)/(Г1 + Г2)

End If

I.abeLf.Caption = "Опір ланцюгу: "

Ifr< іооо Then

Labe I4.Caption = La ЬеІ4- Cap lion + _

Format$(r/ "0.00") + "Ом"

Else

r = r / IOOO Label4.Caption = LabeL%. Caption +__

Format$(r, "0.00")+ " kOm"

End If End Sub

клацання на перемикачі "Послідовне з'єднання"

Private Sub Optioni_Click() користувач змінив типа з'єднання очистимо поле виводу від попереднього обчислення

Label4.Caption = ""

End Sub

клацання на перемикачі "Паралельне з'єднання”

Private Sub Option2_Click()

Label4.Caption = ""

End Sub

Завдання 8. Програма обчислює силу струму, напругу або опір електричному ланцюгу, використовуючи закон Ома. Форма програми приведена на рис.1.6.

ЦП

*■.. Закон Ома

Струм

Напруга

Опір

Напруга (Вольт) Опір (Ом)

Обрахувати

Рис.і.6. Форма програми «Закон Ома»

обчислення струму, напруги або опору Sub CalculateQ Dim I As Single ' струм

Dim U As Single ' напруга

Dim R As Single ' опір

If Optioni.Value = True Then ' струм U = Val(Textl. Text)

R = Val(Text2.Text)

IfR <> o Then I = U / R

Label3.Caption = "Струм: " + Format$(I, "o.oo") + "A"

Else

ЬаЬеїз.Caption = "Опір не має бути "+ "дорівнює нулю." End If Exit Sub End If

If Option2.Value = True Then ' напруга I = Val( Texti.Text)

R = Val(Text2.Text)

U= I * R

Label3.Caption = "Напруга: " + __Format$(U, "o.oo") + ” B" Exit Sub

End If

If Options-Value = True Then ' опір U= Val(Texti. Text)

I = Val(Text2.Text)

If I <> o Then R=U / I

Label3.Caption = "Опір: " +

Format$(R, "o.oo”) + " Ом"

Else

Labels.Caption = "Струм не має дорівнювати нулю. End If End If End Sub

клацання на кнопці Обчислити Private Sub Commandl_Click()

If Text і.Text <> "" And Text2.Text <> ""Then

Calculate

Else

ЬаЬеІз.Caption = "Потрібно ввести початкові дані "у обидва поля."

End If End Sub

вибір перемикача Струм

Private Sub Optionl_ClickQ

Labeli.Caption = "Напруга (Вольт):"

Labehi.Caption = "Опір (Ом):"

Labels.Caption = ""

End Sub

вибір перемикача Напруга

Private Sub Option2_Click()

Labeli.Caption = "Струм (Ампер):"

LabeІ2.Caption = "Опір (Ом):"

Label3.Caption =

End Sub

вибір перемикача Опір

Private Sub Option3_Click()

Labeli.Caption = "Напруга (Вольт):"

Label2 Caption = "Струм (Ампер):"

Labels.Caption = ""

End Sub

натиснення клавіші в полі Напруга/Струм

Private Sub TextUKeyPress(KeyAscii As Integer)

Select Case KeyAscii

Case 48 To 57, 8 ' цифри і <Backspace>

Case 13 ' клавіша <Enter>

Texts,SetFocus Case 44, 46 ' крапка і кома KeyAscii =46 не дозволяє вводити знак коми повторно

IfInStr(Texti.Text, ") про о Then KeyAscii =0 End If Case Else

KeyAscii = о 'решта символів не відображується End Select End Sub

натиснення клавіші в полі Опір/Струм

Private Sub Тexts_ KeyPress(KeyAscii As Integer)

Select Case KeyAscii

Case 48 To 57, 8 ’ цифри і <Backspace>

Case 13 ' клавіша <Enter>

Calculate

Case 44, 46 ' крапка і кома KeyAscii =46 не дозволяє вводити знак коми повторно

IfInStr(Text2.Text, о о Then KeyAscii =0 End If Case Else

KeyAscii = о 'решта символів не відображується End Select End Sub

Завдання 9* Програма обчислює вартість поїздки на автомобілі, наприклад, на дачу. Форма програми приведена на рис.1.7.

Відстань (км)

Ц іна бензину (грв^літр)

Використання бензину [літрів на 1 00км)

Обрахувати

Т уди і назад

Label5

Рис.7-1. Форма програми «Поїздка на дачу»

При ініціалізації форми властивості Tag компонентів Texti, Text2 і Text3 привласнюються відповідне значення і, 2 і 3. Властивість Tag використовується в процедурі KeyPress.

Private Sub Fomr\_Initialixe()

Texti.Tag = 1 ' значення властивості Tag поля Texti

Textz.Tag - 2 ' Tag поля Text2

Texts. Tag =3 ' Tag поля Texts

End Sub

клацання на кнопці Обчислити Private Sub Cammandi_Click()

Dim rast As Single ' відстань

Dim cena As Single ’ ціна

Dim potr As Single ' споживання на іоо km.

Dim summ As Single 1 сума Dim mes As String отримання початкових даних rast = Val(Textl.Text) cena = Val(Text2.Text) potr = Val(Text3.Text)

При читанні даних з полів введення можливий випадок, коли користувач залишить одне з полів введення незаповненим.

If rast = о Or cena = о Or potr = o Then

Labels.Caption = "Дані потрібно ввести у всі поля. "

If Len(Textl.Text) = о Then Texti SetFocus Else

If Len(Text2.Text) = o Then Text2.SetFocus Else Text3.SetFocus End If End If Exit Sub End If

sumn = (rast / 100) *potr *cena mes = "Поїздка на дачу "

If Cheeki.Value = Checked Then summ = summ * 2 mes = mes + "і назад "

End If

mes = mes + Chr(i3) + "обійдеться в " + _

Formats (suiran, "0.00") + "руб."

ЬаЬеЦ. Caption = mes End Sub

Процедура KeyPress обробляє натиснення клавіш в полях Відстань, Ціна і Споживання. Як вхідні параметри цієї процедури використовуються код клавіші KeyAscii і ім’я поля, для якого ця процедура повинна виконатися, що натискує.

Sub KeyPressÇKeyAsdi As Integer, Text As TextBox)

Select Case KeyAscii

Case 48 To 57, 8 ' цифри і <Backspace>

Case 44, 46 ' крапка і кома KeyAscii =46

не дозволяє вводити знак коми повторно IflnStr{Texti.Text, ".”) 00 Then KeyAscii =0 End If

Case 13 ' клавіша <Enter>

Select Case Text.Tag

Case 1 ' клавіша натискає в полі Texti Texts.SetFocus

Case 2 ' клавіша натискає в полі Texts Text3.SetFocus

Case 3 ' клавіша натискає в полі Tetx3 Commandi .SetFocus End Select Case Else

KeyAscii s= о ’решта символів не відображається End Select

End Sub

натиснення клавіші в полі Відстань

Private Sub Texti_KeyPress(KeyAscii A* Integer)

Call KeyPress(KeyAscii, Texti)

End Sub

натиснення клавіші в полі Ціна

Private Sub Texts_keypress(KeyAscii A* Integer)

Call KeyPress(KeyAscii, Text2)

End Sub

натиснення клавіші в полі Споживання

Private Sub Text3_KeyPress (KeyAscii A* Integer)

Call KeyPress(KeyAscii, Text3)

End Sub

Завдання Ю. Програма "Калькулятор" виконує складання і віднімання. Форма програми приведена на рис.1.8. Нижче представлено два варіанти програми. У першому варіанті для кожної цифрової кнопки створена окрема процедура обробки події click. У другому варіанті подію click всіх цифрових кнопок обробляє одна процедура, що дозволило скоротити текст програми.

Базові компоненти 1

Загальні зауваження 1

JË iüLJ 4

клацання на кнопці "Пуск/стоп" 5

Завдання 5. Програма обчислює швидкість (км/год), з якою бігун пробіг дистанцію. Форма програми приведена на рис.1.3. Кількість хвилин задається цілим числом, кількість секунд - дробом. 6

клацання на кнопці Обчислити Private Sub Commandi_Click() 6

обчислення 6

виведення результату 7

натиснення клавіші в полі Дистанція 8

KeyAscii - код символу, відповідного що натискає клавіші. Якщо символ неприпустимий, то процедура замінює його на символ з кодом о. В результаті цього символ в полі редагування не з'являється. 8

при натисненні клавіші <Enter> курсор переводиться у поле Время:мінут 8

натиснення клавіші в полі Час:хвилин 8

натиснення клавіші в полі Час:секунд 8

клацання на кнопці Обчислити 12

клацання на перемикачі "Послідовне з'єднання" 12

клацання на перемикачі "Паралельне з'єднання” 12

Завдання 8. Програма обчислює силу струму, напругу або опір електричному ланцюгу, використовуючи закон Ома. Форма програми приведена на рис.1.6. 14

клацання на кнопці Обчислити Private Sub Commandl_Click() 15

вибір перемикача Струм 15

вибір перемикача Напруга 15

вибір перемикача Опір 15

натиснення клавіші в полі Напруга/Струм 15

натиснення клавіші в полі Опір/Струм 16

Завдання 9* Програма обчислює вартість поїздки на автомобілі, наприклад, на дачу. Форма програми приведена на рис.1.7. 16

При ініціалізації форми властивості Tag компонентів Texti, Text2 і Text3 привласнюються відповідне значення і, 2 і 3. Властивість Tag використовується в процедурі KeyPress. 17

клацання на кнопці Обчислити Private Sub Cammandi_Click() 17

При читанні даних з полів введення можливий випадок, коли користувач залишить одне з полів введення незаповненим. 17

кнопка"2” 14

кнопка"з" 15

кнопка"4" 15

кнопка"5" 15

кнопка"6" 15

кнопка "7" 16

кнопка"8" 16

кнопка"9" 16

кнопка "c" - очищення 16

кнопка"+" 17

кнопка 17

кнопка "=" 17

десяткова крапка "," 17

процедура обробки клацання на кнопках "+" і "=" 19

кнопка"о" 20

кнопка ”i " 20

кнопка"2" 20

кнопка"з" 20

кнопка"4” 20

кнопка"5" 20

кнопка"6" 21

кнопка"7" 21

кнопка"8" 21

кнопка"g" 21

кнопка "c" - очищення 21

кнопка "+" 21

кнопка 21

кнопка "=" 21

десяткова крапка "," 21

ініціалізація форми 22

натиснення клавіші в полі введення цифр 22

Завдання 11. Програма "Електронний годинник", що відображує поточний час. Форма і вікно програми приведені на рис.і.д. 22

ініціалізація форми 22

обробка події Paint 23

обробка сигналу таймера 23

Завдання. 12, Програма "Електронний годинник" відображує поточний час і дату. Форма і вікно профаммьі приведені на рис.і.ю. 23

12.10.2009 23

ініціалізація форми 23

обробка події Paint 24

обробка сигналу таймера 24

Завдання 13. Програма "Електронний годинник" відображує поточний час, дату і день тижня. Форма і вікно програми приведені нарис.і.и. 24

ініціалізація форми 24

налаштування і запуск таймера 25

налаштування полів виводу 26

обробка події Paint 26

обробка сигналу таймера 26

ВВЕВВШ 26

клацання на кнопці "Пуск/стоп" 26

ініціалізація форми 27

обробка сигналу таймера 27

Кнопка Перерахунок доступна тільки в тому випадку, якщо у полі Фунти є дані. Тому наявність інформацїіу полі можна не перевіряти. 30

ініціалізація форми 30

натиснення клавіші в полі Фунти 30

Case 44, 46 ' 44 - код коми, 46 - код крапки якщо в полі Фунти введена кома, то замінимо її на десятковий роздільник 30

дниюрення звуку: 31

клацання на кнопці "Пуск/стоп" 33

If Timerl.Enabled Then таймер працює, потрібно зупинити 33

ініціалізація форми 33

заборона введення даних з клавіатури KeyAscii End Sub 34

заборона введення даних з клавіатури KeyAscii End Sub 34

' о- "виконати” (кнопка "=")

Dim f As Integer

f = о очікування першої цифри нового числа, наприклад, після виконання операції, коли на індикаторі результат, f = і очікування введення решти цифр.

кнопка "о"

Private Sub Commando_Click()

Iff = o Then ' перша цифра числа Texti.Text = "о" f-i' очікування решти цифр Else

Наступна умова потрібна для того, щоб на індикаторі і не з'являлося декількох нулів на початку числа.

If Texti.Text о "о" Then Texti.Text = Texti.Text + "о"

End If End If End Sub

кнопка "i"

Private Sub Commandi.ClickQ

Iff= o Then ' перша цифра числа Texti.Text = "і"

f= і ' очікування решти цифр

Else

У випадку, коли після вибору операції користувач натискав "о", змінною f привласнюється значення і, очікується введення решти цифр числа. Для того, щоб в полі введення не з’являлося чисел, що починається з нуля та є дробами (наприклад "оі"), необхідне виконання наступної умови. IfTexti.Text про "О" Then Texti.Text = Texti.Text + "і"

Else: Texti.Text = "1 ”

End If End If End Sub

кнопка"2”

Private Sub Command2_ClickO Iff= o Then Texti.Text = "2" f=i Else

IfTexti.Text 0 "o" Then Texti.Text = Texti.Text + "2"

Else: Texti.Text = ’’2'’

End If End If End Sub

кнопка"з"

Private Sub Commands Click ()

Iff= o Then Texti.Text = "3"

f=*

Else

If Texti.Text 0 "o"Then Texti.Text = Texti.Text + "3"

Else: Texti.Text = "3”

End If End if End Sub

кнопка"4"

Private Sub Command4_Click()

Iff = o Then Texti.Text = "4"

/=1

Else

IfTexti.Text <> "o” Then

Texti.Text = Texti.Text + "4" Else: Texti.Text = "4"

End If End If End Sub

кнопка"5"

Private Sub Commands Click!) Iff= О Then Texti.Text = "5" f=i Else

If Texti.Text <> "o " Then Texti.Text = Texti.Text + "5" Else: Texti.Text = "5"

End If End If End Sub

кнопка"6"

Private Sub Command6__ClickO Iff = о Then Texti.Text = "6" f=i

Else

If Texti.Text <> "o" Then Texti.Text = Texti.Text + "6" Else: Texti.Text = "6"

End If End If End Sub

кнопка "7"

Private Sub Command7_Click()

Iff - о Then Texti.Text = "7" f=i Else

If Texti.Text < > "o " Then Texti.Text = Texti.Text + "7" Else: Texti.Text = ”7"

End If End If End Sub

кнопка"8"

Private Sub Command8_Click()

Iff = о Then

Texti.Text = "8"

f=i

Else

IfTexti.Text <> "o " Then Texti.Text = Texti.Text + "8”

Else: Texti.Text = "8"

End If End If End Sub

кнопка"9"

Private Sub Commandg__Click()

Iff= o Then Texti.Text = "9"

f=i

Else

If Texti.Text 0 "o" Then Texti.Text = Texti.Text + "9"

Else: Texti.Text = "9"

End If End If End Sub

кнопка "c" - очищення

Private Sub CommandC_Click ()

Texti.Text = "o" accum =0 oper=0

f- o' очікування першої цифри числа End Sub

кнопка"+"

Private Sub CommandPlus_Click()

При натисненні на кнопку "+ " потрібне: виконати попередню операцію, вивести результат на індикатор, запам'ятати поточну операцію і встановити режим очікування першої цифри нового числа.

Iff= о Then

користувач клацнув мишею по кнопці операції, але поле введення знаходиться в очікуванні введення першої цифри числа орег = і 'запам'ятовування операції Else

на індикаторі є число, користувач клацнув мишею по кнопці операції DoOper орег = і f=o End If End Sub

кнопка

Private Sub CommandMinus_Click()

дивитеся коментар до процедури обробки події Click на кнопці "+ "

Iff = о Then

ррег = 2 ' запам'ятовування операції Else

DoOper ' виконання попередньої операції орег = 2 ' запам'ятовування поточної операції /= о' очікування першої цифри нового числа End If End Sub

кнопка "="

Private Sub CommandEnter__Click()

IfJ = o Then oper = o Else DoOper oper - o f= o"

End End Sub

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]