[code]package tp01.organização;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Random;
public class TP01Organização {
public class Livro{
int nota;
int nLeituras;
String Nome;
}
public static void main(String[] args) throws FileNotFoundException, IOException{
TP01Organização p = new TP01Organização();
}
public TP01Organização() throws FileNotFoundException, IOException{
/*Opcode das instruções:
-1: imprime todo o conteúdo da memória de Livros!!!!(Livros)
0: imprime conteúdo do MAR(simula busca de livro)
1: Melhor nota
2: Numero de vezes que foi lido
3: Termina
*/
String[] memoriaInst;
Livro[] memoriaDados = new Livro[100];
int PC=0;
int IR = -1; //opcode
int MAR1 = -1; //endereco
int MAR2 = -1; //endereco
String MBR = "";
Livro MQ1 = new Livro();
Livro MQ2 = new Livro();
memoriaDados = gerarMemoriaDados();
memoriaInst = gerarMemoriaInst();
//começa o programa
while (IR!=4){
MBR = memoriaInst[PC];
String[] aux = MBR.split(":");
IR = Integer.parseInt(aux[0]);
MAR1 = Integer.parseInt(aux[1]);
MAR2 = Integer.parseInt(aux[2]);
switch (IR){
case -1: {
System.err.println("Livros Disponiveis");
for(Livro Livro: memoriaDados)
System.err.println(Livro.Nome);
break;
}
case 0: {
System.err.println(memoriaDados[MAR1]);
System.err.println(memoriaDados[MAR2]);
break;
}
case 1: {
MQ1 = memoriaDados[MAR1];
MQ2 = memoriaDados[MAR2];
if(MQ1.nota > MQ2.nota ){
System.err.println("Maior nota:" + MQ1.Nome);
}else System.err.println("Maior nota:" + MQ2.Nome);
break;
}
case 2: {
MQ1 = memoriaDados[MAR1];
MQ2 = memoriaDados[MAR2];
if(MQ1.nLeituras > MQ2.nLeituras ){
System.err.println("Lido mais vezes :" + MQ1.Nome);
}else System.err.println("Lido mais vezes :" + MQ2.Nome);
break;
}
}
PC++;
}
}
private String[] gerarMemoriaInst(){
String[] memoria = {"1:6:5", "2:7:6", "2:13:4", "3:6:3", "1:6:1", "2:18:5", "2:0:8", "3:6:32", "1:8:52", "2:22:52", "3:15:22", "0:6:12", "0:15:34", "-1:-1:-2", "4:-1:-2"};
return memoria;
}
private Livro[] gerarMemoriaDados() throws FileNotFoundException, IOException{
Livro[] memoria = new Livro[100];
Random gerador = new Random();
File arquivo = new File("/home/gustavo/arquivo.txt");
FileReader fr = new FileReader(arquivo);
BufferedReader br = new BufferedReader(fr);
for(int i = 0 ; i < 100 ; i++ ){
memoria[i].nota = gerador.nextInt(10);
memoria[i].nLeituras = gerador.nextInt(100);
String linha = br.readLine();
memoria[i].Nome = linha;
}
br.close();
fr.close();
return memoria;
}
}[/code][code]
ERRO:
Exception in thread “main” java.lang.NullPointerException
at tp01.organização.TP01Organização.gerarMemoriaDados(TP01Organização.java:110)
at tp01.organização.TP01Organização.(TP01Organização.java:41)
at tp01.organização.TP01Organização.main(TP01Organização.java:19)
Java Result: 1
Me ajudem por favor!!!