Tabuada

Estou iniciando na linguagem Java e em programação em geral. E foi proposto o seguinte exercício, mas já quebrei a cabeça com o problema, mas não estou dando conta de resolver, é erro de lógica eu acho, e não de sintaxe:

Exercício: Crie um vetor que armazene o resultado da tabuada de um número digitado (1 a 9).

Código:

[code]import javax.swing.*;
public class exe07 {

public static void main(String []args){
int tabuada[]=new int[10];
int resultado[]=new int[10];
int numero,i;
numero=Integer.parseInt(JOptionPane.showInputDialog("Digite o número para calcular a tabuada: "));

for(i=0;i<9;i++)
{
  resultado[i]=numero*tabuada[i];
}
JOptionPane.showMessageDialog(null,"A tabuada é: "+resultado[i]);

}
}
[/code]

Vejamos o enunciado:

Crie um vetor que armazene o resultado da tabuada de um número digitado (1 a 9).

E como se calcula uma tabuada? Digamos do 2?
2x1, 2x2, 2x3, 2x4…

Pergunta-se. Que variável varia de 1 até 9? tabuada[i] ou simplesmente i?

[quote=ViniGodoy]Vejamos o enunciado:

Crie um vetor que armazene o resultado da tabuada de um número digitado (1 a 9).

E como se calcula uma tabuada? Digamos do 2?
2x1, 2x2, 2x3, 2x4…

Pergunta-se. Que variável varia de 1 até 9? tabuada[i] ou simplesmente i?[/quote]

Foi mal cara, ainda não entendi muito bem, tipo… Eu estou armazenando o resultado em um vetor, mas só aparece zero quando termina de rodar o mesmo.

Quais são os valores que estão dentro do vetor tabuada enquanto você faz a multiplicação?

Pense na última pergunta que te fiz na resposta anterior.

No caso “i”, pois incrementará a cada multiplicação, que no caso é a multiplicação pelo número que o usuário digitar. É isso que você se refere?

Isso, no entanto, você está multiplicando o vaor por tabuada[i]. E o vetor tabuada está vazio.

Veja, na linha 5 vc cria um vetor chamado tabuada com 10 posições. O vetor vai ter os valores:

tabuada[0] = 0; tabuada[1] = 0; tabuada[2] = 0; tabuada[3] = 0; tabuada[4] = 0; tabuada[5] = 0; tabuada[6] = 0; tabuada[7] = 0; tabuada[8] = 0; tabuada[9] = 0;

Pois nunca foi inicializado. Entretanto, você precisa mesmo desse vetor? Como o enunciado diz, só é necessário um vetor, o do resultado.

E, como vc mesmo já constatou, o “i” já irá variar de um até 9.

Então, simplesmente faça:

resultado[i] = numero * i;

Note que multiplicar

resultado[3] = numero * tabuada[3]; 

É mesmo que fazer:

resultado[3] = numero * 0; 

Pois o vetor tabuada está inicializado com o valor 0 em todas as posições.

E seja feliz. :slight_smile:

Ah, sim. Ninguém ainda tinha me falado e eu muito menos estudado esse conceito de deixar o i fora do vetor, sempre assimilava o i somente dentro de um vetor, mas de qualquer forma ele corre (incrementa) sozinho, cheguei a conclusão com a sua ajuda que o vetor serve para armazenar vários valores até terminar realmente a tabuada. Valeu, ajudou horas de tentativas.

O “i” é uma variável como outra qualquer. Você poderia ter dado qualquer outro nome a ela.