
- •Выполнение задания:
- •2. Создание и использование макросов
- •1) Панель инструментов пользователя с двумя кнопками
- •2) Кнопки на рабочем листе
- •3) Меню пользователя с двумя командами
- •4) Графические объекты
- •3. Программирование линейных алгоритмов
- •Графическая схема алгоритма
- •Текст основного модуля Module1
- •Текст формы UserForm1
- •Результаты тестов
- •4. Программирование разветвляющихся алгоритмов
- •Графическая схема алгоритма
- •Текст основного модуля Module1
- •Результаты тестов
- •Графическая схема алгоритма
- •Текст основного модуля Module1
- •Результаты тестов
Графическая схема алгоритма
Таблица соответствия переменных
Имя в задаче |
Имя в программе |
Тип |
Назначение |
N |
N |
Double |
полный объем реализации продукции, руб. |
NT |
Nt |
Double |
реализация товарной продукции за отчетный период, руб. |
NO |
No |
Double |
остатки отгруженной продукции, руб. |
NS |
Ns |
Double |
остатки готовой продукции на складе, руб. |
NP |
Np |
Double |
уровень товарной продукции за отчетный период в полном объеме реализации продукции |
- |
U |
String |
текстовое сообщение об уровне |
Текст основного модуля Module1
Option Explicit
Dim Nt As Double
Dim No As Double
Dim Ns As Double
Dim N As Double
Dim Np As Double
Dim U As String
Sub Macros_InputBox()
'ввод исходных данных
Nt = InputBox("Введите Nt")
No = InputBox("Введите No")
Ns = InputBox("Введите Ns")
'расчеты
Call calculates
'вывод результатов
MsgBox "Результаты расчетов: " & Chr(13) & "N=" & CStr(N) _
& Chr(13) & "Np=" & Np & Chr(13) & "Уровень: " & U, vbExclamation
End Sub
Sub Macros_Cells()
'ввод исходных данных
Nt = Cells(2, 2)
No = Cells(3, 2)
Ns = Cells(4, 2)
'расчеты
Call calculates
'вывод значений переменных
Cells(6, 1) = "Результаты расчетов:"
Cells(7, 1) = "N ="
Cells(7, 2) = N
Cells(8, 1) = "Np ="
Cells(8, 2) = Np
Cells(9, 1) = "Уровень"
Cells(9, 2) = U
End Sub
Private Sub calculates()
N = Nt + No + Ns
Np = Nt / N
If Np > 0.85 Then
U = "Высокий"
ElseIf Np >= 0.7 Then
U = "Средний"
Else
U = "Низкий"
End If
End Sub
Результаты тестов
Исходные данные к задаче № 2:
Определить месячную сумму оплаты за проживание в общежитии, где есть двухместные, трехместные и четырехместные комнаты. Студенты из сельской местности оплачивают 50% от тарифа. Тариф оплаты за проживание в двухместной и трехместной комнате составляет 1,8 и 1,5 соответственно от тарифа проживания в четырехместной комнате.
Графическая схема алгоритма
Таблица соответствия переменных
Имя в задаче |
Имя в программе |
Тип |
Назначение |
- |
T |
Double |
тариф за проживание в 4-местой комнате |
- |
Selo |
Integer |
студент из сельской местности: Selo = 1 - студент из сельской местности, Selo ≠ 1 - нет; |
- |
N |
Integer |
количество мест в комнате |
- |
S |
Double |
месячная сумма оплаты за общежитие |
Текст основного модуля Module1
Option Explicit
Dim T As Double
Dim Selo As Integer
Dim N As Integer
Dim S As Double
Sub Macros_InputBox()
'ввод исходных данных
T = InputBox("Введите тариф за проживание в 4-местной комнате")
Selo = InputBox("Введите 1 если студент из села, 0 если из города")
N = InputBox("Введите количество мест в комнате")
'расчеты
Call calculates
'вывод результатов
MsgBox "Результаты расчетов: " & Chr(13) & _
"Месячная сумма оплаты за общежитие = " & CStr(S)
End Sub
Sub Macros_Cells()
'ввод исходных данных
T = Cells(2, 2)
Selo = Cells(3, 2)
N = Cells(4, 2)
'расчеты
Call calculates
'вывод значений переменных
Cells(6, 1) = "Результаты расчетов:"
Cells(7, 1) = "Месячная сумма оплаты за общежитие"
Cells(7, 2) = S
End Sub
Private Sub calculates()
Select Case N
Case 4
S = T
Case 3
S = 1.5 * T
Case 2
S = 1.8 * T
Case Else
S = T
End Select
If Selo = 1 Then
S = 0.5 * S
End If
End Sub