-
Notifications
You must be signed in to change notification settings - Fork 0
cosmintanasa47/tema_pclp
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Pentru prima cerinta a temei se citesc de la tastatura numarul de cartiere si de pachete,elementele structurilor cartier, cat si o parte din elementele structurilor pachete. Pentru ca alocarile de memorie (si modificarile) sa fie vizibile si in functia main si implicit in tot programul, s-au folosit ca parametrii la functia read pointer dublu la structurile pachet si cartier.(asemanator si la functia postas_sef pentru structura postas) In functia break_down_adresa, adresa fiecarui pachet a fost folosita pentru a completa campurile idCartier, strada si numar din componenta fiecarei structuri de tip pachet. Valorile acestor campuri au fost calculate prin suma puterilor lui 2, unde puterile reprezinta index-urile la care adresa de index = 1. Pentru cea de-a treia cerinta am scris functia postas_sef care aloca memorie pentru fiecare structura postas valori pentru id si pentru fiecare pachet se verifica daca idCartier coincide cu id-ul postasului, daca da, atunci numarul pachetelor pentru acel postas creste si se adauga pachetul in vectorul de pachete al postasului. In functia sort_pachete, facuta pentru cerinta 4, se primeste vectorul de postasi si pentru fiecare postas se face sortarea pachetelor in functie de prioritatea fiecarui pachet, iar daca prioritatea este aceeasi, in functie de greutate. (in ordine descrescatoare in ambele cazuri) Pentru codificarea mesajului fiecarui pachet se ia vectorul de postasi si pentru fiecare postas se ia fiecare pachet si fiecare mesaj este transformat prin intermediul functiei inversare_si_eliminare si apoi se calculeaza doua coduri, iar ultimul va fi mesajul codificat din componenta fiecarui pachet. Parcurgerea mesajului din functia inversare_si_eliminare se face de la dreapta la stanga si se numara toate caracterele acceptate, adica literele, sifrele si '-', pana cand se ajunge la un spatiu sau semn de punctuatie si se transcrie cuvantul gasit intr-un char* intermediar. Dupa terminarea parcurgerii se mai citeste si ultimul cuvant al mesajului. Pentru cerinta 6 am scris 3 functii. Functia principala este noul_cod unde pentru fiecare postas se ia id_postas si fiecare cod al fiecarui pachet al postasului si se verifica daca acestea doua au in componenta cifre comune si daca da se trece la alterarea codului. (functiile contine_cifra_comuna si alterare_cod) Alterarea codului se face prin aplicarea algoritmului precizat in cerinta, cat si in comentariile din cod. Ultima functie, scor, ia vectorul de postasi si pentru fiecare din pachetele acestora, pe baza idCartier-ului, strazii si numarului se recalculeaza codul exact ca la codificarea mesajului. Se reface procesul si daca rezultatul coincide cu codul pe care il are pachetul scorul postasului de care tine pachetul creste. Scorurile sunt stocate intr-un vector de intregi de lungime 32 (maximul de postasi). Scorul final al unui postas este calculat dupa formula: pachete pentru care codurile coincid / totalul de pachete Fiecare functie principala (care corespunde unei cerinte) are o parte de output care este executata daca task corespunde "numarului" functiei. Functiile primesc ca parametrii vectori de postasi pentru a putea folosi variabile din acestia pentru output, iar pentru partea de procesare se folosesc in principal structurile de pachete din interiorul fiecarei structuri postas, variabilele nr_pachete si nrC (numar postasi) fiind folosite doar ca limite pentru parcurgerile fiecarui pachet sau postas.
About
pclp1
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published