Предмет: Информатика, автор: kartoshian

На вход подаются 4 числа: высота h, сторона a, сторона b, сторона c произвольного треугольника соответственно. Какие-то числа могут быть нулевыми, в таком случае считается, что длина такого отрезка неизвестна. Например: набор чисел «3, 5, 4, 3» задаёт треугольник с высотой 3, гипотенузой 5 и катетами 4 и 3. А набор чисел 3, 5, 0, 0 свидетельствует, что о таком треугольнике известны только высота и сторона, к которой она проведена.
Задача: составить алгоритм, записанный в виде псевдо-кода, который бы решал задачу нахождения площади треугольника удобной формулой ( или через высоту, или с помощью формулы Герона ), выбор которой будет зависеть от известных параметров треугольника. Например, если из введённых 4ёх чисел ненулевые только высота и сторона a => площадь можно найти по формуле, где фигурирует высота и сторона, к которой она проведена. И наоборот, если известны все три стороны, но неизвестна высота => можно использовать формулу Герона.

Ответы

Автор ответа: daniyarkanu
0

Ответ:

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))

Объяснение:

Похожие вопросы
Предмет: Другие предметы, автор: Daffna967
Предмет: Химия, автор: малинка179