[Resolvido] Alterar o valor de uma unica posição [array]

4 respostas
RafaelBazanella

olá pessoal!

sou novato em programação java, e estou precisando de uma ajuda:

o que me foi pedido:
Criar um programa que
1 - Leia 20 valores do tipo inteiro, atraves de metodo especifico;
2 - Imprima os valores, através do método especifico;
3 - Altere um valor de uma determinada posição do vetor, através de método especifico;
4 - Atribua o valor null a todas posições do vetor, eliminando os valores lidos;

as partes 1, 2, e 4 eu ja tenho uma ideia e quase certeza de como fazer...
meu problema esta na 3ª questão.

segue oq ja fiz:

import javax.swing.JOptionPane;

public class vetor
{
    private int vetor[] = new int[20];
    private int i;
    private String valor;
    
    public void main (String args[])
    {
      inserir();
      imprimir();
      alterarValor();
      anularValores();
    }    
    
    public void inserir() {
    
        for (int i = 0; i < 20; i++) {
        valor = JOptionPane.showInputDialog("Digite os valores");
        vetor[i] = Integer.parseInt(valor);
       }
    
    }

    public void imprimir() {
       
        for (int i = 0; i < 20; i++) {
        System.out.println(vetor[i]);
       }
       
    }

o que eu queria: atravez de uma JOptionPane de input determinar qual posição deve ser alterada;
atravez de outra JOptionPane atribuir um valor para a posição escolhida acima.

agradeço desde já pela ajuda

4 Respostas

leoviniga

olá…se entendi bem o que você quer ficaria algo assim

Integer indice = Integer.parseInt(JOptionPane.showInputDialog(null, "Qual casa alterar? (de 0 á 19)")); Integer valor = Integer.parseInt(JOptionPane.showInputDialog(null, "Qual valor?")); seuArray[indice] = valor;

FLw :slight_smile:

drigo.angelo

Voce vai ter que criar um método nessa classe aí que altere a posição de um valor do array :B

Tipo assim, exibe um optionPane pedindo qual posição é para alterar, depois voce tem que verificar se a posição existe (nesse caso se posicao >= 0 e posicao <20 ) se não existir exibe uma msg falando do erro, se existir exiba outro optionPane pedindo o valor para qual a posição será alterada, e modifique assim:

vetor[posicao] = valor;

A posição é a que voce pegou no começo e o valor é o valor que voce acabou de pegar xD

Update: 23s de diferença do leoviniga o_0

RafaelBazanella

caros leoviniga e drigo.angelo ambos entenderam e me serão de grd ajuda…
vou colocar em pratica suas ideias e logo darei retorno.

[]'s

RafaelBazanella

pessoal, segui as instruções e apliquei as alterações sugeridas.
informo que está tudo funcionando perfeitamente como desejado!

ao final, ficou dessa forma:

import javax.swing.JOptionPane;

  public class vetor
  {
    private int vetor[] = new int[20];
    private int i;
    private String valor;
    private int valor2;
    
    public void main (String args[])
    {
      inserir();
      imprimir();
      alterarValor();
      anularValores();
    }    
    
    public void inserir() {
    
        for (int i = 0; i < 20; i++) {
            valor = JOptionPane.showInputDialog("Digite os valores do array:");
            vetor[i] = Integer.parseInt(valor);
       }
    
    }

    public void imprimir() {
       
        for (int i = 0; i < 20; i++) {
        System.out.println(vetor[i]);
       }
       
    }
    
    public void alterarValor() { 
        
       int i = Integer.parseInt(JOptionPane.showInputDialog("Qual posição do array será alterada? (de 0 á 19)"));
            if (i >= 0 & i < 20) {
                int valor2 = Integer.parseInt(JOptionPane.showInputDialog("Qual valor?"));
                vetor[i] = valor2;
            }
            else {
                JOptionPane.showMessageDialog(null,"Digite um valor entre 0 e 19","Operação inválida",JOptionPane.ERROR_MESSAGE);
            }
            
    }        
            
    public void anularValores() {
        
        for (int i = 0; i < 20; i++) {
            vetor[i] = 0;
       }    
            
    }
}

AGRADEÇO PELA AJUDA!

Criado 2 de março de 2011
Ultima resposta 2 de mar. de 2011
Respostas 4
Participantes 3