Макросы в виде блок-схемы
Автор: Filiska • Февраль 11, 2018 • Контрольная работа • 579 Слов (3 Страниц) • 978 Просмотры
Санкт-Петербургский политехнический университет Петра Великого
Институт промышленного менеджмента, экономики и торговли
Отчет по контрольной работе
по дисциплине «Информационные системы и технологии»
Студентка гр. 137331/0003 Филиппова А.В.
Преподаватель доцент, к.т.н. Щукин А.В.
Санкт-Петербург
2017
Постановка задачи
Необходимо написать макрос для расчета суммы премии водителям грузовых автомобилей, у которых количество штрафов за последние пять лет ниже среднего по предприятию. Для расчёта суммы премии необходимо пересчитать значения в столбце с количеством штрафов, заменив их на разность между средним значением по диапазону и текущим значением в ячейке, умноженную на 10000. Если разность отрицательна, в ячейку записывается 0. Макрос должен применяться к выделенному диапазону и выполняться по выбранной комбинации клавиш.
Разработанный алгоритм
Описание алгоритма макроса в виде блок-схемы или на псевдокоде. Желательны комментарии.
START
[pic 1]
[pic 2]
Ввод данных
[pic 3]
[pic 4]
Расчет среднего значения
[pic 5]
Присваивание счетчику[pic 6]
цикла начального значения
[pic 7]
[pic 8]
FALSE
Проверка условия [pic 9][pic 10][pic 11][pic 12]
TRUE |
продолжения/ [pic 13]
окончания цикла[pic 14][pic 15]
FALSE[pic 16]
Проверка условия [pic 17]
TRUE |
по заданным [pic 18]
параметрам[pic 19]
[pic 20]
Расчет искомого
значения по[pic 21][pic 22]
заданной формуле[pic 23]
Переход к след. шагу[pic 24][pic 25][pic 26]
END
Текст макроса
Sub Makros1()
Dim Rng As Range, r As Integer, k As Long
Dim SumKOL As Integer, AvKOL As Double, Delta As Double
' Сочетание клавиш: Ctrl+t
Set Rng = Selection 'выделенный диапазон
k = Rng.Cells.Rows.Count 'число строк в диапазоне
AvKOL = WorksheetFunction.Average(Rng)
'Rng.Cells(r, 2) – в диапазоне выделили одну колонку, соседняя с диапазоном колонка будет 1+1=2
For r = 1 To k
Delta = AvKOL - Rng.Cells(r, 1)
...