Начиная с уравнений Фигуры, осуществлять функцию, которую, начиная с array, перечисленного со сторонами треугольника [в, b, c], нам возвращает другой array, в этом случае ассоциативного типа, показателей: углы, tipo_lados и tipo_angulos, что содержали, соответственно, array, перечисленный с углами A, B и C, и Вашу классификацию в равностороннем, равнобедренном и лестничную мышцу, также как и остроугольный, прямоугольник или тупоугольный.
У меня есть это, но Вы даете мне ошибку:
<?php
function lados($a, $b, $c) {
$r='triangulo escaleno';
if ($a==$b || $a==$c) {
$r='triangulo isosceles';
}
if($b==$c and $a==$c){
$r='triangulo equilatero';
}
return $r;
}
function angulo($A, $B, $C) {
$s=' y rectangulo';
if ($A>90 || $B>90 || $C>90) {
$s=' y obtusangulo';
}
if($A<90 and $B<90 and $C<90){
$s=' y acutangulo';
}
return $s;
}
function triangulo($l) {
$a=$l[0];
$b=$l[1];
$c=$l[2];
$x=($a**2-$b**2+$c**2)/(2*$c);
$h=sqrt($a**2-$x**2);
$A=atan($h/($c-$x))*(360/(2*3.14));
$B=atan($h/$x)*(360/(2*3.14));
$C=180-($A+$B);
return [
'angulos'=>[$A,$B,$C],
'tipo_lados'=>lados($a,$b,$c),
'tipo_angulos'=>angulo($A,$B,$C)
];
}
echo '<pre>';
print_R( triangulo([5,5,8]))."<br>";
echo '</pre>';
?>
Я нашел ошибку синтаксиса в print_R()
, deberГ, - когда меня был print_r()
.
AdemГЎs, я добавил добавочные проверки, как он предложил @Jakala в комментариях.
Из-за Гєltimo, я предотвратил использование избыточных переменных для стоимости, возвращенной return
и использовал переменную estГЎtica M_PI
, чтобы выражать стоимость ПЂ.
В этом примере я использовал json_encode()
и послал согласный заголовок.
<?php
function lados($a, $b, $c)
{
if ($a == $b || $a == $c) {
return 'triangulo isosceles';
}
if ($b == $c && $a == $c) {
return 'triangulo equilatero';
}
return 'triangulo escaleno';
}
function angulo($A, $B, $C)
{
if ($A > 90 || $B > 90 || $C > 90) {
return 'obtusangulo';
}
if ($A < 90 && $B < 90 && $C < 90) {
return 'acutangulo';
}
return 'rectangulo';
}
function triangulo($l)
{
/* Comprobación del tipo de dato y número de elementos de entrada */
if (is_array($l) === false || count($l) !== 3) {
return false;
}
/* Ordenamos los lados para poder hacer comprobaciones mejor */
sort($l);
/* Comprobamos la validez del triángulo */
if (($l[0] + $l[1]) <= $l[2]) {
return false;
}
$a = $l[0];
$b = $l[1];
$c = $l[2];
$x = ($a ** 2 - $b ** 2 + $c ** 2) / (2 * $c);
$h = sqrt($a ** 2 - $x ** 2);
$A = atan($h / ($c - $x)) * (360 / (2 * M_PI));
$B = atan($h / $x) * (360 / (2 * M_PI));
$C = 180 - ($A + $B);
return [
'angulos' => [ $A, $B, $C ],
'tipo_lados' => lados($a, $b, $c),
'tipo_angulos' => angulo($A, $B, $C),
];
}
header('Content-Type: application/json; charset=utf-8');
echo json_encode(
[
'ejemplo' => triangulo([ 5, 5, 8 ]),
'incorrecto1' => triangulo([ 5, 5, 8, 8 ]),
'incorrecto2' => triangulo([ 3, 3, 8 ]),
],
JSON_PRETTY_PRINT
);
Результат ее ejecuciГіn serГ - в:
{
"ejemplo": {
"angulos": [
36.86989764584402,
36.86989764584402,
106.26020470831196
],
"tipo_lados": "triangulo isosceles",
"tipo_angulos": "obtusangulo"
},
"incorrecto1": false,
"incorrecto2": false
}
Используя print_r()
вывод serГ - в:
Array
(
[ejemplo] => Array
(
[angulos] => Array
(
[0] => 36.869897645844
[1] => 36.869897645844
[2] => 106.26020470831
)
[tipo_lados] => triangulo isosceles
[tipo_angulos] => obtusangulo
)
[incorrecto1] =>
[incorrecto2] =>
)
, Поскольку ты можешь видеть print_r()
, не удается ничтожно идентифицируя типы данных, которых он показывает в incorrecto1
и incorrecto2
. Поскольку mГ-nimo я рекомендую тебе использовать var_export()
, если ты принимаешь решение не использовать json_encode()
:
array (
'ejemplo' =>
array (
'angulos' =>
array (
0 => 36.86989764584402,
1 => 36.86989764584402,
2 => 106.26020470831196,
),
'tipo_lados' => 'triangulo isosceles',
'tipo_angulos' => 'obtusangulo',
),
'incorrecto1' => false,
'incorrecto2' => false,
)