Introdução à Programação · 1.º ano (indicativo)
Como escrever um programa para a tabuada?
Resposta curta
Leia o número com n = int(input()) e percorra os multiplicadores de 1 a 10 com for i in range(1, 11):. Dentro do ciclo, mostre cada linha com print(n, "x", i, "=", n * i). O range(1, 11) inclui o 1 e exclui o 11, por isso gera exatamente 10 voltas.
Quando se aplica
A tabuada é o exemplo clássico de repetição com contagem conhecida: sabe-se à partida que são 10 linhas, cada uma com o mesmo cálculo mas com um multiplicador diferente. O mesmo padrão serve para gerar tabelas de preços (quantidade × preço unitário em kwanzas), conversões e qualquer lista de valores calculados por uma fórmula.
Pré-requisitos
- Variáveis,
input(),int()eprint(). - Operadores aritméticos:
*multiplica. - Noção de ciclo: o ciclo
forrepete o bloco recuado uma vez por cada valor de uma sequência.
A função range
| Chamada | Valores gerados |
|---|---|
range(5) | 0, 1, 2, 3, 4 |
range(1, 11) | 1, 2, …, 10 |
range(2, 11, 2) | 2, 4, 6, 8, 10 |
range(10, 0, -1) | 10, 9, …, 1 |
O limite superior nunca é incluído. Para ir até 10 escreve-se 11.
Método passo a passo
- Peça o número da tabuada:
n = int(input("Tabuada de: ")). - Decida a sequência dos multiplicadores: de 1 a 10, logo
range(1, 11). - Escreva o ciclo:
for i in range(1, 11):(com os dois pontos). - Escreva o corpo, recuado 4 espaços:
print(n, "x", i, "=", n * i). - Teste com um número pequeno, como 3, e confira a primeira e a última linha.
- Melhore a saída, se quiser, com uma f-string:
print(f"{n} x {i} = {n * i}").
Programa completo
n = int(input("Tabuada de: "))for i in range(1, 11):- (recuada)
print(n, "x", i, "=", n * i)
Nota
Em print(n, "x", i, "=", n * i), o Python separa os argumentos com um espaço. O resultado para n = 3 e i = 1 é: 3 x 1 = 3.
Exemplos resolvidos
Exemplo 1 — Tabuada do 3
Enunciado: Execute o programa com n = 3 e diga as primeiras e a última linha.
Resolução:
- i = 1:
n * i= 3 × 1 = 3, mostra «3 x 1 = 3». - i = 2: 3 × 2 = 6, mostra «3 x 2 = 6».
- i = 3: «3 x 3 = 9».
- …
- i = 10: 3 × 10 = 30, mostra «3 x 10 = 30». O 11 já não entra.
Resposta: 10 linhas, de «3 x 1 = 3» a «3 x 10 = 30». Verificação: cada resultado aumenta 3 em relação ao anterior.
Exemplo 2 — Com while em vez de for
Enunciado: Escreva a tabuada do 7 com um ciclo while.
Resolução:
n = 7ei = 1(contador inicial).while i <= 10:- (recuada)
print(f"{n} x {i} = {n * i}") - (recuada)
i += 1 - Se a linha
i += 1faltar,ifica sempre 1 e o ciclo nunca termina.
Resposta: mostra «7 x 1 = 7» até «7 x 10 = 70». Verificação: 7 × 10 = 70 na última volta, e o programa termina quando i chega a 11.
Exemplo 3 — Tabuada num intervalo escolhido
Enunciado: O utilizador indica n = 7, início = 5 e fim = 8. Escreva o programa e diga o que mostra.
Resolução:
- Leia os três valores com
int(input()). - Use
for i in range(inicio, fim + 1):— o+ 1é necessário porque o limite superior é excluído. - Corpo:
print(n, "x", i, "=", n * i). - Valores: 7 × 5 = 35, 7 × 6 = 42, 7 × 7 = 49, 7 × 8 = 56.
Resposta: quatro linhas, de «7 x 5 = 35» a «7 x 8 = 56». Verificação: 4 voltas = 8 − 5 + 1.
Exemplo 4 — Nível de exame: várias tabuadas (ciclos encadeados)
Enunciado: Mostre as tabuadas do 1 ao 3. Quantas linhas aparecem?
Resolução:
- Ciclo exterior:
for n in range(1, 4):gera n = 1, 2, 3. - Ciclo interior (dentro do exterior, mais recuado):
for i in range(1, 11):. - Corpo do interior:
print(n, "x", i, "=", n * i). - Para cada valor de n, o ciclo interior faz 10 voltas.
Resposta: 3 × 10 = 30 linhas. Verificação: a primeira é «1 x 1 = 1» e a última «3 x 10 = 30».
Erros frequentes
- **Usar
range(1, 10)e perder a última linha.** O limite é excluído; para chegar a 10 use 11. - **Esquecer o
int().** Comn = input(), n é texto en * irepete o texto: «3» * 2 dá «33» em vez de 6. - Errar o recuo. Se o
printficar fora do ciclo, aparece uma única linha, com o último valor dei. - Esquecer os dois pontos no fim da linha do
for: dáSyntaxError. - Usar o mesmo nome em ciclos encadeados (por exemplo
inos dois), o que estraga as voltas do exterior. - **Em while, esquecer
i += 1:** o programa fica a repetir a mesma linha para sempre.
Exercícios propostos
1Exercício 1
Escreva o programa da tabuada do 6, até 10. Qual é a última linha?
Ver solução
n = 6; for i in range(1, 11): com print(n, "x", i, "=", n * i) recuado. A última linha é 6 x 10 = 60.
2Exercício 2
Mostre a tabuada do 9 em ordem decrescente, de 10 até 1. Qual é a primeira linha e qual é a última?
Ver dica
Use range(10, 0, -1).
Ver solução
for i in range(10, 0, -1): com print(n, "x", i, "=", n * i). Primeira linha: 9 x 10 = 90. Última: 9 x 1 = 9.
3Exercício 3
Calcule, com um programa, a soma de todos os resultados da tabuada do 5 (de 1 a 10).
Ver solução
soma = 0; for i in range(1, 11): com soma += 5 * i recuado; print(soma). Os resultados são 5, 10, …, 50; a soma é 5 × (1 + 2 + … + 10) = 5 × 55 = 275.
4Exercício 4
Mostre apenas as linhas da tabuada do 4 cujo resultado é maior que 20. Que linhas aparecem?
Ver solução
Dentro do ciclo: if 4 * i > 20: e depois o print. Os produtos são 4, 8, …, 40; maiores que 20 são 24, 28, 32, 36 e 40 (i = 6, 7, 8, 9, 10). Note que 4 x 5 = 20 não aparece, porque 20 não é maior que 20.
5Exercício 5
Na tabuada do 3 (de 1 a 10), quantos resultados são pares? Escreva o programa que os conta.
Ver solução
pares = 0; for i in range(1, 11):; dentro: if (3 * i) % 2 == 0: pares += 1. Os resultados 3, 6, 9, …, 30 são pares quando i é par: 6, 12, 18, 24, 30. O programa dá 5.
Perguntas frequentes
Quando se usa este método?
Quando o número de repetições é conhecido: 10 linhas, 12 meses, 30 dias. O for com range é a escolha natural; o while serve melhor para condições de paragem.
Existe um método mais rápido?
Pode escrever a tabuada numa só linha com compreensão de listas, mas para quem está a começar é mais claro o for em três linhas. O importante é perceber o range.
Porque é que o range não inclui o último número?
Por convenção de Python: range(a, b) vai de a até b - 1. Assim, range(0, n) tem exatamente n elementos, o que simplifica muitas contas.
Que erros são mais comuns?
Perder a última linha por usar 10 em vez de 11, esquecer o int() e errar o recuo. Veja a secção «Erros frequentes».
Resumo
for i in range(1, 11):repete 10 vezes, com i de 1 a 10.- O corpo (recuado) calcula e mostra
n * i. range(a, b)excluib; para incluir 10 escreve-se 11.- Converta a entrada com
int()antes de multiplicar. - Com
while, o contador tem de ser atualizado dentro do ciclo. - Ciclos encadeados multiplicam o número de voltas (3 × 10 = 30).
Onde aprofundar
- O programa da disciplina de Introdução à Programação da sua instituição — confirme a bibliografia em vigor.
- A documentação oficial do Python, nas secções sobre
forerange. - O curso CS50 (Harvard), como referência pedagógica, em inglês.
Continue a estudar
Como escrever um programa para somar números até zero?
Em Python, use um acumulador total = 0, leia o primeiro número e repita com while n != 0: somando n ao total e lendo o número seguinte dentro do ciclo. O zero funciona…
4 exemplos5 exercícios com solução✓ Estudado
Como escrever um programa para o fatorial?
O fatorial de n (n!) é o produto 1 × 2 × … × n, com 0! = 1. Em Python, comece com fat = 1, percorra for i in range(2, n + 1): e multiplique com fat *= i. No fim…
4 exemplos5 exercícios com solução✓ Estudado
Como escrever um programa para a sequência de Fibonacci?
A sequência de Fibonacci começa em 0 e 1, e cada termo seguinte é a soma dos dois anteriores: 0, 1, 1, 2, 3, 5, 8, … Em Python, guarde os dois últimos termos em a e b…
4 exemplos5 exercícios com solução✓ Estudado
Qual é a diferença entre while e for?
O for percorre uma sequência ou repete um número de vezes conhecido à partida. O while repete enquanto uma condição for verdadeira, por isso serve quando não se sabe…
4 exemplos5 exercícios com solução✓ Estudado
Ver tudo de Introdução à Programação · Capítulo: Estruturas de repetição