
- •7. Простой цикл
- •7.1 Базовые структуры алгоритмов
- •7.1.1. Следование
- •7.1.2. Разветвление
- •7.1.3. Цикл
- •7.2. Инструкции цикла в Visual Basic
- •7.2.1. Параметрический цикл For… Next
- •7.2.2. Инструкция цикла Do While...Loop или Do...Loop While
- •7.2.3. Инструкция цикла Do Until...Loop или Do...Loop Until
- •7.3. Операции и функции
- •7.4. Проект «Простой цикл»
- •7.4.1. Условие
- •7.4.2. Таблица вариантов
- •7.4.3. Пример выполнения задания
- •Выбор данных
- •Разработка алгоритма
- •Разработка интерфейса
- •Составление программного кода
- •Задание
- •7.5. Вопросы для контроля
Разработка алгоритма
Алгоритм
включает в свой состав задание значений
исходных данных, вычисление шагаdx
изменения аргумента, а также вычисление
и вывод в цикле результатов. Блок-схема
алгоритма изображена на
рис. 7.5.
Выполнение алгоритма начинается с задания значений исходных данных, к которым отнесены переменные n, a и b. После этого вычисляется значение шага dx изменения аргумента x, а также задается начальное значение аргумента.
После этого следует циклический участок, в котором для каждого узла, начиная с узла номер 1, вычисляется значение функции fx, печатаются полученные результаты (переменные x и fx), изменяется значение аргумента, а также номер узла и проверяется необходимость продолжения цикла.
Разработка интерфейса
На рис. 7.6 показана форма с объектами, обеспечивающими интерфейс с пользователем. Результаты будут печататься на той же форме Form1.
Щелчок
на кнопкеCommand1
– это команда выполнить счет. Кнопка
Command2
предназначена для прекращения работы
приложения. И, наконец, надпись Label1
будет содержать номер учебной группы
и фамилии студентов бригады.
За счет изменения соответствующих свойств элементов управления приведем форму Form1 вместе с помещенными на ней объектами к виду, изображенному на рис. 7.7.
Составление программного кода
Программный код главной секции (General), процедуры Command1_Click, а также процедуры Command2_Click приведен ниже и после сделанного ранее подробного описания алгоритма вряд ли нуждается в пояснениях.
Для контроля введенных значений исходных данных в программе предусмотрен их вывод наряду с результатами. Рекомендуется предусматривать вывод исходных данных, для контроля правильности их ввода. Кроме того, удобно наблюдать не только результаты, но и значения исходных данных, для которых они были получены.
Option Explicit
Private Sub Command1_Click()
Dim n As Integer
Dim a As Single
Dim b As Single
Dim i As Integer
Dim x As Single
Dim fx As Single
Dim dx As Single
n = InputBox(“Задайте значение n”)
a = InputBox(“Задайте значение a”)
b = InputBox(“Задайте значение b”)
x = a
dx = (b - a) / (n - 1)
Form1.Cls 'Очистка формы Form1
Print "n = ";n,”a = ";a,”b = “;b
Print ‘Пропуск строки
Print "Аргумент", "Функция"
For i = 1 To n
fx = x - Cos(x)
Print x, fx
x = x + dx
Next
End Sub
Private Sub Command2_Click()
End
End Sub
Задание
Создайте в корневом каталоге диска d свою рабочую папку, в которой будет храниться разрабатываемый Вами проект.
Запустите Visual Basic и сохраните проект в рабочей папке. При этом сохраните форму под именем Form1, проект - под именем Project1.
Разместите на форме Form1 управляющие элементы, изменением свойств создайте интерфейс, соответствующий рис. 7.8.
Введите приведенный выше программный код.
С
охраните проект.
Запустите проект и выполните счет для следующих значений исходных данных: n=11, a= 0,5, b= 2,5.
Результат должен соответствовать рис. 7.8.
Обратите внимание на то, что значение функции f(0,5) равно тестовому значению f(a), приведенному в параграфе 7.4.2 для варианта № 31.
Разберитесь, чему равно значение функции, полученное для аргумента, равного 0,7?
Снова выполните счет для исходных данных: n=11, a= 0,5, b= 0,9. Объясните причины отклонения значений аргумента от теоретических значений, которые должны были бы быть получены по расчетным формулам. Какие значения принимает функция при значениях аргумента 0.7, 0.74 и 0.78?
Остановите выполнение приложения и уберите из программы инструкцию очистки формы Form1 (для этого достаточно поставить перед ней апостроф и тем самым превратить ее в комментарий).
Запустите проект и дважды выполните счет, предварительно задав указанные в пункте 7 значения исходных данных. Заметили изменение в работе приложения? Остановите работу приложения и восстановите программу.
В инструкции печати Print x, fx в программе замените в списке вывода используемый в качестве разделителя символ (,) на символ (;).
Запустите проект и выполните счет, предварительно задав указанные в пункте 7 значения исходных данных. Обратите внимание на изменения в результатах печати? Остановите работу приложения и восстановите программу.
Внесите в программу изменения, соответствующие Вашему варианту задания.
Запустите проект и выполните счет, предварительно задав n=11 и указанные в Вашем варианте значения a и b. Осмыслите полученный результат.
Проверьте, совпадает ли для Вашего варианта указанное в таблице вариантов тестовое значение f(a) с полученным значением в результате выполнения счета. Если совпадения нет, найдите и устраните ошибку.
Продемонстрируйте работу проекта преподавателю.
Остановите работу приложения.
Внесите необходимые изменения в программу для замены инструкции For на инструкцию While. Проверьте работу приложения.
Внесите необходимые изменения в программу для замены инструкции While на инструкцию Until. Проверьте работу приложения.
Сообщите преподавателю о выполнении задания.
Удалите свою рабочую папку на диске d.