Commit 5a4792db authored by Jonathan Twite's avatar Jonathan Twite

first project version's submission

parent 3552d71d
Pipeline #6815 passed with stage
in 0 seconds
......@@ -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);
......
......@@ -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
# 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.
......@@ -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;
}
......
......@@ -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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment