Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
2 / 2 / 3
Регистрация: 15.11.2014
Сообщений: 188

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

22.01.2015, 19:16. Показов 3412. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Треугольник задан координатами своих вершин. Написать процедуру вычисления его площади.
Написал программу для нахождения площади треугольника
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
Imports System.Math
Public Class Form1
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim ax, ay, bx, by, cx, cy As Double
        Dim a, b, c, s, p As Double
        ax = Val(TextBox1.Text)
        ay = Val(TextBox2.Text)
        bx = Val(TextBox3.Text)
        by = Val(TextBox4.Text)
        cx = Val(TextBox5.Text)
        cy = Val(TextBox6.Text)
 
        a = Sqrt(((bx - ax) ^ 2) + ((by - ay) ^ 2))
        b = Sqrt(((cx - bx) ^ 2) + ((cy - by) ^ 2))
        c = Sqrt(((cx - ax) ^ 2) + ((cy - ay) ^ 2))
        p = (a + b + c) / 2
        s = Sqrt(p * (p - a) * (p - b) * (p - c))
        'Label6.Text = a
        'Label7.Text = b
        'Label8.Text = c
        Label9.Text = s
 
    End Sub
    
End Class
а теперь вопрос, как можно использовать процедуру здесь, тут же нет повторяющихся "элементов" , или я не понял суть про процедуру. Думал сначала про процедуру поиска длины сторон, но они как не странно разные...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.01.2015, 19:16
Ответы с готовыми решениями:

Треугольник задан координатами своих вершин.составить программу вычисления его площади
Треугольник задан координатами своих вершин. Составить программу вычисления его площади.

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

Треугольник задан координатами своих вершин. Составить программу для вычисления его площади
Буду благодарен

19
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
22.01.2015, 19:20
Цитата Сообщение от desant Посмотреть сообщение
или я не понял суть про процедуру
Расскажите, как понимаете ее Вы, своими словами
0
2 / 2 / 3
Регистрация: 15.11.2014
Сообщений: 188
22.01.2015, 19:28  [ТС]
Ну наверное, если многократно повторяется одно и тоже в программе, то чтоб постоянно не писать код одного и тоже, можно использовать как раз эту процедуру или функцию, а потом обращаться к ней, через ее имя уже в самой программе
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
22.01.2015, 19:37
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

desant, все верно.
Только процедура, а лучше функция, может принимать параметры

То есть, грубо говоря, есть расчет площади прямоугольника
Имеем сторону А и сторону Б
VB.NET
1
2
3
        Dim A As Integer = 22
        Dim B As Integer = 33
        Dim Result As Integer = A * B
Result - это площадь.


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

Пишем функцию:

VB.NET
1
2
3
    Function S(ByVal A As Integer, ByVal B As Integer) As Integer
        Return A * B
    End Function
И больше к ней не лезем.

Но вызываем ее:

VB.NET
1
2
        MsgBox(S(22, 33))
        MsgBox(S(55, 77))
Код сократился до одной команды
0
2 / 2 / 3
Регистрация: 15.11.2014
Сообщений: 188
22.01.2015, 19:42  [ТС]
Я обязан использовать процедуру тут, но тут нет повторяющихся "элементов", кроме как
Цитата Сообщение от desant Посмотреть сообщение
a = Sqrt(((bx - ax) ^ 2) + ((by - ay) ^ 2))
b = Sqrt(((cx - bx) ^ 2) + ((cy - by) ^ 2))
c = Sqrt(((cx - ax) ^ 2) + ((cy - ay) ^ 2))
хотя и они все равно разные ...
Или просто написать процедуру площади, но вряд ли это уменьшить код, ка кабы не увеличил )))
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
22.01.2015, 19:52
desant, тогда проще.

Раз возвращать ничего не надо, а входные параметры уже зашиты (используя TextBox), то Ваша процедура будет выглядеть так:

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    Private Sub Свари_Кофе()
        Dim ax, ay, bx, by, cx, cy As Double
        Dim a, b, c, s, p As Double
        ax = Val(TextBox1.Text)
        ay = Val(TextBox2.Text)
        bx = Val(TextBox3.Text)
        by = Val(TextBox4.Text)
        cx = Val(TextBox5.Text)
        cy = Val(TextBox6.Text)
 
        a = Sqrt(((bx - ax) ^ 2) + ((by - ay) ^ 2))
        b = Sqrt(((cx - bx) ^ 2) + ((cy - by) ^ 2))
        c = Sqrt(((cx - ax) ^ 2) + ((cy - ay) ^ 2))
        p = (a + b + c) / 2
        s = Sqrt(p * (p - a) * (p - b) * (p - c))
        'Label6.Text = a
        'Label7.Text = b
        'Label8.Text = c
        Label9.Text = s
 
    End Sub
Вызывается где угодно (в пределах видимости, разумеется) так:

VB.NET
1
Свари_Кофе()
Однако я не вижу никакого профита от такой "процедуры"
0
2 / 2 / 3
Регистрация: 15.11.2014
Сообщений: 188
22.01.2015, 20:00  [ТС]
Цитата Сообщение от Памирыч Посмотреть сообщение
не вижу никакого профита
Вот и я... и потому само задание бессмысленное, но делать надо.
Вот там как раз есть про функции

там понятно что есть повторяющийся элемент https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{\sqrt{x} + a}{b}
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
22.01.2015, 20:13
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от desant Посмотреть сообщение
Треугольник задан координатами своих вершин. Написать процедуру вычисления его площади.
Герон снова в гробу перевернулся.
Выяснить, существует ли треугольник с координатами вершин A(x1,y1), B(x2,y2), C(x3,y3), если да, то найти его площадь
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
22.01.2015, 20:58
Действительно. Что делать, если все три точки окажутся на одной линии?
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
22.01.2015, 21:00
Цитата Сообщение от Замабувараев Посмотреть сообщение
Что делать, если все три точки окажутся на одной линии?
Выяснить, существует ли треугольник с координатами вершин A(x1,y1), B(x2,y2), C(x3,y3), если да, то найти его площадь
0
2 / 2 / 3
Регистрация: 15.11.2014
Сообщений: 188
22.01.2015, 21:01  [ТС]
Цитата Сообщение от Замабувараев Посмотреть сообщение
Действительно. Что делать, если все три точки окажутся на одной линии?
это будет не треугольник, там должно быть 180 градусов
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
22.01.2015, 21:04
Цитата Сообщение от desant Посмотреть сообщение
там должно быть 180 градусов
А где вы это определяли?
0
2 / 2 / 3
Регистрация: 15.11.2014
Сообщений: 188
22.01.2015, 21:07  [ТС]
У меня не была задания проверить соответствует ли изображение треугольнику , у меня изначально уже существует треугольник, по тому проверять лож эта или истина не была смысла.
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
22.01.2015, 21:17
desant, ответ на ваш изначальный вопрос был дан выше.
Если не осознаете разницы между процедурой и функцией - спрашивайте, перевести код с VBA на VB.NET дело одной минуты для понимающих.
0
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
22.01.2015, 21:25
м.б. речь об этом
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Label9.Text = getArea(CDbl(TextBox3.Text), CDbl(TextBox1.Text), CDbl(TextBox5.Text), _
                          CDbl(TextBox4.Text), CDbl(TextBox2.Text), CDbl(TextBox6.Text))
End Sub
Private Function getArea(ByVal x1 As Double, ByVal x2 As Double, ByVal x3 As Double, _
                         ByVal y1 As Double, ByVal y2 As Double, ByVal y3 As Double) As Double
    Dim a, b, c, p As Double
    a = getLine(x1, x2, y1, y2)
    b = getLine(x3, x1, y3, y1)
    c = getLine(x3, x2, y3, y2)
    p = (a + b + c) / 2
    Return Sqrt(p * (p - a) * (p - b) * (p - c))
End Function
Private Function getLine(ByVal x1 As Double, ByVal x2 As Double, _
                         ByVal y1 As Double, ByVal y2 As Double) As Double
    Return Sqrt(((x2 - x1) ^ 2) + ((y2 - y1) ^ 2))
End Function
0
22.01.2015, 21:44

Не по теме:

Бедный Герон

0
2 / 2 / 3
Регистрация: 15.11.2014
Сообщений: 188
22.01.2015, 21:48  [ТС]
Цитата Сообщение от Апострофф Посмотреть сообщение
Не по теме:
Бедный Герон
Цитата Сообщение от Апострофф Посмотреть сообщение
перевести код с VBA на VB.NET дело одной минуты для понимающих.
Цитата Сообщение от Апострофф Посмотреть сообщение
desant, ответ на ваш изначальный вопрос был дан выше.
это вообще к чему ?
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
22.01.2015, 21:58
Цитата Сообщение от desant Посмотреть сообщение
Private Sub Button1_Click
чем не процедура?
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
22.01.2015, 22:01
Цитата Сообщение от desant Посмотреть сообщение
это вообще к чему ?
К тому, что нафига здесь было приплетать формулу Герона, когда есть в сотни раз более быстрое решение.
0
2 / 2 / 3
Регистрация: 15.11.2014
Сообщений: 188
23.01.2015, 01:36  [ТС]
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Да я не говорю что правильно или не правильно, просто у меня задание сделать с процедурой , а там аж две функции.

Цитата Сообщение от Апострофф Посмотреть сообщение
К тому, что нафига здесь было приплетать формулу Герона, когда есть в сотни раз более быстрое решение.
А ....я делал сам и на данный момент, мне известна тока эта формула, которую можно использовать в VB.NET

Добавлено через 45 минут
Да , вот с функцией, то задание которое задано, вроде правильно
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Imports System.Math
Public Class Form1
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim x As Double
        x = ((Sqrt(6) + 6) / 2) + ((Sqrt(13) + 13) / 2) + ((Sqrt(21) + 21) / 2)
        Label1.Text = CStr(x)
 
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
       
        Label2.Text = test(6) + test(13) + test(21)
 
    End Sub
 
    Function test(ByVal y As Double) As Double
        test = ((Sqrt(y) + y) / 2)
    End Function
 
 
End Class
Добавлено через 2 часа 48 минут
В общем я с позволения Апострофф, сделал так
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Imports System.Math
Public Class Form1
    Dim ax, ay, bx, by, cx, cy, s As Double
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
        ax = Val(TextBox1.Text)
        ay = Val(TextBox2.Text)
        bx = Val(TextBox3.Text)
        by = Val(TextBox4.Text)
        cx = Val(TextBox5.Text)
        cy = Val(TextBox6.Text)
        test()
        Label9.Text = s
    End Sub
    Public Sub test()
        s = Abs(((ax - cx) * (by - cy) - (bx - cx) * (ay - cy)) / 2)
    End Sub
End Class
Вроде есть процедура, т.е. я выполнил как бы задание
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.01.2015, 01:36
Помогаю со студенческими работами здесь

Треугольник задан координатами своих вершин. Составить программу для вычисления его площади
Треугольник задан координатами своих вершин. Составить программу для вычисления его площади на Делфи

Треугольник задан координатами своих вершин. Составить программу для вычисления его площади
Преобразуйте из Procedure в Function program pr11; var x1,x2,x3,y1,y2,y3,s,a,b,c,p:real; procedure dlina(q,w,e,r:real; var d:real); ...

Треугольник задан координатами своих вершин. Составить программу для вычисления его площади.
Треугольник задан координатами своих вершин. Составить программу для вычисления его площади. Помогите разобраться с задачей....

Треугольник задан координатами своих вершин. Составить программу для вычисления его площади
1. треугольник задан координатами своих вершин.составить программу для вычисления его площади.

Треугольник задан координатами своих вершин. Составить программу для вычисления его площади
Треугольник задан координатами своих вершин. Составить программу для вычисления его площади.


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru