diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 0d5d0a7d29591a87af2d2aac3df4f1377ca96b1a..083493963b5d8938ce40c5bb6034623460030783 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -10,7 +10,10 @@ </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" /> @@ -20,20 +23,38 @@ </component> <component name="FileEditorManager"> <leaf> - <file pinned="false" current-in-tab="true"> + <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/Vector.c"> <provider selected="true" editor-type-id="text-editor"> - <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 relative-caret-position="920"> + <caret line="210" lean-forward="true" selection-start-line="210" selection-end-line="210" /> </state> </provider> </entry> </file> <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/Vector.h"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="85"> + <caret line="5" selection-start-line="5" selection-end-line="5" selection-end-column="33" /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/Box.c"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="391"> - <caret line="23" selection-start-line="23" selection-end-line="23" selection-end-column="34" /> + <caret line="56" column="33" selection-start-line="56" selection-start-column="33" selection-end-line="56" selection-end-column="33" /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/Box.h"> + <provider selected="true" editor-type-id="text-editor"> + <state> + <caret column="18" selection-start-column="18" selection-end-column="18" /> </state> </provider> </entry> @@ -41,8 +62,8 @@ <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/makefile"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="51"> - <caret line="3" column="30" selection-start-line="3" selection-start-column="30" selection-end-line="3" selection-end-column="30" /> + <state> + <caret column="15" selection-start-column="15" selection-end-column="15" /> </state> </provider> </entry> @@ -59,11 +80,13 @@ <option value="$PROJECT_DIR$/Vector_Test.h" /> <option value="$PROJECT_DIR$/Vector_Test.c" /> <option value="$PROJECT_DIR$/makefile" /> + <option value="$PROJECT_DIR$/Box.h" /> <option value="$PROJECT_DIR$/Vector.c" /> + <option value="$PROJECT_DIR$/Box.c" /> </list> </option> </component> - <component name="ProjectFrameBounds" extendedState="7"> + <component name="ProjectFrameBounds" extendedState="6"> <option name="x" value="848" /> <option name="y" value="317" /> <option name="width" value="1050" /> @@ -115,12 +138,12 @@ <option name="number" value="Default" /> <option name="presentableId" value="Default" /> <updated>1559227081243</updated> - <workItem from="1559227084365" duration="16429000" /> + <workItem from="1559227084365" duration="25870000" /> </task> <servers /> </component> <component name="TimeTrackingManager"> - <option name="totallyTimeSpent" value="16429000" /> + <option name="totallyTimeSpent" value="25870000" /> </component> <component name="ToolWindowManager"> <frame x="-7" y="-7" width="1550" height="838" extended-state="6" /> @@ -181,22 +204,36 @@ </entry> <entry file="file://$PROJECT_DIR$/makefile"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="51"> - <caret line="3" column="30" selection-start-line="3" selection-start-column="30" selection-end-line="3" selection-end-column="30" /> + <state> + <caret column="15" selection-start-column="15" selection-end-column="15" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/Vector.h"> + <entry file="file://$PROJECT_DIR$/Box.h"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="391"> - <caret line="23" selection-start-line="23" selection-end-line="23" selection-end-column="34" /> + <state> + <caret column="18" selection-start-column="18" selection-end-column="18" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/Vector.c"> <provider selected="true" editor-type-id="text-editor"> - <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 relative-caret-position="920"> + <caret line="210" lean-forward="true" selection-start-line="210" selection-end-line="210" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/Vector.h"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="85"> + <caret line="5" selection-start-line="5" selection-end-line="5" selection-end-column="33" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/Box.c"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="391"> + <caret line="56" column="33" selection-start-line="56" selection-start-column="33" selection-end-line="56" selection-end-column="33" /> </state> </provider> </entry> diff --git a/Box b/Box new file mode 100644 index 0000000000000000000000000000000000000000..e7a51acc7eb153c6786d6dc8f969c37bd5a9fca1 Binary files /dev/null and b/Box differ diff --git a/Box.c b/Box.c new file mode 100644 index 0000000000000000000000000000000000000000..503aa7119eeee49e090504bbfc9f3db50334723a --- /dev/null +++ b/Box.c @@ -0,0 +1,90 @@ +#include <stdio.h> +#include <stdlib.h> +#include <stdbool.h> +#include "Box.h" +#include <math.h> + +box new_box(double x0, double x1, double y0, double y1){ + + box new_box; + //On vérifie que l'allocation est bien faite + if (new_vec == NULL){ + exit(1); + } + //Attribution des valeurs + new_box.x0 = x0; + new_box.y0 = y0; + new_box.x1 = x1; + new_box.y1 = y1; + + return new_box; + +} + +bool is_inside(box b, vec *v){ + + //Vérification des valeurs du vecteur dans les intervalles de la box + if(v->x >= b.x0 && v->x <= b.x1 && v->y >= b.y0 && v->y <= b.y1){ + + return true; + } + else{ + return false; + } +} + + +//TEST FONCTIONS// + +int Test_new_box(){ + + box b = new_box(1.0,1.0,2.0,2.0); + if(b.x0 == 1.0 && b.x1 == 1.0 && b.y0 == 2.0 && b.y1 == 2.0){ + printf("Test_new_box IS OK\n"); + } + else{ + printf("Test_new_box has an ERROR\n"); + } +} + +int Test_is_inside(){ + + box b = new_box(-1.0,1.0,-2.0,2.0); + vec *v1 = new_vec(0.5,1.5); + vec *v2 = new_vec(1.0,2.5); + + bool test1 = is_inside(b,v1); + bool test2 = is_inside(b,v2); + + if(test1 && !test2){ + printf("Test_is_inside IS OK\n"); + } + else{ + printf("Test_is_inside has an ERROR\n"); + } + free(v1); + free(v2); +} + +int box_tests(){ + Test_new_box(); + Test_is_inside(); +} + +int main(int argc, char *argv[]){ + if(argc == 2) { + if (strcmp(argv[1], "box_test") == 0) { + box_tests(); + } + else if(strcmp(argv[1], "vector_test") == 0){ + vector_tests(); + vec *v = new_vec(1.0,2.0); + print_vec(v); + free(v); + } + } + else{ + + } + +} \ No newline at end of file diff --git a/Box.h b/Box.h new file mode 100644 index 0000000000000000000000000000000000000000..450d084c1b200103456bd7998049e5d99b0022e3 --- /dev/null +++ b/Box.h @@ -0,0 +1,20 @@ +#include "Vector.c" +typedef struct box { + double x0, x1, y0, y1; +} box; + +//Création d’une nouvelle box +box new_box(double x0, double x1, double y0, double y1); + +//Division d’une box en quatre parties égales +box *divide_in_four(box b); + +//Déterminer si une position est à l’intérieur de la box +bool is_inside(box b, vec *v); + +//Déterminer la taille maximale d’un des côtés de la box +double compute_length(box b); + +//Affiche la box +void print_box(box b); + diff --git a/Box.o b/Box.o new file mode 100644 index 0000000000000000000000000000000000000000..d0d6dd02196d093b5813914099b23515a7e1ea48 Binary files /dev/null and b/Box.o differ diff --git a/Vector b/Vector index 7bb7f35b4a87245360f4ca39e7dc53655bde6886..5baf464ab329f6ea248824298a294a82772035ee 100644 Binary files a/Vector and b/Vector differ diff --git a/Vector.c b/Vector.c index 1e12cafb9a01d9239504509c40a0303cc08bd7c6..e30a356da10e9b0f4d4b17303a0280fc2ba0cbd8 100644 --- a/Vector.c +++ b/Vector.c @@ -198,7 +198,7 @@ int Test_distance(){ } //Fonction regroupant tout les tests -int main_tests(){ +int vector_tests(){ Test_new_vec(); Test_add_vec(); @@ -209,19 +209,3 @@ 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) { - - main_tests(); - - } - } - else{ - vec *v = new_vec(1.0,2.0); - print_vec(v); - free(v); - } - -} diff --git a/Vector.o b/Vector.o index d777c6f61e9eff81b7c792df869df487af011a34..93485b83284c520123b61091cdd80eeb88f51f49 100644 Binary files a/Vector.o and b/Vector.o differ diff --git a/makefile b/makefile index cbd7c6aefc019d53cf6f4fa7d357a7d697321c33..22b7ef8031608242ab6ceaf151bcdf8ec5f2fd08 100644 --- a/makefile +++ b/makefile @@ -1,6 +1,10 @@ -All: Vector +All: Vector Box Vector: Vector.o gcc -o Vector Vector.o -lm Vector.o: Vector.c gcc -o Vector.o -c Vector.c +Box: Box.o + gcc -o Box Box.o -lm +Box.o: Box.c + gcc -o Box.o -c Box.c \ No newline at end of file