Формализация и уточнение задания

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

2.4) Элементы, разрабатываемого проекта:

2.4.1) Графический интерфейс пользователя:

Форма приложения может иметь такой же вид, как на
рис. 4.5.4-1.

При размещении первого элемента управления ListBox в форму на экране появляется пустой прямоугольник, внутри которого находится текст ListBox1. В этом списке нет ни полосы прокрутки, ни элементов. Вертикальная полоса прокрутки появляется автоматически, в том случае, когда новый добавляемый элемент не может быть размещен в выделенной для списка области экрана. В данном проекте два элемента ListBox располагаются на элементе управления (служит для объединения нескольких элементов в одну группу) и поэтому будут иметь одну общую полосу прокрутки.

Однако данные можно занести в список и на стадии разработки проекта. Для этого надо поместить элементы списка в свойство Items (Collections), которое имеется в окне Свойства элемента управления ListBox, щелкнув кнопку с тремя точками и составив нужный список в открывшемся диалоговом окне. Каждая строка этого свойства задает один элемент, для перехода на следующую строку надо нажать клавишу <Enter>, после набора всех элементов – щелкнуть ОК.

На кнопке с именем Button1 поместите надпись:
Выполните, а на кнопке Button2 – надпись Конец.

Формализация и уточнение задания - student2.ru

Рис 4.5.4-1. Форма проекта 1-го заданияПроект 5-1:
Формирование таблицы значений функции y=f(x)на отрезке
[a; b] с шагом h

2.4.2) Таблица свойств объектов:

Определите, установите и сведите в таблицу табл. 4.5.4-3

свойства всех объектов.

Таблица 4.5.4-3

Имя объекта Свойство Значениесвойства
Form1 Text Тема 4.5. Программирование алгоритмов регулярных циклических структур и цикл в цикле
Label1 Name Label1
Text Начальное значение
ForeColor Синий
Font Microsoft Sans Serif, Жирный, 8 пунктов
Label2 Name Label2
Text Конечное значение
ForeColor Черный
Font Microsoft Sans Serif, Жирный, 8 пунктов
Label3 Name Label3
Text Шаг
ForeColor Черный
Font Microsoft Sans Serif, Жирный, 8 пунктов
Label4 Name Label4
Text n=
ForeColor Черный
Font Microsoft Sans Serif, Жирный, 8 пунктов
Label5 Name Label5
Text Задание
ForeColor Красный
Font Arial, Жирный, 12 пунктов
TextBox1 Name TextBox1
Text Протабулировать функцию f(x)=sin(x+2)*12+cos(x*4)*15
ForeColor Красный
Font Microsoft Sans Serif, Жирный, 10 пунктов
TextBox2 Name TextBox2
Text Аргумент х
ForeColor Черный
Font Microsoft Sans Serif, Жирный, 8 пунктов
TextBox3 Name TextBox3
Text Функция f(x)
ForeColor Черный
Font Microsoft Sans Serif, Жирный, 8 пунктов
TextBox8 Name TextBox8
Text Наибольшее значение функции
ForeColor Черный
Font Microsoft Sans Serif, Жирный, 8 пунктов
TextBox10 Name TextBox10
Text Наименьшее значение функции
ForeColor Черный
Font Microsoft Sans Serif, Жирный, 8 пунктов
TextBox12 Name TextBox12
Text Число положительных элементов
ForeColor Черный
Font Microsoft Sans Serif, Жирный, 8 пунктов
TextBox14 Name TextBox7
Text Число отрицательных элементов
ForeColor Черный
Font Microsoft Sans Serif, Жирный, 8 пунктов
TextBox4 TextBox5 TextBox6 TextBox7 TextBox9 TextBox11 TextBox13 TextBox15 Name TextBox4, TextBox5, TextBox6, TextBox7, TextBox9, TextBox11, TextBox13, TextBox15
Text
ForeColor Черный
Font Microsoft Sans Serif, Жирный, 8 пунктов
ListBox1 Name ListBox1
ForeColor Черный
Font Microsoft Sans Serif, Жирный, 8 пунктов
ListBox2 Name ListBox2
ForeColor Черный
Font Microsoft Sans Serif, Жирный, 8 пунктов
Panel1 Name Panel1
Font Microsoft Sans Serif, Жирный, 8 пунктов
AutoScroll True
Button1 Name Button1
Text Выполнить
Button2     Name Button2
Text Конец

2.4.3) Схемы алгоритмов:

Схемы алгоритмов представлены на рис. 4.5.4-2.

Рис. 4.5.4-2. Схемы алгоритмов процедур Fun(x)и RegCikl проекта 1-го заданияПроект 5-1: Формирование таблицы значений функции y=f(x)на отрезке [a; b] с шагом h

2.4.4) Программный код проекта:

Программный код проекта приведен в на рис. 4.5.4-3.

Imports System.Math Public Class Form1 'Функция ввода исходных данных из TextBox Function vvod(ByVal T As TextBox) As Double Return Val(T.Text) End Function 'Процедура вывода результата в TextBox Sub vivod(ByVal Z As Double, ByVal T As TextBox) T.Text = Format(Z, "00.0000") End Sub 'Процедура вывода результата в ListBox Sub vivodList(ByVal Z As Double, ByVal LB As ListBox) LB.Items.Add(Format(Z, "00.0000")) End Sub 'Процедура вывода целого результата в TextBox Sub vivodint(ByVal Z As Integer, ByVal T As TextBox) T.Text = CStr(Z) End Sub 'Функция вычисления значения функции Public Function Fun(ByVal x As Double) As Double Return Sin(x + 2) * 12 + Cos(x * 4) * 15 End Function 'Процедура решения задачи Public Sub RegCikl(ByVal a As Double, ByVal b As Double,_ ByVal h As Double, ByRef max As Double, _ ByRef min As Double, ByRef n1 As Integer, _ ByRef n2 As Integer) Dim i As Integer, n As Integer, y As Double, x As Double n = CInt((b - a) / h + 1)'количество значений функции vivodint(n, TextBox7) x = a : n1 = 0 : n2 = 0 max = Double.MinValue : min = Double.MaxValue For i = 1 To n y = Fun(x) If y > max Then max = y : If y < min Then min = y If y > 0 Then n1 = n1 + 1 : If y < 0 Then n2 = n2 + 1 vivodList(x, ListBox1) : vivodList(y, ListBox2) x = x + h Next End Sub Private Sub Button1_Click(sender As Object, _ e As EventArgs) Handles Button1.Click Dim nn1 As Integer, nn2 As Integer Dim mm1 As Double, mm2 As Double Dim a As Double, b As Double, h As Double a = vvod(TextBox4) : b = vvod(TextBox5) : h = vvod(TextBox6) RegCikl(a, b, h, mm1, mm2, nn1, nn2) 'вызов проц. реш.задачи vivod(mm1, TextBox9) : vivod(mm2, TextBox11) vivodint(nn1, TextBox13) : vivodint(nn2, TextBox15) End Sub Private Sub Button2_Click(sender As Object, _ e As EventArgs) Handles Button2.Click End End Sub End Class

Рис. 4.5.4-3. Программный код проекта 1-го заданияПроект 4.5-1: Формирование таблицы значений функции y=f(x)на отрезке [a;b] с шагом h

2.5) Результаты выполнения проекта:

Результат выполнения программы приведен на рис. 4.5.4-4.

Формализация и уточнение задания - student2.ru

Рис 4.5.4-4. Результаты выполнения проекта 1-го заданияПроект 5-1: Формирование таблицы значений функции y=f(x)на отрезке [a;b] с шагом h

2.6) Доказательства правильности результатов:

Для доказательства правильности результата протабулируйте свой вариант функции с использованием программы Microsoft Excel, сделайте вывод о том, что полученные результаты подтверждают правильность выполнения программы.

3) Реализация 2-го задания:

3.1) Тема и название лабораторной работы:

Программирование алгоритмов циклических структур и цикл в

цикле.

Формирования таблицы значений функции y1(x, y) при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [c; d] с шагом h2.

3.2) Задание на разработку задачи:

Создайте проектПроект 5-2 для формирования таблицы значений

функции y1(x, y) при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [c; d] с шагом h2 (а=-1; в=2; с=-1; d=2; h1=1; y2=1).

3.3) Формализация и уточнение задания:

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

3.4) Элементы, разрабатываемого проекта:

3.4.1) Графический интерфейс пользователя:

Форма приложения может иметь такой же вид,

как на рис. 4.5.4-5.


Формализация и уточнение задания - student2.ru

Рис. 4.5.4-5. Форма проекта 2-го заданияПроект 5-2: Формирования таблицы значений функции y1(x, y) при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [c; d] с шагом h2

3.4.2) Таблица свойств объектов:

Таблицу свойств объектов разработайте

самостоятельно.

3.4.3) Схемы алгоритмов:

Схемы алгоритмов представлены на рис.4.5.4-6.

Рис. 4.5.4-6. Схемы алгоритмов процедур fun1(), fun2() и Cikl()

проекта 2-го заданияПроект 5-2:

Формирования таблицы значений функции y1(x, y) при изменении x на отрезке [a;b] с шагом h1 и y на отрезке [c;d] с шагом h2

Программный код проекта;

Программный код проекта 2-го задания – на рис. 4.5.4-7.

Public Class Form1 Function vvod(ByVal t As TextBox) As Double Return Val(t.Text) End Function Sub vivodlist(ByVal z As Double, ByVal lb As ListBox) lb.Items.Add(Format(z, "00.0000")) End Sub Public Function fun1(ByVal x As Double, _ ByVal y As Double) As Double Return x ^ 2 + y ^ 2 End Function Public Function fun2(ByVal x As Double, _ ByVal y As Double) As Double Return x + y End Function Public Sub Cikl(ByVal a As Double, ByVal b As Double,_ ByVal c As Double, ByVal d As Double, _ ByVal h1 As Double, ByVal h2 As Double) Dim i, j, n1, n2 As Integer Dim x, y, y1 As Double n1 = CInt(Fix(b - a)/h1 + 1) : n2 = CInt(Fix(d - c)/h2 + 1) x = a For i = 1 To n1 y = b For j = 1 To n2 If (x > 0 And x < 1) And (y > 0 And y < 1) Then y1 = fun1(x, y) Else y1 = fun2(x, y) End If vivodlist(x, ListBox1) : vivodlist(y, ListBox2) vivodlist(y1, ListBox3) y = y + h2 Next x = x + h1 Next End Sub Private Sub Button1_Click(sender As Object, _ e As EventArgs) Handles Button1.Click Dim a, b, c, d, h1, h2 As Double a = vvod(TextBox1) : b = vvod(TextBox2) c = vvod(TextBox3) : d = vvod(TextBox4) h1 = vvod(TextBox5) h2 = vvod(TextBox6) Cikl(a, b, c, d, h1, h2) End Sub Private Sub Button2_Click(sender As Object,_ e As EventArgs) Handles Button2.Click End End Sub End Class

Рис. 4.5.4 -7. Программный код проекта 2-го заданияПроект 5-2: Формирования таблицы значений функции y1(x, y) при изменении x на отрезке [a;b] с шагом h1 и y на отрезке [c;d] с шагом h2

Результаты выполнения проекта приведены на рис. 4.5.4 -8.

Формализация и уточнение задания - student2.ru

Рис. 4.5.4 -8. Результаты выполнение проекта[OV1] 2-го заданияПроект 5-2: Формирования таблицы значений функции y1(x, y) при изменении x на отрезке [a;b] с шагом h1 и y на отрезке [c;d] с шагом h2

3.6) Доказательства правильности результатов:

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

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

1)Что называется, циклическим алгоритмом?

2)Как записывается цикл с оператором For в блок-схемах?

3)Как записывается цикл с оператором For в программах?

4)Как работает цикл с оператором For?

5)Что называется, циклом?

6)Что называется, регулярным циклом?

7)Какой оператор языка VB служит для организации регулярных циклов и как он работает?

8)Что такое параметр цикла, и какой тип данных рекомендуется использовать для его описания?

9)Каким образом определить число повторений цикла, если переменная, меняющая свое значение от цикла к циклу, вещественного типа?

10)Что такое вложенные циклы, каким образом они изображаются в схеме алгоритма и в программе?

11)Для чего служит оператор Exit For?

12)В чем суть базовых алгоритмов: табулирование функции в заданном диапазоне изменения аргумента; определение суммы (произведения) значений функции в границах изменения аргумента;

13)поиск минимального (максимального) значения функции в заданном диапазоне изменения аргумента?

14)В чем суть алгоритма табулирования функции в заданном диапазоне изменения аргумента?

15)В чем суть алгоритма определения суммы (произведения) значений функции в пределах заданных границ изменения аргумента?

16)В чем суть алгоритма поиска минимального (максимального) значения функции в заданном диапазоне изменения аргумента?

17)Как называется переменная, изменяющая свое значение при каждом новом вхождении в цикл?

18)Как называется многократно повторяющаяся часть алгоритма?

19)Как определяется число повторений операторов тела цикла в регулярной циклической структуре?

20)Что является телом цикла в операторе Fоr … Next?

21)Что необходимо для досрочного прекращения регулярного цикла?

22)Для чего необходимо ключевое слово Step?

23)Что следует принять за начальное наименьшее значение для нахождения наименьшего значения числовой функции от аргумента, значение которого изменяется на заданном интервале?

24)Что следует принять за начальное значение произведения для нахождения значения произведения числовой функции от аргумента, значение которого изменяется на заданном интервале?

[OV1]ения

Наши рекомендации