Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

3
respostas

Desempenho Acadêmico

Recebe média final
Se media<=5,0 então Saída = 'Você está reprovado'
Se media<=6,9 então Saída = 'Você está de recuperação'
Se media>=7 então Saída = 'Parabéns! Você foi aprovado'

3 respostas

Oi, Angela! Como vai?

Eu gostei da forma como você organizou a lógica usando condições para classificar o desempenho acadêmico. Sua estrutura está no caminho certo, só vale ajustar a ordem das verificações para evitar que uma média menor ou igual a 5 também entre na condição de recuperação, já que ela também é menor que 6,9.

Uma dica é usar faixas bem definidas, indicando o que acontece em cada intervalo de média.

Por exemplo: se a média for menor ou igual a 5, o resultado é reprovação; se for maior que 5 e menor ou igual a 6,9, é recuperação; se for maior ou igual a 7, é aprovação. Que tal testar esse algoritmo com médias como 4,5, 6,0 e 8,0 para verificar se cada saída aparece corretamente?

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

Olá Lorena, td bem? Mas a ordem do teste segue a lógica e quando entra em uma condição já faz a saída e não testa novamente. Ou seja: Se media=4,5
Quando ele entrar nas condicionais ele vai testar para média<=5 e vai dar verdadeiro e vai para Saída. Ele nem vai passar pelo próximo se. Com a média = 6,5: passa pelo primeiro Se e a condição é falsa, passa para o segundo Se e a condição é verdadeira e vai para Saída.
O que você acha?

Oi, Angela! Tudo bem por aqui, e com você?

Agradeço demais por trazer essa reflexão! É ótimo debater sobre a construção da lógica, pois isso nos ajuda a entender como os algoritmos funcionam por trás dos panos.

O seu raciocínio faz todo sentido quando pensamos em uma estrutura condicional encadeada, onde as condições estão interligadas (como um Se... Senão Se).

O ponto principal aqui está na forma como as estruturas de decisão lidam com o fluxo do código. Vamos analisar dois cenários diferentes para entender o comportamento do algoritmo:

Cenário 1: Condicionais Independentes (Se isolados)

Se o algoritmo for escrito usando apenas blocos Se individuais e seguidos, o computador vai testar todas as linhas, uma por uma, mesmo que já tenha encontrado uma resposta verdadeira antes.

Caso a média seja 4,5:

  1. O primeiro bloco testa: 4,5 <= 5,0? Verdadeiro. A saída recebe "Você está reprovado".
  2. O segundo bloco testa: 4,5 <= 6,9? Verdadeiro também! A saída agora é sobrescrevida por "Você está de recuperação".

Sem uma instrução que interrompa a execução ou ligue um bloco ao outro, o programa atualiza o valor da saída com o último teste que der verdadeiro.

Cenário 2: Condicionais Encadeadas (Se / Senão Se)

Se a sua ideia foi usar uma estrutura em que a próxima verificação só acontece se a anterior for falsa, você está coberta de razão! Em linguagens de programação, estruturamos isso utilizando o Senão Se (ou else if).

Dessa forma, o fluxo funciona exatamente como você descreveu:

  • Se a média for 4,5, o algoritmo entra na primeira condição, define a saída e ignora todo o restante do bloco.

Como deixar o algoritmo explícito

Para garantir que o computador interprete o código exatamente da forma como você pensou, sem dar margem para o comportamento do Cenário 1, a escrita ideal em pseudocódigo ficaria assim:

Recebe média final

Se media <= 5,0 então
    Saída = 'Você está reprovado'
Senão Se media <= 6,9 então
    Saída = 'Você está de recuperação'
Senão
    Saída = 'Parabéns! Você foi aprovado'
Fim Se

Com o uso do Senão Se, a sua lógica fica protegida e funciona perfeitamente para qualquer nota, pois criamos uma dependência entre os testes.

Faz sentido essa diferença entre testar os blocos de forma isolada ou encadeada?

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