(0.5) Uma determinada agência de fomento considera que um aluno pode receber recomendações de bolsa de acordo com a seguinte tabela:
Média Medalha de ouro em olimpíada Medalhas em olimpíadas Recomendação
\geq 9.0 ou 1 ou + ou 2 ou + Alta
\geq 8.0 e 1 Forte
\geq 7.0 Média
< 7.0 Não recomendado
Faça um programa em Pyhon que leia a média do aluno, a quantidade de medalhas de ouro em olimpíadas e a quantidade de medalhas em geral em olimpíadas e informe qual a recomendação que esse aluno deve receber.

Passo 1

O que o enunciado pede:
  • Criar um programa em Python que leia três informações do aluno e informe a recomendação de bolsa.
Quais são as entradas (o que o programa deve ler):
  • a média do aluno (uma nota com casas decimais) — vou chamar de \text{média}é;
  • a quantidade de medalhas de ouro em olimpíadas — vou chamar de \text{ouro} (um número inteiro);
  • a quantidade total de medalhas em olimpíadas — vou chamar de \text{medalhas} (um número inteiro).
Qual é a saída (o que o programa deve imprimir):
  • uma das strings: “Alta”, “Forte”, “Média” ou “Não recomendado”, conforme as regras da tabela.
Informações relevantes da tabela (copiadas e reescritas para clareza):
  • Se \text{média} \geq 9,0é OU \text{ouro} \geq 1 OU \text{medalhas} \geq 2 então recomendação = “Alta”.
  • Caso contrário, se \text{média} \geq 8,0é E \text{medalhas} \geq 1 então recomendação = “Forte”.
  • Caso contrário, se \text{média} \geq 7,0é então recomendação = “Média”.
  • Caso contrário (ou seja, \text{média} < 7,0é) então recomendação = “Não recomendado”.

Passo 2

Escolhendo a ordem de verificação (por que checar “Alta” primeiro):
  • A tabela dá condições que se sobrepõem: por exemplo, ter \text{ouro}\geq 1 aparece na linha “Alta”. Se verificarmos primeiro a linha “Forte” ou “Média”, podemos atribuir mal a recomendação quando o aluno deveria ser “Alta”.
  • Logo, precisamos testar primeiro as condições que dão a recomendação mais alta (“Alta”), porque elas são mais permissivas (suficientes) e evitam que uma condição inferior capture o caso.
  • Em seguida testamos “Forte”, depois “Média” e por fim “Não recomendado”. Essa é uma estratégia comum: checar do caso mais específico/forte para o mais fraco.

Passo 3

Como traduzir as regras para expressões lógicas em Python (aulas rápidas e práticas):
  • Em matemática usamos \geq e em Python usamos >=. Ex.: \text{média} \geq 9,0é vira media >= 9.0.
  • O “OU” lógico (disjunção) em matemática corresponde a or em Python.
  • O “E” lógico (conjunção) em matemática corresponde a and em Python.
  • Exemplo: a condição da recomendação “Alta” é (\text{média} \geq 9,0)\\ \text{ou}\\ (\text{ouro} \geq 1)\\ \text{ou}\\ (\text{medalhas} \geq 2).éEm Python isso fica: media >= 9.0 or ouro >= 1 or medalhas >= 2.
  • Exemplo: a condição da recomendação “Forte” é (\text{média} \geq 8,0)\\ \text{e}\\ (\text{medalhas} \geq 1),éque em Python é: media >= 8.0 and medalhas >= 1.

Passo 4

Como ler os dados do usuário de forma prática e robusta:
  • A média pode ser digitada com vírgula (ex.: 8,5) ou ponto (8.5). Para facilitar, podemos ler a string e trocar vírgula por ponto antes de converter para float.
  • As quantidades de medalhas são números inteiros; convertemos para int.
  • Código típico:
    • ler a média como float(input(...).replace(',', '.'))
    • ler \text{ouro} como int(input(...))
    • ler \text{medalhas} como int(input(...))

Passo 5

Exemplos práticos (para você entender passo a passo como o programa decide):
  • Exemplo A: \text{média}=9,2é, \text{ouro}=0, \text{medalhas}=0.
    • \text{média}\geq 9,0é é verdadeiro → recomendação = “Alta”.
  • Exemplo B: \text{média}=8,4é, \text{ouro}=0, \text{medalhas}=1.
    • condição “Alta”: falsa (média < 9,0; ouro=0; medalhas=1 < 2).
    • condição “Forte”: média \geq 8,0 e medalhas \geq 1 → verdadeira → “Forte”.
  • Exemplo C: \text{média}=8,5é, \text{ouro}=1, \text{medalhas}=1.
    • condição “Alta”: ouro \geq 1 → verdadeira → “Alta” (mesmo que outras linhas também pudessem parecer aplicar).
  • Exemplo D: \text{média}=7,3é, \text{ouro}=0, \text{medalhas}=0.
    • nem “Alta” nem “Forte” → média \geq 7,0 → “Média”.
  • Exemplo E: \text{média}=6,9é, \text{ouro}=0, \text{medalhas}=0.
    • \text{média}<7,0é → “Não recomendado”.

Passo 6

Detalhes finais e dicas para a prova:
  • Lembre-se da ordem das condições: use if para “Alta”, elif para “Forte”, elif para “Média” e else para “Não recomendado”.
  • Use conversão correta dos tipos (float e int) e trate vírgula em números decimais.
  • No tempo da prova, escreva primeiro a lógica em português (curto) e depois traduza linha a linha para Python — isso evita erros.
  • Se quiser imprimir uma mensagem mais completa, pode usar print("Recomendação:", recomendacao), mas como a questão pediu apenas informar qual a recomendação, imprimir só a string é suficiente.
  • Vai dar certo! Respira fundo e copia a estrutura mental: ler → avaliar condições na ordem → imprimir.

Resposta

media = float(input("Média do aluno: ").replace(’,’, ‘.’))
ouro = int(input("Quantidade de medalhas de ouro: "))
medalhas = int(input("Quantidade total de medalhas: "))
if media >= 9.0 or ouro >= 1 or medalhas >= 2:
print(“Alta”)
elif media >= 8.0 and medalhas >= 1:
print(“Forte”)
elif media >= 7.0:
print(“Média”)
else:
print(“Não recomendado”)

Exercícios relacionados