(2 pontos) Existem disciplinas de graduação que usam provas na avaliação. Dessas existem professores que dão duas provas (P1 e P2) ao longo da matéria e mais uma substitutiva (SUB) no fim, que substitui a menor nota. Mas nem tudo são flores. Dentre as provas substitutivas, existe o que os alunos costumam chamar de “SUB do bem” e as que os alunos costumam chamar de “SUB do mal”.
No caso da “SUB do bem”, a menor nota entre a P1 e a P2 é substituída somente se uma das notas das provas for menor que a nota da SUB. Já para a “SUB do mal”, a menor nota entre a P1 e a P2 é substituída independentemente de qualquer coisa.
Vamos assumir que o professor desse exercício usou a “SUB do mal” em sua disciplina. Faça um programa que leia as notas das duas provas, depois a nota da SUB, cada um em uma linha, e imprima a média final com uma casa decimal.
DICA: use a mesma lógica do exercício anterior.
Python tem um comando
que determina o máximo dentre dois números e um
com comportamento análogo. Nesse exercício o uso deles está proibido.
EXEMPLO
No caso da “SUB do bem”, a menor nota entre a P1 e a P2 é substituída somente se uma das notas das provas for menor que a nota da SUB. Já para a “SUB do mal”, a menor nota entre a P1 e a P2 é substituída independentemente de qualquer coisa.
Vamos assumir que o professor desse exercício usou a “SUB do mal” em sua disciplina. Faça um programa que leia as notas das duas provas, depois a nota da SUB, cada um em uma linha, e imprima a média final com uma casa decimal.
DICA: use a mesma lógica do exercício anterior.
Python tem um comando
EXEMPLO
Passo 1
O enunciado pede: ler três notas (cada uma em uma linha) e imprimir a média final com uma casa decimal. As informações dadas são:
- As duas primeiras entradas são as notas das provas P1 e P2; representá-las por
e . - A terceira entrada é a nota da substitutiva; representá‑la por
. - O professor usou a “SUB do mal”: isto significa que a menor nota entre
e é substituída por independentemente de qualquer coisa. - O que se deve imprimir é a média final com exatamente uma casa decimal.
Passo 2
Estratégia geral (em palavras simples): a média final será a média entre a maior nota original entre
e
e a nota
. Em fórmula:
Como o uso de
e
está proibido, vamos decidir qual é a maior fazendo uma comparação simples e atribuindo a variável correspondente. Se
então a maior é
; caso contrário, é
. Não precisa complicar: em empate qualquer uma serve.
Passo 3
Como ler os dados em Python: cada nota vem numa linha; usar
input() e converter para float:p1 = float(input())lê. p2 = float(input())lê. sub = float(input())lê.
Explicação curta:
input() retorna uma string; float(...) transforma em número real para permitir comparações e operações aritméticas.Passo 4
Como escolher a maior sem usar
:
- Fazer uma comparação com
if: seentão maior = p1senãomaior = p2. - Em Python isso fica:
if p1 >= p2:
maior = p1
else:
maior = p2
Comentário didático: a comparação
testa qual é maior (ou se são iguais). Se iguais, vale qualquer uma; estamos obedecendo a regra da “SUB do mal” porque substituímos sempre a menor — aqui não há menor.
Passo 5
Calcular a média e formatar com uma casa decimal:
- Calcular via fórmula em palavras: média é a soma da variável
maiore desubdividida por. - Em Python:
media = (maior + sub) / 2 - Para imprimir com exatamente uma casa decimal usar especificador de formato, por exemplo:
print(f"{media:.1f}")
Explicação de formatação:
:.1f significa “formate como número de ponto flutuante com 1 casa decimal”, e cuida do arredondamento corretamente.Passo 6
Juntando tudo: leitura, decisão sem
, cálculo e saída. Aqui está o programa completo em Python que resolve o problema conforme pedido:
```python
p1 = float(input())
p2 = float(input())
sub = float(input())
p1 = float(input())
p2 = float(input())
sub = float(input())
if p1 >= p2:
maior = p1
else:
maior = p2
maior = p1
else:
maior = p2
media = (maior + sub) / 2
print(f"{media:.1f}")
```
print(f"{media:.1f}")
```
Resposta
p1 = float(input())
p2 = float(input())
sub = float(input())
p2 = float(input())
sub = float(input())
if p1 >= p2:
maior = p1
else:
maior = p2
maior = p1
else:
maior = p2
media = (maior + sub) / 2
print(f"{media:.1f}")
print(f"{media:.1f}")