Skip to content
Snippets Groups Projects
Commit 8baf662d authored by Lazar Cristian-Stefan's avatar Lazar Cristian-Stefan
Browse files

Modified readme for task 3

parent e60d1aeb
No related branches found
No related tags found
No related merge requests found
...@@ -138,7 +138,7 @@ endstruc ...@@ -138,7 +138,7 @@ endstruc
### Cerința ### Cerința
Vi se cere să implementați funcția `dfs()` din fișierul `dfs.asm`, care are următoarea semnătură: Vi se cere să implementați **recursiv** funcția `dfs()` din fișierul `dfs.asm`, care are următoarea semnătură:
```c ```c
void dfs(uint32_t node, neighbours_t *(*expand)(uint32_t node)); void dfs(uint32_t node, neighbours_t *(*expand)(uint32_t node));
...@@ -146,8 +146,14 @@ void dfs(uint32_t node, neighbours_t *(*expand)(uint32_t node)); ...@@ -146,8 +146,14 @@ void dfs(uint32_t node, neighbours_t *(*expand)(uint32_t node));
Aceasta primește ca parametru nodul sursă și adresa funcției `expand` și se cere să implementați algoritmul de dfs și să printați nodurile în momentul în care le viziați. Aceasta primește ca parametru nodul sursă și adresa funcției `expand` și se cere să implementați algoritmul de dfs și să printați nodurile în momentul în care le viziați.
Printarea se va realiza prin apelara funcției `printf`. Se depunctează folosirea macro-ului `PRINTF32`. Printarea se va realiza prin apelara funcției `printf`.
Implementarea trebuie să fie recursivă, **NU** iterativă.
### Depunctari
| Descriere | Depunctare |
| --- | --- |
| Folosire macro PRINTF32 | -10p |
| Soluție nerecursivă | -30p |
## Bonus ## Bonus
...@@ -165,40 +171,45 @@ pe 64 de biți. Stiți de la ...@@ -165,40 +171,45 @@ pe 64 de biți. Stiți de la
## Map ## Map
Antet map: Antet map:
```c ```c
void map(int64_t *destination_array, int64_t *source_array, int64_t array_size, int64_t(*f)(int64_t)); void map(int64_t *destination_array, int64_t *source_array, int64_t array_size, int64_t(*f)(int64_t));
``` ```
Antet functie ce poate fi folosita pentru map: Antet functie ce poate fi folosita pentru map:
```c ```c
int64_t map_func1(int64_t curr_elem); int64_t map_func1(int64_t curr_elem);
``` ```
Pseudocod map: Pseudocod map:
```
```text
map(dst, src, n, to_apply): map(dst, src, n, to_apply):
for i de la 0 la n: for i de la 0 la n:
dst[i] = to_apply(src[i]) dst[i] = to_apply(src[i])
``` ```
## Reduce ## Reduce
Antet reduce: Antet reduce:
```c ```c
int64_t reduce(int64_t *destination_array, int64_t *source_array, int64_t array_size, int64_t accumulator_initial_value, int64_t(*f)(int64_t, int64_t)); int64_t reduce(int64_t *destination_array, int64_t *source_array, int64_t array_size, int64_t accumulator_initial_value, int64_t(*f)(int64_t, int64_t));
``` ```
Antet functie ce poate fi folosita pentru reduce: Antet functie ce poate fi folosita pentru reduce:
```c ```c
int64_t reduce_func1(int64_t accumulator, int64_t current_elem); int64_t reduce_func1(int64_t accumulator, int64_t current_elem);
``` ```
Pseudocod reduce: Pseudocod reduce:
```
```text
reduce(src, n, accumulator_initial, to_apply): reduce(src, n, accumulator_initial, to_apply):
acc = accumulator_initial acc = accumulator_initial
for i de la 0 la n: for i de la 0 la n:
acc = to_apply(acc, src[i]) acc = to_apply(acc, src[i])
return acc return acc
``` ```
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment