Laboratório 7 - Calculando o valor de uma integral
📝 Descrição - Peso 2
Neste laboratório, você irá implementar um programa em linguagem de montagem Assembly RISC-V que calcula o valor aproximado de uma integral definida, composta por três termos polinomiais. A integral será avaliada no intervalo de a até b. Cada termo do polinômio tem o formato: - (+ ou -) X elevado a um número inteiro de 1 a 999.
O programa receberá quatro linhas de entrada:
-
Três linhas correspondentes aos termos da função, no formato:
+ 1
ou- 2
, representando+x¹
e-x²
, por exemplo.
-
Última linha com dois números inteiros:
- o início e o fim do intervalo da integral (valores
a
eb
).
- o início e o fim do intervalo da integral (valores
O cálculo da integral deve ser feito aproximando-a por soma de retângulos (como em Cálculo 1), considerando apenas valores inteiros (truncamento). Utilize estruturas de repetição e decisão (if, else, for, while) conforme visto em aula para implementar o programa.
🧮 Exemplo
Segue um exemplo do que deve ser feito:
Entrada:
+ 1
- 2
+ 4
32 37
Dessa forma, realizando os truncamentos necessários, o resultado é: (684−512)−(16.884−10.922)+(13.868.791−6.710.886)=7.152.115
Assim, você conseguirá uma boa aproximação para o valor real da integral. A imagem seguinte exemplifica o processo:
✅ Requisitos
- O programa deve ser escrito em assembly RISC-V.
- A integral deve ser aproximada por soma de retângulos (como em Cálculo 1).
- O cálculo deve considerar apenas valores inteiros (truncamento).
- O resultado deve ser próximo o suficiente do valor real da integral.
- Utilize estruturas de repetição e decisão (if, else, for, while) conforme visto em aula.
- A entrada e a saída devem ser feitas via console (syscall).
📥 Exemplos de Entrada e Saída
✅ Exemplo 1:
Entrada:
+ 1
- 2
+ 4
32 37
7152115
✅ Exemplo 2
Entrada:
+ 2
+ 3
+ 4
10 11
13480
✅ Exemplo 3
Entrada:
+ 999
+ 997
+ 998
0 1
0
Tip
- Tente padronizar o código e separar as coisas em vetores. As operações são bem parecidas para todas as integrais.
- 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 lab07_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