3 - Dado 4 vetores , um com os nomes, outro com as matriculas e os outros dois com as notas de duas disciplinas dos alunos de uma sala, pede-se:
Obs.: ESSA SALA POSSUI 10 ALUNOS.
Elabore um programa que exiba a média de um aluno, que será pesquisado. Para isso solicite a matricula do aluno.
Código que fiz http://pastebin.com/4ybWpAnA
sáida do código :
Digite seu nome :
fabricio
Digite sua matricula para cadastrar :
12345
Digite a primeira nota :
5
Digite a segunda nota :
6
Digite seu nome :
medeiros
Digite sua matricula para cadastrar :
54321
Digite a primeira nota :
4
Digite a segunda nota :
3
Tirar a media(Digite sua matricula) :
1
MATRICULA NÃO EXISTE
Tirar a media(Digite sua matricula) :
12345
MATRICULA NÃO EXISTE
Digitei primeiro uma matricula que não está armazenada no vetor logo depois digitei uma matricula armazenada no vetor e aparece não existe para os dois casos
Isso acontece porque vc ta comparando sempre o check[0] com a matricula[0] e o check[1] com a matricula[1]. Para arrumar, vc precisa acrescentar um outro for no codigo, assim:
for (i = 0; i < 2; i++) {
System.out.println("Tirar a media(Digite sua matricula) : ");
check[i] = ler.nextInt();
for (j = 0; j < 2; j++) {
if (check[i] == matricula[j]) {
media = (nota1[j] + nota2[j]) / 2;
System.out.println(nome[j] + ", sua média : " + media);
}
Nesse exercício vamos usar busca linear para a busca.
Para o programa pedido, para cada busca realizada deve-se iterar sobre todo o vetor para encontrar em qual posição se encontra o número procurado. No caso do código fornecido, falta essa iteração.
O código corrigido é o seguinte:
import java.util.Scanner;
public class vetor {
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] nome = new String[2];
double[] nota1 = new double[2];
double[] nota2 = new double[2];
int[] matricula = new int[2];
int i, j;
int[] check = new int[2];
double media;
int N=2;//Numero de elementos
Scanner ler = new Scanner(System.in);
for (i = 0; i < N; i++) {
System.out.println("Digite seu nome : ");
nome[i] = ler.next();
System.out.println("Digite sua matricula para cadastrar : ");
matricula[i] = ler.nextInt();
System.out.println("Digite a primeira nota : ");
nota1[i] = ler.nextDouble();
System.out.println("Digite a segunda nota : ");
nota2[i] = ler.nextDouble();
}
for (i = 0; i < 2; i++) {
System.out.println("Tirar a media(Digite sua matricula) : ");
check[i] = ler.nextInt();
for(j=0; j<N; j++){// Para cada matricula
if (check[i] == matricula[j]) {//Verifica se o procurado é o atual
media = (nota1[j] + nota2[j]) / 2;
System.out.println(nome[j] + ", sua média : " + media);
break;
}
}
if(j==N) {//Se passou por todo o vetor
System.out.println("MATRICULA NÃO EXISTE ");
}
}
}}
Nesse exercício vamos usar busca linear para a busca.
Para o programa pedido, para cada busca realizada deve-se iterar sobre todo o vetor para encontrar em qual posição se encontra o número procurado. No caso do código fornecido, falta essa iteração.
O código corrigido é o seguinte:
import java.util.Scanner;
public class vetor {
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] nome = new String[2];
double[] nota1 = new double[2];
double[] nota2 = new double[2];
int[] matricula = new int[2];
int i, j;
int[] check = new int[2];
double media;
int N=2;//Numero de elementos
Scanner ler = new Scanner(System.in);
for (i = 0; i < N; i++) {
System.out.println("Digite seu nome : ");
nome[i] = ler.next();
System.out.println("Digite sua matricula para cadastrar : ");
matricula[i] = ler.nextInt();
System.out.println("Digite a primeira nota : ");
nota1[i] = ler.nextDouble();
System.out.println("Digite a segunda nota : ");
nota2[i] = ler.nextDouble();
}
for (i = 0; i < 2; i++) {
System.out.println("Tirar a media(Digite sua matricula) : ");
check[i] = ler.nextInt();
for(j=0; j<N; j++){// Para cada matricula
if (check[i] == matricula[j]) {//Verifica se o procurado é o atual
media = (nota1[j] + nota2[j]) / 2;
System.out.println(nome[j] + ", sua média : " + media);
break;
}
}
if(j==N) {//Se passou por todo o vetor
System.out.println("MATRICULA NÃO EXISTE ");
}
}
}}
Para escrever sua resposta aqui, entre ou crie uma conta
Compartilhar