Vamos a mais uma dúvida aqui em nosso Curso de Algoritmos e Lógica de Programação? Vamos aprender hoje como calcular a tabuada várias vezes inclusive com limite definido pelo usuário.
Normalmente estamos acostumados com a tabuada de zero a dez, mas, e se desejarmos um limite superior maior, diferente de 10? Bom, basta pedir ao usuário o limite desejado, como feito a seguir.
inteiro limite escreva("Digite o limite desejada: ") leia(limite)
Agora que já temos o limite, precisamos pedir ao usuário qual o valor ele deseja calcular a tabuada. Como queremos que esse valor seja maior que zero, precisamos verificar o valor digitado e repetir a leitura caso seja zero ou um valor negativo, como feito a seguir.
faca{ escreva("Digite um valor maior que zero: ") leia(x) }enquanto(x <= 0)
Agora que já temos o limite e o valor cuja tabuada o usuário deseja calcular, basta uma repetição de zero até limite calculando e imprimindo a tabuada na tela, assim:
para(i = 0; i <= limite; i++){ escreva(x, " * ", i, " = ", x * i,"\n") }
Contudo, o exercício diz que ao final, deve perguntar ao usuário se ele deseja continuar calculando tabuadas. Caso ele digite S (Sim) o processo deve ser repetido. Para fazer isso, basta colocar a leitura do valor e o cálculo da tabuada dentro de uma repetição do tipo faça enquanto (faça enquanto for digitado S), assim:
faca{ faca{ escreva("Digite um valor maior que zero: ") leia(x) }enquanto(x <= 0) para(i = 0; i <= limite; i++){ escreva(x, " * ", i, " = ", x * i,"\n") } escreva("\nDeseja continuar? (S/N)\n") leia(opcao) }enquanto(opcao == 'S')
Código completo em Portugol para calcular a tabuada
programa{ /* * Código escrito por Wagner Gaspar * Maio de 2021 * * aula 130 - tabuada * - Pedir o limite para multiplicação e no lugar do 10 * - Implementar a pergunta "Deseja continuar calculando tabuadas(S/N)?" */ funcao inicio(){ inteiro x, i, limite caracter opcao escreva("Digite o limite desejada: ") leia(limite) faca{ faca{ escreva("Digite um valor maior que zero: ") leia(x) }enquanto(x <= 0) para(i = 0; i <= limite; i++){ escreva(x, " * ", i, " = ", x * i,"\n") } escreva("\nDeseja continuar? (S/N)\n") leia(opcao) }enquanto(opcao == 'S') } }