Tenho o seguinte problema:
3 - Escreva um programa que declare um vetor bidimensional do tipo String, com 10, 2 elementos. O programa deverá solicitar que o usuário digite 10 Nomes e 10 Telefones que serão armazenados respectivamente no vetor. O programa deverá então permitir que o usuário escolha um nome para ser econtrado no vetor. Encontrando o nome o programa deverá dizer em índice onde o nome se encontra.
Como eu solicito dados aos usuarios com o vetor bidimensional??
Como vou fazer ele pesquisar pelo nome do usuario e retornar o indice??
Até agora desenvolvi isso, e nem sei se está certo…
import java.util.Scanner;
public class Ex3 {
public static void main(String[] args) {
System.out.println("Digite 10 nomes e 10 telefones e Consulte qualquer nome depois");
String [][]vetor = new String[10][2];
int x;
Scanner s = new Scanner(System.in);
for (x=0;x<=9;x++){
System.out.printf("Digite o %dº nome: ", x+1);
vetor[x][x] = s.nextLine();
System.out.printf("Digite o numero de telefone:");
vetor[x][x] = s.nextLine();
}
}
}
=]]
vc vai fazer um for dentro do outro…
for (int j=0; j<2;j++) {
for (int i=0;<i<10;i++) {
//faz leitura na posição [i][j]
}
}
Já ouviu falar da “tabela da verdade” ou “teste de mesa” ?
Nesse caso seria assim:
i=0, j=0 -> acrescenta
i=1;j=0 -> acrescenta
i=2; j=0 -> acrescenta
i=3; j=0 -> acrescenta
i=4; j=0 -> acrescenta
.
.
i=9;j=0 -> acrescenta
Então o i recebe 0, e o j é incrementado
i=0, j=1 -> acrescenta
i=1;j=1 -> acrescenta
i=2; j=1 -> acrescenta
i=3; j=1 -> acrescenta
i=4; j=1 -> acrescenta
.
.
i=9;j=1 -> acrescenta
ACABA
[quote=pedroroxd]vc vai fazer um for dentro do outro…
for (int j=0; j<2;j++) {
for (int i=0;<i<10;i++) {
//faz leitura na posição [i][j]
}
}
Já ouviu falar da “tabela da verdade” ou “teste de mesa” ?
Nesse caso seria assim:
i=0, j=0 -> acrescenta
i=1;j=0 -> acrescenta
i=2; j=0 -> acrescenta
i=3; j=0 -> acrescenta
i=4; j=0 -> acrescenta
.
.
i=9;j=0 -> acrescenta
Então o i recebe 0, e o j é incrementado
i=0, j=1 -> acrescenta
i=1;j=1 -> acrescenta
i=2; j=1 -> acrescenta
i=3; j=1 -> acrescenta
i=4; j=1 -> acrescenta
.
.
i=9;j=1 -> acrescenta
ACABA
[/quote]
Cara, saquei… Valew mesmo brother!!!
Abração!!! =]]]]]
Por nada…
É o mesmo conceito de matriz que agente vê em algorítimo no início… Um for dentro do outro, para preencher…
Dentro de onde ta o “//” do meu post acima /\ é onde vc vai fazer a leitura do que o usuário digitou e armazenar a posicão [i][j].
Dentro também vc vai precisar de um if: se o j valer 1, ele vai começar a ler o telefone, e não o nome (que é quando j=0)
Lembra de criar só uma instancia do Scanner, lá em cima (e não no for) para evitar o uso de memória
Depois pesquisar a posição, vai ter 2 for também, e um if dentro do segundo +/- assim:
if (meuvetor[i][j].equals(nomedigitadopelousuario) {
//imprime a posição i, e a j. Seria legal imprimir o telefone também. i,0 é o nome e i,1 é o telefone
}
Bons estudos, tenta fazer ae, mesmo se tiver dificuldade, tenta ao máximo, depois posta suas dúvidas!