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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2010, 22:02   #1
FullmetalAlchemist
Пользователь
 
Аватар для FullmetalAlchemist
 
Регистрация: 26.02.2010
Сообщений: 18
Сообщение Треугольник в VBA

Народ всем привет!!я понимаю что задание для первоклассника но я за VBA целый год не садился помогите пожалуйста. Всем заранее спасибо!Вот текст задания:
Выяснить, существует ли треугольник с координатами вершин А(x1; y1), В(x2; y2), C(x3; y3).
"Люди не могут получить что-либо не отдав что-либо взамен.Ты должен заплатить что-то равной величины за то, что хочешь получить."-Это принцип равнозначного обмена в алхимии.
FullmetalAlchemist вне форума Ответить с цитированием
Старый 26.04.2010, 23:16   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
Люди не могут получить что-либо не отдав что-либо взамен.Ты должен заплатить что-то равной величины за то, что хочешь получить."-Это принцип равнозначного обмена в алхимии.
Так как поиск по форуму не рулит,то следуя вашей подписи ,меняю ваше математическое описание решения задачи на потом написанный с него программный код.
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 27.04.2010 в 02:10.
doober вне форума Ответить с цитированием
Старый 27.04.2010, 13:04   #3
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Скажем так, не совсем для первоклассника. Я не знаю, сейчас в школе проходят уравнение прямой, проходящей через две точки? Выглядит оно вот так:

Треугольник будет существовать, если три точки не совпадают попарно и не лежат на одной прямой:
Код:
Function TriangleExists(x1 As Single, y1 As Single, _
                        x2 As Single, y2 As Single, _
                        x3 As Single, y3 As Single) As Boolean
  'Точки не должны совпадать:
  Dim f As Boolean
  f = (x1 = x2) And (y1 = y2)
  f = (x2 = x3) And (y2 = y3)
  f = (x3 = x1) And (y3 = y1)
  
  If f Then TriangleExists = Not f: Exit Function
  
  'Точки не должны лежать на одной прямой:
  f = ((y1 - y2) * x3 + (x2 - x1) * y3 + (x1 * y2 - x2 * y1)) <> 0
  
  TriangleExists = f
End Function
Пример:
Код:
Type MyPoint
  X As Single
  Y As Single
End Type
Sub test()
  Dim A As MyPoint, B As MyPoint, C As MyPoint
  A.X = 0: A.Y = 0
  B.X = 0: B.Y = 1
  C.X = 1: C.Y = 1.5
  If TriangleExists(A.X, A.Y, B.X, B.Y, C.X, C.Y) Then
    MsgBox "Треугольник  с координатами А(" & A.X & "," & A.Y & "), B(" & B.X & "," & B.Y & "), С(" & C.X & "," & C.Y & ") существует"
  Else
    MsgBox "Треугольник  с координатами А(" & A.X & "," & A.Y & "), B(" & B.X & "," & B.Y & "), С(" & C.X & "," & C.Y & ") не существует"
  End If
End Sub
Всё это нужно делать в отдельном модуле. Определение структуры MyPoint должно быть перед всеми процедурами
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 27.04.2010, 13:44   #4
FullmetalAlchemist
Пользователь
 
Аватар для FullmetalAlchemist
 
Регистрация: 26.02.2010
Сообщений: 18
По умолчанию

Большое спасибо viter.alex!!
"Люди не могут получить что-либо не отдав что-либо взамен.Ты должен заплатить что-то равной величины за то, что хочешь получить."-Это принцип равнозначного обмена в алхимии.
FullmetalAlchemist вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рисуем треугольник Познающий Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 11 19.11.2009 22:24
про треугольник luchok Паскаль, Turbo Pascal, PascalABC.NET 8 30.04.2009 13:40
Треугольник serega11 Помощь студентам 2 22.05.2008 09:01