Introdução à Programação · 1.º ano (indicativo)

Como escrever um programa para a tabuada?

  • 8 min de leitura
  • 4 exemplos resolvidos
  • 5 exercícios com solução
  • Atualizado em

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() e print().
  • Operadores aritméticos: * multiplica.
  • Noção de ciclo: o ciclo for repete o bloco recuado uma vez por cada valor de uma sequência.

A função range

ChamadaValores 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

  1. Peça o número da tabuada: n = int(input("Tabuada de: ")).
  2. Decida a sequência dos multiplicadores: de 1 a 10, logo range(1, 11).
  3. Escreva o ciclo: for i in range(1, 11): (com os dois pontos).
  4. Escreva o corpo, recuado 4 espaços: print(n, "x", i, "=", n * i).
  5. Teste com um número pequeno, como 3, e confira a primeira e a última linha.
  6. Melhore a saída, se quiser, com uma f-string: print(f"{n} x {i} = {n * i}").

Programa completo

  1. n = int(input("Tabuada de: "))
  2. for i in range(1, 11):
  3. (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:

  1. i = 1: n * i = 3 × 1 = 3, mostra «3 x 1 = 3».
  2. i = 2: 3 × 2 = 6, mostra «3 x 2 = 6».
  3. i = 3: «3 x 3 = 9».
  4. …
  5. 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:

  1. n = 7 e i = 1 (contador inicial).
  2. while i <= 10:
  3. (recuada) print(f"{n} x {i} = {n * i}")
  4. (recuada) i += 1
  5. Se a linha i += 1 faltar, i fica 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:

  1. Leia os três valores com int(input()).
  2. Use for i in range(inicio, fim + 1): — o + 1 é necessário porque o limite superior é excluído.
  3. Corpo: print(n, "x", i, "=", n * i).
  4. 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:

  1. Ciclo exterior: for n in range(1, 4): gera n = 1, 2, 3.
  2. Ciclo interior (dentro do exterior, mais recuado): for i in range(1, 11):.
  3. Corpo do interior: print(n, "x", i, "=", n * i).
  4. 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().** Com n = input(), n é texto e n * i repete o texto: «3» * 2 dá «33» em vez de 6.
  • Errar o recuo. Se o print ficar fora do ciclo, aparece uma única linha, com o último valor de i.
  • Esquecer os dois pontos no fim da linha do for: dá SyntaxError.
  • Usar o mesmo nome em ciclos encadeados (por exemplo i nos 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

Tente resolver primeiro no caderno; depois confira.

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) exclui b; 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 for e range.
  • O curso CS50 (Harvard), como referência pedagógica, em inglês.

Continue a estudar

1.º ano (indicativo)8 min

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

1.º ano (indicativo)7 min

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

1.º ano (indicativo)8 min

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

1.º ano (indicativo)9 min

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

Ver tudo de Introdução à Programação · Capítulo: Estruturas de repetição