
Вопрос задан 09.08.2023 в 06:17.
Предмет Информатика.
Спрашивает Износова Наташка.
Заданы координаты трех вершин треугольника (x1,y1) (x2, y2) (x3, y3). Найти его периметр и площадь.
Написать программу в vba

Ответы на вопрос

Отвечает Янгас Валентина.
Sub PS()
Dim x1 As Double, y1 As Double, x2 As Double, y2 As Double
Dim x3 As Double, y3 As Double
x1 = Cells(2, 2): y1 = Cells(2, 3)
x2 = Cells(3, 2): y2 = Cells(3, 3)
x3 = Cells(4, 2): y3 = Cells(4, 3)
a = L(x1, y1, x2, y2)
b = L(x2, y2, x3, y3)
c = L(x3, y3, x1, y1)
P = a + b + c
Cells(6, 2) = P
p2 = P / 2
S = Sqr(p2 * (P - a) * (P - b) * (P - c))
Cells(7, 2) = S
End Sub
Function L(x1 As Double, y1 As Double, x2 As Double, y2 As Double) As Double
L = Sqr((x2 - x1) ^ 2 + (y2 - y1) ^ 2)
End Function
Dim x1 As Double, y1 As Double, x2 As Double, y2 As Double
Dim x3 As Double, y3 As Double
x1 = Cells(2, 2): y1 = Cells(2, 3)
x2 = Cells(3, 2): y2 = Cells(3, 3)
x3 = Cells(4, 2): y3 = Cells(4, 3)
a = L(x1, y1, x2, y2)
b = L(x2, y2, x3, y3)
c = L(x3, y3, x1, y1)
P = a + b + c
Cells(6, 2) = P
p2 = P / 2
S = Sqr(p2 * (P - a) * (P - b) * (P - c))
Cells(7, 2) = S
End Sub
Function L(x1 As Double, y1 As Double, x2 As Double, y2 As Double) As Double
L = Sqr((x2 - x1) ^ 2 + (y2 - y1) ^ 2)
End Function




Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Конечно, вот пример программы на VBA, которая вычисляет периметр и площадь треугольника по заданным координатам его вершин:
vbaFunction Distance(x1 As Double, y1 As Double, x2 As Double, y2 As Double) As Double Distance = Sqr((x2 - x1) ^ 2 + (y2 - y1) ^ 2) End Function Function TrianglePerimeter(x1 As Double, y1 As Double, x2 As Double, y2 As Double, x3 As Double, y3 As Double) As Double TrianglePerimeter = Distance(x1, y1, x2, y2) + Distance(x2, y2, x3, y3) + Distance(x3, y3, x1, y1) End Function Function TriangleArea(x1 As Double, y1 As Double, x2 As Double, y2 As Double, x3 As Double, y3 As Double) As Double Dim a As Double, b As Double, c As Double, s As Double a = Distance(x1, y1, x2, y2) b = Distance(x2, y2, x3, y3) c = Distance(x3, y3, x1, y1) s = (a + b + c) / 2 TriangleArea = Sqr(s * (s - a) * (s - b) * (s - c)) End Function Sub CalculateTriangleProperties() Dim x1 As Double, y1 As Double Dim x2 As Double, y2 As Double Dim x3 As Double, y3 As Double Dim perimeter As Double, area As Double x1 = InputBox("Введите x-координату первой вершины:") y1 = InputBox("Введите y-координату первой вершины:") x2 = InputBox("Введите x-координату второй вершины:") y2 = InputBox("Введите y-координату второй вершины:") x3 = InputBox("Введите x-координату третьей вершины:") y3 = InputBox("Введите y-координату третьей вершины:") perimeter = TrianglePerimeter(x1, y1, x2, y2, x3, y3) area = TriangleArea(x1, y1, x2, y2, x3, y3) MsgBox "Периметр треугольника: " & perimeter & vbNewLine & "Площадь треугольника: " & area End Sub
Скопируйте этот код в редактор VBA в Excel (например, нажмите ALT
+ F11
), создайте новый модуль и вставьте код туда. Затем запустите макрос CalculateTriangleProperties()
, чтобы ввести координаты вершин треугольника и получить периметр и площадь.


Похожие вопросы
Топ вопросов за вчера в категории Информатика

Информатика 2132

Информатика 63

Информатика 14

Информатика 32

Информатика 19

Информатика 15

Информатика 175

Информатика 31

Информатика 48
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili