Форум программистов, компьютерный форум, киберфорум
Микропроцессоры
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 14.12.2019
Сообщений: 3
1

Найти данные треугольника, исходя из условий

15.12.2019, 09:52. Просмотров 964. Ответов 6

Здравствуйте, необходимо написать функцию для excel по задаче:

Даны три стороны a, b, c, удовлетворяющие аксиомам треугольника. Если треугольник равносторонний, то найти его площадь. Если треугольник равнобедренный, то найти периметр и угол между равными сторонами, во всех остальных случаях вывести сообщение «треугольник не является равносторонним или равнобедренным.


Я написала вот такую функцию, однако она не работает:

PureBasic
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
Function t(a, b, c)
If a <= 0 Or b <= 0 Or c <= 0 Then
treug = Val("Не существует")
Else
p = a + b + c
Pi = 3.14159265358979
d = (a + b + c) / 2
angleA = 360 / Pi * Atn(Sqr((p - b) * (p - c) / (p * p - p * a)))
  angleC = 360 / Pi * Atn(Sqr((p - a) * (p - b) / (p * p - p * c)))
  angleB = 180 - angleA - angleC
  If a = b = c Then
  treug = 0.5 * a * b * (Sqr(3) / 2)
  Else
  If a <> b <> c Then
  treug = Val("Не является равносторонним или равнобедренным")
  Else
  If a = b Then
  treug = ("Периметр=" & (d) & "угол=" & (angleA))
  Else
  If b = c Then
  treug = ("Периметр=" & (d) & "угол=" & (angleC))
  Else
  If a = c Then
  treug = ("Периметр=" & (d) & "угол=" & (angleB))
End If
End If
End If
End If
End If
End If
End Function
Помогите найти ошибки. Заранее спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2019, 09:52
Ответы с готовыми решениями:

найти чему рано f исходя из трех условий
Помогите, пожалуйста, решить.

Подсчет исходя из условий
Ребята, привет! Можете подсказать? Нужен макрос, который следует этой формуле: Создайте...

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

Получение строк исходя из условий
Здравствуйте форумчане! Есть одна таблица с тремя полями: id, имя, фамилия. Примерно такая: ...

6
Модератор
8197 / 6068 / 810
Регистрация: 14.02.2011
Сообщений: 21,045
15.12.2019, 10:51 2
NataZyr, при чем здесь микропроцессоры?

Добавлено через 1 минуту
Цитата Сообщение от NataZyr Посмотреть сообщение
Я написала вот такую функцию,
язык какой?
0
901 / 541 / 81
Регистрация: 15.05.2012
Сообщений: 3,168
16.12.2019, 10:55 3
Цитата Сообщение от NataZyr Посмотреть сообщение
она не работает
На чём не работает?
0
WH
1224 / 569 / 118
Регистрация: 10.09.2013
Сообщений: 2,155
Записей в блоге: 2
21.12.2019, 18:38 4
Если это функция для Excel, то вероятно язык Visual Basic.
0
2 / 2 / 0
Регистрация: 11.09.2015
Сообщений: 24
17.02.2020, 18:55 5
PureBasic
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
Function treug(a, b, c) As String
If a <= 0 Or b <= 0 Or c <= 0 Then
treug = Val("Íå ñóùåñòâóåò")
Else
p = a + b + c
Pi = 3.14159265358979
d = (a + b + c) / 2
angleA = 360 / Pi * Atn(Sqr((p - b) * (p - c) / (p * p - p * a)))
angleC = 360 / Pi * Atn(Sqr((p - a) * (p - b) / (p * p - p * c)))
angleB = 180 - angleA - angleC
If a = b = c Then
treug = 0.5 * a * b * (Sqr(3) / 2)
Else
If a <> b <> c Then
treug = "Íå ÿâëÿåòñÿ ðàâíîñòîðîííèì èëè ðàâíîáåäðåííûì"
Else
If a = b Then
treug = ("Ïåðèìåòð=" & (d) & "óãîë=" & (angleA))
Else
If b = c Then
treug = ("Ïåðèìåòð=" & (d) & "óãîë=" & (angleC))
Else
If a = c Then
treug = ("Ïåðèìåòð=" & (d) & "óãîë=" & (angleB))
End If
End If
End If
End If
End If
End If
End Function
0
157 / 163 / 27
Регистрация: 08.10.2015
Сообщений: 612
23.02.2020, 21:17 6
NataZyr Как то Вы сложно угол вычисляете, не проще-ли: if(a==b) fi=arcsin(c/(2a))); и т.п. для других углов?
0
Эксперт по математике/физике
3339 / 1866 / 562
Регистрация: 09.04.2015
Сообщений: 5,241
04.03.2020, 08:52 7
NataZyr, в строках 11 и 14 двойные условия, такие условия практически всегда работают некорректно. Переделайте на отдельные одинарные условия соединенные Or или Add.

Условие в строке 2 является не единственным при определении существования треугольника. В случае если сумма 2-х любых сторон меньше или равна третьей, то треугольник тоже не существует.

Для перевода угла из радиан в градусы надо не 360 делить на пи, а 180.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2020, 08:52

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

Вывод значения исходя из условий
помогите пожалуйста,дана таблица 2 столбика ,название и значение,количество строк от 1 до n ,нужно...

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

Сгенерировать массив, исходя из условий: V[j] >v[i] при j > i
Задан массив V произвольной длины.Написать программу, генерирующую целочисленный массив W такой же...

Пропорциональное распределение имеющейся суммы, исходя из условий
Имеется табличка, состоит из следующих столбцов: дата (не по порядку, таблица будет пополняться),...


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

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

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