Escreva um programa para preencher valores de um vetor de inteiros com 10 posições. O usuário irá informar os valores a serem inseridos e suas respectivas posições no array. O programa deve tratar as exceções ArrayIndexOutOfBoundsException quando for informada uma posição inexistente do vetor e NumberFormatException quando o valor informado não for número.

Passo 1

Primeiro, vamos entender o que o exercício pede. Precisamos criar um programa que preencha um vetor de inteiros com 10 posições. O usuário vai informar tanto os valores a serem inseridos quanto as posições onde esses valores devem ficar no vetor. Além disso, o programa precisa lidar com duas situações de erro: quando o usuário tentar inserir um valor em uma posição que não existe no vetor (ArrayIndexOutOfBoundsException) e quando o usuário inserir algo que não seja um número (NumberFormatException). Vamos utilizar conceitos de arrays, tratamento de exceções e entrada de dados do usuário para resolver isso.

Passo 2

Vamos começar criando um vetor de 10 posições. Em Java, por exemplo, isso pode ser feito assim:
int[] vetor = new int[10];
Aqui, vetor é um array que pode armazenar 10 números inteiros.

Passo 3

Precisamos solicitar ao usuário que insira os valores e as posições. Vamos usar um laço de repetição para permitir que o usuário insira vários valores até decidir parar. Por exemplo, podemos usar um while ou um for.

Passo 4

Para capturar a entrada do usuário, podemos usar a classe Scanner. Isso nos permite ler entradas do teclado. Veja como:
Scanner scanner = new Scanner(System.in);

Passo 5

Agora, vamos pedir ao usuário que insira o valor e a posição. Precisamos converter a entrada para inteiros, mas isso pode gerar uma NumberFormatException se o usuário inserir algo que não seja um número. Vamos envolver essa parte do código em um bloco try-catch para tratar esse erro.

Passo 6

Dentro do bloco try, vamos tentar atribuir o valor inserido pelo usuário na posição desejada do vetor. Mas se a posição for maior que 9 ou menor que 0, isso vai gerar uma ArrayIndexOutOfBoundsException, que também precisamos tratar com um catch.

Passo 7

Vamos repetir esse processo até que o usuário decida parar de inserir valores. Podemos, por exemplo, perguntar ao usuário se ele quer continuar após cada inserção.

Resposta

Aqui está um exemplo completo de como o programa pode ser implementado em Java:
import java.util.Scanner;

public class PreencherVetor {
    public static void main(String[] args) {
        int[] vetor = new int[10];
        Scanner scanner = new Scanner(System.in);
        String continuar = "s";

        while (continuar.equalsIgnoreCase("s")) {
            try {
                System.out.print("Digite o valor a ser inserido: ");
                String valorStr = scanner.nextLine();
                int valor = Integer.parseInt(valorStr);

                System.out.print("Digite a posição (0-9): ");
                String posStr = scanner.nextLine();
                int posicao = Integer.parseInt(posStr);

                vetor[posicao] = valor;
                System.out.println("Valor " + valor + " inserido na posição " + posicao + " com sucesso.");
            } catch (NumberFormatException e) {
                System.out.println("Erro: Você deve inserir números válidos.");
            } catch (ArrayIndexOutOfBoundsException e) {
                System.out.println("Erro: Posição inválida. Escolha uma posição entre 0 e 9.");
            }

            System.out.print("Deseja inserir outro valor? (s/n): ");
            continuar = scanner.nextLine();
        }

        scanner.close();

        // Exibindo o conteúdo do vetor
        System.out.println("Conteúdo do vetor:");
        for (int i = 0; i < vetor.length; i++) {
            System.out.println("Posição " + i + ": " + vetor[i]);
        }
    }
}
Esse programa permite que o usuário insira valores e posições no vetor, tratando possíveis erros de entrada e exibindo o conteúdo final do vetor.

Exercícios relacionados