Skip to content

🧪 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:

  1. A primeira linha terá dois números inteiros positivos representando os catetos de um triângulo retângulo maior, na seguinte ordem:
  2. Cateto Adjacente (CA₁)
  3. Cateto Oposto (CO₁)

  4. 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
Saída:
3


Exemplo 2:

Entrada:

15 5
2
Saída:
6


Exemplo 3:

Entrada:

10 8
4
Saída:
5


💡 Dicas

  • Utilize a instrução mul para multiplicação e div 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