Написать программу, которая будет рассчитывать площадь треугольника по различным формулам - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Такая задача: написать программу, которая будет рассчитывать площадь треугольника по различным формулам. Формулу расчёта пользователь будет выбирать из предложенных. Данные для расчёта вводит пользователь. На форме должен рисоваться треугольник. Саму программу для рассчета написал. А вот как рисовать эти треугольники вообще понятия не имею. Вот код программы.

Решение задачи: «Написать программу, которая будет рассчитывать площадь треугольника по различным формулам»

textual
Листинг программы
Public Class MainForm
    Dim Pen1 As New Pen(Color.Red, 2)
    Dim Pen2 As New Pen(Color.Blue, 2)
    Dim Pen3 As New Pen(Color.Red, 1)
    Dim drawBrush As New SolidBrush(Color.Black)
    Dim drawFont As New Font("Arial", 7)
 
    ''' Процедура для построения математической системы координат
    Private Sub DrawMathLines(gfx As Graphics)
        gfx.Clear(Color.White)
        'Печать шкал математической системы координат
        'в компьютерной системе координат
        For x = -100 To 100 Step 50
            gfx.DrawString(x, drawFont, drawBrush, x + 100, 105)
        Next x
        For y = 0 To 200 Step 50
            gfx.DrawString(y - 100, drawFont, drawBrush, 80, 200 - y)
        Next y
        'Преобразование компьютерной СК в математическую СК
        'Поворот оси Y
        gfx.ScaleTransform(1, -1)
        'Сдвиг по осям X и Y
        gfx.TranslateTransform(100, -100)
        'Рисование осей         'Ось X
        gfx.DrawLine(Pen1, -150, 0, 150, 0)
        'Ось Y
        gfx.DrawLine(Pen1, 0, -100, 0, 100)
        'Засечки на оси X
        For x = -100 To 100 Step 10
            gfx.DrawLine(Pen3, x, -5, x, 5)
        Next x
        'Засечки на оси Y
        For y = -100 To 100 Step 10
            gfx.DrawLine(Pen3, -5, y, 5, y)
        Next y
    End Sub
 
    Private Sub DrawGraph(gfx As Graphics)
        DrawMathLines(gfx)
        Dim x, y, x1, y1, x2, y2, x3, y3 As Integer
        Dim l1, l2, l3 As Integer
        If TextBox1.Text = "" And TextBox2.Text = "" And TextBox3.Text = "" _
        And TextBox4.Text = "" And TextBox5.Text = "" And TextBox6.Text = "" Then
            MsgBox("Введите координаты")
        Else
            x1 = Val(TextBox1.Text) : y1 = Val(TextBox2.Text)
            x2 = Val(TextBox3.Text) : y2 = Val(TextBox4.Text)
            x3 = Val(TextBox5.Text) : y3 = Val(TextBox6.Text)
            gfx.DrawEllipse(Pen2, x1 - 2, y1 - 2, 4, 4)
            gfx.DrawLine(Pen2, x1, y1, x2, y2)
            gfx.DrawEllipse(Pen2, x2 - 2, y2 - 2, 4, 4)
            gfx.DrawLine(Pen2, x2, y2, x3, y3)
            gfx.DrawEllipse(Pen2, x3 - 2, y3 - 2, 4, 4)
            gfx.DrawLine(Pen2, x1, y1, x3, y3)
        End If
        ' Вычисление длин сторон треугольника
        l1 = Math.Sqrt((x2 - x1) ^ 2 + (y2 - y1) ^ 2)
        l2 = Math.Sqrt((x3 - x2) ^ 2 + (y3 - y2) ^ 2)
        l3 = Math.Sqrt((x3 - x2) ^ 2 + (y3 - y2) ^ 2)
        ' вычисление периметра
        Dim p = l1 + l2 + l3
        Label1.Text = Str(p)
        ' Вычисление площади треугольника по формуле Герона
        p = p / 2
        Dim s = Math.Sqrt((p - l1) * (p - l2) * (p - l3))
        Label2.Text = Str(s)
    End Sub
 
    Private Sub MainForm_Paint(sender As Object, e As PaintEventArgs) Handles MyBase.Paint
        DrawGraph(e.Graphics)
    End Sub
 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Me.Invalidate()
    End Sub
End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.333 из 5
Похожие ответы