Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Desafio: Classificando desempenho acadêmico

Bom, pelo que eu entendi, é preciso definir uma condicional para que o algoritmo siga uma caminho para tomada de decisões, então eu faria da seguinte forma, mudando só alguns parâmetros:

Definiria que: Média = X

// Aprovado

  • Quando a Média for > que 6,9
  • Se X >6,9 então "Parabéns! Você foi aprovado."
    // Recuperação
  • Quando a Média for > que 5,1 e menor que 7,0
  • Se X > 5,1 ou Se X < 7,0 então "Você está de recuperação."
    //Reprovado
  • Quando a Média for < 5,1
  • Se X<5,1 então "Você está reprovado."

Assim, criando esta condicional, ele me voltaria o resultado de acordo com as médias.

1 resposta
solução!

Oi, tudo bem?

Excelente raciocínio, você captou bem a essência da tomada de decisão por meio de condicionais. O pensamento computacional nos ajuda a transformar uma regra de negócio (como uma norma escolar) em um passo a passo que uma máquina consiga processar.

Para que seu algoritmo funcione sem ambiguidades, precisamos apenas ajustar um detalhe importante na lógica da recuperação.

Refinando a Lógica de Intervalos

No seu exemplo da recuperação, você utilizou o operador lógico "ou" para verificar se a média está entre 5,1 e 7,0. Na programação, o uso dos operadores faz toda a diferença:

  • O problema do "Ou": Se a nota for 10, ela é maior que 5,1. Portanto, a condição seria verdadeira e o aluno de nota 10 receberia a mensagem de recuperação.
  • A solução com "E": Para definir um intervalo fechado, precisamos que as duas condições sejam verdadeiras ao mesmo tempo.

Veja como essa estrutura ficaria escrita de forma mais próxima à lógica de programação:

  1. Se $X \geq 7,0$: "Parabéns! Você foi aprovado."
  2. Senão, se $X \geq 5,1$ e $X < 7,0$: "Você está de recuperação."
  3. Senão: "Você está reprovado."

Por que usar o "Senão, se" (elif)?

Ao utilizar a estrutura encadeada, o computador testa as condições em ordem. Se o aluno tirar 8, ele entra na primeira condição e o algoritmo para ali. Ele nem chega a testar se o aluno está de recuperação ou reprovado.

Isso torna o processo mais limpo e evita que duas mensagens diferentes sejam exibidas para a mesma nota.

Aplicando a abstração

Você aplicou muito bem o pilar da Abstração ao definir "Média = X". Ao simplificar o problema e focar no que importa (o valor numérico da média), você consegue criar uma regra que serve para qualquer nota digitada, independentemente de qual seja o aluno ou a matéria.

Esse é o primeiro passo para criar sistemas flexíveis. Você já pensou em como o algoritmo deveria se comportar caso alguém digitasse uma nota maior que 10 ou um número negativo por engano?

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!