(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
ou
1 ou +
ou
2 ou +
Alta
e
1
Forte
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.
| Média | Medalha de ouro em olimpíada | Medalhas em olimpíadas | Recomendação | ||
|
|
ou | 1 ou + | ou | 2 ou + | Alta |
|
|
e | 1 | Forte | ||
|
|
Média | ||||
| < 7.0 | Não recomendado |
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
; - a quantidade de medalhas de ouro em olimpíadas — vou chamar de
(um número inteiro); - a quantidade total de medalhas em olimpíadas — vou chamar de
(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
OU OU então recomendação = “Alta”. - Caso contrário, se
E então recomendação = “Forte”. - Caso contrário, se
então recomendação = “Média”. - Caso contrário (ou seja,
) 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
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
e em Python usamos >=. Ex.:vira media >= 9.0. - O “OU” lógico (disjunção) em matemática corresponde a
orem Python. - O “E” lógico (conjunção) em matemática corresponde a
andem Python. - Exemplo: a condição da recomendação “Alta” é
Em Python isso fica: media >= 9.0 or ouro >= 1 or medalhas >= 2. - Exemplo: a condição da recomendação “Forte” é
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 parafloat. - 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
como int(input(...)) - ler
como int(input(...))
- ler a média como
Passo 5
Exemplos práticos (para você entender passo a passo como o programa decide):
- Exemplo A:
, , . -
é verdadeiro → recomendação = “Alta”.
-
- Exemplo B:
, , . - condição “Alta”: falsa (média < 9,0; ouro=0; medalhas=1 < 2).
- condição “Forte”: média
e medalhas → verdadeira → “Forte”.
- Exemplo C:
, , . - condição “Alta”: ouro
→ verdadeira → “Alta” (mesmo que outras linhas também pudessem parecer aplicar).
- condição “Alta”: ouro
- Exemplo D:
, , . - nem “Alta” nem “Forte” → média
→ “Média”.
- nem “Alta” nem “Forte” → média
- Exemplo E:
, , . -
→ “Não recomendado”.
-
Passo 6
Detalhes finais e dicas para a prova:
- Lembre-se da ordem das condições: use
ifpara “Alta”,elifpara “Forte”,elifpara “Média” eelsepara “Não recomendado”. - Use conversão correta dos tipos (
floateint) 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: "))
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”)
print(“Alta”)
elif media >= 8.0 and medalhas >= 1:
print(“Forte”)
elif media >= 7.0:
print(“Média”)
else:
print(“Não recomendado”)