Задача 302 тип треугольника паскаль

Задача «Треугольник»

Заданы длины трех отрезков a, b, c. Необходимо определить, можно ли из них составить треугольник. В случае утвердительного ответа определить его тип: остроугольный, прямоугольный или тупоугольный.

Вход. Три целых числа a, b, c – длины трех отрезков.

Выход. Строка, содержащая информацию о треугольнике: “ACUTE”, если он остроугольный, “RIGHT” если прямоугольный и “OBTUSE” если тупоугольный. Если из трех отрезков составить треугольник нельзя, то вывести “NONE”.

Из трех отрезков a, b, c можно составить треугольник, если выполняется неравенство треугольника: сумма длин двух любых сторон треугольника строго больше длины третьей.

Из теоремы Пифагора следует, что треугольник со сторонами a, b, c является прямоугольным, если выполняется одно из следующих равенств:

a 2 = b 2 + c 2 или b 2 = a 2 + c 2 или c 2 = a 2 + b 2

Треугольник будет остроугольным, если квадрат каждой стороны строго меньше суммы квадратов двух других сторон. То есть одновременно выполняется три неравенства:

a 2 b 2 + c 2 , b 2 a 2 + c 2 , c 2 a 2 + b 2

Треугольник является тупоугольным, если существует такая сторона, квадрат которой строго больше суммы квадратов двух других сторон. То есть выполняется одно из трех неравенств:

a 2 > b 2 + c 2 или b 2 > a 2 + c 2 или c 2 > a 2 + b 2

Условие тупоугольности можно не проверять: если треугольник не является ни остроугольным, ни прямоугольным, то он является тупоугольным. Для вывода результата воспользуемся типом string .

if ((a >= b + c) or (b >= a + c) or (c >= a + b))

then res := ‘NONE’ else

if ((a*a = b*b + c*c) or (b*b = a*a + c*c) or (c*c = a*a + b*b))

then res := ‘RIGHT’ else

then res := ‘ACUTE’ else

Задача решена, но имеет один недостаток. При проверке типа треугольника приходится каждый раз проверять три условия: в каждом из условных операторов if стоит три выражения. Можно сделать так, что в каждом условном операторе будет стоять лишь одно условие. Подумайте, как это сделать?

Ответ на вопрос дает сортировка. Отсортируем по возрастанию длины исходных отрезков. Пусть у нас далее имеют место неравенства: a £ b £ c. Тогда для проверки неравенства треугольника достаточно проверить лишь a + b > c, так как оба других неравенства b + c > a и a + c > b выполняются. Для проверки прямоугольности достаточно проверить только равенство c 2 = a 2 + b 2 , так как при a £ b £ c гипотенузой может быть только сторона c. В случае тупоугольности наибольшей стороной может быть только c, поэтому для существования тупого угла в треугольнике достаточно выполнение условия c 2 > a 2 + b 2 . Треугольник будет остроугольным, если c 2 a 2 + b 2 .

Например, в языке Си, отсортировать три числа можно так:

Язык Паскаль вообще не имеет функций сортировки. Здесь, уже на элементарной задаче, мы столкнулись с бедностью языка Паскаль. Реализовать сортировку непосредственно операциями сравнения в этой задаче можно, так как число переменных не велико. Если бы их было больше – требовалось бы заводить массив и уже писать один из классических алгоритмов сортировки.

Если мы сможем эффективно отсортировать числа a, b, c, то программа примет вид:

if c >= a + b then res := ‘NONE’ else

if c*c = a*a + b*b then res := ‘RIGHT’ else

Видео:Зачем нужен треугольник Паскаля (спойлер: для формул сокращённого умножения)Скачать

Зачем нужен треугольник Паскаля (спойлер: для формул сокращённого умножения)

Как решить задачу с определением трех сторон треугольника?

Задача:
Определите тип треугольника (остроугольный, тупоугольный, прямоугольный) с данными сторонами.
Необходимо вывести одно из слов: «right» для прямоугольного треугольника, «acute» для остроугольного треугольника, «obtuse» для тупоугольного треугольника или «impossible», если входные числа не образуют треугольник.

Чем же плох мой способ?
a = int(input())
b = int(input())
c = int(input())
if pow(c, 2) == pow(a, 2) + pow(b, 2):
print(‘right’)
elif pow(b, 1) + pow(c, 2) — pow(a, 2) > 0:
print(‘acute’)
elif pow(a, 2) + pow(b, 2) Вопрос задан более трёх лет назад

  • 4916 просмотров
  • Задача 302 тип треугольника паскаль

    Я бы использовал теорему косинусов

    Задача 302 тип треугольника паскаль

    Я бы использовал теорему косинусов, нашел бы углы, а потом уже делал вывод

    Не знаю, что здесь происходит, но размерности здесь не сходятся
    pow(b, 1) + pow(c, 2) — pow(a, 2) > 0

    Видео:4.3 Треугольник Паскаля 1. "Поколение Python": курс для продвинутых. Курс StepikСкачать

    4.3 Треугольник Паскаля 1. "Поколение Python": курс для продвинутых. Курс Stepik

    Определить возможность существования треугольника по сторонам

    Задача

    Треугольник существует только тогда, когда сумма любых двух его сторон больше третьей.

    Дано: a , b , c – стороны предполагаемого треугольника.

    Требуется сравнить длину каждого отрезка-стороны с суммой двух других. Если хотя бы в одном случае отрезок окажется больше суммы двух других, то треугольника с такими сторонами не существует.

    Решение

    Ниже приведены решения задачи на языке программирования Паскаль двумя способами. В первом случае все стороны проверяются в одном операторе if; во втором случае каждое условие проверяется отдельно, а программа содержит вложенные операторы if-else.

    Программа 1 (предпочтительный способ решения):

    В языке Паскаль логический оператор and имеет приоритет над операторам >, if проверяется, что каждая из сторон меньше суммы других. Если хотя бы одна будет больше, то все логическое выражение вернет ложь ( false ). В таком случае сработает ветка else .

    В данном случае существование треугольника проверяется по-этапно. Если первое условие возвращает ложь, то программа переходит к последнему else. Если же первое условие соблюдено, то поток выполнения программы оказывается у вложенного if. Здесь проверяется уже второе условие. Если оно возвращает ложь, то программа переходит к предпоследнему else. Если и второе логическое выражение возвращает истину (true), то программа идет к третьему условию. При его соблюдении выполняется тело самого вложенного оператора if. При его несоблюдении сработает самое вложенное else.

    Несмотря на то, что данная программа кажется длиннее, в определенных ситуациях она может выполняться быстрее, чем первая. Здесь если внешнее if возвращает ложь, то остальные логические выражения вообще не проверяются. В первой программе могут и проверяться (это зависит от особенностей языка программирования).

    🎬 Видео

    Несколько красивых свойств треугольника ПаскаляСкачать

    Несколько красивых свойств треугольника Паскаля

    Треугольник Паскаля Python. Коэффициенты для Бинома НьютонаСкачать

    Треугольник Паскаля Python. Коэффициенты для Бинома Ньютона

    Числа сочетаний. Треугольник Паскаля | Ботай со мной #059 | Борис Трушин |Скачать

    Числа сочетаний. Треугольник Паскаля | Ботай со мной #059 | Борис Трушин |

    Треугольник ПаскаляСкачать

    Треугольник Паскаля

    Треугольник Паскаль. Как применять на простом примере!Скачать

    Треугольник Паскаль. Как применять на простом примере!

    Треугольник ПаскаляСкачать

    Треугольник Паскаля

    #26. Треугольник Паскаля как пример работы вложенных циклов | Python для начинающихСкачать

    #26. Треугольник Паскаля как пример работы вложенных циклов | Python для начинающих

    Задача на Паскале: площадь прямоугольного треугольникаСкачать

    Задача на Паскале: площадь прямоугольного треугольника

    Удивительный треугольник Паскаля | Лекции по математике – Яков Ерусалимский | Научпоп | НаукаPROСкачать

    Удивительный треугольник Паскаля | Лекции по математике – Яков Ерусалимский | Научпоп | НаукаPRO

    БИНОМ Ньютона | треугольник ПаскаляСкачать

    БИНОМ Ньютона | треугольник Паскаля

    Математические секреты треугольника ПаскаляСкачать

    Математические секреты треугольника Паскаля

    Треугольник Паскаля на PythonСкачать

    Треугольник Паскаля на Python

    Математика это не ИсламСкачать

    Математика это не Ислам

    Вычисление площади и периметра прямоугольника в ПаскальСкачать

    Вычисление площади и периметра прямоугольника в Паскаль

    Задача на подобие треугольников. А ты сможешь решить? | TutorOnline | МатематикаСкачать

    Задача на подобие треугольников. А ты сможешь решить? | TutorOnline | Математика

    39 Сумма чисел строки треугольника ПаскаляСкачать

    39 Сумма чисел строки треугольника Паскаля

    Как треугольник Паскаля поможет умножать без калькулятораСкачать

    Как треугольник Паскаля поможет умножать без калькулятора

    Java - Структура - Треугольник ПаскаляСкачать

    Java - Структура - Треугольник Паскаля
    Поделиться или сохранить к себе: