From 95e84afc9906dcf1f1bb212ddc3451a5a6fa1e92 Mon Sep 17 00:00:00 2001 From: "antoine.perederii" Date: Fri, 9 Dec 2022 11:54:34 +0100 Subject: [PATCH] ajout du tp14 et du tp13 --- Algo/tp/tp13/exe | Bin 21888 -> 21888 bytes Algo/tp/tp13/joresult.don | 124551 +++++++++++++++++++++++++++++++++ Algo/tp/tp13/joresult1.don | 124558 ++++++++++++++++++++++++++++++++++ Algo/tp/tp13/tp13.c | 22 +- Algo/tp/tp14/exe | Bin 0 -> 17912 bytes Algo/tp/tp14/matieres.don | 6 + Algo/tp/tp14/matieres.txt | 6 + Algo/tp/tp14/testtp14.c | 7 + Algo/tp/tp14/tp14.c | 227 + Algo/tp/tp14/tp14.h | 30 + 10 files changed, 249398 insertions(+), 9 deletions(-) create mode 100644 Algo/tp/tp13/joresult1.don create mode 100755 Algo/tp/tp14/exe create mode 100644 Algo/tp/tp14/matieres.don create mode 100644 Algo/tp/tp14/matieres.txt create mode 100644 Algo/tp/tp14/testtp14.c create mode 100644 Algo/tp/tp14/tp14.c create mode 100644 Algo/tp/tp14/tp14.h diff --git a/Algo/tp/tp13/exe b/Algo/tp/tp13/exe index e7787b4abb5e03152616a26026483847c94e080b..0ade2e4a0c4929c4eee8c9a15f510ac33bbb3500 100755 GIT binary patch delta 981 zcmZ9Le@IhN6vywqN^NUxQ!}yB_m+lQ`I_74mn@w>XDm_6eo>K{q#+qm5t&*nqotGT zQbZ7xMFjds@S>#1BB9KRN}`{nmT6O0DP%0NPG_?Wym0U5+;hJ7obUVN9cZKn8tD}U zRmJOwf5q!~FqKrV0>`ee0{L><5)_*-b{!`VXEU2oN<;I@r9y|4FO(ieK3?7!V1 zyV-J$azI0f%{A4bkrRW07#)#UgouIED{l|G96;yEVKZMcx{`m5fNI-8&y`LsifeZ0 zhoI%@PfBdg`)WO_XeFqqvHZdFd!#|(C#2T z_MlZOBopfzyUQX-gjiQ+IbT@wvz#N=RaWO{zReY{!}Lmf+%KEMqi}}|fvnbl)5tp% zB0XV9q6s|75X(ypMGF$7T{}y~;-Zp*?OTgQQDu}wOcaY-N{h-xvZs94&SJ5sq`Y*m zxKt!_w(xd?R840FBwoeO55?{61RxaMb^*j9y~wASf7cC=jQ7vT&B%)P0EdwM$cxDO z9)LDv$VUJV(uq_vLI61*nbiwmM>ZkLklH?gI;86p7@-M+E;qm<+DXGy8P=0|zd2QT6{EF- z094M^&r5S|$@kc}99R z^@+D-WU~$;-^h?CyCcX0nb(wzYI#Ghq>2`OMhHRGo7@b1s?S@X{Qv*0%UcxOoiHZ( LM=z5b@;ccc@H%!z delta 1322 zcmZWpe@s(X7`^uvCuK-mC+i$YUtvaIw6w1{lW9i_1)i=r#UX5&%UtOu8@5}aL`YaQ zz@*k@=#2^4A7fGfm|=-ao-;(9Tf%-O%d-8$bO|Wia0TjcLlW4S-@aF*7`@5sx%WHg z-gCbD+8!LB2M6dUsWh!xM-ro2$5&Hxnq$S{(y@YXqnC9(*2QHK`C4{y&7&RtMHg*H zpDpa39JIBKy^}o>IxEN6whVQemJlhr>Xb&_tkW@iTdsaYNTCa|PydmM7RvgppBb&; z)9WC#OF9(4LKSuQjynLCMKqGa-^5nl1_)QgJ3Hb;({l+0k=poOO?X%lL}mf*ueHtt zNKyL{>?M}@*Moc=?m_-I@`Fl4F(HI1Jhm9ErSR9t^(Q$mQWIB|I8pntWOe#hVuK~Q z;r%34k~k~sR;cI+MG*-uWmXbD`H#|4EYhtgI_GGxDpK)qOzM*&U0*4^^BZd{p#y*8 z?#?eQQ|V}{$FpO32}gT&(x+@O!gA)^By|`m&G|$-Tl|`?$6$H+oTf{S%SiQ7qzlSb zhksC#l_ruYm+d77O!wdF{LF(ld2<0^Dy4Ud_DYdGbKebV48&RIj@qG!5a;f#;bCX( z*6^(Jd1rW`R*IT#VR@Ik;6JG|o*J9^Q=T%+W*oPaa)%|Kziw&Z|5{9;-Tq*cx82n0 z4>k+?{SA$;HF^U=&?mgLx2;(y74rSXz5?NCfvoo^ua1xkUrWH-E;M-spMSs55L^@n zyq`=D*{63*2;19MAogw%7c>KPWMqdz(N<;TJ6nYdBnx)!&4vjML z=^F(g_$}?v*Q3q5lw#pe2f^10ep{GH-QHrJ{1Shst9@YCV&O8ej1=2aS-uC ze$~2xeKE?JXr{f~DsEU?kGWGZ=hDc=$xHZbl5hU#;}Ex05jM%ab{@WW#y|Lk~&qY8#I08-AFE^T2ME~50#XwFX2p!?NQk(oJ-{s z_D#%XlyjfSNI~RcnVI(Ry=8jl5asr=QOdS#b#m6wfy8xbDGPDjyO>D%g#!Am>X+~)yscsFVt*W?NELeIF^v8pays, S[i]->pays) < 0) + if(strcmp(R[i]->pays, S[j]->pays) < 0) { tpays[k] = R[i]; i++; @@ -247,18 +247,22 @@ void sauvegarde(Pays *tpays[], int nb) void global(void) { - Pays *tpays[50]; - int nb, trouve, pos; + Pays *tpays[130000]; + int nb, trouve, pos,choix; char pays[20], rep; - nb = chargeResults(tpays, 50); + nb = chargeResults(tpays, 130000); if(nb < 0) return; afficheTab(tpays, nb); - //triEchange(tpays, nb); - triFusion(tpays, nb); + printf("1.tri echange \n2. trie dico \n"); + printf("votre choix : "); + scanf("%d",&choix); + if(choix == 1) + triEchange(tpays, nb); + else triFusion(tpays, nb); printf("\n--------- tableau après tri ---------\n"); afficheTab(tpays, nb); - printf("Voulez-vous modifier un pays ? (o/n) : "); + /*printf("Voulez-vous modifier un pays ? (o/n) : "); scanf("%c", &rep); while(rep == 'o' || rep == 'O') { @@ -276,5 +280,5 @@ void global(void) if(nb < 0) return; afficheTab(tpays, nb); - sauvegarde(tpays, nb); + sauvegarde(tpays, nb);*/ } \ No newline at end of file diff --git a/Algo/tp/tp14/exe b/Algo/tp/tp14/exe new file mode 100755 index 0000000000000000000000000000000000000000..207f0b9b7659b3e9619fc8a372ac9423a5d185ad GIT binary patch literal 17912 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 literal 0 HcmV?d00001 diff --git a/Algo/tp/tp14/matieres.don b/Algo/tp/tp14/matieres.don new file mode 100644 index 0000000..1c70f77 --- /dev/null +++ b/Algo/tp/tp14/matieres.don @@ -0,0 +1,6 @@ +asci1 4 analyse et conception +algo1 4 algoruthmique période 1 +algo2 4 algorithmique période 2 +based 4 base de données +maths 2 mathématiques +organ 2 organisation diff --git a/Algo/tp/tp14/matieres.txt b/Algo/tp/tp14/matieres.txt new file mode 100644 index 0000000..b6af203 --- /dev/null +++ b/Algo/tp/tp14/matieres.txt @@ -0,0 +1,6 @@ +algo 6 algo +algo1 4 algoruthmique période 1 +asci1 4 analyse et conception +based 4 base de données +maths 2 mathématiques +organ 2 organisation diff --git a/Algo/tp/tp14/testtp14.c b/Algo/tp/tp14/testtp14.c new file mode 100644 index 0000000..dad26b6 --- /dev/null +++ b/Algo/tp/tp14/testtp14.c @@ -0,0 +1,7 @@ +#include "tp14.h" + +int main(void) +{ + global(); + return 0; +} \ No newline at end of file diff --git a/Algo/tp/tp14/tp14.c b/Algo/tp/tp14/tp14.c new file mode 100644 index 0000000..89e79b4 --- /dev/null +++ b/Algo/tp/tp14/tp14.c @@ -0,0 +1,227 @@ +#include "tp14.h" + +Mat lireMat(FILE *flot) +{ + Mat x; + fscanf(flot, "%s\t%d\t", x.code, &x.coef); + fgets(x.design, 32, flot); + x.design[strlen(x.design)-1] = '\0'; + return x; +} + +void afficherMat(Mat x) +{ + printf("%s\t%d\t%s\n", x.code, x.coef, x.design); +} + +Liste listenouv(void) +{ + Liste l = NULL; + return l; +} + +Liste insererEnTete(Liste l, Mat x) +{ + Maillon *m; + m = (Maillon *)malloc(sizeof(Maillon)); + if(m == NULL) + { + printf("Erreur d'allocation mémoire"); + exit(1); + } + strcpy(m->v.code, x.code); + m->v.coef = x.coef; + strcpy(m->v.design, x.design); + m->suiv = l; + return m; +} + +Liste inserer(Liste l, Mat x) +{ + if(l == NULL) + return insererEnTete(l, x); + if(strcmp(l->v.code, x.code) > 0) + return insererEnTete(l, x); + if(strcmp(x.code, l->v.code) == 0) + return l; + l->suiv = inserer(l->suiv, x); + return l; +} + +Liste supprimerEnTete(Liste l) +{ + Maillon *aux; + if(l == NULL) + { + printf("Opération interdite !!!\n"); + exit(1); + } + aux = l; + l = l->suiv; + free(aux); + return l; +} + +Liste supprimer(Liste l, Mat x) +{ + if(l == NULL) + return l; + if(strcmp(l->v.code, x.code) > 0) + return l; + if(strcmp(x.code, l->v.code) == 0) + return supprimerEnTete(l); + l->suiv = supprimer(l->suiv, x); + return l; +} + +Mat Tete(Liste l) +{ + if(l == NULL) + { + printf("Opération à ne pas faire si la liste est vide !!!\n"); + exit(1); + } + return l->v; +} + +bool vide(Liste l) +{ + return l == NULL; +} + +void afficher(Liste l) +{ + printf("\n"); + while(! vide(l)) + { + afficherMat(Tete(l)); + l = l->suiv; + } + printf("\n"); +} + +bool rechercher(Liste l, Mat x) +{ + if(vide(l)) + return false; + if(strcmp(l->v.code, x.code) > 0) + return false; + if(strcmp(x.code,l->v.code) == 0) + return true; + return rechercher(l->suiv, x); +} + +int longueur(Liste l) +{ + int cpt = 0; + while(! vide(l)) + { + cpt++; + l = l->suiv; + } + return cpt; +} + +Liste charger(char *nomFichier) +{ + FILE *flot; + Mat x; + Liste l = listenouv(); + flot = fopen(nomFichier, "r"); + if(flot == NULL) + { + printf("Erreur d'ouverture du fichier !!!\n"); + exit(1); + } + x = lireMat(flot); + while(!feof(flot)) + { + l = inserer(l, x); + x = lireMat(flot); + } + fclose(flot); + return l; +} + +void sauv(Liste l, char *nomFichier) +{ + FILE *flot; + flot = fopen(nomFichier, "w"); + if(flot == NULL) + { + printf("Erreur d'ouverture du fichier !!!\n"); + exit(1); + } + while(! vide(l)) + { + fprintf(flot, "%s\t%d\t%s\n", l->v.code, l->v.coef, l->v.design); + l = l->suiv; + } + fclose(flot); +} + +int menu(void) +{ + int choix; + printf("1. Inserer un élément dans la liste\n"); + printf("2. Supprimer un élément de la liste\n"); + printf("3. Afficher la liste\n"); + printf("4. Rechercher un élément dans la liste\n"); + printf("5. Afficher la longueur de la liste\n"); + printf("6. Quitter\n"); + printf("Votre choix : "); + scanf("%d", &choix); + return choix; +} + +void global(void) +{ + Liste l; + Mat x; + char code[6], design[32]; + int choix, coef; + char nomFichier[32]; + + l = charger("matieres.don"); + choix = menu(); + while (choix != 6) + { + if(choix == 1) + { + printf("\nEntrer le code de la matière : "); + scanf("%s", &code); + printf("Entrer le coefficient de la matière : "); + scanf("%d", &coef); + printf("Entrer la désignation de la matière : "); + scanf("%s", &design); + printf("\n"); + strcpy(x.code, code); + x.coef = coef; + strcpy(x.design, design); + l = inserer(l, x); + } + if(choix == 2) + { + printf("\nEntrer le code de la matière à supprimer : "); + scanf("%s", &code); + strcpy(x.code, code); + l = supprimer(l, x); + } + if(choix == 3) + afficher(l); + if(choix == 4) + { + printf("\nEntrer le code de la matière à rechercher : "); + scanf("%s", &code); + strcpy(x.code, code); + if(rechercher(l, x) == true) + printf("La matière est dans la liste\n\n"); + else + printf("La matière n'est pas dans la liste\n\n"); + } + if(choix == 5) + printf("\nLa longueur de la liste est : %d\n\n", longueur(l)); + choix = menu(); + } + sauv(l, "matieres.txt"); +} \ No newline at end of file diff --git a/Algo/tp/tp14/tp14.h b/Algo/tp/tp14/tp14.h new file mode 100644 index 0000000..3e0cfec --- /dev/null +++ b/Algo/tp/tp14/tp14.h @@ -0,0 +1,30 @@ +#include +#include +#include +#include + +typedef struct { + char code [6]; + int coef; + char design[32]; +} Mat; + +typedef struct maillon { + Mat v; + struct maillon *suiv; +} Maillon, *Liste; + +Liste listenouv(void); +Liste insererEnTete(Liste l, Mat x); +Liste inserer(Liste l, Mat x); +Liste supprimerEnTete(Liste l); +Liste supprimer(Liste l, Mat x); +void afficher(Liste l); +Mat Tete(Liste l); +bool vide(Liste l); +bool rechercher(Liste l, Mat x); +int longueur(Liste l); +Liste charger(char *nomFichier); +void sauv(Liste l, char *nomFichier); +int menu(void); +void global(void); \ No newline at end of file