Алгоритм подсчета суммы элементов

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.