Prezados,
Estou tentando escrever um Alg. que verifique se os números digitados está dentro do conjunto de números predefinidos, e então informar: Quais dos números digitados estão no Conjunto e os números que estão no conjunto e não foram digitados.
Exemplo:
- Conjunto de números predefinidos ( 0,1,2,3,4,5,6,7,8,9,10).
- Usuário digita ( 2, 3, 4, 5, 8)
Necessário: Mostrar se os números digitados estão dentro do conjunto de números predefinidos e quais são os números que estão no conjunto e não foram digitados.
Até o momento escrevi o seguinte código:
import java.util.Scanner;
public class testeT {
public static void main (String[] args) {
int numerosDoConjunto [] = {11, 9, 3, 4, 10,};
Scanner numeroDigitado = new Scanner(System.in);
int sort;
System.out.println("Digite um numero:" );
sort = numeroDigitado.nextInt();
for(int i = 0; i < numerosDoConjunto.length; i++ ) {
if ((sort == numerosDoConjunto.length)) {
System.out.printf("Numero digitado esta no Conjunto");
}
else {
System.out.println("Numero digitado não esta no Conjunto");
System.out.printf("O numero digitado foi:" + sort);
}
}
}}
Não está completo, mas essa parte só informa o ultimo número do vetor. Exemplo: Caso eu digite o valor 3 ele informa que não está no conjunto. Já se eu informar o valor 10 ele informa que está no conjunto.
Agradeço quem puder ajudar.
Você está comparando se o número digitado é igual ao tamanho do conjunto, não faz sentido…
import java.util.Scanner;
public class testeT {
public static void main(String[] args) {
int numerosDoConjunto[] = { 11, 9, 3, 4, 10, };
Scanner scanner = new Scanner(System.in);
System.out.println("Digite um numero:");
int numeroDigitado = Integer.parseInt(scanner.nextLine());
for (int posicao = 0; posicao < numerosDoConjunto.length; posicao++) {
if (numeroDigitado == numerosDoConjunto[posicao]) {
System.out.println("Numero " + numeroDigitado + " esta no Conjunto");
} else {
System.out.println("Numero " + numeroDigitado + " não esta no Conjunto");
}
}
}
}
Olá, obrigado pela contribuição.
Utilizando o código proposto digitando o numero 10 tenho como resultado na saída:
Digite um numero:
10
Numero 10 não esta no Conjunto
Numero 10 não esta no Conjunto
Numero 10 não esta no Conjunto
Numero 10 não esta no Conjunto
Numero 10 esta no Conjunto
Como poderia incrementar esse código para que:
A - No resultado fosse apresentado os números que estão em numerosDoConjunto e não foram digitados.
B - Permitir a entrada de mais de um numero de uma só vez pelo usuário. Exemplo;
10, 9, 6
Mais uma vez, obrigado pela contribuição.
Olá,
Talvez não é o que você está precisando, principalmente se for um problema acadêmico, mas acredito que é bom deixar registrado.
Primeiro separei a classe em duas, uma classe para o dicionario:
import java.util.ArrayList;
import java.util.List;
public class Dicionario{
protected List<Integer> lista;
public Dicionario(){
int[] vet = {11, 9, 3, 4, 10};
this.lista = new ArrayList<>();
this.adiciona(vet);
}
public void adiciona(int numero){
lista.add(numero);
}
public void adiciona(int[] numeros){
for(int numero : numeros){
lista.add(numero);
}
}
public boolean procura(int numero){
return lista.contains(numero);
}
}
Logo depois eu criei a main que irá implementar, baseando no que você estava tentando fazer:
import java.util.*;
import java.util.List;
public class Forum{
public static void main (String[] args) {
Dicionario dc = new Dicionario();
Scanner numeroDigitado = new Scanner(System.in);
int sort;
System.out.println("Digite um numero:" );
sort = numeroDigitado.nextInt();
if (dc.procura(sort)){
System.out.printf("Numero digitado esta no Conjunto");
}
else{
System.out.println("Numero digitado não esta no Conjunto");
System.out.printf("O numero digitado foi:" + sort);
}
}
}
Caso tenha algo que possa melhorar o código a crítica é bem-vinda.
Talvez mais voltado para o que você precisa é esse abaixo:
import java.util.*;
public class Forum2{
public static void main (String[] args) {
int numerosDoConjunto [] = {11, 9, 3, 4, 10};
boolean encontrato = false;
Scanner numeroDigitado = new Scanner(System.in);
int sort;
System.out.println("Digite um numero:" );
sort = numeroDigitado.nextInt();
for(int i = 0; i < numerosDoConjunto.length; i++ ) {
if(numerosDoConjunto[i]==sort){
encontrato = true;
break;
}
}
if (encontrato) {
System.out.printf("Numero digitado esta no Conjunto");
}
else {
System.out.println("Numero digitado não esta no Conjunto");
System.out.printf("O numero digitado foi:" + sort);
}
}
}
Creio que esse fica um pouco mais próximo de um trabalho acadêmico (se esse for o caso).
> Obrigado, o conteúdo postado foi bem valido.
Consegui incrementar bastante o código e estou evoluindo até o ponto final da situação.
Obs: Não se trata de nenhum trabalho acadêmico, estou apenas estudando, descobrindo e aprimorando conhecimentos sobre a linguagem JAVA.
Obrigado a todos que ajudaram até aqui.