Pular para conteúdo

Lista 04 · Operadores e expressões

Esta lista fecha a Unidade 1. Os exercícios juntam tudo: entrada, conversão, conta com a ordem certa e saída formatada.

O tema escondido dela é a precedência. Metade dos erros aqui não vai dar mensagem nenhuma — vai só entregar um número que não faz sentido. Antes de aceitar qualquer resultado, pergunte-se se ele é plausível.

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. Calcule no papel, sem computador:

17 // 5      17 % 5      17 / 5
 8 // 2       8 % 2       2 ** 5

A2. O que cada linha imprime?

print(2 + 3 * 4)
print((2 + 3) * 4)
print(10 - 2 - 3)
print(10 / 2 * 5)

A3. Este programa calcula a média de três notas e imprime 17.33. Explique por quê, e conserte.

media = 6 + 8 + 10 / 3
print(media)

A4. Um programa precisa dizer se um número é par. Qual das duas expressões serve, e por quê?

numero % 2        numero // 2

A5. 200 segundos são quantos minutos e quantos segundos? Escreva as duas expressões em Python que devolvem cada parte.

A6. Sem rodar, diga o que sai:

print(7 / 7)
print(7 // 7)

As duas linhas imprimem a mesma coisa? Explique.

Parte B · no computador

Exercício 01

Escreva um programa que pergunte um número total de segundos e o mostre no formato HH:MM:SS.

Use // e %. Todos os três campos devem ter dois dígitos, completados com zero à esquerda quando necessário — {valor:02d} faz isso.

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

Total de segundos: 7325
02:02:05
# Exercício 01 — segundos em HH:MM:SS.
# TODO: pergunte o total de segundos.
# TODO: separe em horas, minutos e segundos com // e %.
# TODO: mostre no formato HH:MM:SS, com dois dígitos em cada campo.

Baixar ex01.py

Exercício 02

Escreva um programa que pergunte as três notas de um aluno e mostre a média, com uma casa decimal.

Cuidado com os parênteses — é exatamente o erro do exercício A3.

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

Nota 1: 6
Nota 2: 8
Nota 3: 10
Media: 8.0
# Exercício 02 — média de três notas.
# TODO: pergunte as três notas, calcule a média e mostre com uma casa decimal.

Baixar ex02.py

Exercício 03

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

  • quanto sobrou, com uma casa decimal;
  • quantos por cento da franquia já foram usados, com uma casa decimal.

A ordem das contas importa na segunda: dividir e depois multiplicar por 100.

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

Quantos GB ja usados: 13.5
Usado: 13.5 GB de 20 GB (67.5%)
Restam 6.5 GB
# Exercício 03 — a franquia de dados.
franquia_gb = 20

# TODO: pergunte quantos GB já foram usados.
# TODO: calcule o que sobrou e o percentual usado.
# TODO: mostre as duas linhas da saída esperada.

Baixar ex03.py

Exercício 04

Baixar um arquivo leva quanto tempo? Escreva um programa que pergunte:

  • o tamanho do arquivo, em megabytes (MB);
  • a velocidade da conexão, em megabits por segundo (Mb/s).

E mostre o tempo de download em segundos, com uma casa decimal.

A pegadinha está nas unidades

Megabyte e megabit não são a mesma coisa: 1 byte vale 8 bits. Um arquivo de 100 MB são 800 Mb, e por isso ele leva 8 segundos num enlace de 100 Mb/s — não 1 segundo.

Este é um erro clássico, e é o tipo de coisa que um assistente de IA erra com frequência: o programa roda, entrega "1 segundo" e ninguém desconfia.

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

Tamanho do arquivo em MB: 100
Velocidade da conexao em Mb/s: 100
100.0 MB sao 800.0 Mb
Tempo de download: 8.0 segundos
# Exercício 04 — tempo de download.
# TODO: pergunte o tamanho em MB e a velocidade em Mb/s.
# TODO: converta MB para Mb (lembre do fator 8) e calcule o tempo.
# TODO: mostre o tempo com uma casa decimal.

Baixar ex04.py