diff options
| author | Anhgelus Morhtuuzh <william@herges.fr> | 2025-09-19 12:16:41 +0200 |
|---|---|---|
| committer | Anhgelus Morhtuuzh <william@herges.fr> | 2025-09-19 12:16:41 +0200 |
| commit | 5a08a4e1e055a0a702a54cfa867d7fdebf2c1ad7 (patch) | |
| tree | 470e9aeb90b79f61beaab352fa0e394b9e76b11f /semestre 3/structures des données/td | |
| parent | cac7f3e868e98281f9f2b841101b09f02cf664fd (diff) | |
Cours du 15 au 19 septembre
Diffstat (limited to 'semestre 3/structures des données/td')
| -rw-r--r-- | semestre 3/structures des données/td/.gitignore | 60 | ||||
| -rw-r--r-- | semestre 3/structures des données/td/td1/exo1.c | 15 | ||||
| -rw-r--r-- | semestre 3/structures des données/td/td1/exo2.c | 23 | ||||
| -rw-r--r-- | semestre 3/structures des données/td/td1/exo3.c | 15 | ||||
| -rw-r--r-- | semestre 3/structures des données/td/td1/exo4.md | 17 | ||||
| -rw-r--r-- | semestre 3/structures des données/td/td1/exo5/.gitignore | 1 | ||||
| -rw-r--r-- | semestre 3/structures des données/td/td1/exo5/A.c | 6 | ||||
| -rw-r--r-- | semestre 3/structures des données/td/td1/exo5/A.h | 7 | ||||
| -rw-r--r-- | semestre 3/structures des données/td/td1/exo5/B.c | 6 | ||||
| -rw-r--r-- | semestre 3/structures des données/td/td1/exo5/B.h | 7 | ||||
| -rw-r--r-- | semestre 3/structures des données/td/td1/exo5/Makefile | 12 | ||||
| -rw-r--r-- | semestre 3/structures des données/td/td1/exo5/prog.c | 8 |
12 files changed, 177 insertions, 0 deletions
diff --git a/semestre 3/structures des données/td/.gitignore b/semestre 3/structures des données/td/.gitignore new file mode 100644 index 0000000..ca1cd41 --- /dev/null +++ b/semestre 3/structures des données/td/.gitignore @@ -0,0 +1,60 @@ +main + +# Created by https://www.toptal.com/developers/gitignore/api/c +# Edit at https://www.toptal.com/developers/gitignore?templates=c + +### C ### +# Prerequisites +*.d + +# Object files +*.o +*.ko +*.obj +*.elf + +# Linker output +*.ilk +*.map +*.exp + +# Precompiled Headers +*.gch +*.pch + +# Libraries +*.lib +*.a +*.la +*.lo + +# Shared objects (inc. Windows DLLs) +*.dll +*.so +*.so.* +*.dylib + +# Executables +*.exe +*.out +*.app +*.i*86 +*.x86_64 +*.hex + +# Debug files +*.dSYM/ +*.su +*.idb +*.pdb + +# Kernel Module Compile Results +*.mod* +*.cmd +.tmp_versions/ +modules.order +Module.symvers +Mkfile.old +dkms.conf + +# End of https://www.toptal.com/developers/gitignore/api/c diff --git a/semestre 3/structures des données/td/td1/exo1.c b/semestre 3/structures des données/td/td1/exo1.c new file mode 100644 index 0000000..669589b --- /dev/null +++ b/semestre 3/structures des données/td/td1/exo1.c @@ -0,0 +1,15 @@ +#include <stdio.h> + +/* factorielle récursive */ +int xy(int n){ + if (n) { + /* warum nicht ? */ + return n*(xy(n-1)); + } else { + return 1; + } +} + +void main(void){ + printf("%d", xy(5)); +} diff --git a/semestre 3/structures des données/td/td1/exo2.c b/semestre 3/structures des données/td/td1/exo2.c new file mode 100644 index 0000000..7b3acf7 --- /dev/null +++ b/semestre 3/structures des données/td/td1/exo2.c @@ -0,0 +1,23 @@ +#include <stdio.h> +#include <stdlib.h> + +/* incremente de 1 la valeur de 'p' */ +/* passer un arg en pointeur permet à une fonction de faire des effets de bord, comme retourner plusieurs valeurs */ +void incrementer(int *p){ + (*p)++; +} + +void main(void){ + int *p; + int i = 1; + + p = &i; + printf("%d\n", *p); + + /* Cette suite de est illogique car on ne connait pas la valeur de 'p' avant l'affectation */ + p = (int *) malloc(sizeof(int)); + incrementer(p); + printf("%d\n", *p); + + free(p); +} diff --git a/semestre 3/structures des données/td/td1/exo3.c b/semestre 3/structures des données/td/td1/exo3.c new file mode 100644 index 0000000..1a790ad --- /dev/null +++ b/semestre 3/structures des données/td/td1/exo3.c @@ -0,0 +1,15 @@ +#include <stdlib.h> + +void main(void){ + /* le cast est très important pour le compilateur et le linter */ + int *t = (int *) malloc(sizeof(int)*5) // car on souhaite un tableau de taille 5 + /* acces à la 4e valeur */ + int four = *(t+3) + free(t) + + /* pour recuperer la taille d'un tableau, on est oblige de la garder qlq part en memoire + * on peut stocker la taille du tableau dans la premiere case (pas une bonne idee) + * on rajoute un caractere de fin (pas une bunne idee non plus, de mon pov en tout cas) + * on construit un struct contenant le tableau et sa taille + */ +} diff --git a/semestre 3/structures des données/td/td1/exo4.md b/semestre 3/structures des données/td/td1/exo4.md new file mode 100644 index 0000000..ea4e5b8 --- /dev/null +++ b/semestre 3/structures des données/td/td1/exo4.md @@ -0,0 +1,17 @@ +--- +tags: + - sorbonne + - informatique + - structure-des-données + - td +Semestre: 3 +--- +Code 1 est en $\Theta (1)$. + +Code 2 est en $\mathcal{O} (n)$ et en $\Omega(1)$. + +Code 3 est en $\mathcal{O} (n\times m)$ et en $\Omega(\min\{n,m\})$ car : +- `equals_tab` renvoie 0 car elle a fait $1$ tours, donc on fait $n$ tours dans `equals_one_line` +- `equals_tab` renvoie 1 car elle a fait $m$ tours, donc on fait $1$ tours dans `equals_one_line` + + diff --git a/semestre 3/structures des données/td/td1/exo5/.gitignore b/semestre 3/structures des données/td/td1/exo5/.gitignore new file mode 100644 index 0000000..ea17491 --- /dev/null +++ b/semestre 3/structures des données/td/td1/exo5/.gitignore @@ -0,0 +1 @@ +prog diff --git a/semestre 3/structures des données/td/td1/exo5/A.c b/semestre 3/structures des données/td/td1/exo5/A.c new file mode 100644 index 0000000..a18d17b --- /dev/null +++ b/semestre 3/structures des données/td/td1/exo5/A.c @@ -0,0 +1,6 @@ +#include "A.h" + +int f(int n){ + /* do some funky stuff */ + return n; +} diff --git a/semestre 3/structures des données/td/td1/exo5/A.h b/semestre 3/structures des données/td/td1/exo5/A.h new file mode 100644 index 0000000..5e5fa02 --- /dev/null +++ b/semestre 3/structures des données/td/td1/exo5/A.h @@ -0,0 +1,7 @@ +#ifndef A_H +#define A_H + +int f(int); + +#endif + diff --git a/semestre 3/structures des données/td/td1/exo5/B.c b/semestre 3/structures des données/td/td1/exo5/B.c new file mode 100644 index 0000000..2fd27ef --- /dev/null +++ b/semestre 3/structures des données/td/td1/exo5/B.c @@ -0,0 +1,6 @@ +#include "B.h" +#include "A.h" + +void g(int p){ + /* do some funky stuff again */ +} diff --git a/semestre 3/structures des données/td/td1/exo5/B.h b/semestre 3/structures des données/td/td1/exo5/B.h new file mode 100644 index 0000000..a863ca7 --- /dev/null +++ b/semestre 3/structures des données/td/td1/exo5/B.h @@ -0,0 +1,7 @@ +#ifndef B_H +#define B_H +#include "A.h" + +void g(int); + +#endif diff --git a/semestre 3/structures des données/td/td1/exo5/Makefile b/semestre 3/structures des données/td/td1/exo5/Makefile new file mode 100644 index 0000000..691f09b --- /dev/null +++ b/semestre 3/structures des données/td/td1/exo5/Makefile @@ -0,0 +1,12 @@ +all: prog.o A.o B.o + gcc -o prog A.o B.o prog.o + +prog.o: prog.c + gcc -c prog.c + +A.o: A.h A.c + gcc -c A.h A.c + +B.o: B.h B.c + gcc -c B.h B.c + diff --git a/semestre 3/structures des données/td/td1/exo5/prog.c b/semestre 3/structures des données/td/td1/exo5/prog.c new file mode 100644 index 0000000..f015ccc --- /dev/null +++ b/semestre 3/structures des données/td/td1/exo5/prog.c @@ -0,0 +1,8 @@ +#include "A.h" +#include "B.h" + +void main(void){ + int n; + n = f(n); + g(n); +} |
