- •Основы алгоритмизации и программирования на языке высокого уровня visual basic 6.0
- •Оглавление
- •Первое знакомство с Visual Basic
- •Практические рекомендации по разработке и отладке программ
- •Основные понятия программирования Переменные
- •Имена переменных
- •Типы данных
- •Объявление переменной
- •Область действия переменных
- •Присвоение значения переменной
- •Стандартные функции
- •Программные модули
- •Процедуры
- •Лабораторная работа №1. Линейный алгоритм
- •Решение задач линейной структуры
- •Ввод данных через диалоговые окна
- •Inputbox(“комментарий к текстовому полю”, “заголовок окна”,”значение по умолчанию”)
- •Вывод результата через окно сообщений.
- •Ввод и вывод данных через текстовые поля.
- •Лабораторная работа №2. Разветвляющийся алгоритм и его реализация на языке Visual Basic 6.0
- •Лабораторная работа №3. Циклический алгоритм и его использование в решении задач
- •Цикл с параметром
- •Цикл с предусловием
- •Блок-схема
- •Лабораторная работа №4. Использование циклического алгоритма для итерационных процессов в решении задач
- •Блок-схема
- •Программный код кнопки «Запуск»
- •Лабораторная работа №5. Обработка массивов в среде Visual Basic 6.0
- •Блок-схема
- •Список литературы:
Лабораторная работа №3. Циклический алгоритм и его использование в решении задач
1. Цель работы:
Отработка навыков создания блок-схем для реализации циклов при решении задач и овладение навыками работы с операторами FOR-NEXT и DO- LOOP. Использование этих операторов для решения различных задач. Научить исследовать задачу и найти оптимальный план решения и удобный интерфейс.
2. Темы для предварительного изучения:
Циклический алгоритм назначение и применение.
Для реализации циклического алгоритма используются операторы FOR-NEXT (с параметром) или DO – LOOP (с постусловием или предусловием).
Цикл с параметром
Цикл с параметром используется в случае, когда параметр цикла изменяется на постоянную величину, называемую шагом.
Начальное значение
параметра цикла
Действие
Действие
Действие
Действие
цикла
Приращение
параметра цикла на величину шага
Рис.14.
Модифицированная блок-схема алгоритма
цикла с параметром.
Рис.13. Блок -схема алгоритма
цикла с параметром
Формат команды:
FOR<параметр цикла> = <нач.значение>TO <кон.значение>[STEP шаг]
<Тело цикла>
NEXT [параметр цикла]
Цикл с предусловием
1
Закон
изменения переменной <серия> LOOP.
Начальное
значение переменной цикла
Начальное
значение переменной цикла
да
Действие
нет
Действие
Закон
изменения переменной |
2. DO UNTIL <условие> <серия> LOOP.
Рис.
15. Блок-схема циклического алгоритма
с предусловием |
Цикл с постусловием | |
1.DO <серия> LOOP WHILE <условие> |
<серия> LOOP UNTIL <условие>.
|
Начальное значение
переменной цикла
Рис. 16. Блок-схема
циклического алгоритма с постусловием
Действие
Действие
Закон изменения
переменной
да
нет
Пример 1.
Постановка задачи:
Построить график функции при x[-1;2].
Дано: x[-1;2]
Найти:y
Математическая модель:
, аргумент изменяется по закону xi+1=xi+0.3, а=2,3 и b=-5.3
Форма должна иметь следующие объекты: две командные кнопки, два поля списков (Рис 17.)для вывода значений аргумента и функции соответственно.
ListBox
Рис. 17 Интерфейс пользователя
Создадим алгоритм решения задачи в виде блок-схемы (Рис 18).
Блок-схема
х=-1
или
y=(aex-sin2bx)/(2+x)
y=(aex-sin2bx)/(2+x)
x=x+0.3
Рис 18 Блок -схема алгоритма нахождения значений функции
Программный код:
Private Sub Command1_Click()
Dim a As Single, b As Single, x As Single, y As Single
a = Val(InputBox("введи а", "ввод"))
b = Val(InputBox("введи b", "ввод"))
x = -1
Do
y = (a * Exp(x) - Sin(b * x) ^ 2) / (2 + x)
List1.AddItem Str(x)
List2.AddItem Str(y)
x = x + 0.3
Loop Until x > 2
End Sub
Проверьте работу программного кода. Создайте кнопку перехода на вторую форму; разместите на ней PictureBox и командную кнопку «График».
‘ Построение графика
Private Sub Command1_Click()
Dim a As Single, b As Single, x As Single, y As Single
a = Val(InputBox("введи а", "ввод"))
b = Val(InputBox("введи b", "ввод"))
Picture1.Scale(-1,10)-(2,-10)
Picture1.Line(-1,0)-(2,0),vbBlack ’ось х
Picture1.Line(0,10)-(0,-10),vbBlack ’ось у
For x = -1 to 2 step 0.3
y = (a * Exp(x) - Sin(b * x) ^ 2) / (2 + x)
Picture1.Pset(x,y),vbRed
Next x
End Sub
Отладка программы.
Проверьте работу этого программного кода, уменьшая размер шага, получите непрерывный график функции (Рис.19).
Рис.19 Вид графика после выполнения программы
Пример 2
Найти сумму рядадля двух вариантов исходных данных.
Создадим форму (Рис.20) следующего вида:
CheckBox
Рис. 20 Текстовые поля, метки и командные кнопки
Для элементов CheckBox изменим свойство Caption на вариант 1 и вариант 2
Для элемента PictureBox создадим формулу с помощью редактора Equation 3.0 (Word) и вставим ее, используя буфер обмена(Рис.19).
После нажатия на кнопку «Пуск» должен быть выполнен соответствующий вариант расчета суммы ряда 1) при h = 1: x = 0.7: m = 10 и 2) h = 2: x = 0.4: m = 21.
Программный код:
Private Sub Command1_Click()
Dim x, s As Single, n As Integer, h As Integer, m As Integer
s = 0
If Check1.Value = True Then
h = 1
x = 0.7
m = 10
End If
If Check2.Value = True Then
h = 2
x = 0.4
m = 21
End If
For n = 1 To m Step h
s = s + x ^ (2 * n)
Next n
Text1 = Str(h)
Text2 = Str(x)
Text3 = Str(m)
Text4 = Str(s)
End Sub
Задание для самостоятельного выполнения.
Измените программный код первого примера, используя только цикл с параметром