Ajout du controle trop pas EZ
This commit is contained in:
commit
8836358b06
BIN
4f347fe7-cb7b-4f68-96e0-39d096f89c52_Contrle_DV5.1_.pdf
Normal file
BIN
4f347fe7-cb7b-4f68-96e0-39d096f89c52_Contrle_DV5.1_.pdf
Normal file
Binary file not shown.
122
ex1/main.c
Normal file
122
ex1/main.c
Normal file
@ -0,0 +1,122 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
|
||||
int racineCarree(int n){
|
||||
for(int i = 0; i < n; i++) {
|
||||
if (i*i == n) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int* RacineCarreeTab(int base_tab[], int tab_length) {
|
||||
int* computedTab = (int*)malloc(tab_length * sizeof(int));
|
||||
|
||||
for (int i = 0; i < tab_length; i++) {
|
||||
computedTab[i] = racineCarree(base_tab[i]);
|
||||
}
|
||||
|
||||
return computedTab;
|
||||
}
|
||||
|
||||
int* firstSort(int square_root_tab[], int tab_length, int tab_value) {
|
||||
int* computedTab = (int*)malloc(tab_length * sizeof(int));
|
||||
|
||||
for (int i = 0; i < tab_length; i++) {
|
||||
if(i%2 == 0) {
|
||||
computedTab[i] = square_root_tab[i];
|
||||
} else {
|
||||
computedTab[i] = square_root_tab[i] * tab_value;
|
||||
}
|
||||
}
|
||||
|
||||
return computedTab;
|
||||
}
|
||||
|
||||
int* secondSort(int square_root_tab[], int tab_length) {
|
||||
int* computedTab = (int*)malloc(tab_length * sizeof(int));
|
||||
|
||||
for (int i = 0; i < tab_length; i++) {
|
||||
if(i%2 == 0) {
|
||||
computedTab[i] = racineCarree(square_root_tab[i]);
|
||||
} else {
|
||||
int summ = 0;
|
||||
int* result = RacineCarreeTab(square_root_tab, tab_length);
|
||||
for(int j = 0; j<tab_length; j++) {
|
||||
summ = summ + result[j];
|
||||
}
|
||||
computedTab[i] = summ * square_root_tab[i];
|
||||
}
|
||||
}
|
||||
|
||||
return computedTab;
|
||||
}
|
||||
|
||||
int* TriSpecial(int square_root_tab[], int tab_length){
|
||||
int tab_value = 0, summ_error = 0;
|
||||
|
||||
for (int i = 0; i < tab_length; i++) {
|
||||
tab_value = tab_value + square_root_tab[i];
|
||||
if(square_root_tab[i] < 0) {
|
||||
summ_error++;
|
||||
}
|
||||
}
|
||||
|
||||
if(summ_error % 2 == 0) {
|
||||
return firstSort(square_root_tab, tab_length, tab_value);
|
||||
} else {
|
||||
return secondSort(square_root_tab, tab_length);
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char* argv[]){
|
||||
/* Exo 1 A*/
|
||||
/*int base_number = atoi(argv[1]);
|
||||
int foundSquareRoot = racineCarree(base_number);
|
||||
if (foundSquareRoot >= 0 ) {
|
||||
printf("la racine carré de %d est = %d\n", base_number, foundSquareRoot);
|
||||
} else {
|
||||
printf("Aucune racine carrée trouvé pour : %d\n", base_number);
|
||||
}*/
|
||||
|
||||
|
||||
|
||||
/* Exo 1 B*/
|
||||
|
||||
//int base_tab[5] = {1, 4, 9, 16, 25}; // VALEURS DU TABLEAU SI NON ALEATOIRE
|
||||
//int tab_length = 5;
|
||||
|
||||
int tab_length = atoi(argv[1]); //TAILLE DU TABLEAU
|
||||
int base_tab[tab_length]; //VALEURS DU TABLEAU
|
||||
srand(time(NULL));
|
||||
for(int j = 0; j < tab_length; j++) {
|
||||
//MODIFIER ICI POUR DES PLUS PETITES VALEURS SI ALEATOIRE
|
||||
base_tab[j] = rand();
|
||||
}
|
||||
|
||||
int* result = RacineCarreeTab(base_tab, tab_length);
|
||||
for (int i = 0; i < tab_length; i++) {
|
||||
printf("%d\t", result[i]);
|
||||
}
|
||||
printf("\n");
|
||||
free(result);
|
||||
|
||||
|
||||
/*Exo 3
|
||||
//int base_tab[5] = {1, 5, 9, 16, 25}; // VALEURS DU TABLEAU SI NON ALEATOIRE
|
||||
//int tab_length = 5;
|
||||
|
||||
int tab_length = atoi(argv[1]); //TAILLE DU TABLEAU
|
||||
int base_tab[tab_length]; //VALEURS DU TABLEAU
|
||||
srand(time(NULL));
|
||||
for(int j = 0; j < tab_length; j++) {
|
||||
//MODIFIER ICI POUR DES PLUS PETITES VALEURS SI ALEATOIRE
|
||||
base_tab[j] = rand();
|
||||
}
|
||||
|
||||
int* sorted_tab = TriSpecial(RacineCarreeTab(base_tab, tab_length), tab_length);
|
||||
printf("\n");
|
||||
*/
|
||||
}
|
125
ex1/main_opti.c
Normal file
125
ex1/main_opti.c
Normal file
@ -0,0 +1,125 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
|
||||
int racineCarree(int n){
|
||||
for(int i = 0; i < n; i++) {
|
||||
if (i * i > n) {
|
||||
break;
|
||||
}
|
||||
if (i*i == n) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int* RacineCarreeTab(int base_tab[], int tab_length) {
|
||||
int* computedTab = (int*)malloc(tab_length * sizeof(int));
|
||||
|
||||
for (int i = 0; i < tab_length; i++) {
|
||||
computedTab[i] = racineCarree(base_tab[i]);
|
||||
}
|
||||
|
||||
return computedTab;
|
||||
}
|
||||
|
||||
int* firstSort(int square_root_tab[], int tab_length, int tab_value) {
|
||||
int* computedTab = (int*)malloc(tab_length * sizeof(int));
|
||||
|
||||
for (int i = 0; i < tab_length; i++) {
|
||||
if(i%2 == 0) {
|
||||
computedTab[i] = square_root_tab[i];
|
||||
} else {
|
||||
computedTab[i] = square_root_tab[i] * tab_value;
|
||||
}
|
||||
}
|
||||
|
||||
return computedTab;
|
||||
}
|
||||
|
||||
int* secondSort(int square_root_tab[], int tab_length) {
|
||||
int* computedTab = (int*)malloc(tab_length * sizeof(int));
|
||||
|
||||
for (int i = 0; i < tab_length; i++) {
|
||||
if(i%2 == 0) {
|
||||
computedTab[i] = racineCarree(square_root_tab[i]);
|
||||
} else {
|
||||
int summ = 0;
|
||||
int* result = RacineCarreeTab(square_root_tab, tab_length);
|
||||
for(int j = 0; j<tab_length; j++) {
|
||||
summ = summ + result[j];
|
||||
}
|
||||
computedTab[i] = summ * square_root_tab[i];
|
||||
}
|
||||
}
|
||||
|
||||
return computedTab;
|
||||
}
|
||||
|
||||
int* TriSpecial(int square_root_tab[], int tab_length){
|
||||
int tab_value = 0, summ_error = 0;
|
||||
|
||||
for (int i = 0; i < tab_length; i++) {
|
||||
tab_value = tab_value + square_root_tab[i];
|
||||
if(square_root_tab[i] < 0) {
|
||||
summ_error++;
|
||||
}
|
||||
}
|
||||
|
||||
if(summ_error % 2 == 0) {
|
||||
return firstSort(square_root_tab, tab_length, tab_value);
|
||||
} else {
|
||||
return secondSort(square_root_tab, tab_length);
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char* argv[]){
|
||||
/* Exo 1 A*/
|
||||
/*int base_number = atoi(argv[1]);
|
||||
int foundSquareRoot = racineCarree(base_number);
|
||||
if (foundSquareRoot >= 0 ) {
|
||||
printf("la racine carré de %d est = %d\n", base_number, foundSquareRoot);
|
||||
} else {
|
||||
printf("Aucune racine carrée trouvé pour : %d\n", base_number);
|
||||
}*/
|
||||
|
||||
|
||||
|
||||
/* Exo 1 B*/
|
||||
|
||||
//int base_tab[5] = {1, 4, 9, 16, 25}; // VALEURS DU TABLEAU SI NON ALEATOIRE
|
||||
//int tab_length = 5;
|
||||
|
||||
int tab_length = atoi(argv[1]); //TAILLE DU TABLEAU
|
||||
int base_tab[tab_length]; //VALEURS DU TABLEAU
|
||||
srand(time(NULL));
|
||||
for(int j = 0; j < tab_length; j++) {
|
||||
//MODIFIER ICI POUR DES PLUS PETITES VALEURS SI ALEATOIRE
|
||||
base_tab[j] = rand();
|
||||
}
|
||||
|
||||
int* result = RacineCarreeTab(base_tab, tab_length);
|
||||
for (int i = 0; i < tab_length; i++) {
|
||||
printf("%d\t", result[i]);
|
||||
}
|
||||
printf("\n");
|
||||
free(result);
|
||||
|
||||
|
||||
/*Exo 3
|
||||
//int base_tab[5] = {1, 5, 9, 16, 25}; // VALEURS DU TABLEAU SI NON ALEATOIRE
|
||||
//int tab_length = 5;
|
||||
|
||||
int tab_length = atoi(argv[1]); //TAILLE DU TABLEAU
|
||||
int base_tab[tab_length]; //VALEURS DU TABLEAU
|
||||
srand(time(NULL));
|
||||
for(int j = 0; j < tab_length; j++) {
|
||||
//MODIFIER ICI POUR DES PLUS PETITES VALEURS SI ALEATOIRE
|
||||
base_tab[j] = rand();
|
||||
}
|
||||
|
||||
int* sorted_tab = TriSpecial(RacineCarreeTab(base_tab, tab_length), tab_length);
|
||||
printf("\n");
|
||||
*/
|
||||
}
|
Loading…
Reference in New Issue
Block a user