Пример выполнения 1-го 2-го заданий
Фамилия, имя студента, номер группы, номер варианта.
Иванов И., БИН1405, вариант 13.
2) Реализация 1-го задания:
2.1) Тема и название лабораторной работы:
Программирование алгоритмов регулярных циклических структур.
Формирование таблицы значений функции y=f(x)на отрезке
[a;b] с шагом h.
2.2) Задание на разработку проекта:
Создайте проектПроект 5.4-1 для формирования таблицы значений функции f(x)=sin(x+2)*12+cos(x*4)*15 при изменении x на отрезке [a;b] с шагом h(а=2, b=8, h=0.5). Найдите наибольшее и наименьшее значения функции на этом же отрезке, а также число положительных и отрицательных значений функции.
Формализация и уточнение задания
Для решения задачи табуляции функции на заданном интервале следует использовать алгоритмическую структуру регулярного типа, т.к. заданы начальное и конечное значения аргумента, а также шаг его изменения. Таким образом, в данном случае можно заранее определить количество вычисленных значений.
2.4) Элементы, разрабатываемого проекта:
2.4.1) Графический интерфейс пользователя:
Форма приложения может иметь такой же вид, как на
рис.4.5.4-1.
При размещении первого элемента управления ListBox в форму на экране появляется пустой прямоугольник, внутри которого находится текст ListBox1. В этом списке нет ни полосы прокрутки, ни элементов. Вертикальная полоса прокрутки появляется автоматически, в том случае, когда новый добавляемый элемент не может быть размещен в выделенной для списка области экрана. В данном проекте два элемента ListBox располагаются на элементе управления (служит для объединения нескольких элементов в одну группу) и поэтому будут иметь одну общую полосу прокрутки.
|
|
Однако данные можно занести в список и на стадии разработки проекта. Для этого надо поместить элементы списка в свойство Items (Collections), которое имеется в окне Свойства элемента управления ListBox, щелкнув кнопку с тремя точками и составив нужный список в открывшемся диалоговом окне. Каждая строка этого свойства задает один элемент, для перехода на следующую строку надо нажать клавишу <Enter>, после набора всех элементов – щелкнуть ОК.
На кнопке с именем Button1 поместите надпись:
Выполните, а на кнопке Button2 – надпись Конец.
Рис 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 PublicClassForm1 'Функция ввода исходных данных из TextBox Function vvod(ByVal T AsTextBox) AsDouble Return Val(T.Text) EndFunction 'Процедуравыводарезультатав TextBox Sub vivod(ByVal Z AsDouble, ByVal T AsTextBox) T.Text = Format(Z, "00.0000") EndSub 'Процедуравыводарезультатав ListBox Sub vivodList(ByVal Z AsDouble, ByVal LB AsListBox) LB.Items.Add(Format(Z, "00.0000")) EndSub 'Процедура вывода целого результата в TextBox Sub vivodint(ByVal Z AsInteger, ByVal T AsTextBox) T.Text = CStr(Z) EndSub 'Функциявычислениязначенияфункции PublicFunction Fun(ByVal x AsDouble) AsDouble Return Sin(x + 2) * 12 + Cos(x * 4) * 15 EndFunction 'Процедурарешениязадачи PublicSub RegCikl(ByVal a AsDouble, ByVal b AsDouble,_ ByVal h AsDouble, ByRef max AsDouble, _ ByRef min AsDouble, ByRef n1 AsInteger, _ ByRef n2 AsInteger) Dim i AsInteger, n AsInteger, y AsDouble,xAsDouble 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 EndSub PrivateSub Button1_Click(sender AsObject, _ e AsEventArgs) Handles Button1.Click Dim nn1 AsInteger, nn2 AsInteger Dim mm1 AsDouble, mm2 AsDouble Dim a AsDouble, b AsDouble, h AsDouble 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) EndSub PrivateSub Button2_Click(sender AsObject, _ e AsEventArgs) Handles Button2.Click End EndSub EndClass |
Рис. 4.5.4-3. Программный кодпроекта 1-го заданияПроект 4.5-1: Формирование таблицы значений функции y=f(x)на отрезке[a;b] с шагом h
2.5) Результаты выполнения проекта:
Результат выполнения программы приведен на рис. 4.5.4-4.
Рис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.
Рис. 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
3.4.4) Программный код проекта;
Программный код проекта 2-гозадания – нарис. 4.5.4-7.
PublicClassForm1 Function vvod(ByVal t AsTextBox) AsDouble Return Val(t.Text) EndFunction Sub vivodlist(ByVal z AsDouble, ByVal lb AsListBox) lb.Items.Add(Format(z, "00.0000")) EndSub PublicFunction fun1(ByVal x AsDouble, _ ByVal y AsDouble) AsDouble Return x ^ 2 + y ^ 2 EndFunction PublicFunction fun2(ByVal x AsDouble, _ ByVal y AsDouble) AsDouble Return x + y EndFunction PublicSub Cikl(ByVal a AsDouble, ByVal b AsDouble,_ ByVal c AsDouble, ByVal d AsDouble, _ ByVal h1 AsDouble, ByVal h2 AsDouble) Dim i, j, n1, n2 AsInteger Dim x, y, y1 AsDouble 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) EndIf vivodlist(x, ListBox1) : vivodlist(y, ListBox2) vivodlist(y1, ListBox3) y = y + h2 Next x = x + h1 Next EndSub PrivateSub Button1_Click(sender AsObject, _ e AsEventArgs) Handles Button1.Click Dim a, b, c, d, h1, h2 AsDouble 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) EndSub PrivateSub Button2_Click(sender AsObject,_ e AsEventArgs) Handles Button2.Click End EndSub EndClass |
Рис. 4.5.4 -7. Программный код проекта 2-го заданияПроект 5-2: Формирования таблицы значений функции y1(x, y) при изменении x на отрезке [a;b] с шагом h1 и y на отрезке [c;d] с шагом h2
Результаты выполнения проекта приведены на рис. 4.5.4-8.
Рис.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]ения
Дата добавления: 2018-05-09; просмотров: 843; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!