Ajuda com programa [+iniciante]

10 respostas
mamona

Ola pessoal, estou iniciando no java e o professor propos o seguinte programa

Escreva um programa, que leia sucessivamente numeros inteiros informados pelo usuario
até que o numero 9,999 seja digitado.

Para cada numero informado diga:

A) Se ele é par ou impar
B) O seu cubo

Antes de encerrar diga:

A) A media aritimetica dos numeros informados
B) O maior numero informado
C) A qauantidade de primos informados
D) Quantas vezes o 22 foi informado
E) Qual o fatorial do menor numero informado
F) Quantos eram multiplos de 3 (dividido por 3 e n sobra nada)
G) Quantos eram simultaneamente multiplos de 3 e de 5 (divide por 3 e 5 e n sobra nd)

Tudo que consegui fazer até o momento foi isso, porem ele apresenta erros na hora de mostrar se o numero é par ou não, e também na quantidade de numeros 22 digitados. Até o momento foi o que eu consegui fazer.

import javax.swing.JOptionPane;
public class Trabalho {


	public static void main(String[] args) {
		String entra;
		int numero, somanumero = 0, maior = 0, qtdprimos, qtd22 = 0, menor, multiplostres, multiploscinco, aux, valor, qtidade = 0;
		entra = JOptionPane.showInputDialog("Numero ");
		numero = Integer.parseInt(entra);
			while (numero != 9999)
			{
				if (numero > maior)
				maior = numero;
				if (numero != 22)
					qtd22 = qtd22 + 1;
				if ((numero % 2) == 1)
					{
						System.out.println(numero +" É IMPAR");
					}
				else
					{
						System.out.println(numero +" É PAR");
					}
				
			qtidade = qtidade + 1;
			aux = numero * numero * numero;
			somanumero = somanumero + numero;
			System.out.print("Cubo de "+numero);
			System.out.print(" = "+aux);
			
		entra = JOptionPane.showInputDialog("Numero ");
		numero = Integer.parseInt(entra);
			}
			System.out.println("Media aritimetica dos numeros informados = "+(somanumero / qtidade));
			System.out.print("A quantidade de primos informados = "+);
			System.out.println("O maior numero informado = "+maior);
			System.out.print("Qual o fatorial do menor numero informado = "+);
			System.out.println("Quantas vezes o 22 foi informado = "+qtd22);
			System.out.print("Multiplos de 3 = "+);
			System.out.print("Multiplos de 3 e de 5 = "+);

	}
}

sei que para numeros primos, deve-se utilizar

for(int i = 2; i < num; i++){
	if(num%i == 0){
		return false;
		break;
	}
}

Porem nao sei como implementar no programa,

peço a ajuda de todos.

10 Respostas

mamona

me ajudem

InicianteJavaHenriqu

Tudo isto em um único exercício :shock: seu prof estava de mau humor :?: :lol: :?:

Bom, o programa só encerrar se o usuário digitar 9,999 (seria 9.999) ou 9999 :?: Pq se for só com 9.999 o programa (nesse seu código) nunca vai terminar, sua conversão é para Integer.parseInt(), se o usuário digitar 22.5 (por exemplo) o programa só irá ler o número 22 e informar que este número é par, só até aqui vc já pode notar 2 erros.

corrige isto ou explique se o programa aceita números reais ou não.

flw :thumbup:

mamona

InicianteJavaHenrique:
Tudo isto em um único exercício :shock: seu prof estava de mau humor :?: :lol: :?:

Bom, o programa só encerrar se o usuário digitar 9,999 (seria 9.999) ou 9999 :?: Pq se for só com 9.999 o programa (nesse seu código) nunca vai terminar, sua conversão é para Integer.parseInt(), se o usuário digitar 22.5 (por exemplo) o programa só irá ler o número 22 e informar que este número é par, só até aqui vc já pode notar 2 erros.

corrige isto ou explique se o programa aceita números reais ou não.

flw :thumbup:

9999 mesmo, digitei errado ali em cima.

nao entendi o resto do que voce falou cara, teria como mostra no codigo como ficaria? sou novo ainda no java

L

Creio que você terá que usar um vetor pra ir armazenando os números que for digitando e pra poder saber qual foi o maior digitado até o momento.

InicianteJavaHenriqu

Então desconsidere os possíveis erros que citei.

Estou sem nenhuma IDE aqui agora, e vendo por cima do código não vi nada errado, coloque uns “\n” ou System.out.println(); no seu código para vc visualizar melhor o pq dos erros, está a única dica que tenho neste agora. :slight_smile:

F
Troca seu
if (numero != qtd22)
por
if (numero == qtd22)

Ache o menor número digitado da mesma forma que vc fez para o maior, e aí calcule o fatorial dele.

Para saber o múltiplo de 3 e 5, crie 2 vetores (um para multiplos de 3 e outro para multiplos de 5), e aí adiciona o número digitado no vetor apropriado caso seja o múltiplo.

Sugiro que faça métodos separados para o cálculo de fatorial e múltiplos.

Como falei dos métodos separados e vc já deu o método dos primos vai aí um exemplo.

// Entra no if se o método isPrimo retornar true 
if (isPrimo(numero)) {
 qtdprimos++
}



/* Método isPrimo */
private static boolean isPrimo(int numero) {
  for (int i = 2; i < numero; i++) {
    if (numero % 2 == 0) {
      return false;
    }
  }
  return true;
}

Tenta fazer o resto, qualquer coisa avisa. :D

mamona

fiz dessa forma

//Escreva um programa, que leia sucessivamente numeros inteiros informados pelo usuario
//até que o numero 9,999 seja digitado.

//Para cada numero informado diga:

//A) Se ele é par ou impar
//B) O seu cubo

//Antes de encerrar diga:



//A) A media aritimetica dos numeros informados
//B) O maior numero informado
//C) A quantidade de primos informados
//D) Quantas vezes o 22 foi informado
//E) Qual o fatorial do menor numero informado
//F) Quantos eram multiplos de 3 (dividido por 3 e n sobra nada)
//G) Quantos eram simultaneamente multiplos de 3 e de 5 (divide por 3 e 5 e n sobra nd)

import javax.swing.JOptionPane;
public class Trabalho {


	public static void main(String[] args) {
		String entra;
		int numero, somanumero = 0, maior, qtdprimos= 0, qtd22 = 0, menor, multiplostres = 0, multiploscincoetres = 0, aux, qtidade = 0;
		entra = JOptionPane.showInputDialog("Numero ");
		numero = Integer.parseInt(entra);
		menor = numero;
		maior = numero;
		while (numero != 9999){
			if (numero > maior)
				maior = numero;
			if (numero == 22)
				qtd22 = qtd22 + 1;
			if ((numero % 2) == 0){
				System.out.println(numero +" É PAR");
			}else{
				System.out.println(numero +" É IMPAR");
			}
			if(Primo(numero)){
				qtdprimos = qtdprimos + 1;
			}
			if(numero < menor){
				menor = numero;
			}
			if(numero%3 == 0){
				multiplostres = multiplostres + 1;
				if(numero%5 == 0){
					multiploscincoetres = multiploscincoetres + 1;
				}
			}	
			
			
			qtidade = qtidade + 1;
			aux = numero * numero * numero;
			somanumero = somanumero + numero;
			System.out.print("Cubo de "+numero);
			System.out.print(" = "+aux);
		
			entra = JOptionPane.showInputDialog("Numero ");
			numero = Integer.parseInt(entra);
		}
		System.out.println("Media aritimetica dos numeros informados = "+(somanumero / qtidade));
		System.out.println("A quantidade de primos informados = "+qtdprimos);
		System.out.println("O maior numero informado = "+maior);
		System.out.println("Qual o fatorial do menor numero informado = "+Fatorial(menor));
		System.out.println("Quantas vezes o 22 foi informado = "+qtd22);
		System.out.println("Multiplos de 3 = "+multiplostres);
		System.out.println("Multiplos de 3 e de 5 = "+multiploscincoetres);

	}

	public static int Fatorial(int num){
		int fat = 1;
		for(int i=1; i<= num; i++){
			fat = fat * i;
		}
		return fat;
	}

	public static boolean Primo(int num){
		for(int i = 2; i < num; i++){
			if(num%i == 0){
				return false;
			}
		}
		return true;
	}
}

mas ele apresenta erros

ele primeiro apresenta o primeiro numero e depois diz se é par ou impar
depois em baixo ele vai apresentando o cubo e dizendo se é par ou impar,

no ultimo numero digitado ele nao diz se é par ou impar, e a media aritimetica fica colada no cubo do ultimo numero

F

Último número vc diz o 9999??

Para não deixar “colado” acrescente um “\n” no último print

System.out.print(" = "+aux + "\n");

Esquece o que eu disse de vetores, pensei que era para mostrar quais eram os multiplos e não apenas quantas foram hahaha.

Outra coisa, uma boa prática de progração é escrever classes com a primeira letra maiúscula igual a sua (Trabalho) e métodos começando com letra minúscula. Portanto (fatorial() e primo()).

Não entendi o problema, posta sua saída.

mamona

valeu pela ajuda, aparece assim cara

se voce ver no começo ele mostra de um jeito, apresentando o numero seguido se é impar ou par.

ja em baixo ele mostra o cubo e do lado diz se é par ou impar

F

É a mesma coisa, ta faltando um “\n” em algum lugar hehe.

Criado 12 de abril de 2012
Ultima resposta 12 de abr. de 2012
Respostas 10
Participantes 4