Skip to content

19.09.2011

3.Условия

Лекция №3

Задания

  1. Есть три переменные. Проверить, могут ли их значения быть длинами сторон треугольника.
  2. Есть три целые переменные. Проверить, могут ли их значения быть сторонами прямоугольного треугольника.
  3. Пройдет ли кирпич со сторонами a, b, c в прямоугольное отверстие x,y, если его совать плоскопараллельно.
  4. Рекурсивно описать синтаксис арифметических выражений (выражение состоит из чисел, переменных, знаков операций и скобок).
  5. Взять сравнение «x < y» и при помощи логических операций выразить через него пять других сравнений.
  6. Выразите двустороннюю условную команду через одностороннюю и наоборот.


№1:
Есть три переменные. Проверить, могут ли их значения быть длинами сторон треугольника.

Известно, что у треугольника все стороны меньше суммы двух других. Если это условие выполняется для всех 3 сторон можно утверждать, что значения переменных могут быть сторонами треугольника. Понадобится логическое «И» (в js — &&), так как условия должны выполнятся одновременно.

<script>
a = 1;
b = 2;
c = 3;
if ((a < b + c)&&(b < a + c)&&(c < a + b))
  alert("Могут");
else
  alert("Не могут");
</script>

№2:
Есть три целые переменные. Проверить, могут ли их значения быть сторонами прямоугольного треугольника.

Пифагоровы штаны на все стороны равны!
Такое универсальное решения я использовать не буду, а вспомню теорему Пифагора. Квадрат гипотенузы равен сумме квадрата катетов. В этой задаче необходимо использовать логическое «ИЛИ» (||), так как трех гипотенуз быть не может.

<script>
a = 1;
b = 2;
c = 3;
if ((a*a == b*b + c*c)||(b*b == a*a + c*c)||(c*c == a*a + b*b))
  alert("Могут");
else
  alert("Не могут");
</script>

№3:
Пройдет ли кирпич со сторонами a, b, c в прямоугольное отверстие x,y, если его совать плоскопараллельно.

Кирпич можно совать 3 плоскостями — ab, ac, bc. Кирпич пролазить только в том случае, если 2 его стороны меньше чем соответствующие отверстия. Чтобы проверить пройдет ли он плоскостью например ab нужно проверить такие условия : ((a <= x ) && (b <= y)) || ((b <= x) && (a <= y)). Остается проверит все 3 плоскости и записать код.

<script>
a = 1;
b = 2;
c = 3;
x = 3;
y = 3;
if ((a <= x ) && (b <= y)) || ((b <= x) && (a <= y))
  alert("Пройдет, как миленький пройдет");
else
  if ((a <= x ) && (c <= y)) || ((c <= x) && (a <= y))
    alert("Пройдет, как миленький пройдет");
  else
    if ((с <= x ) && (b <= y)) || ((b <= x) && (с <= y))
      alert("Пройдет, как миленький пройдет");
    else
      alert("Не пройдет =(");
</script>

 

В остальных задачках код писать не нужно, а мне уже хочется «*» рисовать;)

Share your thoughts, post a comment.

(required)
(required)

Note: HTML is allowed. Your email address will never be published.

Subscribe to comments