- •Visual Basic for Applications
- •1. Основы языка программирования Visual Basic 5
- •1. Основы языка программированияVisualBasic
- •1.1. Общие сведения оVisualBasic
- •1.2. Среда vb, инструментальные средства. Разработка проектов
- •1.3. Типы данных. Константы и переменные
- •1.4. Операции
- •1.5. Ввод и вывод данных
- •1.6. Управляющие операторы
- •1.7. Массивы
- •1.8. Примеры программ работы с числами
- •1.9. Обработка строк. Примеры
- •1.10. Математические вычисления. Другие операторы и функции
- •1.11. Процедуры и функции. Примеры
- •1.12. Работа с файлами
- •2. ОсновыVba
- •3. Практические задания
- •3.1. Практическое задание №1. Знакомство сVba
- •3.2. Практическое задание №2. Линейное программирование
- •3.3. Практическое занятие №3. Программирование ветвлений
- •3.4. Практическая работа №4. Программирование повторений
- •3.5. Практическая работа №5. Работа с массивами
- •3.6. Практическая работа №6. Процедуры и функции
- •3.7. Практическое занятие №7. Файлы. Последовательный доступ
- •3.8. Практическое занятие №8. Файлы с произвольным доступом
- •Задания самостоятельной работы
- •4.1. Линейное программирование
- •4.2. Программирование ветвлений
- •4.3 Программирования циклов
- •4.4. Массивы
- •4.5. Файлы
- •5. Задания для контрольной работы
- •5.1. Для студентов очной формы обучения
- •5.1.1. Линейное программирование
- •5.1.2. Программирование ветвлений
- •5.1.3. Программирование циклов
- •5.1.4. Массивы
- •5.2. Для студентов заочной формы обучения
- •Список литературы
3.4. Практическая работа №4. Программирование повторений
Задача
Найдите значения функции у=sin(x) на интервале [a;b]. |
Важными конструкциями в языке VisualBasicявляетсяциклы. Именно они обеспечивают один из способов обработки информации.
Повторение – это многократное выполнение одного или нескольких предписаний алгоритма.
Цикл – это оператор языка программирования, с помощью которого это повторение будет выполнять компьютер – исполнитель алгоритма.
Цикл с использованием конструкции For...Next.
Конструкция For...Next выполняет последовательность команд определенное число раз. Такую конструкцию называют циклом,а выполняемые ею программные коды —телом цикла.
Синтаксис конструкции For.. .Nextследующий:
Forсчетчик = начЗначениеТоконЗначение [Stepшаг]
Конструкции
[Exit For]
[инструкции]
Next[счетчик]
Первый аргумент конструкции — счетчик — определяет имя переменной, которая будет "считать" количество выполнении цикла. Параметр начЗначение указывает числовое значение, которое присваивается переменной-счетчику перед первым проходом цикла. Цикл выполняется до тех пор, пока значение счетчика не превысит конечного значения, указанного после ключевого слова то. После каждого прохода цикла значение счетчика изменяется на величину шаг, указанную за ключевым словом step. Ключевое слово Next обозначает конец тела цикла и является обязательным.
Перед каждым проходом цикла Visual Basic сравнивает значения счетчика и аргумента конЗначение. Если значение счетчика не превышает установленного значения конЗначение, выполняются конструкции тела цикла. В противном случае управление переходит к следующей за Next конструкции.
Циклы Do While
Оператор DoWhile— еще один тип циклической структуры, представленной в VBA.
В отличие от цикла For-Next, цикл Do while выполняется до тех пор, пока удовлетворяется заданное условие. Цикл DoWhileможет иметь один из двух представленных ниже синтаксисов:
-
DoWhileусловие
инструкции
[ExitDo]
[инструкции]
Loop
или
Do
инструкции
[Exit Do]
[инструкции]
LoopWhileусловие
Цикл с предусловием
Это цикл работает пока значение условияравноИстина
Цикл с постусловием
VBA позволяет проверять условие While в начале или в конце цикла. Разница между этими двумя синтаксисами связана с моментом, когда оценивается условие. В первом синтаксисе содержимое цикла может нообще не выполнятся. Во втором содержимое цикла всегда выполняется (как минимум один раз).
Циклы DoUntil
DoUntilусловие конструкции [ExitDo] [инструкции] Loop
или
Do конструкции [ExitDo] [инструкции] LoopUntil условие
|
Цикл с предусловием
Это цикл работает пока значение условияравноЛожь
Цикл с постусловием
|
Существуют определённые правила выбора типа цикла:
Если вам известно заранее число повторений тела цикла, лучше всего использовать оператор цикла For;
Если вам заранее не известно число повторений тела цикла и если окончание цикла зависит от выполнения некоторого условия, лучше использовать конструкции While …Wend, Do While…Loop илиDo Until … Loop.
Если необходимо, чтобы цикл всегда выполнялся хотя бы один раз, то используйте конструкции Do … While Loop илиDo … Until Loop.
Составим блок-схему для нашей задачи:
Откройте приложение MSExcel.
Выполните команду СервисàМакросРедактор Visual Basicили нажмите <Alt+F11>.
Добавьте форму (команда Insert UserForm)
Для изменения размеров формы используйте указатель мыши помещённый в правый нижний угол окна Формы(UserForm)
Разработайте пользовательский интерфейс, расположив на форме с помощью панели инструментов управления (ViewToolBox), следующие объекты управления:Label(Метка),TextBox(Текстовое поле),CommandButton(Командная кнопка),ListBox(Список).
В окне Properties(Свойства) для каждого объекта управления установить свойства, приведённые в таблице 3.
Таблица 3
-
Элемент управления
Свойства
Значения
UserForm
Caption
Программирование повторений
Label1
Caption
Табулирование функции
Label2
Caption
а=
Label3
Caption
b=
Label4
Caption
Значение функции
TextBox1
Name
txtA
TextBox2
Name
txtB
TextBox3 |
Name |
txtSin |
CommadButton1 |
Name |
cmdSinus |
Caption |
Пуск | |
CommadButton2 |
Name |
cmdClear |
Caption |
Очистка |
Примерный интерфейс программы может выглядеть так:
Код программы:
Private Sub cmdSinus_Click()
а!=Val(txtA)
b!=Val(txtB)
For i%=a To b
y!=Sin(i)
txtSin = txtSin +”x=” + Str(i)+ “, y=”+Str(y) + vbCrlf
Next i
End Sub
Private Sub cmdCleaR_Click()
txtA = ""
txtB = ""
txtSin = ""
End Sub
Сделайте расчёты для разных а и b.Внимание a<b!!!
Добавьте в код программы строку в которой бы шла проверка на сравнение а и b. И еслиa>b, то программа завершала бы работу.
Для вывода информации на форму можно воспользоваться объектом ListBox (Список). Он позволяет выводить значения табулируемых функций, списков, массивов.
СвойстваобъектаСписок
-
Свойство
Описание
ListIndex
Возвращает номер выбранного элемента списка. Нумерация элементов списка начинается с нуля
ListCount
Возвращает число элементов списка
TopIndex
Возвращает элемент списка с наибольшим номером
ColumCount
Устанавливает число столбцов в списке
List
Возвращает элемент списка, стоящего на пересечении указанной строки и столбца
Синтаксис:
List(строка, столбец)
Text
Возвращает выбранный в списке элемент
Методы
-
Метод
Описание
Clear
Удаляет все элементы списка
AddItem
Добавляет элемент в список
RemoveItem
Удаляет заданный элемент
Удалите текстовое поле с именем «txtSin»
На место удалённого объекта вставьте ListBox(Список) и именем «lstSin» (обратите внимание, впереди стоит латинская буква «L» малая, а не «1 (единица)»)
Удалите следующую строку «txtSin = txtSin +”x=” + Str(i)+ “, y=”+Str(y) + vbCrlf»
На место удалённой строки в коде программы вставьте следующую запись:
lstSin.AddItem ”x=” + Str(i)+ “, y=”+Str(y)
Посмотрите, как работает программа
Напишите программу для табуляции функции у = Cos(x)
Сохраните файл под именем «Табуляцияфункции»