Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
1 / 1 / 0
Регистрация: 28.01.2013
Сообщений: 102
1

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

09.12.2014, 06:37. Просмотров 1206. Ответов 5
Метки нет (Все метки)


Такая задача: написать программу, которая будет рассчитывать площадь треугольника по различным формулам. Формулу расчёта пользователь будет выбирать из предложенных. Данные для расчёта вводит пользователь. На форме должен рисоваться треугольник.
Саму программу для рассчета написал. А вот как рисовать эти треугольники вообще понятия не имею. Вот код программы.
Кликните здесь для просмотра всего текста
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
Public Class Form1
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        MsgBox("Для начала расчета выберите формулу")
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim a, h, s As Single
        a = InputBox("Введите длину основания 'a'")
        h = InputBox("Введите длину высоты 'h'")
        s = 1 / 2 * a * h
        MsgBox("Площадь треугольника равна = " & s)
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim a, b, y, s As Single
        a = InputBox("Введите длину стороны 'a'")
        b = InputBox("Введите длину стороны 'b'")
        y = InputBox("Введите угол 'y'")
        s = 1 / 2 * a * b * Math.Sin(y)
        MsgBox("Площадь треугольника равна = " & s)
    End Sub
 
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim a, b, c, p As Single
        Dim s As VariantType
        a = InputBox("Введите длину стороны 'a'")
        b = InputBox("Введите длину стороны 'b'")
        c = InputBox("Введите длину стороны 'c'")
        p = (a + b + c) / 2
        s = Math.Sqrt(p * (p - a) * (p - b) * (p - c))
        MsgBox("Площадь треугольника равна = " & s)
    End Sub
 
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim a, b, c, p, r As Single
        Dim s As VariantType
        a = InputBox("Введите длину стороны 'a'")
        b = InputBox("Введите длину стороны 'b'")
        c = InputBox("Введите длину стороны 'c'")
        r = InputBox("Введите радиус вписанной окружности 'r'")
        p = (a + b + c) / 2
        s = r * p
        MsgBox("Площадь треугольника равна = " & s)
    End Sub
 
    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
        Dim a, b, c, r As Single
        Dim s As VariantType
        a = InputBox("Введите длину стороны 'a'")
        b = InputBox("Введите длину стороны 'b'")
        c = InputBox("Введите длину стороны 'c'")
        r = InputBox("Введите радиус вписанной окружности 'r'")
        s = (a * b * c) / (4 * r)
        MsgBox("Площадь треугольника равна = " & s)
    End Sub
 
    Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
        Dim a, b As Single
        Dim s As VariantType
        a = InputBox("Введите длину катета 'a'")
        b = InputBox("Введите длину катета 'b'")
        s = (1 / 2) * (a * b)
        MsgBox("Площадь треугольника равна = " & s)
    End Sub
 
    Private Sub Button7_Click(sender As Object, k As EventArgs) Handles Button7.Click
        Dim d, e As Single
        Dim s As VariantType
        d = InputBox("Введите длину 'd'")
        e = InputBox("Введите длину 'e'")
        s = d * e
        MsgBox("Площадь треугольника равна = " & s)
    End Sub
 
    Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
        Dim a, b, c, p As Single
        Dim s As VariantType
        a = InputBox("Введите длину стороны 'a'")
        b = InputBox("Введите длину стороны 'b'")
        c = InputBox("Введите длину стороны 'c'")
        p = (a + b + c) / 2
        s = (p - a) * (p - b)
        MsgBox("Площадь треугольника равна = " & s)
    End Sub
 
    Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click
        Dim a, y As Single
        Dim s As VariantType
        a = InputBox("Введите длину сторон 'a'")
        y = InputBox("Введите угол 'y'")
        s = (1 / 2) * (a ^ 2) * Math.Sin(y)
        MsgBox("Площадь треугольника равна = " & s)
    End Sub
 
    Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click
        Dim a, b, y As Single
        Dim s As VariantType
        a = InputBox("Введите длину стороны 'a'")
        b = InputBox("Введите длину стороны 'b'")
        y = InputBox("Введите угол 'y'")
        s = (1 / 2) * a * b * Math.Sin(y)
        MsgBox("Площадь треугольника равна = " & s)
    End Sub
 
    Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
        Dim a, b, y As Single
        Dim s As VariantType
        a = InputBox("Введите длину стороны 'a'")
        b = InputBox("Введите длину стороны 'b'")
        y = InputBox("Введите угол 'y'")
        s = (b ^ 2) / (4 * Math.Tan(y / 2))
        MsgBox("Площадь треугольника равна = " & s)
    End Sub
 
    Private Sub Button14_Click(sender As Object, e As EventArgs) Handles Button14.Click
        Dim a As Single
        Dim s As VariantType
        a = InputBox("Введите длину сторон 'a'")
        s = (Math.Sqrt(3) * (a ^ 2)) / 4
        MsgBox("Площадь треугольника равна = " & s)
    End Sub
 
    Private Sub Button13_Click(sender As Object, e As EventArgs) Handles Button13.Click
        Dim a, r As Single
        Dim s As VariantType
        a = InputBox("Введите длину сторон 'a'")
        r = InputBox("Введите радиус 'r'")
        s = (3 * Math.Sqrt(3) * (r ^ 2)) / 4
        MsgBox("Площадь треугольника равна = " & s)
    End Sub
 
    Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click
        Dim r As Single
        Dim s As VariantType
        r = InputBox("Введите радиус 'r'")
        s = 3 * Math.Sqrt(3) * (r ^ 2)
        MsgBox("Площадь треугольника равна = " & s)
    End Sub
 
    Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click
        Dim h As Single
        Dim s As VariantType
        h = InputBox("Введите высоту 'h'")
        s = (h ^ 2) / (Math.Sqrt(3))
        MsgBox("Площадь треугольника равна = " & s)
    End Sub
End Class
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2014, 06:37
Ответы с готовыми решениями:

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

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

Написать программу, которая находит площадь треугольника по 2 сторонам и углу
Задание: Написать программу, которая находит площадь треугольника по 2 сторонам и углу. Код:...

Написать программу, которая подсчитывает: площадь прямоугольного треугольника по двум катетам a, b
Написать программу, которая подсчитывает: площадь прямоугольного треугольника по двум катетам a, b....

5
26 / 25 / 9
Регистрация: 17.09.2011
Сообщений: 143
09.12.2014, 09:50 2
Пользуйтесь поискам и гуглам
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Public Class Form1
    Dim Graph1 As Graphics
    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)
    Dim x, y, x1, y1, x2, y2, x3, y3 As Integer
    Dim l1, l2, l3 As Integer
    Dim p, s As Single
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        M_sk()
        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)
            Graph1.DrawEllipse(Pen2, x1 - 2, y1 - 2, 4, 4)
            Graph1.DrawLine(Pen2, x1, y1, x2, y2)
            Graph1.DrawEllipse(Pen2, x2 - 2, y2 - 2, 4, 4)
            Graph1.DrawLine(Pen2, x2, y2, x3, y3)
            Graph1.DrawEllipse(Pen2, x3 - 2, y3 - 2, 4, 4)
            Graph1.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)
        ' вычисление периметра
        p = l1 + l2 + l3
        Label4.Text = Str(p)
        ' Вычисление площади треугольника по формуле Герона
        p = p / 2
        s = Math.Sqrt((p - l1) * (p - l2) * (p - l3))
        Label5.Text = Str(s)
 
    End Sub
    'Процедура для построения математической системы координат
    Private Sub M_sk()
        Graph1 = Me.PictureBox1.CreateGraphics()
        Graph1.Clear(Color.White)
        'Печать шкал математической системы координат
        'в компьютерной системе координат
        For x = -100 To 100 Step 50
            Graph1.DrawString(x, drawFont, drawBrush, x + 100, 105)
        Next x
        For y = 0 To 200 Step 50
            Graph1.DrawString(y - 100, drawFont, drawBrush, 80, 200 - y)
        Next y
        'Преобразование компьютерной СК в математическую СК
        'Поворот оси Y
        Graph1.ScaleTransform(1, -1)
        'Сдвиг по осям X и Y
        Graph1.TranslateTransform(100, -100)
        'Рисование осей         'Ось X
        Graph1.DrawLine(Pen1, -150, 0, 150, 0)
        'Ось Y
        Graph1.DrawLine(Pen1, 0, -100, 0, 100)
        'Засечки на оси X
        For x = -100 To 100 Step 10
            Graph1.DrawLine(Pen3, x, -5, x, 5)
        Next x
        'Засечки на оси Y
        For y = -100 To 100 Step 10
            Graph1.DrawLine(Pen3, -5, y, 5, y)
        Next y
    End Sub
0
1 / 1 / 0
Регистрация: 28.01.2013
Сообщений: 102
10.12.2014, 11:16  [ТС] 3
Цитата Сообщение от Faraon Посмотреть сообщение
Graph1 = Me.PictureBox1.CreateGraphics()
12 бейсик ругает на эту строку, а в 8 вообще ничего не происходит. что не так?
0
26 / 25 / 9
Регистрация: 17.09.2011
Сообщений: 143
10.12.2014, 11:18 4
наверно надо разместить PictureBox1 на форме. нет?
0
1 / 1 / 0
Регистрация: 28.01.2013
Сообщений: 102
11.12.2014, 00:33  [ТС] 5
Цитата Сообщение от Faraon Посмотреть сообщение
наверно надо разместить PictureBox1 на форме. нет?
размещен он на форме.
0
Администратор
Эксперт .NET
9049 / 4324 / 744
Регистрация: 17.04.2012
Сообщений: 9,098
Записей в блоге: 14
12.12.2014, 18:26 6
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Faraon, я немного поправил ваш код. Вычисления все остались на месте, единственная претензия - рисование нужно вызывать в обработчике события Paint формы, иначе при изменении формы или сворачивании рисунок будет исчезать
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
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
1
Вложения
Тип файла: zip VBWinFormsApp.zip (78.1 Кб, 11 просмотров)
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2014, 18:26

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Написать программу, которая вычисляет площадь равностороннего треугольника, периметр которого равен p
Написать программу, которая вычисляет площадь равностороннего треугольника, периметр которого равен...

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

Написать программу, которая вычисляет площадь правильного треугольника, вписанного в окружность заданного радиуса
Написать программу, которая вычисляет площадь правильного треугольника, вписанного в окружность...

Написать программу, которая вычисляет площадь треугольника если известны координаты его вершин
Написать программу, которая вычисляет площадь треугольника если известны координаты его вершин?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.