Professional Documents
Culture Documents
Varianta 0: In fisierul bitset.h se afla definita o structura BitSet pentru o multime de numere naturale reprezentata de biti. Structura contine: v - adresa de inceput a vectorului de caractere care vor ingloba bitii multimii nr_bits - capacitatea de stocare a vectoruluide unsigned char, masurata in numarul de biti Task 1 (10p): Completati functia init() din bitset.c pentru a initializa un BitSet (o multime vida cu o alocare initiala de memorie egala cu Max = 32 biti). Task 2 (20p): Completati functia add() din BitSet pentru a adauga un element la mutime prin setarea bitului cu ordinul egal cu elementul pe 1 (elementele 0-7 in primul Byte, 8-15 in al doilea Byte, etc.). In cazul in care multimea nu are suficienti biti alocati, se va extinde/realoca mai intai vectorul pana la un numar cuprinzatori de biti. Atentie! Memoria nou alocata trebuie setata pe 0! Task 3 (20p): Completati functia contains() din bitset.c pentru a verifica daca un BitSet contine sau nu un element. Atentie! Este posibil ca in conditiile in care elementul nu se afla in multime, el sa nu se afle nici reprezentat in memoria alocata! Task 4 (30p): Completati functia write() din bitset.c pentru a scrie elementele dintr-un BitSet intr-un fisier text al carui nume este dat ca parametru. Elementele multimii se vor scrie cate unul pe linie. Task 5 (20p): Completati functia read() din bitset.c. Functia va crea un BitSet alocat dinamic, il va initializa, va citi succesiv de la tastatura elemente pe care le va adauga in svector pana la intalnirea lui EOF (CTRL + D in Linux), si apoi va returna pointerul catre structura BitSet.