[so] [tema3] Problema checker

Razvan Deaconescu razvan.deaconescu at cs.pub.ro
Mon Apr 11 12:27:40 EEST 2011


On 04/11/2011 11:40 AM, Grigore Silviu Cătălin wrote:
>      Problema consta in faptul ca daca de exemplu am paginile A si B care au
> offset-ul off atunci cand se numara aparitiile MAGIC pentru pagina A, se va
> parcurge vectorul de offset-uri si se va citi de doua ori de la adresa off o
> data pentru offset-ul corespunzator paginii A si o data pentru offset-ul
> corespunzator paginii B => 2 aparitii pentru pagina A.

Nu mai formula, te rog, fraze atât de lungi. Sunt foarte dificil de parcurs.

Nu cred că ai dreptate sau, din nou, nu înțeleg.

Fiecare pagină trebuie să aibă o _singură_ apariție a cuvântului MAGIC.
Dacă apare de două ori e greșeală. Suntem de acord cu asta?

Din cod:

---
w_sync_mapping(map.start, num_pages);

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++;
	}
}
---

Se parcurge fiecare pagină (prima oară, cu indexul i). Pentru _fiecare
pagină_ se parcurge vectorul de offset-uri (folosind indexul j). Dacă
ceva apare de două ori, e o problemă. Te referi la faptul că ar trebui
marcată condiția asta?

> La fel si pentru B daca se afla in RAM.

Păi ce situație este aceea în care B are doi octeți marcați cu MAGIC și
A are doi octeți marcați cu MAGIC și e corect?

Răzvan


More information about the so mailing list