Проектный практикум по Visual Basic. Задание 2

Недавно я писал уже про 3 задание проектного практикума по Visual Basic. Теперь пришло время выложить 2-е задание.

Описание задания

Определить для своего варианта номер N области, в которой находиться точка М(x,y) c заданными координатами. Границы области относить к области с наибольшим номером.

Вариант 20
Вариант 20

В начале задание может показаться сложновато, но если присмотреться, то станет очевидно, что определение вхождения точки для некоторых плоскостей не так уж и сложно.

Итак, давайте создадим приложение 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. Еще для продолжения выполнения программы или ее выхода я использую метки. Во многих языках их использование считается не элегантным. Однако в качестве учебного примера почему бы и нет.

Есть вопросы? Пишите и оставляйте комментарии.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Добавить комментарий

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: