Add: Evaluation file

This commit is contained in:
2025-10-15 17:52:28 +02:00
commit 0612a4033f
8 changed files with 232 additions and 0 deletions

51
Ex2/Readme.md Normal file
View File

@@ -0,0 +1,51 @@
gcc -g -pg racineCarree.c
./a.out
gprof ./racineCarree
# Profilling
J'ai peut etre un probleme sur ça.
## Flat profile
% cumulative self self total
time seconds seconds calls Ts/call Ts/call name
0.00 0.00 0.00 6 0.00 0.00 racinecarre
0.00 0.00 0.00 2 0.00 0.00 racineCarreeTab
## Call profile
index % time self children called name
0.00 0.00 1/6 main [6]
0.00 0.00 5/6 racineCarreeTab [2]
[1] 0.0 0.00 0.00 6 racinecarre [1]
-----------------------------------------------
0.00 0.00 1/2 main [6]
0.00 0.00 1/2 atexit [3]
[2] 0.0 0.00 0.00 2 racineCarreeTab [2]
0.00 0.00 5/6 racinecarre [1]
-----------------------------------------------
# Complexité cyclomatique
## RacineCarree()
- Il y a 4
- On sort dans le 1er quand n < 0 (doit etre entier positif )
- Boucle for il y a un if qui verifie la condition qui est vrai i * i = entier positif qui permet la racine 5 * 5 = 25
- if qui est faux car pas egal à l'entier positif donné
- Sortie boucle for pour le resultat et return -1 si tout les cas sont faux
Complixité cyclonique de 4
## racineCarreeTab()
- Fonction recurcise qui retourne lui meme donc 1
Complixité cyclonique de 1
# Complexité algorithmique
racineCarree() => 0(1) car on choisit la cas en fonction de n entier positif , un choix parmi les if
racineCarreeTab => O(n!) fonction recursive qui appele la racineCarre

BIN
Ex2/a.out Executable file

Binary file not shown.

BIN
Ex2/gmon.out Normal file

Binary file not shown.

57
Ex2/racineCarree.c Normal file
View File

@@ -0,0 +1,57 @@
#include <stdio.h>
#include <stdlib.h>
int racinecarre(int n){
/* int x = n/4; /* Precision pour essayer de se rapprocher*/
if (n < 0){
return -1;
}
for(int i = 0; i <= n; i++ ){
if (i * i == n) { /* 2 * 2 = 4 */
return i;
}
if (i * i > n) {
break;
}
/*x = (x + ( n / x)) /2;*/
}
return -1;
}
int racineCarreeTab(int tableau[], int taille, int resultat[]) {
for (int i = 0; i < taille; i++) {
resultat[i] = racinecarre(tableau[i]);
}
}
int main(void)
{
/*
int n = 4;
int ans = racinecarre(n);
printf("%d\n", ans);
*/
int tab1[] = {1100000, 1100000, 110000};
int resultat1[3];
racineCarreeTab(tab1, 3, resultat1);
printf("racineCarreeTab([9,25,4]) = %ld/n, %ld/n , %ld/n", resultat1[0], resultat1[1], resultat1[2]);
return 0;
}