Carregando...
Carregando...
Ajude a melhorar a plataforma
Você quer fazer um programa Python para calcular a área de um triângulo. Lembrando que você quer um programa que aceite tanto números inteiros como com ponto decimal, indique qual é a alternativa correta.
Explique melhor esta questão
Abre o Tutor com o enunciado e as alternativas já no campo — você revisa e envia.
Esta questão foi verificada por um de nossos administradores.
Alternativa D - Utiliza eval() para entrada de dados e a fórmula correta para a área do triângulo.
A questão aborda a criação de um programa simples em Python para calcular a área de um triângulo. O desafio principal é garantir que o programa possa aceitar tanto números inteiros quanto números com ponto decimal (flutuantes) para a base e a altura, e aplicar a fórmula correta da área de um triângulo, que é (base × altura) / 2.
Em Python, a entrada de dados do usuário é sempre uma string, obtida pela função input(). Para realizar operações matemáticas, essa string precisa ser convertida para um tipo numérico (inteiro ou flutuante).
int(): Converte uma string para um número inteiro. Se a string contiver um ponto decimal ou for um texto não numérico, causará um erro.float(): Converte uma string para um número de ponto flutuante (decimal). Pode converter inteiros também (ex: "5" se torna 5.0).eval(): Avalia a string como uma expressão Python. Isso significa que se o usuário digitar "5", eval() retornará o inteiro 5. Se digitar "5.5", retornará o float 5.5. É versátil, mas exige cautela em aplicações com entradas não confiáveis devido a riscos de segurança.
A fórmula da área do triângulo é fundamental: (base * altura) / 2.Vamos analisar cada alternativa com base na capacidade de aceitar inteiros e decimais, e na correção da fórmula:
| Alternativa | Entrada (base, altura) | Fórmula da Área | Aceita Int/Float? | Correta? | Motivo |
| :---------- | :------------------------- | :---------------- | :---------------- | :------- | :----- |
| (A) | float(input(...)) | 3.14*base**altura | Sim | Não | Fórmula incorreta para a área do triângulo. 3.14*base**altura não representa (base * altura) / 2. |
| (B) | base,altura=float(input(...)) | (base*altura)/2 | Não | Não | Erro de sintaxe/lógica na entrada. float() não pode converter uma string como "10 5" para um único float e atribuir a duas variáveis de uma vez. Esperaria um erro de ValueError ou atribuição incorreta. |
| (C) | input(...) | (base*altura)/2 | Não | Não | As variáveis base e altura permanecem como strings. Operações de multiplicação (*) e divisão (/) não são definidas para strings (ou resultam em TypeError). |
| (D) | eval(input(...)) | (base*altura)/2 | Sim | Sim | eval() converte corretamente a entrada para int se for um número inteiro ou para float se for um número decimal, satisfazendo o requisito. A fórmula é a correta. |
| (E) | int(input(...)) | (base*altura)/2 | Não | Não | int() só aceita números inteiros. Se o usuário digitar um número decimal (ex: "10.5"), ocorrerá um ValueError, não cumprindo a exigência de aceitar ambos os tipos. |
A alternativa (D) é a única que combina um método de entrada de dados (eval()) que permite tanto números inteiros quanto decimais, e emprega a fórmula matemática correta para o cálculo da área de um triângulo.
Para um programa Python que calcula a área de um triângulo aceitando tanto números inteiros quanto decimais, é crucial utilizar uma função de conversão de tipo de dados que suporte ambos os formatos. A função eval() é a que melhor atende a esse requisito entre as opções dadas, avaliando a entrada do usuário como um inteiro ou um float conforme apropriado. Combinada com a fórmula correta (base * altura) / 2, a alternativa (D) oferece a solução mais adequada e funcional.
Alternativa D.