Не правильный вывод данных.
Есть скрипт:
var X1, Y1, X2, Y2, X3, Y3, a, b, c, p, S,A, B, C, X0, Y0; X1=prompt("X1","-2"); X1=parseInt(X1); Y1=prompt("Y1","1"); Y1=parseInt(Y1); X2=prompt("X2","2"); X2=parseInt(X2); Y2=prompt("Y2","2"); Y2=parseInt(Y2); X3=prompt("X3","1"); X3=parseInt(X3); Y3=prompt("Y3","-2"); Y3=parseInt(Y3); //Вывод координат точек document.write("Координаты точек:<br>"); document.write('X1=<input type="text" size=2 disabled value="'+X1+'"><br>'); document.write('Y1=<input type="text" size=2 disabled value="'+Y1+'"><br>'); document.write('X2=<input type="text" size=2 disabled value="'+X2+'"><br>'); document.write('Y2=<input type="text" size=2 disabled value="'+Y3+'"><br>'); document.write('X3=<input type="text" size=2 disabled value="'+X3+'"><br>'); document.write('Y3=<input type="text" size=2 disabled value="'+Y3+'"><br>'); a=Math.sqrt(Math.pow((X2-X1),2)+Math.pow((Y2-Y1),2)); a=parseInt(a);//Длина первой стороны треугольника b=Math.sqrt(Math.pow((X3-X2),2)+Math.pow((Y3-Y2),2)); b=parseInt(b);//Длина второй стороны треугольника c=Math.sqrt(Math.pow((X1-X3),2)+Math.pow((Y1-Y3),2)); c=parseInt(c);//Длина треттьей стороны треугольника document.write('Длины сторон AB, BC, CA: <input type="text" disabled value="'+a+', '+b+', '+c+'"><br>'); p=((a+b+c)/2); p=parseInt(p);//Полу-периметр треугольника S=Math.sqrt(p*(p-a)*(p-b)*(p-c)); S=parseInt(S);//Площадь треугольника //Проверка возможности построения и последуещие действия в случае возможности document.write("Площадь треугольника:<br>"); if (a+b>c)//При этом условии построение возможно document.write('<br>Площадь ABC = <input type="text" disabled value="'+S+'"><br>'); else document.write('<input type="text" disabled value="Треугольник не существует"><br>'); //Определение типа треугольника document.write("Тип треугольника:<br>"); if ((Math.pow(a,2)+Math.pow(b,2))==(Math.pow(c,2))) document.write('<input type="text" size=50 disabled value="Треугольник прямоугольный"><br>'); else if ((Math.pow(a,2)+Math.pow(b,2))>(Math.pow(c,2))) document.write('<input type="text" size=50 disabled value="Треугольник тупоугольный"><br>'); else if ((Math.pow(a,2)+Math.pow(b,2))<(Math.pow(c,2))) document.write('<input type="text" size=50 disabled value="Треугольник остроугольный"><br>'); else document.write('<input type="text" disabled value="Треугольник не существует"><br>'); X0=0; X0=parseInt(X0); Y0=0; Y0=parseInt(Y0); A=((X1-X0)*(Y2-Y1)-(X2-X1)*(Y1-Y0)); A=parseInt(A); B=((X2-X0)*(Y3-Y2)-(X3-X2)*(Y2-Y0)); B=parseInt(B); C=((X3-X0)*(Y1-Y3)-(X1-X3)*(Y3-Y0)); C=parseInt(C); //Определение места расположения начала координат document.write("Положение начала координат:<br>"); if ((A>0, B>0, C>0) || (A<0, B<0, C<0)) document.write("Координата (0,0) лежит в пределах треугольника"); else if ((A==0, B>0, C>0) || (A>0, B==0, C>0) || (A>0, B>0, C==0) || (A==0, B<0, C<0) || (A<0, B==0, C<0) || (A<0, B<0, C==0) || (A==0, B<0, C>0) || (A==0, B>0, C<0) || (A<0, B==0, C>0) || (A>0, B==0, C<0) || (A<0, B>0, C==0) || (A>0, B<0, C==0)) document.write("Координата (0,0) лежит на одной из сторон треугольника"); else document.write("Координата (0,0) не лежит в пределах треугольника"); 1)Вывод информации: Координаты выводит правильно, а длины сторон только первое значение, почему? 2)Когда определяю тип треугольника, то когда ввожу координаты для прямоугольного, выводит, что треугольник тупоугольный? 3)При вводе явно не существующего треугольника(координаты находятся на одной прямой) выводит, что треугольник остроугольный? 4) Я уже не говорю про "Определение типа треугольника", там постоянно точка лежит в пределах треугольника! P.S. Изучаю JavaScript около недели, поэтому извините за мой тупизм!:( |
SnowyWolf,
интересно кто кроме вас будет проверять правильность формул ... странные только условия через запятую - что по вашему проверяет это условие if ((A>0, B>0, C>0) || (A<0, B<0, C<0)) по моему что если C не равно нулю - а и b пофигу какие |
При этом условии точка с данными координатами лежит в пределах треугольника. Ну, по крайней мере должно проверятся это условие. Может конечно не правильно оно задано, не знаю , искал ничего по этому поводу не нашел!
На счет формул. Они то правильные, проверено не раз(плюс в школе с геометрией дружил). |
if ((A>0&&B>0&&C>0) || (A<0&&B<0&&C<0)) если нужны все условия
http://javascript.ru/manual/operator http://javascript.ru/comma http://javascript.ru/boolean-operators |
Цитата:
|
SnowyWolf,
напишите: что вводили, что получили, что должно быть? |
a=Math.sqrt(Math.pow((X2-X1),2)+Math.pow((Y2-Y1),2)); a=parseInt(a);//Длина первой стороны треугольника 17 b=Math.sqrt(Math.pow((X3-X2),2)+Math.pow((Y3-Y2),2)); b=parseInt(b);//Длина второй стороны треугольника 18 c=Math.sqrt(Math.pow((X1-X3),2)+Math.pow((Y1-Y3),2)); c=parseInt(c);//Длина треттьей стороны треугольника 19 document.write('Длины сторон AB, BC, CA: <input type="text" disabled value="'+a+', '+b+', '+c+'"><br>'); Вот здесь должно выводить в поле три числа(длины сторон), а у меня выводит при разных координатах одно и тоже число. И только что заметил, что площадь тоже выводится криво, одно и тоже значение, p=((a+b+c)/2); p=parseInt(p);//Полу-периметр треугольника S=Math.sqrt(p*(p-a)*(p-b)*(p-c)); S=parseInt(S);//Площадь треугольника //Проверка возможности построения и последуещие действия в случае возможности document.write("Площадь треугольника:<br>"); if (a+b>c)//При этом условии построение возможно document.write('Площадь ABC = <input type="text" value="'+S+'"><br>'); |
SnowyWolf,
немогу вопроизвести вашу ошибку -- какие данные то? |
рони,
var X1, Y1, X2, Y2, X3, Y3, a, b, c, p, S; X1=prompt("X1","-2"); X1=parseInt(X1); Y1=prompt("Y1","1"); Y1=parseInt(Y1); X2=prompt("X2","2"); X2=parseInt(X2); Y2=prompt("Y2","2"); Y2=parseInt(Y2); X3=prompt("X3","1"); X3=parseInt(X3); Y3=prompt("Y3","-2"); Y3=parseInt(Y3); //Вывод координат точек document.write("Координаты точек:<br>"); document.write('X1=<input type="text" size=2 disabled value="'+X1+'"><br>'); document.write('Y1=<input type="text" size=2 disabled value="'+Y1+'"><br>'); document.write('X2=<input type="text" size=2 disabled value="'+X2+'"><br>'); document.write('Y2=<input type="text" size=2 disabled value="'+Y2+'"><br>'); document.write('X3=<input type="text" size=2 disabled value="'+X3+'"><br>'); document.write('Y3=<input type="text" size=2 disabled value="'+Y3+'"><br>'); a=Math.sqrt(Math.pow((X2-X1),2)+Math.pow((Y2-Y1),2)); a=parseInt(a);//Длина первой стороны треугольника b=Math.sqrt(Math.pow((X3-X2),2)+Math.pow((Y3-Y2),2)); b=parseInt(b);//Длина второй стороны треугольника c=Math.sqrt(Math.pow((X1-X3),2)+Math.pow((Y1-Y3),2)); c=parseInt(c);//Длина треттьей стороны треугольника document.write('Длины сторон AB, BC, CA: <input type="text" value="'+a+', '+b+', '+c+'"><br>'); p=((a+b+c)/2); p=parseInt(p);//Полу-периметр треугольника S=Math.sqrt(p*(p-a)*(p-b)*(p-c)); S=parseInt(S);//Площадь треугольника //Проверка возможности построения и последующие действия в случае возможности document.write("Площадь треугольника:<br>"); if (a+b>c)//При этом условии построение возможно document.write('Площадь ABC = <input type="text" value="'+S+'"><br>'); else document.write('<input type="text" disabled value="Треугольник не существует"><br>'); Вот тут данные по-умолчанию уже стоят, но если их при вводе в заменить то у меня ничего не меняется в поле Длины сторон и Площадь треугольника. |
SnowyWolf,
у меня всё меняется |
Часовой пояс GMT +3, время: 12:13. |