🧪 Laboratório 6 - Cálculo do Cateto Adjacente por Similaridade de Triângulos em RISC-V
📝 Descrição - Peso 1
Neste laboratório, você irá implementar um programa em linguagem de montagem RISC-V que realiza o cálculo do cateto adjacente de um triângulo retângulo menor, utilizando a semelhança entre triângulos.
Você receberá duas entradas:
- A primeira linha terá dois números inteiros positivos representando os catetos de um triângulo retângulo maior, na seguinte ordem:
- Cateto Adjacente (CA₁)
-
Cateto Oposto (CO₁)
-
A segunda linha conterá um único número inteiro representando o Cateto Oposto (CO₂) de um triângulo menor semelhante ao primeiro.
Com base no princípio da semelhança de triângulos, calcule o valor correspondente do Cateto Adjacente (CA₂) do triângulo menor. Sua saída são apenas números entre 0-99, ou seja de uma ou duas casas decimais.
🧮 Fórmula de Similaridade
Se dois triângulos são semelhantes, então os lados correspondentes são proporcionais.
Dessa forma:
CA₁ / CO₁ = CA₂ / CO₂ => CA₂ = (CA₁ × CO₂) / CO₁
Tip
Seu programa deverá calcular esse valor e exibi-lo como saída.
✅ Requisitos
- O programa deve ser escrito em assembly RISC-V.
- Assuma que todas as entradas são inteiros positivos válidos.
- O resultado deve ser truncado (divisão inteira), sem casas decimais.
- A entrada será fornecida na forma padrão do console (via syscall).
📥 Exemplos de Entrada e Saída
Exemplo 1:
Entrada:
6 4
2
3
Exemplo 2:
Entrada:
15 5
2
6
Exemplo 3:
Entrada:
10 8
4
5
💡 Dicas
- Utilize a instrução
mul
para multiplicação ediv
para divisão. - Teste seu programa com diferentes valores para garantir que a lógica de proporcionalidade esteja correta.
- Lembre-se que o
'\n'
está presente ao final do input. - Na saída, você também deve inserir um
'\n'
.
Por fim, valide seu código no simulador ALE aqui, e envie o relatório como lab06_raXXXXXX.report
substituindo XXXXXX pelo seu RA.
Warning
- Qualquer alteração no arquivo de report será considerado fraude
- Esta é uma atividade que deve ser realizada programando-se em linguagem de montagem - A submissão de programas em linguagem de programação de alto nível, como
C
, ou de programas gerados por ferramentas de compilação, serão considerados como fraude - Está é uma atividade individual, o qual deve ser desenvolvido individualmente, qualquer forma de cópia ou plágio será penalizada. Portanto, atividades que apresentarem semelhanças injustificadas serão atribuídas nota zero para todos os envolvidos