imho.ws |
![]() |
![]() |
![]() |
# 1 |
::VIP::
Регистрация: 30.04.2002
Адрес: Israel
Пол: Male
Сообщения: 7 090
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Привет программистам ,
в очередной раз столкнулся с трудностями в Matlab на этот раз требования задачи таковы: Программа 1. Примет (input) от пользователя три числа (которые в конечном счете будут представлять из себя стороны треугольника). 2. Проверит что эти числа позитивные , что могут быть сторонами треугольника в плоскости. (В противном случае покажет - ошибку) 3. Если числа годны , отпечатает углы треугольника (input=стороны). 4. Проверит тип треугольника (Равнобедренный или Равносторонний или Тупоугольный или Равносторонний и Тупоугольный). 5. Если никто из типов не подходит покажет сообщение - никаких особенностей. *При проверки типа треугольника , не забывать что не стоит лишний раз проверять равнобедренность у равносторонних или не пропускать что и равносторонний может быть тупоугольным* Вот что у меня получилось, Код HTML:
clc,clear %input of triangle sides as a vector (or we can choose three variables instead) N=input('Enter vector of three positive numbers that can represent triangle sides: \n'); if N(1)>0&&N(2)>0&&N(3)>0 %check the input - positive if (N(1)+N(2))>N(3)&&(N(1)+N(3))>N(2)&&(N(2)+N(3))>N(1) %check the input if it can be triangle at all A(1)=acosd((N(2).^2+N(3).^2-N(1).^2)./(2*(N(2).*N(3)))); A(2)=acosd((N(1).^2+N(3).^2-N(2).^2)./(2*(N(1).*N(3)))); A(3)=acosd((N(1).^2+N(2).^2-N(3).^2)./(2*(N(1).*N(2)))); fprintf ('Your triangle angles are:\n') disp (A) if (A(1)==A(2))&&(A(1)==A(3)) %check if its equilateral disp ('Your triangle is Equilateral') elseif A(1)==A(2)||A(1)==A(3)||A(2)==A(3) disp ('Your triangle is Isosceles') if A(1)==90||A(2)==90||A(3)==90 disp ('Your triangle is rectangled triangle') end elseif A(1)==90||A(2)==90||A(3)==90 %rak 90 disp ('Your triangle is rectangled triangle') else disp ('Your triangle have no unique relative lengths at all') end else fprintf ('Error! No planar triangle exists with this sides') end else disp ('Error! I asked for positive numbers only!') end Inputs:
и не показывает тупоугольность для хотя показывает что он равнобедренный
Внимание вопрос : В чем собственно моя ошибка? Или ошибка (bug?) Matlab? Последний раз редактировалось DJLOVE; 09.12.2011 в 15:14. |
![]() |