Свойства объектов управления разработанной формы приведены в таблице 4.4-2.
Таблица 4.4-2
Объект | Имя объекта | Свойство | Значение свойства |
Форма | Form1 | Name | Form1 |
Text | ЛР по теме:Разветвляющиеся Разветвлсст.струры. | ||
Метка | Label1 | Text | Вычислить значение r=f(x,y,z) |
ImageAlign | MiddleCenter | ||
Метка | Label2 | Text | X= |
ImageAlign | MiddleCenter | ||
Метка | Label3 | Text | Y= |
Метка | Label4 | Text | Z= |
Метка | Label5 | Text | R= |
Текстовое поле | TextBox1 | Name | TextBox1 |
Текстовое поле | TextBox2 | Name | TextBox2 |
Текстовое поле | TextBox3 | Name | TextBox3 |
Текстовое поле | TextBox4 | Name | TextBox4 |
Кнопка | Button1 | Name | Button1 |
Text | Вычислить r=f(x, y, z) | ||
Кнопка | Button2 | Name | Button2 |
Text | Конец |
Разработка схемы алгоритма
Схема алгоритма представлена на рис. 4.4-2.
Рис. 4.4-2
Написание программного кода с использованием процедур
Программный код решаемой задачи представлен на рис. 4.4-3.
Option Strict On Option Explicit On Imports System.Math Public Class Form1 'Функция ввода в TextBox Function vvod(ByVal T As TextBox) As Double Return Val(T.Text) End Function 'Перегружаемая процедура вывода вещественного результата в TextBox Overloads Sub vivod(ByVal Z As Double, ByVal T As TextBox) T.Text = CStr(Z) End Sub 'Перегружаемая процедура вывода целого результата в TextBox Overloads Sub vivod(ByVal Z As Integer, ByVal T As TextBox) T.Text = CStr(Z) End Sub Sub Razv(ByVal x As Double, ByVal y As Double, _ ByVal z As Double, ByRef r As Double, _ ByRef n As Integer) Dim r1, r2 As Double If y < x Then r1 = Sin(y): r2 = Cos(z): r = x ^ 2 If r1 < r Then r = r1 If r2 < r Then r = r2 n = 1 '1 ветка разветвл. ф-ции Else If y <= z Then r1 = Log(z ^ 2): r2 = Exp(x + y) If r1 > r2 Then r = r1 Else r = r2 n = 2 '2 ветка разветвл. ф-ции Else r = x + y + z n = 3 '3 ветка разветвл. ф-ции End If End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim x, y, z, r As Double Dim n As Integer x = vvod(TextBox1) y = vvod(TextBox2) z = vvod(TextBox3) Razv(x, y, z, r, n) vivod(r, TextBox4) vivod(n, TextBox5) End Sub Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click End End Sub End Class |
Рис. 4.4-3
Результаты выполнения проекта
Результаты работы проекта Проект-4-4-Лаб представлены на рис. 4.4-4.
Рис. 4.4-4.
Доказательство правильности работы программы
Разработаны следующие тестовые исходные данные для контрольного решения задачи, проверяющие все ветви процедуры функции, и получены результаты:
x=2 | y=1 | z=1 | r= 0,540302305 n=1 |
x=1 | y=2 | z=3 | r= 20,08553692 n=2 |
x=1 | y=3 | z=2 | r= 6 n=3 |
При тестовых данных результаты ручного расчета и вычисления на ПК совпадают.
Контрольные вопросы по теме
«Программирование алгоритмов разветвляющихся структур»
1. Что такое разветвляющаяся структура?
2. Какие имеются типы разветвляющихся структур?
3. Когда необходимо вкладывать одну структуру стандартного разветвления в другую структуру стандартного разветвления?
4. Можно ли вложить структуру стандартного разветвления в структуру усеченного разветвления?
5. Какие операции отношения используются в VB?
6. Какие логические операции используются в VB?
7. Как описываются логические переменные?
8. Какие логические константы известны?
9. Что такое простое условие?
10. Что такое сложное условие?
11. Каковы правила вычисления логических выражений?
12. Чем отличается строчный оператор If от блочного оператора If?
13. Когда используется оператор Select Case?
14. В каких случаях необходимо использовать оператор If, а в каких оператор Select Case?
15. Каковы правила записи оператора If?
16. Каковы правила записи оператора Select Case?
17. Какие операторы относятся к условным операторам?
18. Как называется оператор If-Then?
19. Как называется оператор If-Then-Else?
20. Для чего предназначен оператор If?
21. Что может быть в операторе условного перехода между словами If-Then?
22. Какими могут быть разветвляющиеся алгоритмы?
23. Какими операторами реализуются разветвляющиеся алгоритмические структуры?
24. Какие необязательные ключевые слова в однострочном операторе If?
25. Какие слова должны обязательно присутствовать в операторе условного перехода If?
26. Какова последовательность операторов, в результате выполнения которых будет найдено наибольшее значение двух переменных?
27. Какова последовательность операторов, в результате выполнения которых будет найдено наибольшее значение трех переменных?
28. Может ли условное выражение Not ((X<= 10) Or (X >= 20)) использоваться для проверки условий?
29. Чему будет равно значение выражения R = NOT (a OR b OR (x> 2) AND (y< 0)) при a = False, b = False, x = 3, y=2?
30. Какие идентификаторы являются именами операций?
31. Как можно проверить правильность работы разветвляющихся программ?