Processing math: 100%
Skip to content

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:

  1. Três linhas correspondentes aos termos da função, no formato:

    • + 1 ou - 2, representando +x¹ e -x², por exemplo.
  2. Última linha com dois números inteiros:

    • o início e o fim do intervalo da integral (valores a e b).

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
Os passos para o cálculo serão semelhantes aos ilustrados abaixo:

3732+x1x2+x4dx
3732x1dx3732x2dx+3732x4dx
x22|3732x33|3732+x55|3732
(37223222)(37333233)+(37553255)

Dessa forma, realizando os truncamentos necessários, o resultado é: (684512)(16.88410.922)+(13.868.7916.710.886)=7.152.115

Assim, você conseguirá uma boa aproximação para o valor real da integral. A imagem seguinte exemplifica o processo:

bax0dx=xθ+1θ+1|ba
(bθ+1θ+1aθ+1θ+1)

✅ 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
Saída:
7152115

✅ Exemplo 2

Entrada:

+ 2
+ 3
+ 4
10 11
Saída Esperada:
13480


✅ Exemplo 3

Entrada:

+ 999
+ 997
+ 998
0 1
Saída Esperada:
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