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.