Python :: Aufgabe #33

1 Lösung Lösung öffentlich

Ermittlung der Dreiecksart

Anfänger - Python von Sone - 15.01.2013 um 10:20 Uhr
Vervollständigen Sie dieses Programm, sodass es fehlerfrei kompiliert und abläuft:
Quellcode ausblenden C-Code
enum class triangle_type
{
    usual,        /// normales, uninteressantes Dreieck
    isosceles,    /// gleichseitig
    equilateral,  /// gleichschenklig
    right_angled, /// rechtwinklig
    impossible    /// mit den gegebenen Seitenlängen nicht konstruierbar
};

#include<cstdint>
triangle_type get_triangle_type(uint16_t, uint16_t, uint16_t);

#include <cassert>
int main()
{
    assert( get_triangle_type(5, 5, 5)  == triangle_type::isosceles    );
    assert( get_triangle_type(8, 4, 8)  == triangle_type::equilateral  );
    assert( get_triangle_type(3, 4, 5)  == triangle_type::right_angled );
    assert( get_triangle_type(10, 5, 1) == triangle_type::impossible   );
}

Lösungen:

vote_ok
von eisheiliger (3750 Punkte) - 09.04.2021 um 18:36 Uhr
Quellcode ausblenden Python-Code

"""
#33: Ermittlung der Dreiecksart
Vervollständigen Sie dieses Programm: usual (normales, uninteressantes Dreieck), isosceles
(gleichseitig), equilateral (gleichschenklig), right_angled (rechtwinklig), impossible
(mit den gegebenen Seitenlängen nicht konstruierbar)
"""


def dreiecktyp(a, b, c):
    if a + b <= c or a + c <= b or b + c <= a:
        print(a, b, c, "Dreieck ist nicht konstruierbar")
    elif a == b == c:
        print(a, b, c, "Gleichseitiges Dreieck")
    elif a == b or a == c or b == c:
        print(a, b, c, "Gleichschenkliges Dreieck")
    elif a ** 2 + b ** 2 == c ** 2:
        print(a, b, c, "Rechtwinkliges Dreieck")
    else:
        print(a, b, c, "Sonstiges Dreieck")


def main():
    dreiecktyp(2, 4, 6)
    dreiecktyp(4, 4, 4)
    dreiecktyp(3, 4, 5)
    dreiecktyp(3, 4, 6)


if __name__ == '__main__':
    main()