Алгоритм подсчета суммы элементов
End If
Else
операторы3
Примеры:
1. With UserForm1
Фамилия=.TextBox1.Text
If Фамилия =”“ Then MsgBox”Вы не ввели фамилию”
End with
2. REM При установленном флажке номер 1 клиенту ‘предоставляется скидка 5%
‘ Сумма – количество денег, выплачиваемых клиентом
‘ Стоимость товара хранится в переменной Стоимость
If UserForm1.CheckBox1.Value = True Then
Сумма=Стоимость-Стоимость*0.05
Else Cумма=Стоимость
End If
3. REM Предположим, что Тариф – это установленный тариф, а Время ‘–отработанное время. Время и тариф вводятся в поля ввода ‘соответственно вTextBox1 и TextBox2. Зарплата рассчитывается по ‘формуле Тариф*Время. Напишем программу для вывода в форму ‘рассчитанной зарплаты. Label4 – надпись, подготовленная для ‘вывода значения зарплаты
If IsNumeric(TextBox1.Text)=True And _
IsNumeric(TextBox2.Text)=True Then
Тариф=TextBox1.Text
Время=TextBox2.Text
Label4.Caption=Тариф*Время
End If
В первом примере работа ведется с пользовательской формой номер один. Переменной Фамилия присваивается содержимое поля ввода номер один. Затем осуществляется проверка, было ли что-либо введено в поле ввода (не пуста ли переменная Фамилия). Если переменная Фамилия пуста, то на экран выводится окно сообщения.
Во втором примере – первые строки, начинающиеся со слова REM и апострофов, – это комментарии, объясняющие назначения переменных. С помощью условного оператора определяется сумма, выплачиваемая клиентом.
В третьем примере осуществляется проверка того, введены ли в поля ввода числа. Если в два поля введены числа, то переменным присваиваются значения полей ввода и надписи присваивается значение результата умножения тарифа на время.
5. Оператор безусловного перехода GoToпредназначен для задания перехода на указанную строку внутри программы.
Синтаксис:
GoTo Строка
Обязательный аргумент Строка может быть любой меткой строки или номером строки.
Пример:
If IsNumeric(TextBox1.Text)=False Then GoTo Ошибка
......
Ошибка: MsgBox “Ошибка при вводе чисел!”
В приведенном примере выполняется проверка того, введено ли число в поле ввода номер один. Если введено не число, то осуществляется переход на строку с меткой Ошибка и на экран выводится сообщение.
6. Оператор цикла For/To/Nextпредназначен для программирования повторяющихся фрагментов, т.е. для описания циклических алгоритмов.
Синтаксис:
For переменная=M1 To M2 [Step M3]
операторы
Next
M1, M2, M3 – выражения. Оператор цикла повторяет выполнение группы операторов, пока переменная (счетчик) изменяется от начального значения М1 до конечного М2 с указанным шагом М3. Если шаг не указан, то он полагается равным 1.
Пример:
For I=2 To 10
Фамилия = Sheets(“Сотрудники”).Cells(I,1)
UserForm1.ComboBox1.AddItem Фамилия
Next
В приведенном примере предполагается, что на листе «Cотрудники» в первом столбце записаны фамилии сотрудников, которые нужно внести в список поля со списком номер один пользовательской формы номер один. Алгоритм работы программы:
1. Переменной I присваивается значение 2.
2. Переменной Фамилия присваивается значение ячейки А(I,1), расположенной на листе «Сотрудники». (При первом выполнении цикла это ячейка А(2,1))
3. В список поля со списком ComboBox1 добавляется элемент из переменной Фамилия.
4. К значению переменной I добавляется 1 (если шаг не указан, то он полагается равным 1). Выполняется проверка, не превысила ли величина I 10 (конечного значения переменной I, в примере М3=10)? Если величина I еще меньше или равна 10, то выполняются пункты 2-4, в противном случае работа цикла заканчивается.
Таким образом, приведенная программа позволяет заполнить данными список поля со списком ComboBox1.
Основные алгоритмы, используемые при решении
экономических задач
Основные алгоритмы рассмотрим на следующем примере. В выполнении работы по договору участвовали сотрудники разных отделов. В таблице, на листе «Лист1» представлены данные о количестве отработанных часов каждым из сотрудников (рис.8).
![]() |
Рис.8.Данные о количестве отработанных часов
сотрудниками фирмы
Например, для данных, представленных в заданной таблице, подсчитаем общее количество отработанных часов.
Рассмотрим таблицу. Данные о количестве отработанных часов записаны в четвертом столбце, начиная со второй строки. В заданной таблице всего семь строк, а в общем случае количество строк может быть любым. Словесное описание обобщенного алгоритма:
1) определим количество складываемых значений;
2)к первому значению (20) добавляем следующее значение (30);
к полученной сумме прибавляем следующее значение (10) и так далее, пока не достигнем последнего значения (25). Таким образом, мы получим требуемую сумму.
Программное описание алгоритма
Rem определяем количество заполненных ячеек на листе «Лист1» в ‘диапазоне D:D, результат сохраняем в переменной N
N=Application.CountA(Sheets(“Лист1”).Range(“D:D”))
‘открываем цикл со счетчиком I, изменяющимся от 2 до N, шаг 1,
‘ счетчику I присваивается значение 2.
For I=2 to N
‘добавляем к имеющейся сумме (S) значение элемента, расположен-‘ного в I-й строке и 4-м столбце, результат сохраняем в переменной S.
S=S+Cells(I,4)
‘ закрываем цикл, к счетчику добавляется шаг (у нас 1), проверяется, ‘не превышено ли конечное значение счетчика, если не превышено,
‘к сумме добавляется значение очередного элемента, если превышено, ‘выполняется оператор, записанный после инструкции Next.