Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Анна Еремеева
1 / 1 / 0
Регистрация: 22.10.2015
Сообщений: 19
1

Определить по длинам сторон треугольника, является ли он прямоугольным

17.03.2016, 18:44. Просмотров 1781. Ответов 16
Метки нет (Все метки)

С чего начать?
Написать программу, определяющую по длинам сторон треугольника, является ли он прямоугольным. Если треугольник не прямоугольный, то вычислить косинус угла, лежащего против большей стороны.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2016, 18:44
Ответы с готовыми решениями:

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

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

По длинам сторон треугольника опредедить, является ли он прямоугольным
Здравствуйте. Помогите составить программы на Pascal. Заранее спасибо. 1) Написать программу,...

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

Составить программу, которая бы по введенным длинам трех сторон треугольника определяла, является ли данный треугольник прямоугольным
Помогите пожалуйста новичку написать на jave программку: Входной файл: input.txt Выходной файл:...

16
Alex77755
10835 / 3390 / 572
Регистрация: 13.02.2009
Сообщений: 9,984
17.03.2016, 18:48 2
1. как и рекомендуют правила воспользоваться поиском по форуму: даже не можете представить сколько раз задавался этот вопрос и сколько готовых решений было предложено!!
0
Sasha_Smirnov
5492 / 1320 / 144
Регистрация: 08.02.2009
Сообщений: 4,042
Записей в блоге: 29
17.03.2016, 22:08 3
Alex77755, что-то я внизу этой темы не нашёл подходящих тем.

Моей программе 6 лет и почти 4 месяца, и там не длины, а координаты, да и точек 4, а не 3, но есть один момент (которого на форуме не помню чтобы встречал): невозможность точного равенства (операция =) чисел с плавающей точкой (на что, в частности, и намекнул Puporev):
Цитата Сообщение от Sasha_Smirnov Посмотреть сообщение
Цитата Сообщение от Puporev Посмотреть сообщение
Вам удастся получить 2 одинаковых вычисленных вещественных числа, именно равных в понятии компьютера?
Цитата Сообщение от Puporev Посмотреть сообщение
Это ты типа помогаешь программу писать, или повыпендриваться?
0
Миниатюры
Определить по длинам сторон треугольника, является ли он прямоугольным   Определить по длинам сторон треугольника, является ли он прямоугольным   Определить по длинам сторон треугольника, является ли он прямоугольным  

Вложения
Тип файла: doc IsItPlan.doc (49.5 Кб, 3 просмотров)
Анна Еремеева
1 / 1 / 0
Регистрация: 22.10.2015
Сообщений: 19
17.03.2016, 22:17  [ТС] 4
Тут есть что-то похожее на правду?Совсем не уверена в коде.И где считать косинус угла напротив большей стороны?
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Dim a, b, m, c As Integer
a = Text1
b = Text2
c = Text3
 
If a > b Then
   m = a
   Else
   m = b
End If
If c > m Then
  Max = c
  If c^2 = a^2 + b ^2 Then
  MsgBox " Треугольник прямоугольный", , "Результат "
  Else
  MsgBox " Треугольник не прямоугольный", , "Результат "
  End If
Else
  Max = m
  End If
Print Max
End Sub
0
Sasha_Smirnov
5492 / 1320 / 144
Регистрация: 08.02.2009
Сообщений: 4,042
Записей в блоге: 29
18.03.2016, 02:06 6
Alex77755, 1-я тема от гостя blacky94 просто шедевр:
Цитата Сообщение от blacky94 Посмотреть сообщение
Прямоугольный треугольник должен принимать прямоугольную форму.
0
Alex77755
18.03.2016, 02:12
  #7

Не по теме:

Ну есть же "квадратура круга"

0
Sasha_Smirnov
5492 / 1320 / 144
Регистрация: 08.02.2009
Сообщений: 4,042
Записей в блоге: 29
18.03.2016, 04:05 8
Судя по строке сравнения (трудно процитировать), ТС прав:
Цитата Сообщение от blacky94 Посмотреть сообщение
Из того что написано, толком не работает...

Похоже, ваше протеже переваривает лишь рациональные тройки Пифагора (ru.wikipedia.org/wiki/Пифагорова_тройка). У меня только VBA, испытать не могу, но мой код как раз и содержит «припуск» для троек типа {1; 1; ¯2} — даёт «есть прямой угол», а ваш (хвалёный)?

Только для испытания дробей (набор — через точку) надо заменить в IsItPlan.doc
Visual Basic
1
VvodkaXY = Fix(R)
на
Visual Basic
1
VvodkaXY = R
0
Анна Еремеева
1 / 1 / 0
Регистрация: 22.10.2015
Сообщений: 19
22.03.2016, 23:58  [ТС] 9
А можно так решить эту задачу?Пока что попробовала Visual Basic,потом перенесу в VBA.Просто скажите,ход решения верен или нет
Visual Basic
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
Private Sub Command1_Click()
Dim a, b, m, c As Integer
a = Text1
b = Text2
c = Text3
Max = Label1
If a > b Then
   m = a
   Else
   m = b
End If
If c > m Then
  Max = c
  If c * c = a * a + b * b Then
  MsgBox " Треугольник прямоугольный", , "Результат "
  Else
  MsgBox " Треугольник не прямоугольный", , "Результат "
  End If
Else
  Max = m
  End If
MsgBox " Максимальный элемент равен " & Max, , "Результат "
 If c * c <> a * a + b * b Then
  If Max = a Then
  cox = (c ^ 2 + b ^ 2 - a ^ 2) / (2 * b * c)
  MsgBox " Косинус угла напротив стороны большей стороны a равен" & cox, , "Результат "
  ElseIf Max = b Then
  coy = (a ^ 2 + c ^ 2 - b ^ 2) / (2 * a * c)
  MsgBox " Косинус угла напротив большей стороны b равен " & coy, , "Результат "
  Else: coz = (b ^ 2 + a ^ 2 - c ^ 2) / (2 * a * b)
MsgBox " Косинус угла напротив большей стороны c равен " & coz, , "Результат "
  End If
  End If
End Sub
1
Shersh
Заблокирован
23.03.2016, 07:04 10
Цитата Сообщение от Анна Еремеева Посмотреть сообщение
скажите,ход решения верен или нет
Нет.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Command1_Click()
Dim a As Double, b As Double, c As Double, m As Double
Dim co As Double
a = Text1
b = Text2
c = Text3
If a > b Then m = a: a = b: b = m 'теперь b >= a
If b > c Then m = b: b = c: c = m 'теперь c >= a и c >= b
 
If c * c = a * a + b * b Then
  MsgBox "Треугольник прямоугольный", , "Результат "
Else
  co = (b ^ 2 + a ^ 2 - c ^ 2) / (2 * a * b)
  MsgBox "Треугольник не прямоугольный" & vbLf & "Косинус угла напротив стороны большей стороны a равен " & co, , "Результат "
End If
 
End Sub
2
Казанский
14776 / 6217 / 1675
Регистрация: 24.09.2011
Сообщений: 9,834
23.03.2016, 11:08 11
Достаточно одного расчета - по теореме косинусов
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Command1_Click()
Dim a As Double, b As Double, c As Double, m As Double
Dim co As Double
a = Text1
b = Text2
c = Text3
If a > b Then m = a: a = b: b = m 'теперь b >= a
If b > c Then m = b: b = c: c = m 'теперь c >= a и c >= b
 
co = (b ^ 2 + a ^ 2 - c ^ 2) / (2 * a * b)
Select Case Abs(co)
Case Is >= 1:     MsgBox "Треугольник не существует", , "Результат"
Case Is <= 0.001: MsgBox "Треугольник прямоугольный", , "Результат"
Case Else
  MsgBox "Треугольник не прямоугольный" & vbLf & "Косинус угла, лежащего против большей стороны равен " & co, , "Результат"
End Select
End Sub
2
Анна Еремеева
1 / 1 / 0
Регистрация: 22.10.2015
Сообщений: 19
23.03.2016, 23:02  [ТС] 12
А где можно вывести условие на существование треугольника?
0
Alex77755
10835 / 3390 / 572
Регистрация: 13.02.2009
Сообщений: 9,984
24.03.2016, 01:37 13
Самое простое в 9 строчке.
Видимо для этого она и была зарезервирована
Если с>a+b, то треугольник не существует
0
Казанский
14776 / 6217 / 1675
Регистрация: 24.09.2011
Сообщений: 9,834
24.03.2016, 07:20 14
Цитата Сообщение от Анна Еремеева Посмотреть сообщение
А где можно вывести условие на существование треугольника?
См. 12 строку кода в #11.
0
m-ch
5532 / 819 / 275
Регистрация: 25.02.2011
Сообщений: 1,161
Записей в блоге: 1
24.03.2016, 08:09 15
Цитата Сообщение от Казанский Посмотреть сообщение
Case Is >= 1: MsgBox "Треугольник не существует", , "Результат"
Алексей, может быть
Case Is <= -1


Добавлено через 5 минут
Abs() не увидел
0
Shersh
Заблокирован
24.03.2016, 08:33 16
deleted
0
Анна Еремеева
1 / 1 / 0
Регистрация: 22.10.2015
Сообщений: 19
24.03.2016, 22:50  [ТС] 17
Мне нужно решение этой задачи через оператор If,а не через Case.Переписала код снова,проблемы с выводом сообщения о существовании треугольника.

Private Sub Command1_Click()

Dim a, b, c, d As Integer

Dim m As Boolean

a = Text1

b = Text2

c = Text3

If ((c ^ 2 = a ^ 2 + b ^ 2) Or (a ^ 2 = c ^ 2 + b ^ 2) Or (b ^ 2 = a ^ 2 + c ^ 2)) Then

MsgBox " Треугольник прямоугольный", , "Результат "

m = False

Else: MsgBox " Треугольник не прямоугольный", , "Результат "

m = True

End If

If m = True Then

If a > b Then

d = a

Else

d = b

End If

If c > d Then

d = c

End If

MsgBox " Максимальный элемент равен " & d, , "Результат "

If d = a Then

cox = (c ^ 2 + b ^ 2 - a ^ 2) / (2 * b * c)

MsgBox " Косинус угла напротив большей стороны a равен" & cox, , "Результат "

ElseIf d = b Then

coy = (a ^ 2 + c ^ 2 - b ^ 2) / (2 * a * c)

MsgBox " Косинус угла напротив большей стороны b равен " & coy, , "Результат "

Else: coz = (b ^ 2 + a ^ 2 - c ^ 2) / (2 * a * b)

MsgBox " Косинус угла напротив большей стороны c равен " & coz, , "Результат "

End If

End If

End Sub
0
24.03.2016, 22:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2016, 22:50

Определить по значениям длин сторон треугольника, является ли он прямоугольным
Составить функцию PlPrTr(A,B,C,S,L), определяющую по значениям длин сторон треугольника, является...

Ввести с клавиатуры значения трех сторон треугольника a, b и c; определить, является ли он прямоугольным
Ввести с клавиатуры значения трех сторон треугольника a, b и c и определить, является ли он...

Длины сторон треугольника а б с. определить является ли этот треугольник остроугольным, прямоугольным или тупоугольным
Длины сторон треугольника а б с. определить является ли этот треугольник остроугольным,...


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

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

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