Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2019, 20:56   #1
Teemonya
Новичок
Джуниор
 
Регистрация: 22.01.2019
Сообщений: 4
По умолчанию Найти площадь треугольника.

Нужна помощь в составлении правильного условия. Я понимаю, что оно не правильное, но почему и как его поменять, чтобы всё корректно работало - не понимаю.
Задача:Найти площадь треугольника. Известны только вершины треугольника(координаты).
Код:
Sub homak1()
a1 = Cells(1, 1)
a2 = Cells(1, 2)
b1 = Cells(2, 1)
b2 = Cells(2, 2)
c1 = Cells(3, 1)
c2 = Cells(3, 2)
ab = Sqr((b1 - a1) ^ 2 + (b2 - a2) ^ 2)
bc = Sqr((c1 - b1) ^ 2 + (c2 - b2) ^ 2)
ac = Sqr((c1 - a1) ^ 2 + (c2 - a2) ^ 2)
p = ab + bc + ac
s = Sqr(p / 2 * (p / 2 - ab) * (p / 2 - bc) * (p / 2 - ac))
If ac > bc + ab Or ab > bc + bc Or bc > ab + ac Then MsgBox ("s=" + Str(s)) Else
MsgBox ("Треугольник не существует")
End Sub
Teemonya вне форума Ответить с цитированием
Старый 22.01.2019, 21:25   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
  p = (ab + bc + ac) / 2
  s = Sqr(p * (p - ab) * (p - bc) * (p - ac))
  MsgBox IIf(s > 0, "S = " & s, "Треугольник не существует")
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 22.01.2019, 21:31   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А зачем по Герону с корнями? Вот отличная формула:
S = 1/2*|(x2-x1)(y3-y1)-(x3-x1)(y2-y1)|
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 22.01.2019, 21:39   #4
Teemonya
Новичок
Джуниор
 
Регистрация: 22.01.2019
Сообщений: 4
По умолчанию

Все ровно пишет, что треугольника не существует
Изображения
Тип файла: bmp Безымянныйfggffg.bmp (99.9 Кб, 127 просмотров)
Teemonya вне форума Ответить с цитированием
Старый 22.01.2019, 21:43   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А координаты какие?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 22.01.2019, 21:45   #6
Teemonya
Новичок
Джуниор
 
Регистрация: 22.01.2019
Сообщений: 4
По умолчанию

В задаче не даны конкретные координаты
Возможно, предполагается, что пользователь должен их сам вводить
Или программа должна выбирать их сама из заданного диапазона
Teemonya вне форума Ответить с цитированием
Старый 22.01.2019, 21:48   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ну ты же ввел хоть какие, иначе что считать? А со всеми нулями естественно треугольник не существует ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 22.01.2019, 21:50   #8
Teemonya
Новичок
Джуниор
 
Регистрация: 22.01.2019
Сообщений: 4
По умолчанию

Да, логично, спасибо)
Teemonya вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти площадь треугольника ( с векторами) МАРИЯ27 Паскаль, Turbo Pascal, PascalABC.NET 7 30.03.2015 09:29
Дано 3 точки своими координатами х,у. Будет ли они вершинами треугольника. Если да - найти периметр и площадь треугольника Arhi555 Паскаль, Turbo Pascal, PascalABC.NET 2 11.09.2012 17:46
найти площадь треугольника, используя функцию ele29 Паскаль, Turbo Pascal, PascalABC.NET 3 19.01.2012 16:51
Найти площадь треугольника (по разным исходным данным) [на Delphi] gylayko Помощь студентам 17 14.09.2011 16:41