From 933e853056dd00cae7d40fa150d780aea4c90106 Mon Sep 17 00:00:00 2001 From: Lazar Cristian-Stefan <lazar.cristian.stefan243@gmail.com> Date: Mon, 13 May 2024 00:01:26 +0300 Subject: [PATCH] Removed 80 lines limit --- README.md | 64 ++++++++++++++----------------------------------------- 1 file changed, 16 insertions(+), 48 deletions(-) diff --git a/README.md b/README.md index d8a2d36..ac4e0e6 100644 --- a/README.md +++ b/README.md @@ -7,42 +7,26 @@ - Cristian Lazar - Valentin-Razvan Bogdan -DupÄ ce Či-a fÄcut atâČia prieteni ĂŽn cadrul temei 2, suricata Zoly -a efectuat un audit de securitate al reČelelor clanurilor cÄrora -s-a alÄturat Či Či-a dat seama cÄ nu existÄ nicio mÄsurÄ adecvatÄ -de securitate. Astfel, ea doreČte sÄ ĂŽČi creeze propriul sistem -de detecČie si prevenire a intruziunilor in reČea, si vÄ -roagÄ sÄ o ajutaČi cu implementarea unor componente ale acestuia. +DupÄ ce Či-a fÄcut atâČia prieteni ĂŽn cadrul temei 2, suricata Zoly a efectuat un audit de securitate al reČelelor clanurilor cÄrora s-a alÄturat Či Či-a dat seama cÄ nu existÄ nicio mÄsurÄ adecvatÄ de securitate. Astfel, ea doreČte sÄ ĂŽČi creeze propriul sistem de detecČie si prevenire a intruziunilor in reČea, si vÄ roagÄ sÄ o ajutaČi cu implementarea unor componente ale acestuia. ## Task 1 - Parantezinatorul -Sistemul se bazeazÄ pe anumite reguli care trebuie scrise ĂŽntr-un -fiČier de configurare. -Un aspect important al verificÄrii acestor reguli este parantezarea -diferitelor elemente ale regulii. +Sistemul se bazeazÄ pe anumite reguli care trebuie scrise ĂŽntr-un fiČier de configurare. +Un aspect important al verificÄrii acestor reguli este parantezarea diferitelor elemente ale regulii. -Ăn acest task va trebui sÄ implementaČi o funcČie care verificÄ -dacÄ un Čir de paranteze formeazÄ o parantezare corectÄ, adicÄ -dacÄ toate parantezele deschise sunt ĂŽnchise corespunzÄtor. +Ăn acest task va trebui sÄ implementaČi o funcČie care verificÄ dacÄ un Čir de paranteze formeazÄ o parantezare corectÄ, adicÄ dacÄ toate parantezele deschise sunt ĂŽnchise corespunzÄtor. -De exemplu, Čirul "()()" este o parantezare corectÄ, dar -"{{}" nu este, pentru ca se ĂŽnchide doar o parantezÄ, -Či nici "{[}]" nu este, pentru cÄ parantezele nu sunt -ĂŽnchise corespunzÄtor. +De exemplu, Čirul "()()" este o parantezare corectÄ, dar "{{}" nu este, pentru ca se ĂŽnchide doar o parantezÄ, Či nici "{[}]" nu este, pentru cÄ parantezele nu sunt ĂŽnchise corespunzÄtor. -FuncČia pe care o veČi implementa va returna 0 daca nu sunt probleme -de parantezare (dacÄ sunt parantezele puse bine) si 1 altfel. +FuncČia pe care o veČi implementa va returna 0 daca nu sunt probleme de parantezare (dacÄ sunt parantezele puse bine) si 1 altfel. ## Task 2 - Divide et impera -Ăn acest task veČi implementa doi algoritmi bine cunoscuČi (sperÄm noi): -*quick sort* Či *binary search*. +Ăn acest task veČi implementa doi algoritmi bine cunoscuČi (sperÄm noi): *quick sort* Či *binary search*. *Note:* ambele implementÄri trebuie sÄ fie recursive, NU iterative. -Pentru a rula toate testele, rulaČi executabilul generat farÄ niciun -argument. Pentru a rula un singur test, pasati unul dintre keyword-urile -`qsort` Či `bsearch` ca prim argument, urmat de numÄrul testului. +Pentru a rula toate testele, rulaČi executabilul generat farÄ niciun argument. Pentru a rula un singur test, pasati unul dintre keyword-urile `qsort` Či `bsearch` ca prim argument, urmat de numÄrul testului. De exemplu: ```bash @@ -58,12 +42,9 @@ $ ./checker bsearch 10 ### ExerciČiul 1 -Pentru acest exerciČiu aveČi de implementat funcČia `quick_sort()` ĂŽn fiČierul -`subtask_1.asm`. +Pentru acest exerciČiu aveČi de implementat funcČia `quick_sort()` ĂŽn fiČierul `subtask_1.asm`. -AceastÄ funcČie are semnÄtura de mai jos. Ăn urma rulÄrii ei, numerele stocate -ĂŽn `buff` vor fi sortate crescÄtor. `start` Či `end` reprezintÄ indexul -primului, respectiv ultimului element (ĂŽncepând de la 0). +AceastÄ funcČie are semnÄtura de mai jos. Ăn urma rulÄrii ei, numerele stocate ĂŽn `buff` vor fi sortate crescÄtor. `start` Či `end` reprezintÄ indexul primului, respectiv ultimului element (ĂŽncepând de la 0). ```c void quick_sort(int32_t *buff, uint32_t start, uint32_t end); @@ -73,18 +54,12 @@ void quick_sort(int32_t *buff, uint32_t start, uint32_t end); ### ExerciČiul 2 -Ăn acest exerciČiu va trebui sa implementaČi funcČia `binary_search()` ĂŽn -fiČierul `subtask_2.asm`. +Ăn acest exerciČiu va trebui sa implementaČi funcČia `binary_search()` ĂŽn fiČierul `subtask_2.asm`. -AceastÄ funcČie va returna poziČia elementului `needle` in cadrul array-ului -`buff`. CÄutarea va avea loc ĂŽntre elementele indexate `start` Či `end` -(inclusiv). DacÄ `needle` nu se gÄseČte ĂŽn `buff`, funcČia va returna `-1`. -Este garantat faptul cÄ elementele din `buff` sunt sortate crescÄtor. +AceastÄ funcČie va returna poziČia elementului `needle` in cadrul array-ului `buff`. CÄutarea va avea loc ĂŽntre elementele indexate `start` Či `end` (inclusiv). DacÄ `needle` nu se gÄseČte ĂŽn `buff`, funcČia va returna `-1`. Este garantat faptul cÄ elementele din `buff` sunt sortate crescÄtor. -ObservaČi ĂŽn cadrul semnÄturii funcČiei atributul -[fastcall](https://gcc.gnu.org/onlinedocs/gcc-4.7.0/gcc/Function-Attributes.html). -Acesta va modifica calling convention-ul utilizat in `check.c`. ČineČi cont de -acest lucru când implementaČi funcČia (Či când faceČi apelurile recursive). +ObservaČi ĂŽn cadrul semnÄturii funcČiei atributul [fastcall](https://gcc.gnu.org/onlinedocs/gcc-4.7.0/gcc/Function-Attributes.html). +Acesta va modifica calling convention-ul utilizat in `check.c`. ČineČi cont de acest lucru când implementaČi funcČia (Či când faceČi apelurile recursive). ```c int32_t __attribute__((fastcall)) @@ -157,16 +132,9 @@ Printarea se va realiza prin apelara funcČiei `printf`. ## Bonus -Acum ca Zoly Či-a scris sistemul de detecČie a intruziunilor -Či ĂŽČi poate apÄra toČi prietenii pe care Či i-a facut ĂŽn tema 2, -se poate ĂŽntoarce la marea ei pasiune: programarea funcČionalÄ. +Acum ca Zoly Či-a scris sistemul de detecČie a intruziunilor Či ĂŽČi poate apÄra toČi prietenii pe care Či i-a facut ĂŽn tema 2, se poate ĂŽntoarce la marea ei pasiune: programarea funcČionalÄ. -TotodatÄ, spre deosebire de echipa de PCLP2, ea a ĂŽnČeles cÄ ĂŽn -prezent se folosesc sisteme pe 64 de biČi, iar cele pe 32 de biČi -sunt foarte rare. Astfel, ea doreČte sÄ implementeze funcČiile -`map` Či `reduce` ĂŽn assembly pe 64 de biČi si folosim Či numere -pe 64 de biČi. StiČi de la -[tema 1](https://gitlab.cs.pub.ro/iocla/tema-1-2024) ce sunt fiecare. +TotodatÄ, spre deosebire de echipa de PCLP2, ea a ĂŽnČeles cÄ ĂŽn prezent se folosesc sisteme pe 64 de biČi, iar cele pe 32 de biČi sunt foarte rare. Astfel, ea doreČte sÄ implementeze funcČiile `map` Či `reduce` ĂŽn assembly pe 64 de biČi si folosim Či numere pe 64 de biČi. StiČi de la [tema 1](https://gitlab.cs.pub.ro/iocla/tema-1-2024) ce sunt fiecare. ## Map -- GitLab