Проектный практикум по Visual Basic. Задание 2
Недавно я писал уже про 3 задание проектного практикума по Visual Basic. Теперь пришло время выложить 2-е задание.
Описание задания
Определить для своего варианта номер N области, в которой находиться точка М(x,y) c заданными координатами. Границы области относить к области с наибольшим номером.

В начале задание может показаться сложновато, но если присмотреться, то станет очевидно, что определение вхождения точки для некоторых плоскостей не так уж и сложно.
Итак, давайте создадим приложение Windows Forms и на нашу форму поместим элемент Button. Размеры и название я оставляю за вами. Вот как получилось у меня.
Теперь создадим обработчик нажатия на кнопку. Напоминаю, двойное нажатие на кнопку создаст обработчик.
Вставим сразу в него мой код:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim X, Y As Single : Dim N As Byte : Dim ВЫВОД, Ошибка, Title, Vvod Title = "Ввод исходных данных" : Vvod = "Введите координату по оси" 10: X = InputBox(Vvod & " Х", Title) ' Ввод координаты по оси X Y = InputBox(Vvod & " Y", Title) ' Ввод координаты по оси Y If X ^ 2 + Y ^ 2 < 144 Then If Y > 0 Then If X < 0 Then N = 1 Else If X = Y Then N = 3 Else N = IIf(X < Y, 3, 2) ' N3 / N2 End If ' Лежит на границе, относим к N3 End If ' X < 0 Else If X > 0 Then N = 1 Else N = IIf(X > Y, 2, 3) ' N3 / N2 End If ' X > 0 End If ' Y > 0 Else : N = 4 End If ' End X * X + Y * Y < 24 ' ВЫВОД РЕЗУЛЬТАТА ВЫВОД = MsgBox(" Точка с заданными координатами (" & X & " ; " & Y & ")" & vbLf _ & " лежит в области N=" & N, vbRetryCancel, "Результат работы процедуры") Select Case ВЫВОД 'Выбор Case vbRetry : GoTo 10 ' Повторить процедуру Case vbCancel : GoTo 20 ' Завершить процедуру End Select 20: End Sub
Как видно в коде используется проверка X ^ 2 + Y ^ 2 < 144, которая определяет входит ли точка в окружность. Есть такое общее уравнение окружности — x2 + y2 = R2. Далее используются простые сравнения исходя из предоставленных данных.
Для краткости и удобства используется тернарный оператор Iif. Еще для продолжения выполнения программы или ее выхода я использую метки. Во многих языках их использование считается не элегантным. Однако в качестве учебного примера почему бы и нет.
Есть вопросы? Пишите и оставляйте комментарии.