Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР3.doc
Скачиваний:
3
Добавлен:
31.08.2019
Размер:
367.62 Кб
Скачать

Лабораторная работа № 3

Тема: Программирование циклических алгоритмов на Visual Basic. Работа на VBA со статическими и динамическими массивами. Использование элементов управления на рабочем листе. (6 часов)

 

Цель работы: Приобрести навыки программирования циклических алгоритмов, а также использование процедур и функций по обработке массивов.

 

Содержание:

1. Оператор цикла с параметром (For…Next) 1

2. Циклы с предусловием и постусловием 2

3. Понятие массива и способы его объявления 5

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

Пример 1. Ввод/вывод элементов одномерного массива с помощью функций InputBox(), MsgBox() 6

Пример 2. Заполнение массива с помощью генератора случайных чисел 6

Пример 3. Поиск максимального (минимального) элемента (индекса) массива. 6

Пример 4. Сортировка элементов массива (методом выбора) 7

3.2 Типовые алгоритмы обработки двумерного массива 8

Пример 5. Определить сумму и количество положительных элементов в массиве целых чисел. 8

Схемы для обращения к элементам на главной (побочной) диагоналях 9

3.3 Типовые алгоритмы обработки динамического массива 9

4. Размещение элемента управления на рабочем листе ms Excel 9

Порядок выполнения работы: 10

Контрольные вопросы: 12

 

1. Оператор цикла с параметром (For…Next)

Оператор цикла For позволяет повторять группу операторов фиксированное количество раз.

Синтаксис:

For <счётчик_цикла> = <начало> To <конец> [Step <шаг>]

<тело цикла>

[Exit For]

. . .

Next [<счётчик_цикла>],

где

<счётчик_цикла> – числовая переменная;

<начало> – начальное значение (выражение) переменной <счётчик_цикла>;

<конец> заключительное значение (выражение) переменной <счётчик_цикла>;

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

Порядок выполнения: переменной <счётчик_цикла> присваивается значение <начало> и проверяется условие: <начало> £ <конец>; если условие неверно, то <тело цикла> не выполняется и управление передается на оператор, следующий за Next. Если же условие выполняется, то выполняется <тело цикла>, затем значение <счётчик_цикла> изменяется на значение <шаг> (увеличится в случае положительного значения <шаг> и уменьшается при отрицательном значении <шаг>). Данный процесс будет выполняться, пока значение <счётчик_цикла> не достигнет значения <конец> (если шаг положителен, цикл завершится, когда впервые выполнится условие: <счетчик_цикла> <конец>. Если шаг цикла отрицателен, условие его завершения: <счетчик_цикла> <конец>).

Досрочно завершить цикл For…Next можно и с помощью оператора Exit For. Такие операторы могут быть расположены в тех местах тела цикла, где требуется из него выйти, не дожидаясь выполнения условия завершения.

Изображение в блок-схемах:

Пример 3.3. Вычислить n-й член последовательности, заданной формулой , если .

Public Sub prog3()

Dim n As Byte

Dim an As Integer,

a1 As Integer,

a2 As Integer

n=CByte(InputBox("n ="))

 

 

 

a1 = 1: a2 = 1

 

 

 

For i = 3 To n

 

an = a1 + a2

a1 = a2: a2 = an

 

Next i

MsgBox an

 

End Sub

 

Описание переменной типа Byte

 

 

 

Ввод значения переменной n (номера элемента последовательности) через окно ввода и преобразование введенного значения к типу Byte

Присваивание начальных значений переменным а1 и а2 (двоеточием разделяются операторы, записанные на одной строке)

Организация цикла For…Next, в котором счетчик i изменяется от 3 до n с шагом 1

Вычисление следующего члена последовательности как сумму двух предыдущих членов последовательности

Изменение последнего и предпоследнего значений последовательности на данный момент

Увеличение счетчика на 1 (конец тела цикла)

Вывод значения an