Ver Mensaje Individual
  #9 (permalink)  
Antiguo 15/04/2011, 23:52
kyc212
 
Fecha de Ingreso: octubre-2009
Mensajes: 21
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: metodos en java

GRACIAS HackmanC: PERO NO SE DONDE ESTA MI ERROR!! AQUI TE DEJO MI CODIGO A VER SI PUEDES AYUDARME TOY FUERA DE JAVA 5 ANOS!!

package asscsa;

import java.util.ArrayList;
import java.io.*;

/**
*
* @author Kathy: creando mis mtds
*/
public class CacheClass {
private int estado;
private int nelem;
private ArrayList<Integer> arrayRam;
private int[] cache;
private int CouTotalMiss;//total of misses = com+ cap+ conflic
private int CouTotalMissCom = 0;//total of compulsory miss
private int CouTotalMissCap;//total of capacity miss
private int CouTotalMissConfl = 0;//total miss Conflict
private int cacheSize;//tamano de mi cache en bytes
private int block_size; //tamano de cada bloque en bytes
private int typeAssocia;// tipo de asociatividad 2, 4, 6, 8 , fully
private int typeReplace;//tipo de politica de reemplazo
private int totalHit; //# de aciertos
private int CSize;
//private//detectar si un valor estuvo antes ahi

public CacheClass() {
//creamos nuestro array
arrayRam = new ArrayList();
//inicialisamos nuestra varfiable con 0
nelem = 0;
}

public void listarCache() {
//creamos un for para recorrer e ir listando cada elemento
for (int i = 0; i < arrayRam.size(); i++) {
// System.out.print(arrayRam.get(i) + "\n");
System.out.print("*****");
}
}

public void insertarValores(int value) {
//aqui le damos el valor o elemento y lo insertamos
arrayRam.add(value);
//incrementamos el valor de nuestro elemento cada ves que inserta
//ya que tambien lo estamos utilizando como indice o posicion del array
nelem++;
}

public void getEnterValues() throws IOException {

BufferedReader enter = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter Cache size en Kbytes: ");
cacheSize = (Integer.parseInt(enter.readLine()) * 1024);
System.out.print("Enter Block size en Bytes: ");
block_size = Integer.parseInt(enter.readLine());
System.out.print("Enter Associative Type: ");
typeAssocia = Integer.parseInt(enter.readLine());
System.out.print("Enter Replecement Policy: ");
typeReplace = Integer.parseInt(enter.readLine());
}

public void imprimir() {
System.out.print(cacheSize + "**\n");
System.out.print(block_size + "***\n");
System.out.print(typeAssocia + "****\n");
System.out.print(typeReplace + "*****\n");
System.out.print("___");
crearCache();
}

public void crearCache() {
int cSize = cacheSize / block_size;
cache = new int[cSize];
for (int i = 0; i < cSize; i++) {
cache[i] = 0;
System.out.print(cache[i] + "\n");
}
System.out.print(cSize + "___");
}

public void copyValuesCache() {
int cSize = cacheSize / block_size;
int block_loc;
int block_number;
for (int i = 0; i < arrayRam.size(); i++) {

block_number = arrayRam.get(i) / block_size;
System.out.print(i+")"+block_number+ "\n");
if (typeAssocia == 1) {
block_loc = block_number % (cSize / typeAssocia);
if (cache[block_loc] == 0) {
cache[block_loc] = block_number;
CouTotalMissCom++;
} else if (cache[block_loc] == block_number) {
totalHit++;
} else if (cache[block_loc] != block_number && cache[block_loc] != 0) {
searchValue(i, block_number);
if (block_number == arrayRam.get(estado)) {
cache[block_loc] = block_number;
CouTotalMissConfl++;

} else {
cache[block_loc] = block_number;
CouTotalMissCom++;

}


}
} else if (typeAssocia == 2) {

}
}

System.out.print(CouTotalMissCom + "Compuls\n");
System.out.print(CouTotalMissConfl + "Conflict\n");
System.out.print(totalHit + "Hits**\n");
}
//BUSCAR SI EL VALOR ESTUVO ANTES

public void searchValue(int y, int v) {

for (int m = 0; m < y; m++) {
if (arrayRam.get(m) == v) {
estado = m;
System.out.println("si hay un valor");
System.out.println(estado+"\n");

}
}
}


}

YO CREO Q EL TIPO DE DATO ES EL MISMO.. MIL GRACIAS!!