Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodicheskie_ukazania_Informatika_2s.doc
Скачиваний:
6
Добавлен:
25.09.2019
Размер:
17.08 Mб
Скачать

3.7 Массивы и типовые алгоритмы их обработки.

Программирование алгоритмов циклической структуры с заданным числом повторений.

Инструкция цикла For - Next

В случаях, когда заранее известно число повторений некоторого процесса, пользуются инструкцией цикла с параметром. Формат записи этой инструкции следующий:

For <параметр цикла> = <S1> To <S2> [Step <S3>]

<Инструкции>

Next <параметр цикла>

где For … Next– заголовок цикла;

< параметр цикла> - числовая переменная, определяемая в заголовке цикла;

<инструкции> - тело цикла;

S1 и S2 – выражения, определяющие начальное и конечное значения параметра цикла;

S3 – выражение, определяющее шаг приращения значения выражения S1 до значения S2. При S3>0, должно выполняться условие, что S1<=S2, в случае, если S3<0 – S1>=S2 . Выражение S3 является необязательным параметром инструкции FOR, поэтому при его отсутствии шаг принимает значение +1.

Пример 1. Инструкция выводит в одной строке цифры от 1 до 10.

S=””

For I=1 To 10

S=S+Str (I)+” ”

Next I

MsgBox S & ” Цифры от 1 до 10”

Работа инструкции For осуществляется таким образом, что тело цикла выполняется последовательно с каждым значением параметра цикла от начального до конечного.

Когда значение параметра цикла превзойдет конечное значение <S2>, цикл завершится и будет выполняться инструкция, следующая за конструкцией For.

Пример 2. Фрагмент программы с инструкциями For для определения суммы квадратов значений от 0 до 2 с шагом 0,5 и MsgBox для вывода на экран этого значения.

K=0

For x=0 To 2 Step 0.5

K=K+x^2

Next X

MSGBOX “сумма квадратов значений от 0 до 2 с шагом 0,5 К = ”& К

Инструкция цикла For - EachNext

Формат записи:

For Each Элемент In Группа

[Инструкции]

[Exit For ]

[Инструкции]

Next [Элемент]

Повторяет выполнение группы инструкций для каждого элемента массива (или семейства, лаб. работа 15).

Массивы

Понятие массива и его описание

Часто возникает необходимость решения задачи с большим, но конечным числом однотипных упорядоченных данных. Удобно описывать такой упорядоченный набор перенумерованных компонент одним идентификатором (именем). Для этого в языке VBA предусмотрен отдельный тип данных, называемый массивом. Массив – это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип. Тогда для указания той или иной компоненты можно использовать имя массива и порядковый номер нужной компоненты в этом массиве. Этот номер называется индексом массива.

Таким образом, для задания массива необходимо указать тип элементов массива и их количество. Тип элементов массива называется базовым.

Формат описания массива следующий:

Dim <идентификатор> ([<нижняя граница TO>] <верхняя граница>) As <тип>

где <идентификатор> - имя массива;

<нижняя граница индекса> - необязательный параметр, предназначенный для определения индекса первого элемента массива.

<верхняя граница индекса> - индекс последнего элемента массива. При использовании массивов не следует забывать, что в VBA индексирование по умолчанию начинается с нуля, т.е. индекс 0 обозначает первый элемент массива, индекс 1 – второй и т.д. Если есть необходимость изменить базу индекса, то в начале листа модуля записывают инструкцию Option Base 1или другой способ изменения базы – использование слова To при объявлении массивов,

Пример3.

Описание одномерного массива, состоящего из 10 вещественных чисел

Dim A(9) As Single

Описание одномерного массива, состоящего из 5 элементов целых значений

Dim A(1 TO 5) As Byte

Иногда в процессе выполнения программы требуется изменить размер массива. В этом случае первоначально массив объявляют как динамический. Для этого при объявлении массива не указывают его размерность, например:

В программе следует вычислить необходимый размер массива и связать его с некоторой переменной m, затем изменить размер массива с помощью ReDim.

Пример 4.

Dim C() As Single

m=InputBox(“Ввести конечное число элементов массива”,”Ввод _ числа”)

ReDim C(m)

Действия над элементами массивами

После объявления массивов в разделе описания можно обработать каждый элемент массива в исполняемой части программы, указав имя массива и индекс элемента в круглых скобках. Например, второй элемент одномерного массива с именем A записывается как A(2).

Индексированные элементы массива являются переменными базового типа и могут быть использованы так же, как простые переменные. В частности, им можно присваивать любые значения, соответствующие их типу.

Обработка элементов массива, как правило, производят в цикле For таким образом, чтобы параметр (индекс) цикла использовался для индексирования массива. По мере изменения индекса от нижней границы до верхней, обрабатываются один за другим все элементы массива.

Типовые алгоритмы обработки массивов

Рассмотрим основные действия над массивами и их элементами на примере следующих массивов.

Dim A(10) As Single, D(10) As Single

Dim I As Integer, J As Integer, K As Integer,VS As Single

Обнуление массива

For I=0 To 10

A(I)=0

Next I

Ввод-вывод массива

Ввод массива

For I=0 To 10”

A(I)=InputBox (“I=“+STR(I),” Ввод значений массива A”)

Next I

Вывод массива

S=””

For I=1 To 10

S=S & A(I) & ” ”

Next I

MsgBox S,,”Массив A из 10 элементов”

Копирование массива

For I=0 To 10

D(I)=A(I)

Next I

Поиск в массиве по условию

Поиск всегда осуществляется с использованием дополнительной переменной. Пусть требуется определить К - количество нулевых и N – количество отрицательных элементов массива A. Фрагмент программы будет иметь следующий вид.

K=0

N=0

For I=0 To 10

IF A(I)=0 Then

K=K+1

ElseIf A(I)<0 THEN

N=N+1

End If

Next I

Перестановка

Перестановка значений массива осуществляется с помощью дополнительной переменной того же типа, что и базовый тип массива.

Пусть требуется поменять местами значения двух соседних элементов массива A, тогда соответствующий фрагмент программы с использованием промежуточной переменной X:

X=A(i): A(i)= A(i+1): A(i+1)=X

Типовые алгоритмы нахождения суммы и произведения в одномерном массиве представлены структурными схемами на рис. 7, а) и б).

Рис.7. Структурные схемы нахождения суммы а) и произведения б) элементов одномерного массива.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]