Entrar com dados dentro de um vetor

9 respostas
joni.mendes

Como faço para entrar com dados e guarda-lo dentro de um vetor.

Por exemplo, quero fazer um programa que o usuario vai digitar 10 numeros, e o programa calcula a média, mostra o maior e o menor.

Abraços
:slight_smile:

9 Respostas

C

int i[] = new int[10]; i[0] = 0;

Tem, ArrayList tbm, pesquisa kra

joni.mendes

Sim, desta forma eu conheço.
Mas assim você que inicializa o vetor.

Quero saber se, existindo uma maneira, como faço para que o USUARIO entre com os valores, atraves de JOptionPane, sei la…

Vou dar uma pesquisada nisso ai, vlw!

joni.mendes

Bom, pelo que eu vi aqui, o ArrayList funciona parecido com o new int[10]

Queria saber se existe alguma maneira de o usuario entrar com os dados!

C

kra existem milhares de exemplos no fórum…

http://www.guj.com.br/posts/list/2820.java#710504
http://www.guj.com.br/posts/list/135913.java#732019
http://www.guj.com.br/posts/list/136602.java#736531

tralsl
import java.util.Scanner;

/**
 *
 * @author thiago
 */
public class In {

    public static void main(String[] a) {
        Scanner scanner = new Scanner(System.in);
        Float[] numArray = new Float[3];
        for (int i = 0; i < numArray.length; i++) {
            System.out.println("digite o " + (i+1) + "º numero:");
            if (scanner.hasNext()) {
                String entrada = scanner.next();
                Float num = null;
                boolean isNum = true;
                try {
                    num = Float.parseFloat(entrada);
                } catch (NumberFormatException ex) {
                    isNum = false;
                }
                if (isNum) {
                    numArray[i] = num;
                } else {
                    numArray[i] = null;
                }
            }
        }
        int k = 0;
        while (k < numArray.length && numArray[k] == null) {
            k++;
        }
        if (k == numArray.length) {
            System.out.println("nenhum número válido");
        } else {
            Float menor = numArray[k], maior = numArray[k], soma = numArray[k];
            k++;
            while (k < numArray.length) {
                Float num = numArray[k];
                soma = soma + num;
                if (num < menor) {
                    menor = num;
                }
                if (num > maior) {
                    maior = num;
                }
                k++;
            }
            System.out.println("media = " + soma / numArray.length + ", maior = " + maior + ", menor = " + menor);
        }
    }
}

foi uma colher de chá, mas isso não é difícil de aprender depois de uma pequena consulta ao grande G

joni.mendes

Po, valeu cara…

mas acontece que eu ainda não vi algumas linhas na facul, então um código desse sem cometários por linha, fica um tanto quanto complicado pra eu entender.
Mas vou me virar aqui pra entender isso.

Obrigado.

tralsl

tirando o Scanner tudo ai é Java básico, e nenhum OO, é só algorítimo mesmo,
que por acaso esta escrito em Java

tralsl
mas como eu aprendi principlmente com exemplo, lá vai
import java.util.Scanner;

/**
 *
 * @author thiago
 */
public class In {

    public static void main(String[] a) {
        Scanner scanner = new Scanner(System.in);
        //inicia um vetor com o taanho de números que vc quer
        Float[] numArray = new Float[3];
        for (int i = 0; i < numArray.length; i++) {
            //captura uma entrada cada vez que digitar algo no shell
            System.out.println("digite o " + (i+1) + "º numero:");
            if (scanner.hasNext()) {
                String entrada = scanner.next();
                Float num = null;
                boolean isNum = true;
                // tenta converter a entrada em um numero
                try {
                    num = Float.parseFloat(entrada);
                } catch (NumberFormatException ex) {
                    isNum = false;
                }
                //configura a posição com o número se for válido ou null caso contrário
                if (isNum) {
                    numArray[i] = num;
                } else {
                    numArray[i] = null;
                }
            }
        }
        //anda pelo vetor até encontrar a primeira posição com um valor válido
        int k = 0;
        while (k < numArray.length && numArray[k] == null) {
            k++;
        }
        //se não teve nenhuma válida então sai
        if (k == numArray.length) {
            System.out.println("nenhum número válido");
        } else {
            //assume como soma inicial, como o menor e como o maior a primeira entrada válida
            Float menor = numArray[k], maior = numArray[k], soma = numArray[k];
            //começa um loop a partir da proxima posição
            k++;
            while (k < numArray.length) {
                //o proximo numero a ser verificado
                Float num = numArray[k];
                //incrementa a soma que será dividida pelo total no finl
                soma = soma + num;
                //se num for menor que o menor já capturado então seta o valor
                if (num < menor) {
                    menor = num;
                }
                //se num for o maior até aqui então
                if (num > maior) {
                    maior = num;
                }
                k++;//faz andar pelo vetor
            }
            //imprime o resultado
            System.out.println("media = " + soma / numArray.length + ", maior = " + maior + ", menor = " + menor);
        }
    }
}
joni.mendes

Po cara valeu, agora deu pra entender melhor…
o que ficou meio em vão mesmo foi esse scanner que ainda não aprendi na facul…
mas vou dar uma pesquisada na net.
Obrigado mesmo!

Criado 14 de junho de 2010
Ultima resposta 14 de jun. de 2010
Respostas 9
Participantes 3