Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gustavuu

[Resolvido] Receber 10 valores tipo int em ARRAY

Recommended Posts

Tenho que desenvolver um programinha da seguinte forma:

 

a. Receber 10 valores do tipo inteiro num array.

b. Mostrar os índices dos elementos que têm valor par.

c. Mostrar os índices dos elementos que têm valor ímpar.

d. Mostrar os valores dos elementos de índice par.

e. Mostrar os valores dos elementos de índice ímpar.

 

Não entendo muita coisa de java, estou iniciando agora... este programinha é para um exercicio que estou estudando..

 

Lendo algumas coisas iniciei o programa assim:

 

 

import java.util.Scanner;

public class M547893 {
    public static void main() {

int valores[] = new int[10];

Scanner teclado=new Scanner (System.in);

System.out.println ("Digite o 1° valor:");
valores[0]=teclado.nextInt();

System.out.println ("Digite o 2° valor:");
valores[1]=teclado.nextInt();

System.out.println ("Digite o 3° valor:");
valores[2]=teclado.nextInt();

System.out.println ("Digite o 4° valor:");
valores[3]=teclado.nextInt();

System.out.println ("Digite o 5° valor:");
valores[4]=teclado.nextInt();

System.out.println ("Digite o 6° valor:");
valores[5]=teclado.nextInt();

System.out.println ("Digite o 7° valor:");
valores[6]=teclado.nextInt();

System.out.println ("Digite o 8° valor:");
valores[7]=teclado.nextInt();

System.out.println ("Digite o 9° valor:");
valores[8]=teclado.nextInt();

System.out.println ("Digite o 10° valor:");
valores[9]=teclado.nextInt();

    }
}

 

 

Até o momento o programa esta recebendo os valores corretamente

 

Só que andei lendo alguns artigos e pelo que entendi esse jeito que fiz não seria o jeito mais correto (?)

parece que existe uma maneira de fazer um loop por um FOR para que eu pegue os valores sem que eu fique colocando um comando para cada valor

 

 

 

E se alguém tiver alguma dica de como eu fazer as questões b, c, d, e agradeceria muito!

 

 

 

Não estou pedindo que resolvam o programa inteiro para mim, só estou pedindo ajuda de como fazer, pois não entendo muito, qualquer ajuda ja sou mto agradecido...

 

A medida que for desenvolvendo o programinha eu vou atualizando aqui para mostrar como esta ficando

 

 

Obg, Gustavo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente a melhor maneira de se fazer isso é usando loop.

 

Veja como ficaria:

 

public class M547893 {
    public static void main() {

    int valores[] = new int[10];
    Scanner teclado=new Scanner (System.in);

    for(int i=0; i<10; i++){
        System.out.println ("Digite o " + (i+1) + " valor:");
        valores[i]=teclado.nextInt();
    }

Teste esse código e veja como tudo entre as chaves do bloco for se repete.

Repare também que a cada execução do bloco "i" terá um valor. Ele substituirá os valores: 0, 1, 2, 3, ... Que são exatamente os índices do vetor.

Sabendo dessa estrutura voce tem condição de fazer as letras b,c,d,e

 

Vou procurar um material para te explicar melhor a estrutura de loop.

Veja um pouco mais sobre estruturas de repetição aqui:

http://forum.imasters.com.br/index.php?/topic/342718-estruturas-de-repeticao/

 

A estrutura acima é equivalente a estrutura "para".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente a melhor maneira de se fazer isso é usando loop.

 

Veja como ficaria:

 

public class M547893 {
    public static void main() {

    int valores[] = new int[10];
    Scanner teclado=new Scanner (System.in);

    for(int i=0; i<10; i++){
        System.out.println ("Digite o " + (i+1) + " valor:");
        valores[i]=teclado.nextInt();
    }

Teste esse código e veja como tudo entre as chaves do bloco for se repete.

Repare também que a cada execução do bloco "i" terá um valor. Ele substituirá os valores: 0, 1, 2, 3, ... Que são exatamente os índices do vetor.

Sabendo dessa estrutura voce tem condição de fazer as letras b,c,d,e

 

Vou procurar um material para te explicar melhor a estrutura de loop.

Veja um pouco mais sobre estruturas de repetição aqui:

http://forum.imasters.com.br/index.php?/topic/342718-estruturas-de-repeticao/

 

A estrutura acima é equivalente a estrutura "para".

 

 

 

Cara, mto obrigado, dei uma lida e consegui entender bem melhor, eu já trabalho na area de programação mas ainda sou estagiário

Só que aqui no meu serviço trabalho com C# e não com java.. esse exercicio é por causa da faculdade.. mas aos poucos to conseguindo pegar as coisas

Consegui resolver o programa aqui com a ajuda de um amigo do serviço e o programa ficou assim:

 

 

 

 

import java.util.Scanner;

public class M547893 {
    public static void main() {
        int j;
        int valores[] = new int[10];
        int indpar[] = new int[10];
        int indimpar[]= new int[10];
        Scanner teclado=new Scanner (System.in);

        j=0;
        for(int i=0; i<10; i++)
        {
            System.out.println ("Digite o " + (i+1) + "° valor:");
            valores[i]=teclado.nextInt();
            if(valores[i]%2==0)
            {
                indpar[j]=i;
            }
            else
            {
                indimpar[j]=i;
            }
            j++;
        }
        System.out.println("Indices e valores pares:");
        for (int i=0;i<10;i++)
        {
            if(indpar[i]!=0)
            {
                System.out.println("O indice é:"+indpar[i]+"\n O valor é:"+valores[indpar[i]]);
            }
            
        }
        System.out.println("Indices e valores impares:");
        
        for (int i=0;i<10;i++)
        {
            if(indimpar[i]!=0)
            {
                System.out.println("O indice é:"+indimpar[i]+"\n O valor é:"+valores[indimpar[i]]);
            }
            
        }
    }
}

 

Não sei se essa foi a melhor forma de desenvolver o programa, mas pelo menos o resultado final deu certo!

Caso tenham alguma modificação para ficar melhor, aceito sugestões

 

T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voce deu sorte :P

 

Variáveis locais geralmente precisam ser inicializadas, mas não é o caso dos arrays. Os arrays inicializam os elementos com o padrão para o tipo escolhido. Nesse caso os elementos foram inicializados com 0.

 

Voce pode fazer sem a ajuda de vetores que guardam o índice. Veja:

 

    public static void main() {
        int valores[] = new int[10];
        Scanner teclado=new Scanner (System.in);

        // apenas le os valores
        for(int i=0; i<valores.lenth; i++){
            System.out.println ("Digite o " + (i+1) + "° valor:");
            valores[i]=teclado.nextInt();
        }

        // indice par
        System.out.println("Indices e valores pares:");
        for (int i=0; i<valores.lenth; i++){
            if(i%2 == 0){
                System.out.println("O indice é: "+i+"\n O valor é: "+valores[i]);
            }           
        }

        // indice ímpar
        System.out.println("Indices e valores impares:");
        for (int i=0; i<valores.lenth; i++){
            if(i%2 != 0){
                System.out.println("O indice é: "+i+"\n O valor é: "+valores[i]);
            }           
        }
    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, peguei esse código e tentei compilar porém ele deu alguns erros, alguns eu consegui resolver, porém outros não estão deixando o programa rodar ainda

 

import java.util.Scanner;

public class MyClass {
    public static void main() {
        int valores[] = new int[10];
        Scanner teclado=new Scanner (System.in);

        // apenas le os valores
        for(int i=0; i<valores.lenth; i++){
            System.out.println ("Digite o " + (i+1) + "° valor:");
            valores[i]=teclado.nextInt();
        }

        // indice par
        System.out.println("Indices e valores pares:");
        for (int i=0; i<valores.lenth; i++){
            if(i%2 == 0){
                System.out.println("O indice é: "+i+"\n O valor é: "+valores[i]);
            }           
        }

        // indice ímpar
        System.out.println("Indices e valores impares:");
        for (int i=0; i<valores.lenth; i++){
            if(i%2 != 0){
                System.out.println("O indice é: "+i+"\n O valor é: "+valores[i]);
            }           
        }
    }
}

O ERRO QUE APARECE É O SEGUINTE:

Line 09, Column 24:

No 'length' field in 'int array'.

 

Nessa parte:

for(int i=0; i<valores.lenth; i++){

 

 

Acho que em valores.lenth tenho que definir algum valor... se souber corrigir agradeceria para ver como o programa ficaria

 

 

PS:Vi que nessa parte valores.lenth está escrito errado.. mas mesmo corrigindo para valores.length não deu certo!

 

Obg.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mals, eu escrevi errado mesmo.

 

import java.util.Scanner;

public class ArrayLength {
    public static void main(String[] args) {
        int valores[] = new int[10];
        Scanner teclado=new Scanner (System.in);

        // apenas le os valores
        for(int i=0; i<valores.length; i++){
            System.out.println ("Digite o " + (i+1) + "° valor:");
            valores[i]=teclado.nextInt();
        }

        // indice par
        System.out.println("Indices e valores pares:");
        for (int i=0; i<valores.length; i++){
            if(i%2 == 0){
                System.out.println("O indice é: "+i+"\n O valor é: "+valores[i]);
            }
        }

        // indice ímpar
        System.out.println("Indices e valores impares:");
        for (int i=0; i<valores.length; i++){
            if(i%2 != 0){
                System.out.println("O indice é: "+i+"\n O valor é: "+valores[i]);
            }
        }
    }
}

Acabei de testar.

Os arrays tem uma propriedade chamada length que retorna o tamanho do array.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.