Nesta tarefa, vamos utilizar os conhecimentos adquiridos sobre comandos condicionais para classificar triângulos de acordo com as medidas de seus lados e ângulos internos. Veja a tabela a seguir:
Equilátero | Três lados com medidas iguais | |
Isósceles | Dois lados com medidas iguais | |
Escaleno | Três lados com medidas diferentes | |
Acutângulo | Três ângulos internos medem menos de 90° |
|
Retângulo | Um dos ângulos internos mede 90° |
|
Obtusângulo | Um dos ângulos internos mede mais de 90° |
Considere que A
é a medida do maior lado do
triângulo e B
e C
são as
outras medidas. Um teste simples para classificar o triângulo
de acordo com as medidas do ângulos internos é a seguinte:
A² < B² + C²
A² = B² + C²
A² > B² + C²
Você deverá implementar um programa em Python que leia três valores reais representando as medidas dos lados de um triângulo supondo alguma unidade e classifique-o emitindo adequadamente mensagens do conjunto abaixo:
Triangulo equilatero
Triangulo isosceles
Triangulo escaleno
Triangulo acutangulo
Triangulo retangulo
Triangulo obtusangulo
Valores invalidos na entrada
Apesar de todo triângulo equilátero ser também isósceles apenas a mensagem indicando que o triângulo é equilátero deverá ser emitida quando os três lados apresentarem a mesma medida.
Não faremos classificação de triângulos degenerados, ou seja, triângulos em que uma das medidas é igual à soma das outras duas.
A mensagem sobre a ocorrência de valores inválidos na entrada deve ser emitida caso um zero ou um valor negativo seja lido e também nos casos em que uma das medidas é maior ou igual à soma das outras duas.
Como nas tarefas anteriores, criamos um conjunto de testes com
arquivos de entrada arq<i>.in
e para cada um deles
temos uma saída esperada arq<i>.res
. Para esta
tarefa, os testes abertos estão listados na tabela abaixo. Os
valores dos testes abertos e fechados foram selecionados de maneira a
evitar resultados incoerentes devido às limitações
de precisão no armazenamento e manipulação
de floats
em diferentes ambientes.
Entrada | Saída | ||
---|---|---|---|
arq01.in |
3.00 |
Triangulo equilatero
|
arq01.res |
arq02.in |
3.00 |
Triangulo isosceles
|
arq02.res |
arq03.in |
5.00 |
Triangulo isosceles
|
arq03.res |
arq04.in |
3.80 |
Triangulo escaleno
|
arq04.res |
arq05.in |
3.00 |
Triangulo escaleno
|
arq05.res |
arq06.in |
4.00 |
Triangulo escaleno
|
arq06.res |
arq07.in |
5.00 |
Valores invalidos na entrada
|
arq07.res |
arq08.in |
-5.00 |
Valores invalidos na entrada
|
arq08.res |
Esta tarefa tem mais dois testes fechados, que são variações de alguns dos testes já apresentados.
Releia, se necessário as instruções para fazer os testes em Testes com o SuSy.
Veja aqui a página de submissão da tarefa. O arquivo a ser
submetido deve se chamar lab04.py. No link Arquivos
auxiliares há um arquivo aux04.zip
que contém todos os arquivos de testes abertos e seus respectivos resultados compactados.
Utilize o sistema SuSy com o mesmo login e senha que você utiliza para fazer acesso ao sistema da DAC. Se você não estiver inscrito corretamente, envie email para .
O limite máximo será de 30 submissões.
O peso desta tarefa é 1.
O prazo final para submissão é 10/05/2020.
A nota desta tarefa é proporcional ao número de testes que executaram corretamente, desde que o código esteja coerente com o enunciado. A submissão de um código que não implementa o algoritmo requisitado, mas que exibe as saídas esperadas dos testes abertos a partir da comparação de trechos da entrada será considerada fraude e acarretará a atribuição de nota zero à média final da disciplina.