[so] [tema3] Problema checker

Grigore Silviu Cătălin grigore.silviu.catalin at gmail.com
Mon Apr 11 19:06:18 EEST 2011


> for (i = 0; i < num_frames; i++) {
> 	for (j = 0; j < num_frames; j++) {
> 		w_size_t offset = i * p_sz + offset_array[j];
> 		tmp = read_byte_from_file(map.ram_handle, offset);
> 		if (tmp == MAGIC)
> 			match_count++;
> 	}
> }

   O sa incerc sa fiu mai clar. Sa presupunem ca avem offset[0] = offset[1].

   Pentru i = 0 si j = 0 se va citi valoarea MAGIC de la adresa offset_array[0]. 

   Pentru i = 0 si j = 1 se va citi de la adresa offset_array[1] care este
aceeasi  adresa cu offset[0]. Se va gasi din nou valoarea MAGIC, lucru perfect
normal pentru pagina 0, deoarece acolo s-a scris. 

   Problema este ca pentru pagina 0 se numara de doua ori valoarea MAGIC desi
este citita de la aceeasi adresa offset[0], atat pentru j = 0, cat si pentru 
j = 1. 
   
   Cred ca se poate rezolva foarte simplu cu un 
     if (!(i != j && offset_array[i] == offset_array[j])) dupa al doilea for.








More information about the so mailing list