Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 23.11.2017, 05:01   #1
DimaDR
Пользователь
 
Регистрация: 17.10.2017
Сообщений: 29
Репутация: 10
По умолчанию Как в условный оператор 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, 08:42   #2
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 16,805
Репутация: 5909
По умолчанию

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

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

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

Шаблон возьмите себе для начала, пусть полным будет он синтаксически
Код:

if (условие здесь напишите) {
  // Скобки сразу расставьте, даже если оператор будет один
}
else {
  // Ветвь "если" тоже пишите, даже если пустой остаётся она
}

СтудПом вне форума   Ответить с цитированием
Старый 24.11.2017, 21:42   #5
olegK<<
Пользователь
 
Аватар для olegK<<
 
Регистрация: 05.11.2017
Адрес: Кропивницкий
Сообщений: 25
Репутация: 10

skype: wheeldraff
По умолчанию

А такой синтаксис никто не предложил.
Код:

else if

olegK<< вне форума   Ответить с цитированием
Старый 26.11.2017, 17:45   #6
DimaDR
Пользователь
 
Регистрация: 17.10.2017
Сообщений: 29
Репутация: 10
По умолчанию

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

else if


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

skype: wheeldraff
По умолчанию

ТАк может причина не в 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, 02:34   #8
DimaDR
Пользователь
 
Регистрация: 17.10.2017
Сообщений: 29
Репутация: 10
По умолчанию

Цитата:
Сообщение от 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, 04:19   #9
DimaDR
Пользователь
 
Регистрация: 17.10.2017
Сообщений: 29
Репутация: 10
По умолчанию

Цитата:
Сообщение от 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 вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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




02:41.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru