From 5a4792dbe837d3f3a72b3ac1ebc04c2254ba86a8 Mon Sep 17 00:00:00 2001 From: j-twite <jonathan.twite@student.uclouvain.be> Date: Mon, 27 Apr 2020 17:04:21 +0200 Subject: [PATCH] first project version's submission --- Factor.h | 7 ++++--- Makefile | 8 ++++---- README.md | 41 +++++++++++++++++++++++++++++++++++++++++ Test.c | 9 ++++++--- prime.c | 8 ++++---- 5 files changed, 59 insertions(+), 14 deletions(-) diff --git a/Factor.h b/Factor.h index ebb5d7a..3bc29f1 100644 --- a/Factor.h +++ b/Factor.h @@ -12,7 +12,7 @@ void primeFactors(struct dblist *l,int n){// prends un fichier et écrit un enti int count1=0; int count2=0; - + int x = n; PushBack(l,n); while (n%2 == 0) { @@ -20,7 +20,8 @@ void primeFactors(struct dblist *l,int n){// prends un fichier et écrit un enti n = n/2; count1+=1; } - for (int i = 3; i*i <= n; i = i+2) + int i; + for (i = 3; i*i <= n; i = i+2) { while (n%i == 0){ @@ -30,7 +31,7 @@ void primeFactors(struct dblist *l,int n){// prends un fichier et écrit un enti } count2=0; } - if (n > 2) + if (n > 2 && n != x) PushBack(l,n); diff --git a/Makefile b/Makefile index 2df1df3..62f7be5 100644 --- a/Makefile +++ b/Makefile @@ -10,8 +10,9 @@ fact: prime.c # make test compile votre programme \ et exécute les tests unitaires. -test: #UnitTestFile - #make fact +test: Test.c + gcc -o test Test.c -lcunit + ./test #./UnitTestFile # clean the file directory, delete: \ @@ -21,5 +22,4 @@ test: #UnitTestFile clean: fact rm -rf *o fact rm -rf *o test - - + rm -rf *o CUnitAutomated-Results.xml diff --git a/README.md b/README.md index a1c6c21..0c04d53 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,43 @@ # Projet_Q4_Groupe_O4 + +Description des fichiers: + +@Factor.h +Un file header qui reprend la fonction de factorisation + +@Fonction_liste.h +Un file header qui reprend toutes les fonctions liées aux liste chaînées + +@prime.c +Le code source à compiler pour obtenir le programme + +@Test.c +Un fichier qui reprend des test unitaires du programme + +@Makefile +Le fichier reprenant les commandes à exécuter pour lancer le code de façon plus agréable +___________________________ + +Pour lancer le code: + +1) télécharger le projet + +2) extraire le fichier + +3) ouvrir le dossier qui contient le fichier via le terminal + +4) entrer la commande: + +- make fact: produit l'exécutable fact qui contient le programme. + +- make test: compile le programme et exécute les tests unitaires. + +- make clean: nettoie le dossier: supprime l'exécutable fact s'il est présent ainsi que les fichiers auxiliaires produits durant la compilation de fact et des tests. + +- ./fact -N x fInput fOutput: lance le programme exécutable fact qui factorisera les nombres présent dans le fichier fInput et retournera en output les résultats dans le fichier fOutput. +fInput et fOutput correspondent respectivement aux noms complets des fichiers input et output. +x correspond au nombre de threads. + +NB: malheureusement nous ne sommes que 4 à travailler sur ce groupe et aucun de nous 4 n'a su encore se familiariser avec les threads. + diff --git a/Test.c b/Test.c index fd28a9a..717518c 100644 --- a/Test.c +++ b/Test.c @@ -10,7 +10,7 @@ #include "Fonction_liste.h" int entier(int n){ // fonction qui retourne le l'entier via la fonction primeFactor(...) - struct dblist *Maliste; + struct dblist *Maliste = malloc(sizeof(struct dblist)); Init(Maliste); primeFactors(Maliste,666343); struct elem *runner; @@ -18,10 +18,11 @@ int entier(int n){ // fonction qui retourne le l'entier via la fonction primeFac int a; a=runner->value; Clear(Maliste); + free(Maliste); return a; } int diviseur1(int n){ // fonction qui retourne le l'entier via la fonction primeFactor(...) - struct dblist *Maliste; + struct dblist *Maliste = malloc(sizeof(struct dblist)); Init(Maliste); primeFactors(Maliste,666343); struct elem *runner; @@ -29,10 +30,11 @@ int diviseur1(int n){ // fonction qui retourne le l'entier via la fonction prime int a; a=runner->value; Clear(Maliste); + free(Maliste); return a; } int diviseur2(int n){ // fonction qui retourne le l'entier via la fonction primeFactor(...) - struct dblist *Maliste; + struct dblist *Maliste = malloc(sizeof(struct dblist)); Init(Maliste); primeFactors(Maliste,666343); struct elem *runner; @@ -40,6 +42,7 @@ int diviseur2(int n){ // fonction qui retourne le l'entier via la fonction prime int a; a=runner->value; Clear(Maliste); + free(Maliste); return a; } diff --git a/prime.c b/prime.c index f13d894..b0af4af 100644 --- a/prime.c +++ b/prime.c @@ -8,10 +8,10 @@ int main(int argc, char *argv[]) { - printf("argv[1]: %s\n", argv[1]); // argv[1] = input file path - printf("argv[2]: %s\n", argv[2]); // argv[2] = output file path - FILE *f_in = fopen(argv[1], "r"); - FILE *f_out = fopen(argv[2], "w"); + printf("argv[4] (fileinput): %s\n", argv[3]); // argv[1] = input file path + printf("argv[5] (fileoutput): %s\n", argv[4]); // argv[2] = output file path + FILE *f_in = fopen(argv[3], "r"); + FILE *f_out = fopen(argv[4], "w"); if (f_in == NULL) exit(1); if (f_out == NULL) exit(1); -- GitLab