Um professor quer utilizar o Computador Simplificado (CS) para calcular a média de seus alunos e verificar se eles foram aprovados. Elabore um conjunto de instruções para calcular a média de 4 provas e mostrar a média final. Além de mostrar a média final o CS deve retornar para o professor a situação do aluno: aprovado se a média for maior igual a sete ou reprovado se for menor que sete. O conjunto de instruções calcula a média de um aluno por vez, ou seja, para cada aluno é preciso recarregar o conjunto de instruções.

Passo 1

Beleza, o exercício pede para a gente escrever um programa para o Computador Simplificado (CS) que:
  1. Leia quatro notas (p1, p2, p3, p4) de um aluno, uma de cada vez;
  2. Calcule a média aritmética dessas quatro notas: média = p1 + p2 + p3 + p44 é
  3. Mostre a média;
  4. Se essa média for maior ou igual a 7, mostre “APROVADO”, senão mostre “REPROVADO”.
Conteúdo envolvido:
  • Entrada e saída de dados (INP, OUT)
  • Operações aritméticas (ADD, SUB, DIV)
  • Armazenamento em memória (STA, DAT)
  • Desvios condicionais (BRP, BRA)
  • Conhecer o formato de instruções do CS.
O que vamos precisar:
  • Quatro posições de memória para guardar as notas (G1…G4)
  • Uma posição para a soma (SUM)
  • Uma posição para a média (MED)
  • Constantes 4 (C4) e 7 (C7)
  • Rotinas de desvio para “APROVADO” e “REPROVADO”
A partir do próximo passo começamos a codar de verdade.

Passo 2

Vamos ler as quatro notas e guardar em G1…G4. Cada leitura usa INP (input) e STA (store accumulator).
        INP       ; lê nota p1
        STA G1    ; armazena em G1
        INP       ; lê nota p2
        STA G2    ; armazena em G2
        INP       ; lê nota p3
        STA G3
        INP       ; lê nota p4
        STA G4

Passo 3

Agora somamos as quatro notas em uma variável SUM:
        LDA G1    ; carrega p1 no acumulador
        ADD G2    ; acumulador = p1 + p2
        ADD G3    ; acumulador = p1 + p2 + p3
        ADD G4    ; acumulador = p1 + p2 + p3 + p4
        STA SUM   ; guarda em SUM

Passo 4

Com a soma em SUM, calculamos a média dividindo por 4. Assumimos que o CS tem DIV (divisão inteira):
        LDA SUM   ; carrega soma no acumulador
        DIV C4    ; divide acumulador por 4 → média
        STA MED   ; guarda média em MED

Passo 5

Vamos mostrar a média na tela:
        LDA MED   ; carrega média
        OUT       ; exibe no visor

Passo 6

O próximo passo é decidir se o aluno foi aprovado (média ≥ 7) ou reprovado (média < 7). Como não há instrução “BRGE” direta, usamos SUB e BRP (branch if positive ou zero):
        LDA MED   ; carrega média
        SUB C7    ; faz (média – 7)
        BRP APROV ; se ≥ 0, pula para APROV
        BRA REPROV; senão, vai para REPROV

Passo 7

Rotina de “APROVADO”:
APROV   LDA M_AP  ; carrega primeira letra de “APROVADO”
        OUT       ; exibe
        LDA M_AP+1; próxima letra
        OUT
        …         ; repetir até “APROVADO”
        HLT       ; termina o programa

Passo 8

Rotina de “REPROVADO”:
REPROV  LDA M_RE  ; carrega primeira letra de “REPROVADO”
        OUT
        LDA M_RE+1
        OUT
        …         ; repetir até “REPROVADO”
        HLT

Passo 9

Definição das variáveis e constantes no final da memória:
G1      DAT 0
G2      DAT 0
G3      DAT 0
G4      DAT 0
SUM     DAT 0
MED     DAT 0
C4      DAT 4
C7      DAT 7

; Dados ASCII para “APROVADO”
M_AP    DAT 'A'
        DAT 'P'
        DAT 'R'
        DAT 'O'
        DAT 'V'
        DAT 'A'
        DAT 'D'
        DAT 'O'

; Dados ASCII para “REPROVADO”
M_RE    DAT 'R'
        DAT 'E'
        DAT 'P'
        DAT 'R'
        DAT 'O'
        DAT 'V'
        DAT 'A'
        DAT 'D'
        DAT 'O'

Resposta

Programa completo em CS (comenta­do) que lê 4 notas, calcula a média, exibe o valor e escreve “APROVADO” se média ≥ 7, ou “REPROVADO” caso contrário.

Exercícios relacionados