
- •Кафедра КиВт методические указания
- •1.1 Цель работы: Изучение методов создания функций пользователя в excel с использованием Visual Basic for Application (vba).
- •1.2 Теоретические сведения
- •1.3 Задание к работе
- •1.4 Методика выполнения задания
- •Содержание отчета
- •1.6 Задания для самостоятельной работы
- •2. Лабораторная работа № 2. Создание программ на vba с помощью макрорекордера
- •Теоретические сведения
- •Подготовка к записи макроса
- •Запись макроса, остановка записи.
- •Анализ процедуры.
- •Задание к работе.
- •Содержание отчета.
- •3. Лабораторная работа № 3. Интегрированная среда разработки (vba)
- •3.2 Краткие теоретические сведения
- •3.2.1 Общий вид интегрированной среды разработки на Visual Basic for Applications.
- •3.2.2 Панель элементов
- •3.2.3 Окно Project Explorer.
- •3.2.4 Окно Свойства (Properties)
- •3.2.5 Окно Просмотр объектов (Object Browser)
- •4. Лабораторная работа № 4. Программирование алгоритмов линейной структуры
- •4.2 Краткие теоретические сведения
- •4.2.1 Оператор присвоения
- •4.2.2 Функции преобразования форматов
- •4.2.3 Встроенные диалоговые окна
- •4.3 Задание к работе
- •4.4 Методика выполнения задания
- •4.5 Пример выполнения задания
- •Содержание отчета.
- •5. Лабораторная работа № 5. Программирование алгоритмов разветвляющейся структуры
- •5.2 Краткие теоретические сведения
- •5.3 Методика выполнения задания
- •5.4 Пример выполнения задания
- •Содержание отчета.
- •6. Лабораторная работа № 6. Программирование алгоритмов циклической структуры
- •6.2 Теоретические сведения.
- •Задание к работе.
- •Методика выполнения задания
- •Пример выполнения задания
- •Содержание отчета.
- •7. Лабораторная работа № 7. Обработка одномерных массивов
- •7.2 Теоретические сведения. Массивы
- •Динамические массивы
- •7.3 Задание к работе
- •7.4 Методика выполнения задания
- •7.5 Пример выполнения задания
- •7.6 Содержание отчета.
- •8. Лабораторная работа № 8. Обработка двумерных массивов (матриц)
- •8.2 Теоретические сведения.
- •8.3 Задание к работе.
- •8.4 Методика выполнения задания
- •8.5 Пример выполнения задания
- •8.6 Содержание отчета.
- •9. Лабораторная работа № 9. Программирование алгоритмов циклической структуры c использованием оператора цикла do
- •9.1 Цель работы: изучение методов алгоритмизации и программирования алгоритмов циклической структуры c использованием оператора цикла do
- •9.2 Теоретические сведения.
- •9.3 Задание к работе.
- •9.4 Методика выполнения задания
- •9.5 Пример выполнения задания
- •9.6 Содержание отчета.
9. Лабораторная работа № 9. Программирование алгоритмов циклической структуры c использованием оператора цикла do
9.1 Цель работы: изучение методов алгоритмизации и программирования алгоритмов циклической структуры c использованием оператора цикла do
9.2 Теоретические сведения.
Цикл Do…Loop
Повторяет блок операторов, пока заданное условие является истинным или пока оно не станет истинным.
Имеется четыре варианта синтаксиса этого цикла. В двух первых вариантах условие проверяется в начале цикла:
Do [{While | Until} условие]
тело цикла
Loop
В других вариантах условие проверяется в конце цикла:
Do
тело цикла
Loop [{While | Until} условие]
Здесь условие является числовым или строковым выражением со значениями True или False. Вообще, оно необязательно. Значение Null условия трактуется как False. Тело цикла – это последовательность операторов, которая будет выполняться, пока условие остается истинным, если перед ним стоит ключевое слово While, или пока оно остается ложным – в в варианте цикла с ключевым словом Until. Таким образом, циклы вида While условие эквивалентны циклам вида Until Not условие. Кроме того, в тело цикла может входить оператор Exit Do, выполнение которого сразу прекращает цикл и передает управление оператору, непосредственно следующему за Loop. В случае нескольких вложенных циклов Do…Loop оператор Exit Do завершает лишь самый внутренний цикл, в теле которого он расположен.
Пример.
В данном примере реализованы три варианта поиска по образцу с проверкой условия в начале цикла, в конце цикла, и в середине цикла для варианта поиска по образцу с барьером:
Public Sub Loop1()
Const Size = 5
Dim X() As Integer
Dim i As Integer
Dim Found As Boolean
Const pat = 7
‘Инициализация случайными числами в интервале [1-10]
ReDim X(1 To Size)
Randomize
For 1 = 1 To Size
X(i) = Int(11*Rnd)
Next i
‘Поиск по образцу с проверкой в начале цикла
i = 1: Found = False
Do While (i<=Size) And (Not Found)
If X(i) = pat Then
Found = True
Else: i=i+1
End If
Loop
If Found Then
MsgBox “Найден образец!”
Else: MsgBox “Образец не найден!”
End If
‘Поиск по образцу с проверкой в конце цикла
i = 1: Found = False
Do
If X(i) = pat Then
Found = True
Else: i=i+1
End If
Loop Until Found 0r (i=Size+1)
If Found Then
MsgBox “Найден образец!”
Else: MsgBox “Образец не найден!”
‘Поиск с барьером
ReDim Preserve X(1 To Size+1)
X(Size+1)=pat
i=1
Do
If X(i) = pat Then Exit Do
i=i+1
Loop
If i=Size+1 Then
MsgBox “Образец не найден!”
Else: MsgBox “ Образец найден!”
End If
End Sub
9.3 Задание к работе.
Вычислить таблицу значений функции для значений х в интервале от хн до хк с шагом ∆х. c использованием оператора цикла DO . Варианты заданий приведены в таблице 9.1. организовать вывод значения аргумента и вычисленного значения функции в виде таблицы.
Таблица 9.1. Таблица функции у(х).
Варианты задания |
Расчетные формулы |
Исходные данные |
||||
а |
b |
хн |
хк |
∆х |
||
|
y=arctg bx/(1+sin2x) |
- |
0,75 |
1,35 |
6,5 |
0,8 |
|
|
19,6 |
7,6 |
14,6 |
34,8 |
6 |
|
|
1,38 |
-1,26 |
60 |
100 |
10 |
|
|
- |
1,68 |
1,2 |
2,4 |
0,2 |
|
|
0,36 |
5,5 |
10 |
50 |
6 |
|
|
0,9 |
1,85 |
0 |
1,2 |
0,15 |
|
|
1,24 |
0,67 |
10,2 |
12,4 |
0,45 |
|
|
2,8 |
0,45 |
40 |
60 |
4,5 |
|
|
20,2 |
7,65 |
3,5 |
4 |
0,1 |
|
|
4,6 |
2,5 |
0,75 |
1,8 |
0,3 |
|
|
0,55 |
0,78 |
4,2 |
5,8 |
0,25 |
|
|
7,83 |
0,3 |
9 |
12 |
0,35 |
|
|
0,28 |
1,35 |
1,2 |
7,5 |
0,5 |
|
|
0,9 |
0,66 |
2,3 |
8,9 |
1,3 |
|
|
0,85 |
- |
17,2 |
24,6 |
2 |
|
|
1,16 |
- |
0,25 |
1,28 |
0,33 |
|
|
0,4 |
10,8 |
0,84 |
1,25 |
0,15 |
|
|
1,28 |
0,03 |
12,6 |
34,9 |
7,6 |
|
|
0,25 |
0,68 |
11,6 |
15,8 |
0,6 |
|
|
1,6 |
1,24 |
0,2 |
1,4 |
0,35 |
|
|
1,8 |
0,34 |
6,44 |
9,1 |
0,25 |
|
|
0,44 |
2,28 |
6,5 |
7,3 |
0,12 |
|
|
3,2 |
0,45 |
0,6 |
1,5 |
0,2 |
|
|
17,5 |
10,45 |
1,9 |
3,8 |
0,3 |
|
|
8,24 |
- |
14,9 |
24,8 |
1,5 |