На вход подаются 4 числа: высота h, сторона a, сторона b, сторона c произвольного треугольника соответственно. Какие-то числа могут быть нулевыми, в таком случае считается, что длина такого отрезка неизвестна. Например: набор чисел «3, 5, 4, 3» задаёт треугольник с высотой 3, гипотенузой 5 и катетами 4 и 3. А набор чисел 3, 5, 0, 0 свидетельствует, что о таком треугольнике известны только высота и сторона, к которой она проведена.
Задача: составить алгоритм, записанный в виде псевдо-кода, который бы решал задачу нахождения площади треугольника удобной формулой ( или через высоту, или с помощью формулы Герона ), выбор которой будет зависеть от известных параметров треугольника. Например, если из введённых 4ёх чисел ненулевые только высота и сторона a => площадь можно найти по формуле, где фигурирует высота и сторона, к которой она проведена. И наоборот, если известны все три стороны, но неизвестна высота => можно использовать формулу Герона.
Answers & Comments
Ответ:
import math
h = float(input('Высота H: '))
a = float(input('Сторона A: '))
b = float(input('Сторона B: '))
c = float(input('Сторона C: '))
p_polovin = (a + b + c) / 2
s_geron = p_polovin * (p_polovin - a) * (p_polovin - b) * (p_polovin - c)
s_visota = 1 / 2 * a * h
if (a and b and c) > 0:
print('Половинчатый периметр [p = (a + b + c) / 2] = ', str(p_polovin) + '.', 'Формула Герона [S = sqrt(p(p-a)(p-b)(p-c)] = ', str(math.sqrt(s_geron)) + '.')
elif (h and a) > 0 and (b and c) == 0:
print('Площадь через основание и высоту [S = 1/2ah] =', str(s_visota))
Объяснение: