Краткое описание инструмента и ремесла программирования. Степанов А.Г - 38 стр.

UptoLike

38
Dim ZZ(3,10) As Single
Объявляется двумерный массив ZZ типа Single, первый индекс которого меняется
в диапазоне от 0 до 3, а второй в диапазоне от 0 до 10.
Dim SS(-3 To 3,1 To 10) As Integer
Переопределение базовых индексов с помощью явного указания нижних и
верхних границ номеров элементов массива с использованием ключевого слова
To.
Для обращения к ячейке памяти или элементу массива достаточно в
тексте программы использовать соответствующий идентификатор (в случае
массива с номером элемента, указанным в скобках). Важной особенностью
систем программирования является то обстоятельство, что в качестве номера
элемента массива может выступать не только константа, но и другая
переменная, заданная своим идентификатором. Заметим, что недостатком
рассмотренного приема является относительно высокая вероятность
возникновения ошибки программирования связанной с выходом индекса
(номера элемента) за границы массива. Программная среда VBA автоматически
локализует такую ситуацию, выдавая соответствующее диагностическое
сообщение.
Пример 2.7. Обращение к элементу массива в тексте программы с явным
указанием номеров элементов: SS(-2,5).
Если переменная Name содержит число –2, а ячейка Переменная число 5, то
обращение SS(Name, Переменная) полностью эквивалентно предыдущему.
Если в процессе предыдущих вычислений переменная Name примет значение –4,
а мы попытаемся выполнить SS(Name, Переменная), то произойдет обращение к
несуществующему элементу
массива и возникнет ошибка выхода индекса за
границы массива.
Массивы удобно использовать при программировании однотипных
действий с ячейками памяти. В качестве примера рассмотрим задачу расчета
начисления заработной платы (табл. 2.2). Первая колонка представляет собой
список сотрудников, которым начисляется заработная плата. Во второй колонке
задаются исходные ставки. Третья колонка содержит результаты вычисления
подоходного налога по ставке 12%. Четвертая колонка представляет собой
разницу между содержимым второй и третьей колонок. Поскольку исходные
данные и результаты промежуточных вычислений должны храниться в памяти
ЭВМ, в процессе программирования решения задачи на VBA приходится
использовать идентификаторы. Заметим, что обычный идентификатор в этом
случае не очень удобен. Действительно, хотя возможно введение в текст
программы обычной переменной вида Налог_Трофимова_Л_А, создаваемая
программа может быть в этом случае использована только для расчетов налога,
уплачиваемого именно Л.А. Трофимовой. Если мы хотим запрограммировать
вычисления для другого лица, то нам придется вводить другой идентификатор.
Подобные действия ведут к изменению текста исходной программы и крайне
нежелательны на практике. Конечно, мы можем ввести идентификаторы
обычных переменных вида Налог_запись_2, однако и в этом случае мы должны
будем индивидуально описать последовательность манипуляций с ячейками
памяти для каждого сотрудника, включенного в список. Для нашего примера это
вполне возможно, но реальный список может состоять, например, из 100
фамилий.
Таблица 2.2. Пример задачи расчета начисления заработной платы
Фамилия, И.О. Начислено Налог К выдаче