From dcc1a35324d63d559cf6dd1415ea7fd15b03a6e0 Mon Sep 17 00:00:00 2001 From: "thibaud.la_riviere-gillet" Date: Fri, 15 Dec 2023 14:17:33 +0100 Subject: [PATCH 1/3] add files --- files/devis.txt | 50 +++++++++++++++++++++++++++++++++++++++++ files/précédences.txt | 10 +++++++++ 2 files changed, 60 insertions(+) create mode 100644 files/devis.txt create mode 100644 files/précédences.txt diff --git a/files/devis.txt b/files/devis.txt new file mode 100644 index 0000000..9d9c56f --- /dev/null +++ b/files/devis.txt @@ -0,0 +1,50 @@ +Plomberie +Pros De L’eau +12, Av. la république – 63000 – Clermont-Ferrand +500000 +35 +25000 +Electricité +Electro Maître +50, zone industrielle sud – 15000 – Aurillac +450000 +60 +42000 +Plomberie +DolcéAqua +33, zone Industriel Aubière – 63170 – Aubière +450000 +40 +27000 +Sols +comusolisme +20, Boulevard Desaix – 63000 – Clermont-Ferrand +70000 +10 +10000 +Structure +Eiffage Construction Auvergne +300000 +40 +20000 +Peinture +Pingeon et Fils +52, Boulevard Lafayette – 63000 – Clermont-Ferrand +5000 +6 +4000 +Fondation +Léon Grosse +5, Rue Louis Blériot – 63000 – Clermont-Ferrand +60000 +42 +7000 +Murs +illiCO travaux +37, bis Avenue Marx Dormoy – 63000 – Clermont-Ferrand +Finitions +SGP finition +4, Rue de Chignat – 63000 – Clermont-Ferrand +100 +10 +5000 diff --git a/files/précédences.txt b/files/précédences.txt new file mode 100644 index 0000000..56cf03a --- /dev/null +++ b/files/précédences.txt @@ -0,0 +1,10 @@ +Fondation Structure +Structure Electricite +Structure Plomberie +Plomberie Murs +Electricite Menuiserie +Plomberie Sols +Murs Peinture +Peinture Finitions +Sols Finitions + From 855d6f4c270f6c44cb1377f27d8aaf5779be0fbd Mon Sep 17 00:00:00 2001 From: "thibaud.la_riviere-gillet" Date: Fri, 15 Dec 2023 14:59:01 +0100 Subject: [PATCH 2/3] fusion classique --- srcs/atomes.c | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 srcs/atomes.c diff --git a/srcs/atomes.c b/srcs/atomes.c new file mode 100644 index 0000000..cc0873e --- /dev/null +++ b/srcs/atomes.c @@ -0,0 +1,70 @@ + #include "../includes/ft.h" + +void fusion(int R[], int tR, int S, int tS, int T[]) +{ + int i; + int j; + int k; + int tlog; + + i = 0; + j = 0; + tlog = tR + tS; + while (i < tR && j <= tS) + { + if (R[i] < S[j]) + { + T[k] = R[i]; + i++; + } + else + { + t[k] = S[j]; + j++; + } + k++; + } + while (i < tR) + { + t[k] = R[i]; + i++; + k++; + } + while (j < tS) + { + T[k] = S[j]; + j++; + k++; + } +} + +void copy(int T[], int i, int j, int R[]) +{ + int k; + int i; + + i = 0; + for (k = i; i = 0; k < j; k++, i++) + R[i] = T[k]; +} + +void triFusion(int T[], int tlog) +{ + int *R; + int *S; + + if (tlog == 1) + return; + R = (int *)malloc(sizeof (int) * (tlog / 2)); + S = (int *)malloc(sizeof (int) * tlog - tlog/2); + if (!R || !S) + exit (1); + copy (T, 0, n/2, R); + copy (T, n/2, n, S); + triFusion (R, n/2); + triFusion (S, n - n/2, T); + fusion (R, n/2, S, n - n/2, T); + free (R); + free (S) +} + From 37da457cbceaa2af0f7751d6311c9fbcf628f2e8 Mon Sep 17 00:00:00 2001 From: "thibaud.la_riviere-gillet" Date: Fri, 15 Dec 2023 15:18:30 +0100 Subject: [PATCH 3/3] debut -> erreure de segmentation --- srcs/atomes.c | 44 ++++++++++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/srcs/atomes.c b/srcs/atomes.c index cc0873e..1a56f93 100644 --- a/srcs/atomes.c +++ b/srcs/atomes.c @@ -1,6 +1,6 @@ - #include "../includes/ft.h" +#include "../includes/" -void fusion(int R[], int tR, int S, int tS, int T[]) +void fusion(int R[], int tR, int S[], int tS, int T[]) { int i; int j; @@ -19,14 +19,14 @@ void fusion(int R[], int tR, int S, int tS, int T[]) } else { - t[k] = S[j]; + T[k] = S[j]; j++; } k++; } while (i < tR) { - t[k] = R[i]; + T[k] = R[i]; i++; k++; } @@ -41,11 +41,14 @@ void fusion(int R[], int tR, int S, int tS, int T[]) void copy(int T[], int i, int j, int R[]) { int k; - int i; - i = 0; - for (k = i; i = 0; k < j; k++, i++) - R[i] = T[k]; + k = 0; + while (i < j) + { + R[k] = T[i]; + i++; + k++; + } } void triFusion(int T[], int tlog) @@ -59,12 +62,25 @@ void triFusion(int T[], int tlog) S = (int *)malloc(sizeof (int) * tlog - tlog/2); if (!R || !S) exit (1); - copy (T, 0, n/2, R); - copy (T, n/2, n, S); - triFusion (R, n/2); - triFusion (S, n - n/2, T); - fusion (R, n/2, S, n - n/2, T); + copy (T, 0, tlog/2, R); + copy (T, tlog/2, tlog, S); + triFusion (R, tlog/2); + triFusion (S, tlog - tlog/2); + fusion (R, tlog/2, S, tlog - tlog/2, T); free (R); - free (S) + free (S); } + +int main (void) +{ + int tab[10] = {10, 0, 2, 15, 7, 5 ,68, 1, 7 ,8}; + int tlog = 10; + int i = 0; + + triFusion(tab, tlog); + while (i < tlog) + printf ("%d : ", tab[i++]); + printf ("\n"); + return (0); +}