From d20f8c8ed5ad024a8e7fc3a675b44dd47bbeee48 Mon Sep 17 00:00:00 2001 From: Arkitu Date: Tue, 23 Sep 2025 14:20:30 +0200 Subject: [PATCH] tp1 --- .clang-format | 3 +++ tp1/exe | Bin 0 -> 15496 bytes tp1/exo1.c | 39 +++++++++++++++++++++++++++++++++++++++ tp1/exo2.c | 18 ++++++++++++++++++ tp1/exo3.c | 29 +++++++++++++++++++++++++++++ tp1/exo4.c | 18 ++++++++++++++++++ tp1/exo5.c | 17 +++++++++++++++++ tp1/exo6.c | 26 ++++++++++++++++++++++++++ tp1/exo7.c | 17 +++++++++++++++++ tp1/main.c | 11 +++++++++++ 10 files changed, 178 insertions(+) create mode 100644 .clang-format create mode 100755 tp1/exe create mode 100644 tp1/exo1.c create mode 100644 tp1/exo2.c create mode 100644 tp1/exo3.c create mode 100644 tp1/exo4.c create mode 100644 tp1/exo5.c create mode 100644 tp1/exo6.c create mode 100644 tp1/exo7.c create mode 100644 tp1/main.c diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..e4cac8c --- /dev/null +++ b/.clang-format @@ -0,0 +1,3 @@ +--- +IndentWidth: 4 +--- diff --git a/tp1/exe b/tp1/exe new file mode 100755 index 0000000000000000000000000000000000000000..eb24323b20263213e4ae8d2bb536a6949bc75b7d GIT binary patch literal 15496 zcmeHOYit}>6~4Q9IkdL7QA6AWno(s#g6fSQu`vlI>&H6dVkd6mh$7k!Ywy@zVeh)T zW9kH|ST#jmSw#T~ZNv|tQYHQ%6{!+PNZ=4i0t%7~5(@o6tw1G53Dgw@QZQM*Gjq;( ze6ue7fm9*Qk!HSo&OP6~XU;tCot?Xz30Esz7_|fp8gP{@JJ=zBJ&oR=Og#G$SC=w zoX|GF`P4CiI+BFDS4!udVV;h)>@P@tkPyLV($MvrPb`QD9eAT*wf+0XGefQW_l>9P$1~Zf z>H6um*80}{@j@=%B^*ZAk&;wz7u#jED*pOyy(la2F@zcim|kHM+5{gZHi zYb0L1`%7;7u%Cs+d}hfM-R3!mbfX|DrUO*Nk|XWL(;S-M$#-KjL^ z+Bd^q+I|V9rC}V*g-t6cMjko88ZX*OsF78j+PgLi-xFw~_{5Fk)Y8S|3PpT<<7{#z zGMBt@_8(8I6c?VFpL%01x#TNX=aMUroF^92AG?^miPr-KYA;~!#L8UqX7P8$i%Tz} z>Eb!hfMb8KN~z+7A5r^DkKHPje(IJUM+pW0T>58^YC{P#5N06EK$w9r17QZj41^g7 zGZ1DV%s`ldFazFqs>#XWi9L1c`;EHvUZWlR_rbnv!$JC%O5cPkmP@720^5Klu<^}O z>1p67@OwZK`esQIIdx1$rel#^cW$XTgBO0X(>MI3H%g@skwfQ-|~e1$|E?AscO>gc%4k5N06EK$w9r17QZj41^g7GZ1Fr|2YG)Zcx?< z(t8gHedQ#%(*u8DVkPUBdA;F1tjl`DU98i)7RgQzl&njn_cIcy|J$unj`Rgy1So6% zUg8%nSxdOg^?22Ea@j66V%jmvC!b{#mWo_aPW}4iw*q`RW zB<^|kqpz?e(*M6o-toZXy5dW#dwdTuAD?GkUGj|AP*?Bf`nOq^xZTFzgPp7&*Sl_Y z-^P{dVU&7VPkOkk>wvKbZ_ay-#ulueZ8Vx1npzs#8k@zlJW@V3syFGg^lehkPRWhn zZ0m7)mt{=JdT(j0*7e_^6FW*P*ZxygT>DsZ=i_0@=gqN24WLi*e zS>)lZ6u)iRxRoyCtg%!!O-ssqkHRaR$y!qdJFP4`i=8!8C@|Mu%1$fXwdS!d-AW$m zw%%zK`q~xnYa2l14#t4O$q6Sl1a$Hqj!7w-bL{wNb}BxZ&rRBS=cJ1JrlF|}{%Vj( zt2oxw+xbc5I*z3ZV=A6LnMI=>I(e_=^LD}l-X z{KoS+H`{T0%o@q3CTwdg4X$V$R!3)Vy^|XC_*N>PPa$C9OBvmyCNjf_A%~W+i@V)< zO(WkbKAfAFu(Qa@|3+w>q_HK+&B^~+1QTo*ka0(J8lQvwGdy4j((^7Ta-WN>0|neN ze*f$JpGy46Hz>61=n~NUr@$*8PE0jkAqKRxA2#lFF21n5*mi7Z{f>0`x)4X zB7B)I2tJFtpy=@rqmssA;mi0dD31||U;G3o!KblZbQ#|T8@O{leu?Qc3Up3{FY^n* zd3Kck_2VxxzmxrBz9K076QAZZI{)jiQBHW8v-;fR1DAOmTwKwwpRd3gV9S zKbF}|oz?gDxL8D9luo+|!&{4X+J@~;f`WR!UzTW|aQ|NE$*5QQ)E z4MF)|*?RmRYkbr2JO!T@BBPu?G5-RE;Qha7cr}8odPeN^T!>ts!jtQO<_+W`eEA>K z{61nSwZ{X0FMPqbQ4{3Lym0AV@}nRJ`7$qy@r5sON&wQYuY*iBiQh +#include + +int f_iter(int a, uint b) { + int acc = 1; + while (b > 0) { + acc = acc * a; + b = b - 1; + } + return acc; +} + +int rec(int acc, int a, uint b) { + if (b == 0) { + return acc; + } else { + return rec(acc * a, a, b - 1); + } +} +int f_rec(int a, uint b) { return rec(1, a, b); } + +int f_exp(int a, uint b) { + if (b == 1) { + return a; + } else if (b % 2 == 0) { + return f_exp(a * a, b / 2); + } else { + return a * f_exp(a * a, (b - 1) / 2); + } +} + +int main() { + int a = 6; + uint b = 7; + printf("Méthode iterative : %d^%d = %d\n", a, b, f_iter(a, b)); + printf("Méthode recursive : %d^%d = %d\n", a, b, f_rec(a, b)); + printf("Méthode d'exponentation rapide : %d^%d = %d\n", a, b, f_exp(a, b)); + exit(0); +} diff --git a/tp1/exo2.c b/tp1/exo2.c new file mode 100644 index 0000000..f501efa --- /dev/null +++ b/tp1/exo2.c @@ -0,0 +1,18 @@ +#include +#include + +uint rec(uint acc, uint x) { + if (x < 10) { + return acc + x; + } else { + return rec(acc + (x % 10), x / 10); + } +} + +int f(uint x) { return rec(0, x); } + +int main() { + int x = 3459023; + printf("Somme des chiffres de %d : %d", x, f(x)); + exit(0); +} diff --git a/tp1/exo3.c b/tp1/exo3.c new file mode 100644 index 0000000..2a917dd --- /dev/null +++ b/tp1/exo3.c @@ -0,0 +1,29 @@ +#include +#include + +int pow(uint a, uint b) { + if (b == 1) { + return a; + } else if (b % 2 == 0) { + return pow(a * a, b / 2); + } else { + return a * pow(a * a, (b - 1) / 2); + } +} + +int f(uint n, uint k) { + uint acc = 0; + while (n > 0) { + acc += pow(n, k); + n--; + } + return acc; +} + +int main() { + uint n = 7; + uint k = 3; + printf("Somme des puissances %d-ièmes des entiers de 1 à %d: %d", k, n, + f(n, k)); + exit(0); +} diff --git a/tp1/exo4.c b/tp1/exo4.c new file mode 100644 index 0000000..193b995 --- /dev/null +++ b/tp1/exo4.c @@ -0,0 +1,18 @@ +#include +#include + +uint rec(uint acc, uint x) { + if (x == 0) { + return acc; + } else { + return rec(acc + 1, x / 2); + } +} + +uint f(uint x) { return rec(0, x); } + +int main() { + uint x = 8; + printf("Nombre de chiffre de %d en binaire: %d", x, f(x)); + exit(0); +} diff --git a/tp1/exo5.c b/tp1/exo5.c new file mode 100644 index 0000000..5cff6a3 --- /dev/null +++ b/tp1/exo5.c @@ -0,0 +1,17 @@ +#include +#include + +void f(uint x) { + if (x > 1) { + f(x / 2); + } + printf("%d", x % 2); +} + +int main() { + uint x = 4329; + printf("%d s'écrit binaire : ", x); + f(x); + printf("\n"); + exit(0); +} diff --git a/tp1/exo6.c b/tp1/exo6.c new file mode 100644 index 0000000..64cf4b6 --- /dev/null +++ b/tp1/exo6.c @@ -0,0 +1,26 @@ +#include +#include + +void rec(uint a, uint b, uint x) { + uint guess = (a + b) / 2; + printf("Ordinateur : %d\n", guess); + if (guess == x) { + printf("Arbitre : C'est bon !\n"); + } else if (guess < x) { + printf("Arbitre : C'est plus !\n"); + return rec(guess, b, x); + } else { + printf("Arbitre : C'est moins !\n"); + return rec(a, guess, x); + } +} + +void f(uint n, uint x) { return rec(0, n, x); } + +int main() { + uint x = 4329; + uint n = 32413524; + printf("x = %d et n = %d\n", x, n); + f(n, x); + exit(0); +} diff --git a/tp1/exo7.c b/tp1/exo7.c new file mode 100644 index 0000000..dacabb2 --- /dev/null +++ b/tp1/exo7.c @@ -0,0 +1,17 @@ +#include +#include + +int f(int a, int b) { + int i = 0; + while (!((a % i == 0) && (b % i == 0))) { + i++; + } + return i; +} + +int main() { + int a = 9; + int b = 73; + printf("ppcm(%d, %d) = %d\n", a, b, f(a, b)); + exit(0); +} diff --git a/tp1/main.c b/tp1/main.c new file mode 100644 index 0000000..861b43d --- /dev/null +++ b/tp1/main.c @@ -0,0 +1,11 @@ +#include +#include + +int main() { + int x = 612657948; + if (x % 3 == 0) + printf("%d est multiple de trois.\n", x); + else + printf("%d n’est pas multiple de trois, le reste est %d.\n", x, x % 3); + exit(0); +}