diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 86c584abc6a1a3e93368d8a1c465092fc857acda..0d5d0a7d29591a87af2d2aac3df4f1377ca96b1a 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -10,10 +10,7 @@ </component> <component name="ChangeListManager"> <list default="true" id="43aff179-c306-46b9-b69f-eca5306fbf96" name="Default Changelist" comment=""> - <change beforePath="$PROJECT_DIR$/Vector" beforeDir="false" afterPath="$PROJECT_DIR$/Vector" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Vector.c" beforeDir="false" afterPath="$PROJECT_DIR$/Vector.c" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/Vector.o" beforeDir="false" afterPath="$PROJECT_DIR$/Vector.o" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/makefile" beforeDir="false" afterPath="$PROJECT_DIR$/makefile" afterDir="false" /> </list> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="SHOW_DIALOG" value="false" /> @@ -26,8 +23,8 @@ <file pinned="false" current-in-tab="true"> <entry file="file://$PROJECT_DIR$/Vector.c"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="376"> - <caret line="74" column="14" lean-forward="true" selection-start-line="74" selection-start-column="14" selection-end-line="74" selection-end-column="14" /> + <state relative-caret-position="342"> + <caret line="211" column="97" selection-start-line="211" selection-start-column="97" selection-end-line="211" selection-end-column="97" /> </state> </provider> </entry> @@ -66,7 +63,7 @@ </list> </option> </component> - <component name="ProjectFrameBounds" extendedState="6"> + <component name="ProjectFrameBounds" extendedState="7"> <option name="x" value="848" /> <option name="y" value="317" /> <option name="width" value="1050" /> @@ -118,12 +115,12 @@ <option name="number" value="Default" /> <option name="presentableId" value="Default" /> <updated>1559227081243</updated> - <workItem from="1559227084365" duration="15096000" /> + <workItem from="1559227084365" duration="16429000" /> </task> <servers /> </component> <component name="TimeTrackingManager"> - <option name="totallyTimeSpent" value="15096000" /> + <option name="totallyTimeSpent" value="16429000" /> </component> <component name="ToolWindowManager"> <frame x="-7" y="-7" width="1550" height="838" extended-state="6" /> @@ -198,8 +195,8 @@ </entry> <entry file="file://$PROJECT_DIR$/Vector.c"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="376"> - <caret line="74" column="14" lean-forward="true" selection-start-line="74" selection-start-column="14" selection-end-line="74" selection-end-column="14" /> + <state relative-caret-position="342"> + <caret line="211" column="97" selection-start-line="211" selection-start-column="97" selection-end-line="211" selection-end-column="97" /> </state> </provider> </entry> diff --git a/Vector.c b/Vector.c index bf527d0198cd60f0bd1839bf680a0b4b1e8c3131..1e12cafb9a01d9239504509c40a0303cc08bd7c6 100644 --- a/Vector.c +++ b/Vector.c @@ -24,7 +24,9 @@ vec *new_vec(double x, double y){ vec *add_vec(const vec *const v1, const vec *const v2){ + //Création d'un vecteur nul vec *add_vec = new_vec(0.0,0.0); + //Addition des x et des y faite dans le nouveau vecteur add_vec->x = v1->x + v2->x; add_vec->y = v1->y + v2->y; @@ -33,7 +35,10 @@ vec *add_vec(const vec *const v1, const vec *const v2){ } vec *sub_vec(const vec *const v1, const vec *const v2){ + + //Création d'un vecteur nul vec *sub_vec = new_vec(0.0,0.0); + //Soustraction des x et des y dans le nouveau vecteur sub_vec->x = v1->x - v2->x; sub_vec->y = v1->y - v2->y; @@ -42,8 +47,9 @@ vec *sub_vec(const vec *const v1, const vec *const v2){ } vec *mul_vec(double alpha, const vec *const v2) { - + //Création d'un vecteur nul vec *mul_vec = new_vec(0.0,0.0); + //Multiplication du x et du y par le scalaire dans le nouveau vecteur mul_vec->x = alpha * v2->x; mul_vec->y = alpha * v2->y; @@ -53,6 +59,7 @@ vec *mul_vec(double alpha, const vec *const v2) { double norm(const vec *const v1){ + //La norme correspond a la racine carré de (x^2 + y^2), ici on fait puissance 1/2 qui est équivalent à racine carrée double norm = pow((pow(v1->x,2.0) + pow(v1->y,2.0)),0.5); return norm; @@ -61,6 +68,7 @@ double norm(const vec *const v1){ double distance(const vec *const v1, const vec *const v2){ + //La distance correspond à la racine carré de (x2 - x1)^2 + (y2 -y1)^2 double dist = pow(pow((v2->x-v1->x),2.0) + pow((v2->y-v1->y),2.0),0.5); return dist; @@ -77,31 +85,37 @@ void print_vec(const vec *const v){ } - +//FONCTION TEST// int Test_new_vec(){ - + //Vecteur quelconque vec *vector = new_vec(2.0,3.1); + //Vérification des valeurs attribuées if(vector->x == 2.0 && vector->y == 3.1){ printf("Test_new_vec IS OK\n"); } else{ printf("Test_new_vec has an ERROR\n"); } + //Libération de la mémoire free(vector); } int Test_add_vec(){ + //2 Vecteur quelconque vec *v1 = new_vec(2.5,3.2); vec *v2 = new_vec(4.6,1.5); + //Addition des 2 vecteurs dans un nouveau vec *v3 = add_vec(v1,v2); + //Vérification des additions if(v3->x == 7.1 && v3->y == 4.7){ printf("Test_add_vec IS OK\n"); } else { printf("Test_add_vec has an ERROR\n"); } + //Libération de la mémoire free(v1); free(v2); free(v3); @@ -109,11 +123,13 @@ int Test_add_vec(){ int Test_sub_vec(){ + //2 Vecteur quelconque vec *v1 = new_vec(2.5,3.2); vec *v2 = new_vec(4.6,1.5); + //Soustraction des 2 vecteurs dans un nouveau vec *v3 = sub_vec(v1,v2); - + //Vérification des soustractions if(v3->x == (v1->x-v2->x) && v3->y == (v1->y-v2->y)){ printf("Test_sub_vec IS OK\n"); } @@ -121,6 +137,7 @@ int Test_sub_vec(){ printf("Test_sub_vec has an ERROR\n"); } + //Libération de la mémoire free(v1); free(v2); free(v3); @@ -128,51 +145,59 @@ int Test_sub_vec(){ int Test_mul_vec(){ + //Vecteur quelconque vec *mul= new_vec(2.5,5.0); + //Utilisation de la multiplication de vecteur par 2 mul = mul_vec(2,mul); - + //Vérification des valeurs rendu if(mul->x == 5.0 && mul->y == 10.0){ printf("Test_mul_vec IS OK\n"); } else{ printf("Test_mul_vec has an ERROR\n"); } + //Libération de la mémoire free(mul); } int Test_norm(){ - + //Vecteur quelconque vec *v1 = new_vec(8,6); + //Calcul de la norme double test = norm(v1); - + //Vérification de la valeur attendu if(test == 10){ printf("Test_norm IS OK\n"); } else{ printf("Test_norm has an ERROR\n"); } + //Libération de la mémoire free(v1); } int Test_distance(){ + //2 Vecteur quelconque vec *v1 = new_vec(1.0,1.0); vec *v2 = new_vec(2.0,1.0); - + //Calcul de la distance double test = distance(v1,v2); - + //Vérification de la valeur attendu if(test == 1.0){ printf("Test_distance IS OK\n"); } else{ printf("Test_distance has an ERROR\n"); } + //Libération de la mémoire free(v1); free(v2); } +//Fonction regroupant tout les tests int main_tests(){ Test_new_vec(); @@ -184,7 +209,7 @@ int main_tests(){ } - +//On peut choisir de faire les tests ou d'afficher un vecteur quelconque si on lance le programme int main(int argc, char *argv[]){ if(argc == 2) { if (strcmp(argv[1], "test") == 0) {