Pular para conteúdo

Lista 05 · Condicionais

Esta é a primeira lista em que o programa deixa de fazer sempre a mesma coisa: com o if, ele escolhe. Todo exercício aqui é um programa inteiro, com input(), como nas listas anteriores.

Quase todo erro de if mora na fronteira — no valor exatamente igual ao limite. Por isso vários enunciados trazem uma tabela de valores para você rodar o programa mais de uma vez e conferir cada resposta. Rode todos: é ali que o programa que parece certo se entrega.

Atenção também à indentação: o que está dentro do if só acontece quando a condição é verdadeira, e o que está fora acontece sempre. Trocar um pelo outro não dá erro nenhum — só dá resposta errada.

Abrir o OnlineGDB

Como esta lista funciona

Cada exercício abaixo é um arquivo só. Copie o código inteiro, cole no OnlineGDB, escreva a sua solução no lugar do # TODO e aperte ▶ Run.

Nos exercícios que mostram como deve ficar, compare a sua saída com a publicada aqui, linha por linha. Espaço a mais, acento faltando e letra maiúscula contam: o computador não relaxa em nenhum deles.

Parte A · no papel

Faça esta parte antes de ligar o computador

Escreva a resposta no caderno, depois rode para conferir. Prever e errar ensina; rodar primeiro e ler a saída, não.

A1. Sem rodar, diga o valor de cada expressão, se minutos = 200:

minutos > 200      minutos >= 200      minutos != 200
minutos == 200     minutos < 200       minutos <= 200

A2. O que este programa imprime?

saldo = 5
if saldo < 2:
    print("Saldo baixo")
print("Fim")

E se saldo valesse 1?

A3. Este programa não roda. Aponte os dois erros e reescreva-o certo.

nota = 7
if nota >= 7
print("Aprovado")

A4. Qual a diferença entre estas duas linhas? Uma delas não pode aparecer dentro de um if.

minutos = 100
minutos == 100

A5. Este programa avisa para contratar um pacote extra mesmo quando o cliente usou só 12 GB dos 20. Por quê?

franquia_gb = 20
usado_gb = 12
if usado_gb > franquia_gb:
    print("Franquia estourada")
print("Contrate um pacote extra")

(Dica: leia a indentação, não as condições.)

A6. Rastreie. Monte a tabela, uma linha por instrução, e diga o que sai:

a = 10
b = 4
if a % b == 0:
    resto = 0
else:
    resto = a % b
print(resto)

Parte B · no computador

Exercício 01

O aplicativo da operadora precisa avisar o cliente quando ele passa da franquia de dados do mês.

Escreva um programa que pergunte quantos GB o cliente já usou e quantos GB o plano dá, e mostre se ele passou ou não da franquia.

Quem usou exatamente a franquia ainda não passou.

Rode o programa também com estes valores e confira cada resposta:

Usado Franquia Resposta esperada
21.5 20 passou
19.9 20 não passou
0 20 não passou
4 3 passou

Como deve ficar. Rodando o programa e digitando 20, 20, a tela tem de ficar assim:

GB usados no mes: 20
Franquia do plano em GB: 20
Usado: 20.0 GB de 20.0 GB
Voce esta dentro da franquia.
# Exercício 01 — alerta de franquia estourada.
# TODO: pergunte quantos GB o cliente usou.
# TODO: pergunte quantos GB o plano da de franquia.
# TODO: mostre o consumo e, com um if/else, diga se passou ou nao da franquia.

Baixar ex01.py

Exercício 02

Um cliente mediu a velocidade da internet em dois momentos do dia e quer saber qual foi a melhor.

Escreva um programa que pergunte as duas medições, em Mb/s, e diga qual é a maior — ou avise que as duas deram o mesmo valor.

São três saídas possíveis, e é isso que faz o exercício: a primeira medição ser a maior, a segunda ser a maior, ou as duas serem iguais.

Não use a função pronta max do Python: o exercício é sobre a decisão.

Use exatamente estes textos, para a sua sessão bater com a publicada:

Primeira medicao (Mb/s):
Segunda medicao (Mb/s):
A maior foi a primeira: X Mb/s
A maior foi a segunda: X Mb/s
As duas foram iguais: X Mb/s

O caso do empate é o que pega

Com > sozinho e um else, o empate cai no else e o programa diz que a segunda foi a maior — o que é falso. O empate precisa de um teste próprio.

Rode também com estes valores e confira cada resposta:

Medições Resposta esperada
48.5 e 12.0 a primeira, 48.5
12.0 e 48.5 a segunda, 48.5
30.0 e 30.0 iguais, 30.0
9.9 e 10.0 a segunda, 10.0

Como deve ficar. Rodando o programa e digitando 30.0, 30.0, a tela tem de ficar assim:

Primeira medicao (Mb/s): 30.0
Segunda medicao (Mb/s): 30.0
As duas foram iguais: 30.0 Mb/s
# Exercício 02 — qual medição foi a melhor.
# TODO: pergunte as duas medições, em Mb/s, e converta para float.

# TODO: decida entre três casos — a primeira é maior, a segunda é maior,
#       ou as duas são iguais. Cada um tem a sua mensagem.

Baixar ex02.py

Exercício 03

Um radar multa quem passa de 80 km/h. A multa é de R$ 5 por km/h acima de 80 — quem passou a 90 paga R$ 50.

Escreva um programa que pergunte a velocidade do carro e mostre o valor da multa, com duas casas decimais. Quem não passou de 80 não paga nada: a multa é R$ 0,00.

Cuidado com a fronteira: 80 km/h não é multa.

Rode o programa também com estas velocidades e confira cada resposta:

Velocidade Multa esperada
90 R$ 50,00
81 R$ 5,00
60 R$ 0,00
120 R$ 200,00

Como deve ficar. Rodando o programa e digitando 80, a tela tem de ficar assim:

Velocidade do carro em km/h: 80
Multa: R$ 0.00
# Exercício 03 — a multa do radar.
limite = 80
preco_por_km = 5

# TODO: pergunte a velocidade do carro.
# TODO: se passou do limite, cobre 5 reais por km/h excedente; senao, a multa e 0.
# TODO: mostre o valor da multa com duas casas decimais.

Baixar ex03.py

Exercício 04

A conta de luz tem duas tarifas: quem consome até 150 kWh paga R$ 0,45 por kWh; quem passa disso paga R$ 0,72 por kWh — e a tarifa mais cara vale para o consumo inteiro, não só para o que passou.

Escreva um programa que pergunte o consumo em kWh e mostre o valor a pagar, com duas casas decimais.

Rode o programa com 150 e depois com 151: um kWh a mais quase dobra a conta. É a tarifa toda que muda de faixa.

Rode também com estes consumos e confira cada resposta:

Consumo Conta esperada
150 R$ 67,50
151 R$ 108,72
100 R$ 45,00
0 R$ 0,00
320 R$ 230,40

Como deve ficar. Rodando o programa e digitando 151, a tela tem de ficar assim:

Consumo do mes em kWh: 151
Tarifa aplicada: R$ 0.72 por kWh
Total a pagar: R$ 108.72
# Exercício 04 — a conta de luz em duas faixas.
# TODO: pergunte o consumo em kWh.
# TODO: escolha a tarifa com um if/else (0.45 ate 150 kWh, 0.72 acima).
# TODO: multiplique o consumo pela tarifa e mostre o total com duas casas.

Baixar ex04.py

Exercício 05

O plano do cliente dá uma franquia de minutos por mês. Cada minuto falado além da franquia custa R$ 0,40.

Escreva um programa que pergunte os minutos falados e os minutos da franquia, e mostre quanto o cliente vai pagar de excedente, com duas casas decimais. Quem ficou dentro da franquia paga R$ 0,00.

Cuidado com o caso de quem falou menos que a franquia: a conta (falados - franquia) * 0.40 devolveria um valor negativo, e ninguém recebe dinheiro da operadora por não ter falado.

Rode o programa também com estes valores e confira cada resposta:

Falados Franquia Excedente esperado
137 100 R$ 14,80
100 100 R$ 0,00
101 100 R$ 0,40
500 200 R$ 120,00

Como deve ficar. Rodando o programa e digitando 90, 100, a tela tem de ficar assim:

Minutos falados no mes: 90
Minutos da franquia: 100
Minutos excedentes: 0
Valor do excedente: R$ 0.00
# Exercício 05 — o excedente da franquia de minutos.
preco_do_minuto_extra = 0.40

# TODO: pergunte os minutos falados e os minutos da franquia.
# TODO: so ha excedente quando os minutos falados passam da franquia.
# TODO: mostre o valor a pagar com duas casas decimais.

Baixar ex05.py

Exercício 06

O plano tem franquia de 20 GB. Escreva um programa que pergunte quantos GB o cliente já usou e mostre:

  • o percentual da franquia já consumido, com uma casa decimal;
  • e, só quando o consumo passar de 80% da franquia, uma linha de alerta.

Quem está abaixo dos 80% não vê alerta nenhum — o programa simplesmente termina.

Como deve ficar. Rodando o programa e digitando 17.4, a tela tem de ficar assim:

Quantos GB ja usados: 17.4
Voce usou 17.4 GB de 20 GB (87.0%)
ATENCAO: voce ja passou de 80% da franquia.
# Exercício 06 — alerta de franquia.
franquia_gb = 20

# TODO: pergunte quantos GB ja foram usados.
# TODO: calcule o percentual consumido e mostre com uma casa decimal.
# TODO: mostre o alerta SO quando o percentual passar de 80.

Baixar ex06.py