Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2017, 04:01   #1
DimaDR
Пользователь
 
Регистрация: 17.10.2017
Сообщений: 27
По умолчанию Как в условный оператор if вставить еще одно логическое выражение

Доброе время суток!

Столкнулся с такой проблемой, Нужно при условии выполнения трех неравенств (первого IF) прописать тип треугольника, то есть в оператор IF вставить еще такие же If

код прикрепил, может кто знает как правильно это проописать.
Код:
//Проверка возможности построения треугольника
     if ((AB+BC>CA) && (BC+CA>AB) && (AB+CA>BC))//При этом условии построение возможно
         p=((AB+BC+CA)/2); p=parseInt(p);//Полу-периметр треугольника
         S=parseInt(Math.sqrt(p*(p-AB)*(p-BC)*(p-CA)));//Площадь треугольника
	 document.write("Площадь треугольника = " + '<input type="text" value="' + S + '"><br>');
//Определение типа треугольника
            if ((Math.pow(AC,2)+Math.pow(BC,2))==(Math.pow(CA,2)))
            document.write("Треугольник прямоугольный<br>");
            else
            if ((Math.pow(AC,2)+Math.pow(BC,2))>(Math.pow(CA,2)))
            document.write("Треугольник тупоугольный<br>");
            else
            if ((Math.pow(AC,2)+Math.pow(BC,2))<(Math.pow(CA,2)))
            document.write("Треугольник остроугольный<br>"); 
     else
     if //При этом условии построение невозможно
        document.write("По данным вершинам нельзя построить треугольник");
return;
}
DimaDR вне форума Ответить с цитированием
Старый 23.11.2017, 07:42   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Там третий if не нужен, else достаточно. И квадраты зачем каждый раз вычислять, один раз вычислить сумму квадратов катетов и квадрат гипотенузы и сравнивать уже заранее вычисленное
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.11.2017, 18:07   #3
DimaDR
Пользователь
 
Регистрация: 17.10.2017
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Там третий if не нужен, else достаточно. И квадраты зачем каждый раз вычислять, один раз вычислить сумму квадратов катетов и квадрат гипотенузы и сравнивать уже заранее вычисленное
Изменил как вы посоветовали, но все равно результат такой же - функция выводит площадь и на этом перестает дальнейшее вычисление
DimaDR вне форума Ответить с цитированием
Старый 23.11.2017, 21:56   #4
СтудПом
Форумчанин
 
Регистрация: 08.11.2017
Сообщений: 347
По умолчанию

Ужас!!! Либо не разобрались в синтаксисе if, либо пишите на ощупь

Шаблон возьмите себе для начала, пусть полным будет он синтаксически
Код:
if (условие здесь напишите) {
  // Скобки сразу расставьте, даже если оператор будет один
}
else {
  // Ветвь "если" тоже пишите, даже если пустой остаётся она
}
СтудПом вне форума Ответить с цитированием
Старый 24.11.2017, 20:42   #5
olegK<<
Пользователь
 
Аватар для olegK<<
 
Регистрация: 05.11.2017
Сообщений: 59
По умолчанию

А такой синтаксис никто не предложил.
Код:
else if
olegK<< вне форума Ответить с цитированием
Старый 26.11.2017, 16:45   #6
DimaDR
Пользователь
 
Регистрация: 17.10.2017
Сообщений: 27
По умолчанию

Цитата:
Сообщение от olegK<< Посмотреть сообщение
А такой синтаксис никто не предложил.
Код:
else if

у меня первоначально else if и был, и ор не работает ((
DimaDR вне форума Ответить с цитированием
Старый 27.11.2017, 09:38   #7
olegK<<
Пользователь
 
Аватар для olegK<<
 
Регистрация: 05.11.2017
Сообщений: 59
По умолчанию

ТАк может причина не в else if, а в вычислении при проверке .Как выше советовали- сохраните вычисление в переменной, приведите к числу, как выше в коде. А вот код с else if, который работает в консоли браузера.
Код:
var a = 2, b= 5, c = 7;
if (a == b)
 document.write("Треугольник прямоугольный<br>");
 else if (a > b)
 document.write("Треугольник тупоугольный<br>");
 else 
 document.write("По данным вершинам нельзя построить треугольник");
olegK<< вне форума Ответить с цитированием
Старый 28.11.2017, 01:34   #8
DimaDR
Пользователь
 
Регистрация: 17.10.2017
Сообщений: 27
По умолчанию

Цитата:
Сообщение от olegK<< Посмотреть сообщение
сохраните вычисление в переменной, приведите к числу, как выше в коде. А вот код с else if, который работает в консоли браузера.
Код:


var a = 2, b= 5, c = 7;
if (a == b)
document.write("Треугольник прямоугольный<br>");
else if (a > b)
document.write("Треугольник тупоугольный<br>");
else
document.write("По данным вершинам нельзя построить треугольник");

я бы привел к числам, но.... Задание состоит в том, чтобы при открытии документа, с помощью ПРОМПТ были введены любые числа точек координат треугольник, затем функция вычисляет длину сторон, периметр , площадь, а затем (если существует теугольник) определить тип треугольника. Поэтому без написания формул в условном операторе мне никак ((
DimaDR вне форума Ответить с цитированием
Старый 28.11.2017, 03:19   #9
DimaDR
Пользователь
 
Регистрация: 17.10.2017
Сообщений: 27
По умолчанию

Цитата:
Сообщение от DimaDR Посмотреть сообщение
Доброе время суток!

Столкнулся с такой проблемой, Нужно при условии выполнения трех неравенств (первого IF) прописать тип треугольника, то есть в оператор IF вставить еще такие же If

код прикрепил, может кто знает как правильно это проописать.
Код:
//Проверка возможности построения треугольника
     if ((AB+BC>CA) && (BC+CA>AB) && (AB+CA>BC))//При этом условии построение возможно
         p=((AB+BC+CA)/2); p=parseInt(p);//Полу-периметр треугольника
         S=parseInt(Math.sqrt(p*(p-AB)*(p-BC)*(p-CA)));//Площадь треугольника
	 document.write("Площадь треугольника = " + '<input type="text" value="' + S + '"><br>');
//Определение типа треугольника
            if ((Math.pow(AC,2)+Math.pow(BC,2))==(Math.pow(CA,2)))
            document.write("Треугольник прямоугольный<br>");
            else
            if ((Math.pow(AC,2)+Math.pow(BC,2))>(Math.pow(CA,2)))
            document.write("Треугольник тупоугольный<br>");
            else
            if ((Math.pow(AC,2)+Math.pow(BC,2))<(Math.pow(CA,2)))
            document.write("Треугольник остроугольный<br>"); 
     else
     if //При этом условии построение невозможно
        document.write("По данным вершинам нельзя построить треугольник");
return;
}

Заработало, оказывается сам невнимательный - у меня переменной AC не существует, изменил правильно на AB и все заработало как часы )). Всем спасибо )
DimaDR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выражение и условный оператор If (составить блок-схему) / Free Pascal Ksyusha Помощь студентам 2 10.04.2014 20:47
Задание на условный оператор (написать выражение по графику) passresx Паскаль, Turbo Pascal, PascalABC.NET 4 22.12.2013 17:58
куда вставить еще одно условие?С++ Guzal Помощь студентам 6 27.02.2011 22:05
Как прописать условный оператор кликанья на кнопку? mauar Общие вопросы Delphi 30 01.06.2009 20:15