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'
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!
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'
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?
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:
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:
4,5 <= 5,0? Verdadeiro. A saída recebe "Você está reprovado".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.
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:
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?