O que estou fazendo de errado?

16 respostas
pehpy
import java.util.Scanner;  
      
      
    public class Exer3 {  
      
       /** 
        * 3.  Descreva um algoritmo para escrever a tabuada de um determinado número fornecido pelo usuário. 
     
    Análise: 
    Ok 
     
    Entradas: 
    Número 
     
    Saída: 
    Tabuada de um número 
     
    Teste: 
    E           S           S           S           S           S           S           S           S           S           S 
    4           4            8           12         16          20         24          28         32         36         40 
    12         12           24           36         48          60         72          84         96         108       120 
    7          7            14           21         28          35         42          49         56         63         70 
     
    Algoritmo: 
    inicio 
    leia (numero) 
        para contador de 1 até 10 faça 
        contador * numero 
        escreva (numero) 
        fim para 
    fim 
     
        */  
       public static void main(String[] args) {  
          Scanner scan = new Scanner(System.in);  
          int num = scan.nextInt();  
          int cont;  
            
          for (cont = 1; cont <= 10; cont ++); {  
             num = cont * num;  
             System.out.println(num);  
          }  
      
       }  
      
    }

16 Respostas

marcoslogan

Qual é a saída do seu programa?

marcoslogan

Por favor, me explica o que vc tah querendo fazer? Pelo que eu entendi vc quer uma tabuada. Correto?

jamirdeajr

Oi,

O num está sendo alterado com o resultado anterior afetando a tabuada, você deve estar recebendo algo assim:
4 (4*1), 8 (4*2), 24 (8*3), 96 (24*4) ...
quando deveria ser:
4 (4*1), 8 (4*2), 12 (4*3), 16 (4*4) ...

Faça algo assim:
public static void main(String[] args) {    
      Scanner scan = new Scanner(System.in);    
      int num = scan.nextInt();    
      int cont;
      int result;    
          
      for (cont = 1; cont <= 10; cont ++); {    
         result = cont * num;    
         System.out.println(result);    
      }    
   }
marcoslogan

Olha, você vai ter que construir uma string.

Algo do tipo

for(int i=0; i<=10; i++){
        resultado = numero * i;
        System.out.println(numero + " X "+ i + " = "+ resultado
    }
marcoslogan

mesmo assim, eu ainda acho que você deveria construir uma string para mostrar pro usuário.

Pelo método acima, você só vai mostrar o resultado. É isso mesmo que você quer?

Andre_Rosa

Que tópico sem nexo! E, ainda por cima, colocaram a foto de uma mulher com decote, pra atrair mais respostas. Como esse pessoal é criativo! rs

pehpy

Gente, eu quero fazer o que o enuciado pede:

"3. Descreva um algoritmo para escrever a tabuada de um determinado número fornecido pelo usuário. "

Eu acredito que seja para dar um numero e o programa dar a tabuada de um a dez desse numero. Estou no primeiro semestre de ciência da computação e estou com muito dificuldade em programação. Programas simples de tanto fazer exercicio eu já consigo fazer mas repetição tá me travando. Para uns pode parecer brincadeira mas estou começando e as dificuldades infelismente são reais.

pehpy

Não sabia que não podia colocar uma foto minha. :thumbdown:

pehpy

Cara, pelo que entendi do enuciado: "3. Descreva um algoritmo para escrever a tabuada de um determinado número fornecido pelo usuário. " acho que é para dar o resultado do numero dado multiplicado de 1 até 10.

quil

Hey Guy

Eu fiz usando o While:

import java.util.Scanner;  
      
      
    public class Exer3 {  
      
       public static void main(String[] args) {  
          Scanner scan = new Scanner(System.in);  
          int num = scan.nextInt();  
          
      

	   int axo = 0;
	   
	   while(axo <= 10){
	   
	   axo++;
	   
	   int resu = num * axo;
	   
	   System.out.println( axo + " * " + num + " = " + resu  );
	   
	   }

       }
      
    }
gilmar.g

Então pehpy, me parece um exercício de sala de aula muito idêntico com um que jah fiz no passado.
De qualquer forma, o algoritmo em Java é bem simples, a entrada do número, e a saída como tabuada(até 10).

import javax.swing.JOptionPane;

/**
 * @author Gilmar J. A. Goulart
 */
public class Tabuada {
	public static void main(String[] args) {

		//usuário entra com qualquer numero
		double numeroTabuada= Integer.parseInt(JOptionPane.showInputDialog(null, "Informe um Numero Para Calcular a Tabuada:", 3));
		
		//calcular até 10
		int n=10;
		
		//Calcula e Mostra a Tabuada
		calcEMostraTabuada(numeroTabuada,n);
		
		JOptionPane.showMessageDialog(null, "Desenvolvido por \n GILMAR J. A. GOULART", "Créditos", 2);
	}
	
	public static void calcEMostraTabuada(double numeroTabuada, int n){

		//String que armazenará a mensagem de saída, como tabuada.
		String tabuada="Tabuada de " + numeroTabuada + ":\n\n";

		//repetição pra calcular a tabuada
		for (int i=0; i<=n; i++) {
			//mostrar no console os resultados
			System.out.println(numeroTabuada + " x " + i + " = " + (numeroTabuada*i));
			//inserir novas linhas na mensagem da saída, até 'n x 10 = X'
			tabuada += numeroTabuada + " x " + i + " = " + (numeroTabuada*i) + "\n";
		}
		//Mostra a string com os resultados da tabuada
		JOptionPane.showMessageDialog(null, tabuada, "TABUADA", 1);
	}
}

Veja que no meu exemplo, podes usar tanto número inteiros(1, 2, 3, 4, 5…) como também números ‘quebrados’(1.5, 1.9,) pra calcular a tabuada.
Espero que te ajude, vlw, até+.

pehpy

vlw Gilmar, vou estudar sua solução. Vlw mesmo!!!

gilmar.g:
Então pehpy, me parece um exercício de sala de aula muito idêntico com um que jah fiz no passado.
De qualquer forma, o algoritmo em Java é bem simples, a entrada do número, e a saída como tabuada(até 10).

import javax.swing.JOptionPane;

/**
 * @author Gilmar J. A. Goulart
 */
public class Tabuada {
	public static void main(String[] args) {

		//usuário entra com qualquer numero
		double numeroTabuada= Integer.parseInt(JOptionPane.showInputDialog(null, "Informe um Numero Para Calcular a Tabuada:", 3));
		
		//calcular até 10
		int n=10;
		
		//Calcula e Mostra a Tabuada
		calcEMostraTabuada(numeroTabuada,n);
		
		JOptionPane.showMessageDialog(null, "Desenvolvido por \n GILMAR J. A. GOULART", "Créditos", 2);
	}
	
	public static void calcEMostraTabuada(double numeroTabuada, int n){

		//String que armazenará a mensagem de saída, como tabuada.
		String tabuada="Tabuada de " + numeroTabuada + ":\n\n";

		//repetição pra calcular a tabuada
		for (int i=0; i&lt;=n; i++) {
			//mostrar no console os resultados
			System.out.println(numeroTabuada + " x " + i + " = " + (numeroTabuada*i));
			//inserir novas linhas na mensagem da saída, até 'n x 10 = X'
			tabuada += numeroTabuada + " x " + i + " = " + (numeroTabuada*i) + "\n";
		}
		//Mostra a string com os resultados da tabuada
		JOptionPane.showMessageDialog(null, tabuada, "TABUADA", 1);
	}
}

Veja que no meu exemplo, podes usar tanto número inteiros(1, 2, 3, 4, 5…) como também números ‘quebrados’(1.5, 1.9,) pra calcular a tabuada.
Espero que te ajude, vlw, até+.

gilmar.g

Ok, se resolver seu problema, marque o fórum como resolvido, assim poderá ajudar mais alguém futuramente.

Vlw, Até+.

pehpy:
vlw Gilmar, vou estudar sua solução. Vlw mesmo!!!

gilmar.g:
Então pehpy, me parece um exercício de sala de aula muito idêntico com um que jah fiz no passado.
De qualquer forma, o algoritmo em Java é bem simples, a entrada do número, e a saída como tabuada(até 10).

import javax.swing.JOptionPane;

/**
 * @author Gilmar J. A. Goulart
 */
public class Tabuada {
	public static void main(String[] args) {

		//usuário entra com qualquer numero
		double numeroTabuada= Integer.parseInt(JOptionPane.showInputDialog(null, "Informe um Numero Para Calcular a Tabuada:", 3));
		
		//calcular até 10
		int n=10;
		
		//Calcula e Mostra a Tabuada
		calcEMostraTabuada(numeroTabuada,n);
		
		JOptionPane.showMessageDialog(null, "Desenvolvido por \n GILMAR J. A. GOULART", "Créditos", 2);
	}
	
	public static void calcEMostraTabuada(double numeroTabuada, int n){

		//String que armazenará a mensagem de saída, como tabuada.
		String tabuada="Tabuada de " + numeroTabuada + ":\n\n";

		//repetição pra calcular a tabuada
		for (int i=0; i&lt;=n; i++) {
			//mostrar no console os resultados
			System.out.println(numeroTabuada + " x " + i + " = " + (numeroTabuada*i));
			//inserir novas linhas na mensagem da saída, até 'n x 10 = X'
			tabuada += numeroTabuada + " x " + i + " = " + (numeroTabuada*i) + "\n";
		}
		//Mostra a string com os resultados da tabuada
		JOptionPane.showMessageDialog(null, tabuada, "TABUADA", 1);
	}
}

Veja que no meu exemplo, podes usar tanto número inteiros(1, 2, 3, 4, 5…) como também números ‘quebrados’(1.5, 1.9,) pra calcular a tabuada.
Espero que te ajude, vlw, até+.

pehpy

Em outro post que eu postei o mesmo problema um pragramador postou com objetividade e simplesidade os dois erros que eu estava cometendo, vejam e aprendam:

"jeckson":
Bom duas coisas que estão errados neste exercicio:

1º Depois do seu FOR tem um ponto e virgula (;) que não deveria ter! Devido este ponto e virgula ele não entende que o bloco de intruçao faça parte do FOR.

2º É necessario uma variavel auxiliar para guardar o valor do resultado, pois se você fizer a conta com a variavel do usuario irá atribuir um novo valor a essa variavel.

Exemplo:

num = cont * num
5 = 2 * 5 //RESULTADO IGUAL = 10

Na proxima conta fará o seguinte

10 = 3 * 10 //RESULTADO IGUAL = 30

Abaixo utilizei o seu codigo e fiz alguma alterações apenas para ficar funcional, assim você pode notar onde consta erro.

import java.util.Scanner;   
  
public class Repeticao {   

   public static void main(String[] args) {   
      Scanner scan = new Scanner(System.in);   
      int num = scan.nextInt();   
      int cont; 
      int result;// CRIADO VARIAVEL RESULT PARA ARMAZENAR O RESULTADO
         
      for (cont = 1; cont<= 10; cont++) {//RETIRADO O PONTO E VIRGULA QUE VINHA APOS O FOR 
         result = cont * num;   //UTILIZADO VARIAVEL RESULTA PARA ARMAZENAR O RESULTADO
         System.out.println(result); // IMPRIMIDO VARIAVEL RESULT
      }   
  
   }   
  
}

Nãs estou dizendo que vocês estão errados mas não compliquem tanto!!!

quil

Foi exatamente o que eu fiz mas utilizando o while:

int axo = 0;
	   
	   while(axo <= 10){
	   
	   axo++;
	   
	   int resu = num * axo;
	   
	   System.out.println( axo + " * " + num + " = " + resu  );
	   
	   }

       }
      
    }
gilmar.g
pehpy:
Em outro post que eu postei o mesmo problema um pragramador postou com objetividade e simplesidade os dois erros que eu estava cometendo, vejam e aprendam:
"jeckson":
Bom duas coisas que estão errados neste exercicio:

1º Depois do seu FOR tem um ponto e virgula (;) que não deveria ter! Devido este ponto e virgula ele não entende que o bloco de intruçao faça parte do FOR.

2º É necessario uma variavel auxiliar para guardar o valor do resultado, pois se você fizer a conta com a variavel do usuario irá atribuir um novo valor a essa variavel.

Exemplo:

num = cont * num
5 = 2 * 5 //RESULTADO IGUAL = 10

Na proxima conta fará o seguinte

10 = 3 * 10 //RESULTADO IGUAL = 30

Abaixo utilizei o seu codigo e fiz alguma alterações apenas para ficar funcional, assim você pode notar onde consta erro.

import java.util.Scanner;   
  
public class Repeticao {   

   public static void main(String[] args) {   
      Scanner scan = new Scanner(System.in);   
      int num = scan.nextInt();   
      int cont; 
      int result;// CRIADO VARIAVEL RESULT PARA ARMAZENAR O RESULTADO
         
      for (cont = 1; cont<= 10; cont++) {//RETIRADO O PONTO E VIRGULA QUE VINHA APOS O FOR 
         result = cont * num;   //UTILIZADO VARIAVEL RESULTA PARA ARMAZENAR O RESULTADO
         System.out.println(result); // IMPRIMIDO VARIAVEL RESULT
      }   
  
   }   
  
}

Nãs estou dizendo que vocês estão errados mas não compliquem tanto!!!


Olá, Bom Dia.

Não vejo diferença alguma.
A lógica é a mesma, a entrada do número e a repetição.

Vlw.

Criado 29 de abril de 2012
Ultima resposta 4 de mai. de 2012
Respostas 16
Participantes 6