From b5e3f853204a4963a6499da305397ae55b5b5457 Mon Sep 17 00:00:00 2001 From: "antoine.perederii" Date: Tue, 13 Dec 2022 19:49:41 +0100 Subject: [PATCH 1/3] jjj --- Algo/tp/tp11/exe | Bin 17304 -> 17440 bytes Algo/tp/tp11/testtp11.c | 55 ++++++++++++++++++++++++++++------- Algo/tp/tp11/tp11.c | 28 ++++++++++++++---- Algo/tp/tp11/tp11.h | 3 ++ BDD/tp/tp6/tp6.sql | 62 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 132 insertions(+), 16 deletions(-) diff --git a/Algo/tp/tp11/exe b/Algo/tp/tp11/exe index 29ae1430817cfd47692d25ed5af4d02025967e9e..30a639ff1e4f2ad215b210147ef8fade2082cf46 100755 GIT binary patch delta 4590 zcmZu#4^R}>8Qn??6OQIk`hlm&7C(IW>t!PVS7?$|2lcLQ?I) z5RzOd1@n^DOxvlNP8v;`KZ9dTCQY$gh>cB&X%mxX8k4cpOTm;xOwWXL`+M*0uEJ!Q z-S55c`~AM}d*6O<_m%?>iw7SO2Xf4NG6Z%wxDXERU-X-lcp{(0_rGsTZAs&kmNb$n zT2mJ$@#(@Oa+7FH*&^|26X_BkE=()tvzhWNR|{v!BI((zL+*^-A3r%!=*m;x`pCKW zcaJZe(@J8}{On}FM4Yo2yo+6vNugk&SZK)9ktk>#6;;!q<)kY@ldwXoA@0%?imWDs29=;I;rndnp9Hz z?0!b5*g@XR$gjI%<MCJ{bwjm>9waqA6tUlW4mw} zP87*vb5R7D{Cch+oS@NS=l-XvN}nsPM2De&&d~n}`d(KYsg*!PM`E35!KiDh*EPkE zJqB_B$gyV!2F{#vBd*dleh_{~Ttm1*oTddFalJur?uhGbf*_Dzn%nQ_X+lB_(c{I4 zfqH0?4A-+8BS3|bo;?`R<{#+^VMK4?NKXewoUs?9T&i<*;tKH~NzE+S+68XZHQDQ$ zWV!A{^YGPf`-ZO8elHX;C&s<*DJ*^{`mTZ%_D^R~5N9pmEC*%HCMPrJMV{86Zp4VQ z7;XbSHpOBjQ1o9g?sdm|Z{cCyqG5(Pw|n2D5YEx*s}1^dpp4z1>u)vmk8`)b#paJi zI=;p489k@CzV4L&fDD zx}H!9+B*mQu_O%gFyL)PN4%7yU$f$TiaioLhOyo?-Q%UoiCXgSdCMaIW9z^ocwt8n zopXJh`ydP!Fs=q!%z=PPcc z`UrIyOM_v|uM^f9go{^cDO{7B@H(Et-2I2pqwSOf!*z)RB5iqX@0Ax53a}VH#V;}Xh`)xds zzBU{>;ZUm*kMP!08?#NxbCq7##4w&ejX8_O7f5H$aH^b3HlBk^WfR1G>^i~1w|Z9KQ44nhz|~hzB^4lEQr0X@xBI? z!J@;__hN^U`Plp!C}9R_RctR{XHMbK{vZu3I5)5Fvwu{G!KV7?yH0m~^oq058J%(~ zeM?56-nf3zH%j+-a_pVUgMZKco9Qt*xu~u+5b!-9@Ak=o)|MUZKH2M&gT8xOe1T9< zUMUMDUXmm)Cr-I|uvxAXrBg@9Glf+VuYc!GUpqj)ps?N-l$&>X`~k>dYak^1y)gLO z!qn!`Omd6Ay}i}nF8hKZxg?k>d|TjVPY^y3^^PT;C7~t$-N+^=@A0<=;5pomEQ4~1 zS8n!1D6U3c*lG(bl2-~P-)k;uW+gDZ2IWAw<^1wHqHcc;>Kjm``J#a5iypvKU;sV@ zAP?2chBWLAEItb`1$8>?%dWS(x=r5)BpPq&6iDy{e$+Mf~V~b5?GH z_KRKr<&JW&!%jqNf#l66Mb^6ulM}d-f0Mu!e9!}XmmP=6A#07OkdLhe<`?l|rHA&3 zBuo&qtwtOo8*ByQQPO66*}O^r#^6Aqij&C|cKG+#`ZgiPUlG09u{6S0)+Uz%;o6&&Q`(sj89XGF#i zYC#g_3Zta3{MyHh?y3?4QJ~xnfzXpB`kWJiVdCbxDsJes{*Ge4il6|6}x z+^^|BvT*%Y4gZv;ug@bNR9F!?Ww|YPNXv$`Fo074nWY@meZz8_$D+Al+Z@(nvIbirDmcPfK(UF;`l0 zH)|QPO$h5f@JYE2;;gi6lQhrlK?Q4v7P0L{>PZk-=R@{r`hRFZJo(u1Q%!$dD=vGY z!tylL6Q?w7cR>hQHU`oVq+rHkjs-v-W)RQEl7mGLu{den`{mvXrb?ZA+QZ zv=gLlb)~V1_06o1S5`-o^(v5$S6j&D8Z&vOCWCa;lxFJxK+)yrv&pM9)>OUOu~omQ zSu4#pk(CasS>Lg`JWK9(*v#jPd2MysF!+k2Mnnf+b=p!&waBHUthO>mzZ(wHR$GI8 h^-^t3%C1sQkCUslm8nftd{%*oYnF>okhV1o{tr?4I9C7w delta 3261 zcmZuzeQZGSsRnm7oKr5-M7`qJg9&U0`Y6&VBbj zSFk3 z^_V^swh#5NiF%AtiCdq5K6hc zAB;dsT4~KhH;T7Gb?;OEGoeJc3Pu7MFza6qZ|e%F0orvon9*gxHeJ3HBXG-a)sbB) zN+btnb#}041fe~nrIASLk3|xNVggD$I2IEpdmWudX027z5t0gUAxn%yK=rmlV&Owy z=w7Q2{Q4hbNlCp8Uess9sNM&o4OvGGrbC7&4w)Z|AN3OQ?2w2>{L@W|^H0l(Pv!pW zGtn*0N&W9Ixtz?YR3UICgAm2~ICAEe6*n?V;0O+6^kY!B&|{Sc^&TewdZNduOf4(k z&tjhzi2l1(|LUC#)-1s_b3vnC_-83o&#GZH_x%Asn#f*ntK1*>oOMM`eAbgK4+ip3 zpIWOZN@@rGy{k9EdW)<2Y-AA&B!iK~#MzXhBP0=77>q0=-o?DX&n4s}8cFKhlA;Wq zJKc)0EBE1{XFbLEUfjuuyIz@39TsX8*jr~Y4ZG{+J>9iNWO&fJ#F~x-Zq>{ zv)<;clZ#i2FeMw5qCMYkxiz@hY|FC(@H+Y(|Ql(#ym9My< zd&3Zw4mq=++*yr%A<*tD9qV^CQrZFMN^0ZoJtorJ?%cYgz4Q4F=g&I3yLWYVJ3IFD zIGF_>vqie~?5SLUxAUf=WZ`o+is(a(A^sEfkz2TeIPOK!f&NUy98gdL>*_q6b*?)<*2`Aiv`O|h?Oky6){s+7_&nQYKPVig%HmcdjQGFO2 zW5uFwt+X2ch2!KbnA{G-B8o?5;UN@PAp7sL@PWGkV(tvX1{}`M!cO;t`WT99A?YsC z??-7n{Lx)x7(waOSLp39OrZG1S8&tq&`+UQ0XbzwZuTyVV6!)4f^<#NCUsIPP~}8> z544mO8A2$Xx(&~l6_}i8h~aSYHoR0;fDdaz8u9)Ws%q!pqq2GjGdttZtEqn*^%LjG7vvdZ|`>eW5(hC&d@L6OC{C*o9RYxY$1?~PvXcUIg zmP=wV>9?_>F8e)>^k;|`4^c<*$b<`A6)(}%@Op)f*5bbvKB=g{3M`ej!U^qzK#)oh zC4zl|a3%A8veHXKkf{8H^u8OUs-H{51-(@dmzW)#ptUC-g*@cd*|~l*T&r4zIgQoc zirNs@Y5%#*S6W8$MGQ^9Ma1YUfSuKzO%bsY>K;a)eqo*#DYgpUu+Y2NsmALm4&<27 z57^<;Y7f?8S?4V@2y&%xT0|#{WG6m&a-BEchWnXaRUAku?hQ7pVWDSRhh2W5A1&nL zHVz~#^cRGGROtVLXeNau6cP#nO~U``a#ay0>Ul%?V^O>Ip;|5oZG!N!jVn5Zemm+} zg8N&&NBGO4AOU2b(D#ZStIq*~O&Jh|sF+zyB={}rS)cAta1>~*O+SuS7lftdu8#%3 zMHHxYASLuy3dSC*Js>UX!H05WUq|=W&aE94k3KW@;QC2AHnqV?=>*V?UW<0ZG)zDk zwY?d<91YFThuR^b)zAr(8@V^o}hDBKCwz)a9A zy>5j1kjJELP&{D0p@*d<3h#tGmh?Gu@nXh-hP{>vG1AaH77hm~?z+BuuW@yVyRL>) r^)*JVhqZ90K8Ru4_AX;}4N_=a|O diff --git a/Algo/tp/tp11/testtp11.c b/Algo/tp/tp11/testtp11.c index 5b3d3e5..b3c6611 100644 --- a/Algo/tp/tp11/testtp11.c +++ b/Algo/tp/tp11/testtp11.c @@ -2,14 +2,22 @@ void testExercice1() { - int n = 4; - int result = nbSegments(n); - printf("Il y a %d segments\n", result); + int n; + while(1) + { + printf("Donnez le nombre de segments : "); + scanf("%d", &n); + if(n == 0) + break; + int result = nbSegments(n); + printf("Il y a %d segments\n", result); + } } void testExercice2Nb() { int tab[10] = {0, 2, 3, 4, 5, 8, 2, 25, 0, 2}, tab2[10] = {1, 2, 3, 4, 5, 8, 2, 25, 0, 2}; + int tab3[10] = {0, 2, 3, 4, 5, 8, 2, 25, 0, 2}; int n = 10, result, val = 2; result = sommeNentierT(tab, n); printf("La somme des entiers est %d\n", result); @@ -32,7 +40,7 @@ void testExercice2Nb() result = rechercheValMaxT(tab, n); printf("La valeur maximale est %d\n", result); printf("====================================\n"); - result = compare2T(tab, tab2, n); + result = compare2T(tab, tab3, n); printf("Les tableaux sont %s\n", result ? "identiques" : "different"); printf("====================================\n"); } @@ -40,31 +48,56 @@ void testExercice2Nb() void testExercice2Chaine() { - char tab1[10]="bonjour", tab2[10]="aurevoir"; + char tab1[10]="Bonjour", tab2[10]="aurevoir"; int n = 10, result; - char result2[10]; + char result2[20]; result = longueurChaine(tab1); printf("La longueur de la chaine est %d\n", result); printf("====================================\n"); result = copieChaine(tab1, tab2); - printf("La chaine copiee est %s\n", tab2); + printf("La chaine copiée est %s\n", tab2); printf("====================================\n"); result = concateneChaine(tab1, tab2, result2); printf("La chaine concatenee est %s\n", result2); printf("====================================\n"); result = compareChaine(tab1, tab2); - printf("Les chaines sont %s\n", result ? "identiques" : "different"); + if(result == 0) + printf("Les chaines sont differentes\n"); + else + printf("Les chaines sont identiques\n"); printf("====================================\n"); result = mirroirChaine(tab1, result2); printf("La chaine mirroir est %s\n", result2); printf("====================================\n"); } +void testExercice3Jeu() +{ + int n, i = 0, result; + bool tab[100]; + char rep; + printf("Donnez le nombre de cases : "); + scanf("%d", &n); + printf("Y-a-t-il des pions sur les %d cases ? (o/n) :", n); + scanf("%*c%c", &rep); + while(rep == 'o' || rep == 'O' && 0 < i < n) + { + printf("Donnez les numéro de la case (0-%d) : ", n); + scanf("%d", &i); + tab[i]=true; + printf("Y-a-t-il un pion sur la case (%d/%d) ? (o/n) : ", i, n); + scanf("%*c%c", &rep); + } + result = baguenaudier(n, tab); + printf("Le pion %d est le dernier\n", result); +} + int main(void) { - //testExercice1(); - //testExercice2Nb(); - testExercice2Chaine(); + // testExercice1(); + // testExercice2Nb(); + // testExercice2Chaine(); + testExercice3Jeu(); return 1; } diff --git a/Algo/tp/tp11/tp11.c b/Algo/tp/tp11/tp11.c index 93ccafd..08f6722 100644 --- a/Algo/tp/tp11/tp11.c +++ b/Algo/tp/tp11/tp11.c @@ -8,7 +8,7 @@ int nbSegments(int n) return (n-1) + nbSegments(n - 1); } -/* Exercice 2 */ +/* Exercice 2-a */ int sommeNentierT(int tab[], int n) { @@ -66,7 +66,7 @@ int rechercheValMaxT(int tab[], int n) return max; } -int compare2T(int tab1[], int tab2[], int n) //a revoir +int compare2T(int tab1[], int tab2[], int n) { if (n == 1) return tab1[0] == tab2[0]; @@ -75,6 +75,8 @@ int compare2T(int tab1[], int tab2[], int n) //a revoir return compare2T(tab1+1, tab2+1, n-1); } +// Exercice 2-b + int longueurChaine(char chaine[]) { if (chaine[0] == '\0') @@ -85,12 +87,15 @@ int longueurChaine(char chaine[]) int copieChaine(char chaine1[], char chaine2[]) { if (chaine1[0] == '\0') + { + chaine2[0] = '\0'; return 0; + } chaine2[0] = chaine1[0]; return 1 + copieChaine(chaine1+1, chaine2+1); } -int concateneChaine(char chaine1[], char chaine2[], char chaine3[]) +int concateneChaine(char chaine1[], char chaine2[], char chaine3[]) //a revoir { if (chaine1[0] == '\0') return copieChaine(chaine2, chaine3); @@ -98,12 +103,12 @@ int concateneChaine(char chaine1[], char chaine2[], char chaine3[]) return 1 + concateneChaine(chaine1+1, chaine2, chaine3+1); } -int compareChaine(char chaine1[], char chaine2[]) +int compareChaine(char chaine1[], char chaine2[]) //a revoir { if (chaine1[0] == '\0' && chaine2[0] == '\0') return 1; if (chaine1[0] == chaine2[0]) - return compareChaine(chaine1+1, chaine2+1); + return 1*(compareChaine(chaine1+1, chaine2+1)); return 0; } @@ -117,5 +122,18 @@ int mirroirChaine(char chaine1[], char chaine2[]) /* Exercice 3 */ +int baguenaudier(int n, bool tab[]) +{ + if (n == 1) + return 1; + if (tab[n] == 0) + { + tab[n] = 1; + return baguenaudier(n-1, tab); + } + tab[n] = 0; + return baguenaudier(n-1, tab); +} + /* Pour vider n, il faut vider n-2, on remet les n-2 en vide les n-2 de ce n */ /* Pour remplir n, il faut remplir n-2, on remplis n-1 vider n-2 et on remplie n-1 */ \ No newline at end of file diff --git a/Algo/tp/tp11/tp11.h b/Algo/tp/tp11/tp11.h index ffc8e8b..ef87a87 100644 --- a/Algo/tp/tp11/tp11.h +++ b/Algo/tp/tp11/tp11.h @@ -1,6 +1,7 @@ #include #include #include +#include int nbSegments(int n); int sommeNentierT(int tab[], int n); @@ -15,4 +16,6 @@ int copieChaine(char chaine1[], char chaine2[]); int concateneChaine(char chaine1[], char chaine2[], char chaine3[]); int compareChaine(char chaine1[], char chaine2[]); int mirroirChaine(char chaine1[], char chaine2[]); +int baguenaudier(int n, bool tab[]); +void testExercice3(); diff --git a/BDD/tp/tp6/tp6.sql b/BDD/tp/tp6/tp6.sql index 456b492..c7d659f 100755 --- a/BDD/tp/tp6/tp6.sql +++ b/BDD/tp/tp6/tp6.sql @@ -60,6 +60,7 @@ CREATE TABLE Fournir ( FOREIGN KEY (num_med) REFERENCES Medicament ); +<<<<<<< HEAD /* Q3 */ SELECT * FROM Medecin ORDER BY nom, prenom ASC; @@ -95,5 +96,66 @@ SELECT * FROM Medicament WHERE prix < 100 OR prix * 1.2 > 125; /* Q14 */ SELECT * FROM Medicament WHERE prix < 100 OR prix * 1.2 > 125 AND prix * 1.2 < 150; +======= +INSERT INTO Medecin VALUES (1, 'DUPONT', 'Jean'); +INSERT INTO Medecin VALUES (2, 'DURAND', 'Pierre'); +INSERT INTO Medecin VALUES (3, 'DUPOND', 'Paul'); +INSERT INTO Medecin VALUES (4, 'DUPUIS', 'Jacques'); +INSERT INTO Medecin VALUES (5, 'DUPONT', 'Pierre'); + +INSERT INTO Patient VALUES(1, 'Bertrand', 'François', 25); +INSERT INTO Patient VALUES(2, 'Diner', 'Jinette', 18); +INSERT INTO Patient VALUES(3, 'Bouhours', 'Patrick', 30); +INSERT INTO Patient VALUES(4, 'Framabour', 'Gerard', 28); +INSERT INTO Patient VALUES(5, 'Delobel', 'Matthieu', 50); +INSERT INTO Patient VALUES(6, 'Dufour', 'Jean', 15); +INSERT INTO Patient VALUES(7, 'Dufour', 'Pierre', 12); + +INSERT INTO Consultation VALUES('C1', '2015-01-01', '10:00', 1, 1); +INSERT INTO Consultation VALUES('C2', '2015-01-01', '10:00', 1, 2); +INSERT INTO Consultation VALUES('C3', '2015-01-01', '10:00', 2, 3); +INSERT INTO Consultation VALUES('C4', '2015-01-01', '10:00', 3, 4); +INSERT INTO Consultation VALUES('C5', '2015-01-01', '10:00', 2, 5); + +INSERT INTO Medicament VALUES(1, 'Aspirine', 10); +INSERT INTO Medicament VALUES(2, 'Paracétamol', 25); +INSERT INTO Medicament VALUES(3, 'Doliprane', 115); +INSERT INTO Medicament VALUES(4, 'Maxilase', 100); +INSERT INTO Medicament VALUES(5, 'Amoxiciline', 125); + +INSERT INTO Posologie VALUES(1, 1, 1, 'C1', 1); +INSERT INTO Posologie VALUES(2, 2, 0, 'C2', 2); +INSERT INTO Posologie VALUES(3, 3, 3, 'C3', 3); +INSERT INTO Posologie VALUES(4, 4, 4, 'C4', 4); +INSERT INTO Posologie VALUES(15, 5, 5, 'C5', 5); + +INSERT INTO Laboratoire VALUES(1, 'Laboratoire A', 1, 75001, 'Paris', 'France'); +INSERT INTO Laboratoire VALUES(2, 'Laboratoire B', 2, 75002, 'Paris', 'France'); +INSERT INTO Laboratoire VALUES(3, 'Laboratoire C', 3, 75003, 'Paris', 'France'); +INSERT INTO Laboratoire VALUES(4, 'Laboratoire D', 4, 69400, 'Lyon', 'France'); +INSERT INTO Laboratoire VALUES(5, 'Laboratoire E', 5, 15000, 'Aurillac', 'France'); +INSERT INTO Laboratoire VALUES(6, 'Laboratoire F', 6, NULL, 'Barcelone', 'Espagne'); +INSERT INTO Laboratoire VALUES(7, 'Laboratoire G', 7, 63500, 'Bioude', 'France'); + + +-- Question 3 +SELECT * FROM Medecin ORDER BY nom, prenom ASC; + +-- Question 4 +SELECT * FROM Patient WHERE age < 18 ORDER BY nom, prenom DESC; + +-- Question 5 +SELECT Consultation.* FROM Consultation JOIN Posologie ON Consultation.num_cons = Posologie.num_cons WHERE soir IS NOT NULL; + +-- Question 6 +SELECT Consultation.* FROM Consultation JOIN Posologie ON Consultation.num_cons = Posologie.num_cons WHERE matin > (midi + soir); + +-- Question 7 +SELECT * FROM Laboratoire WHERE pays = 'France' AND code_postal IS NOT NULL; + +-- Question 8 +-- Requette sql pour afficher les laboratoires qui ne sont pas en France ou dont le code postal ne commence pas par 63 +SELECT * FROM Laboratoire WHERE pays != 'France' OR code_postal NOT LIKE '63%'; +>>>>>>> c75ba3b (modif du tp11 d'algo et du tp6 de BDD) \d From 557167af37acd1b961256aebaf3d4fada742ad97 Mon Sep 17 00:00:00 2001 From: "antoine.perederii" Date: Thu, 22 Dec 2022 17:57:51 +0100 Subject: [PATCH 2/3] ajout des tp 6,8,9 de BDD --- BDD/tp/tp6/tp6.sql | 60 ++++++----------- BDD/tp/tp8/tp8.sql | 21 +++--- BDD/tp/tp9/tp9.sql | 165 ++++++++++----------------------------------- 3 files changed, 65 insertions(+), 181 deletions(-) diff --git a/BDD/tp/tp6/tp6.sql b/BDD/tp/tp6/tp6.sql index c7d659f..70653b4 100755 --- a/BDD/tp/tp6/tp6.sql +++ b/BDD/tp/tp6/tp6.sql @@ -60,43 +60,6 @@ CREATE TABLE Fournir ( FOREIGN KEY (num_med) REFERENCES Medicament ); -<<<<<<< HEAD -/* Q3 */ -SELECT * FROM Medecin ORDER BY nom, prenom ASC; - -/* Q4 */ -SELECT * FROM Patient WHERE age < 18 ORDER BY nom, prenom DESC; - -/* Q5 */ -SELECT Consultation.* FROM Consultation JOIN Posologie ON Consultation.num_cons = Posologie.num_cons WHERE soir IS NOT NULL; - -/* Q6 */ -SELECT Consultation.* FROM Consultation JOIN Posologie ON Consultation.num_cons = Posologie.num_cons WHERE matin > (midi + soir); - -/* Q7 */ -SELECT * FROM Laboratoire WHERE pays = 'France'; - -/* Q8 */ -SELECT * FROM Laboratoire WHERE pays <> 'France' OR code_postal = '75000'; - -/* Q9 */ -SELECT * FROM Laboratoire WHERE pays <> 'France' AND code_postal = '75000'; - -/* Q10 */ -SELECT * FROM Medicament WHERE prix > 50; - -/* Q11 */ -SELECT * FROM Medicament WHERE prix* 1.1 > 50; - -/* Q12 */ -SELECT * FROM Medicament WHERE prix < 100 AND prix * 1.2 > 125; - -/* Q13 */ -SELECT * FROM Medicament WHERE prix < 100 OR prix * 1.2 > 125; - -/* Q14 */ -SELECT * FROM Medicament WHERE prix < 100 OR prix * 1.2 > 125 AND prix * 1.2 < 150; -======= INSERT INTO Medecin VALUES (1, 'DUPONT', 'Jean'); INSERT INTO Medecin VALUES (2, 'DURAND', 'Pierre'); INSERT INTO Medecin VALUES (3, 'DUPOND', 'Paul'); @@ -119,6 +82,8 @@ INSERT INTO Consultation VALUES('C5', '2015-01-01', '10:00', 2, 5); INSERT INTO Medicament VALUES(1, 'Aspirine', 10); INSERT INTO Medicament VALUES(2, 'Paracétamol', 25); +INSERT INTO Medicament VALUES(6, 'Antistase', 48); +INSERT INTO Medicament VALUES(7, 'Marimosane', 98); INSERT INTO Medicament VALUES(3, 'Doliprane', 115); INSERT INTO Medicament VALUES(4, 'Maxilase', 100); INSERT INTO Medicament VALUES(5, 'Amoxiciline', 125); @@ -131,11 +96,12 @@ INSERT INTO Posologie VALUES(15, 5, 5, 'C5', 5); INSERT INTO Laboratoire VALUES(1, 'Laboratoire A', 1, 75001, 'Paris', 'France'); INSERT INTO Laboratoire VALUES(2, 'Laboratoire B', 2, 75002, 'Paris', 'France'); -INSERT INTO Laboratoire VALUES(3, 'Laboratoire C', 3, 75003, 'Paris', 'France'); +INSERT INTO Laboratoire VALUES(3, 'Laboratoire C', 3, NULL, 'Paris', 'France'); INSERT INTO Laboratoire VALUES(4, 'Laboratoire D', 4, 69400, 'Lyon', 'France'); INSERT INTO Laboratoire VALUES(5, 'Laboratoire E', 5, 15000, 'Aurillac', 'France'); INSERT INTO Laboratoire VALUES(6, 'Laboratoire F', 6, NULL, 'Barcelone', 'Espagne'); INSERT INTO Laboratoire VALUES(7, 'Laboratoire G', 7, 63500, 'Bioude', 'France'); +INSERT INTO Laboratoire VALUES(8, 'Laboratoire RU', 9, NULL, 'Londres', 'Royaume-Unis'); -- Question 3 @@ -153,9 +119,23 @@ SELECT Consultation.* FROM Consultation JOIN Posologie ON Consultation.num_cons -- Question 7 SELECT * FROM Laboratoire WHERE pays = 'France' AND code_postal IS NOT NULL; --- Question 8 +-- Question 8-9 a revoir c'est les meme question ???!!! -- Requette sql pour afficher les laboratoires qui ne sont pas en France ou dont le code postal ne commence pas par 63 SELECT * FROM Laboratoire WHERE pays != 'France' OR code_postal NOT LIKE '63%'; ->>>>>>> c75ba3b (modif du tp11 d'algo et du tp6 de BDD) + +-- Question 10 +SELECT * FROM Medicament WHERE prix > 50; + +-- Question 11 +SELECT * FROM Medicament WHERE prix * 1.1 > 50; + +-- Question 12 à revoir c'est pas possible comme le dit la question !! +SELECT * FROM Medicament WHERE prix < 100 AND prix*1.2 > 125; + +-- Question 13 + + +-- Question 14 is good ?? +SELECT DISTINCT pays FROM Laboratoire; \d diff --git a/BDD/tp/tp8/tp8.sql b/BDD/tp/tp8/tp8.sql index a0f6bee..5453a4e 100644 --- a/BDD/tp/tp8/tp8.sql +++ b/BDD/tp/tp8/tp8.sql @@ -54,7 +54,7 @@ INSERT INTO DRAGON VALUES('D0001', 'Smeagol', 152, 'M', 1857,'14/06/1985', 'mach INSERT INTO DRAGON VALUES ('D0002', 'Birduth', 258, 'M', 4787, '05/05/1989', 'timide', 'N', 'T01'); INSERT INTO DRAGON VALUES ('D0003', 'Negueth', 128,'F',1582,'08/08/1992', 'sincere', 'O', 'T02'); INSERT INTO DRAGON VALUES ('D0004', 'Miss Toc', 183,'F',2781,'04/07/2020', 'volage', NULL, 'T01'); -INSERT INTO DRAGON VALUES ('D0005', 'Bolong', 213,'M',754,'06/05/2010', 'macho', 'N', 'T01'); +INSERT INTO DRAGON VALUES ('D0005', 'Bolong', 213,'M',754,'06/05/2010', 'macho', 'O', 'T01'); INSERT INTO DRAGON VALUES ('D0006', 'Miloch', 83,'M',718,'29/04/2015', 'timide', 'O', 'T02'); INSERT INTO DRAGON VALUES ('D0007', 'Nessie', 168,'M',1721,'12/12/2005', 'macho', 'O', 'T02'); INSERT INTO DRAGON VALUES ('D0008', 'Tarak', 123,'F',851,'15/04/2009', 'timide', 'N', 'T03'); @@ -118,8 +118,8 @@ SELECT REPAS.date_repas, REPAS.qte, NOURRITURE.nom, NOURRITURE.calories FROM REP /* Question 6 */ SELECT NOURRITURE.numn, NOURRITURE.nom, TERRITOIRE.num_terr FROM NOURRITURE JOIN REPAS ON NOURRITURE.numn = REPAS.numn JOIN DRAGON ON REPAS.numd = DRAGON.numd JOIN TERRITOIRE ON DRAGON.num_terr = TERRITOIRE.num_terr ORDER BY REPAS.date_repas; -/* Question 7 */ -SELECT DRAGON.nom FROM DRAGON JOIN TERRITOIRE ON DRAGON.num_terr = TERRITOIRE.num_terr JOIN REPAS ON DRAGON.numD = REPAS.numD JOIN NOURRITURE ON REPAS.numN = NOURRITURE.numN WHERE DRAGON.crache_feu = 'O' AND TERRITOIRE.num_terr = 'T02' AND NOURRITURE.nom = 'Oeuf' OR NOURRITURE.nom = 'Orange' ; +/* Question 7 fonctionne pas !!! pas de territoire !!??*/ +SELECT DISTINCT DRAGON.nom FROM DRAGON JOIN TERRITOIRE ON DRAGON.num_terr = TERRITOIRE.num_terr JOIN REPAS ON DRAGON.numD = REPAS.numD JOIN NOURRITURE ON REPAS.numN = NOURRITURE.numN WHERE DRAGON.crache_feu = 'O' AND TERRITOIRE.num_terr = 'T02' AND NOURRITURE.nom = 'Oeuf' OR NOURRITURE.nom = 'Orange' ; /* Question 8 */ SELECT AMOUR.force, DRAGON.nom FROM DRAGON JOIN AMOUR ON DRAGON.numD = AMOUR.numDragon1; @@ -128,20 +128,19 @@ SELECT AMOUR.force, DRAGON.nom FROM DRAGON JOIN AMOUR ON DRAGON.numD = AMOUR.num SELECT DRAGON.nom FROM DRAGON JOIN AMOUR ON DRAGON.numD = AMOUR.numDragon1 JOIN TERRITOIRE ON TERRITOIRE.num_terr = DRAGON.num_terr WHERE DRAGON.crache_feu='O' AND 85200 AND AMOUR.force = 'un peu'; +/* Question 11 Ne fonctionne pas !!!! */ +SELECT NOURRITURE.nom FROM NOURRITURE JOIN REPAS ON NOURRITURE.numn = REPAS.numN JOIN DRAGON ON REPAS.numD = DRAGON.numD JOIN AMOUR ON DRAGON.numD = AMOUR.numDragon1 WHERE DRAGON.longeur > 200 AND AMOUR.force = 'un peu'; -/* Question 12 */ -SELECT aimant.nom, aime.nom FROM DRAGON aimant JOIN AMOUR ON aimant.numD = AMOUR.numDragon1 JOIN DRAGON AS aime ON AMOUR.numDragon2 = aime.numD; +/* Question 12 Je sais pas, je comprend pas !!! */ +SELECT aimant.nom || ' est en couple avec ' || aime.nom FROM DRAGON AS aimant JOIN AMOUR ON aimant.numD = AMOUR.numDragon1 JOIN DRAGON AS aime ON AMOUR.numDragon2 = aime.numD; /* Question 13 */ -SELECT DISTINCT DRAGON.nom FROM DRAGON JOIN REPAS ON DRAGON.numD = REPAS.numD JOIN NOURRITURE ON REPAS.numN = NOURRITURE.numN WHERE NOURRITURE.nom = 'Oeuf' AND DRAGON.numD NOT IN (SELECT DRAGON.numD FROM DRAGON JOIN REPAS ON DRAGON.numD = REPAS.numD JOIN NOURRITURE ON REPAS.numN = NOURRITURE.numN WHERE NOURRITURE.nom = 'Orange'); -/* Question 14 */ -/* */ +/* Question 14 */ +SELECT DISTINCT DRAGON.nom FROM DRAGON JOIN REPAS ON DRAGON.numD = REPAS.numD JOIN NOURRITURE ON REPAS.numN = NOURRITURE.numN WHERE NOURRITURE.nom = 'Oeuf' AND DRAGON.numD NOT IN (SELECT DRAGON.numD FROM DRAGON JOIN REPAS ON DRAGON.numD = REPAS.numD JOIN NOURRITURE ON REPAS.numN = NOURRITURE.numN WHERE NOURRITURE.nom = 'Orange'); \d diff --git a/BDD/tp/tp9/tp9.sql b/BDD/tp/tp9/tp9.sql index 1dc9f3a..eaa6073 100644 --- a/BDD/tp/tp9/tp9.sql +++ b/BDD/tp/tp9/tp9.sql @@ -90,153 +90,58 @@ INSERT INTO REPAS VALUES ('11/09/2021', 2, 'D0009', 'P0003'); INSERT INTO REPAS VALUES ('12/09/2021', 8, 'D0009', 'P0004'); INSERT INTO REPAS VALUES ('25/09/2021', 20, 'D0006', 'P0003'); +/* TP9 */ - -/* TP5 a mettre dans le terminale */ - -/* Question 1 */ -/* SELECT nom FROM DRAGON WHERE crache_feu = 'O'; */ - -/* Question 2 */ -/* SELECT nom FROM DRAGON WHERE crache_feu = 'O' AND en_amour = 'timide'; */ - -/* Question 3 */ -/* SELECT * FROM DRAGON WHERE sexe = 'F' ORDER BY longeur DESC; */ - -/* Question 4 */ -/* SELECT longeur/nb_ecailles FROM DRAGON; */ - -/* Question 5 */ -/* SELECT DISTINCT numDragon1 FROM AMOUR; */ - -/* Question 6 */ -/* SELECT numDragon1 FROM AMOUR WHERE numDragon2 = 'D0003'; */ - -/* Question 7 */ -/* SELECT numDragon2 FROM AMOUR WHERE numDragon1 = 'D0005'; */ - -/* Question 8 */ -/* SELECT numDragon1 FROM AMOUR WHERE force = 'un peu'; */ - -/* Question 9 */ -/* SELECT numDragon1, force, numDragon2 FROM AMOUR WHERE force = 'passionnement'; */ - -/* Question 10 */ -/* SELECT * FROM NOURRITURE WHERE calories < 10; */ - -/* Question 11 */ -/* SELECT * FROM REPAS JOIN NOURRITURE ON REPAS.numN = NOURRITURE.numN WHERE NOURRITURE.nom = 'Oeuf'; */ - -/* Question 12 */ -/* SELECT distinct(numD) FROM REPAS; */ - -/* Question 13 */ -/* SELECT * FROM DRAGON WHERE num_terr = 'T01'; */ - -/* Question 14 */ -/* SELECT * FROM TERRITOIRE WHERE latitude2 = 'S'; */ - - - -/* TP7*/ - -/* Question 1 */ -/* SELECT * FROM DRAGON WHERE nom LIKE 'S%'; */ - -/* Question 2 */ -/* SELECT numDragon1 || ' aime ' || numDragon2 || ' de manière : ' || force FROM Amour; */ - -/* Question 3 */ -/* SELECT nom, char_length(nom) FROM TERRITOIRE; */ - -/* Question 4 */ -/* SELECT lower(nom) FROM NOURRITURE; */ - -/* Question 5 */ -/* SELECT substr(nom, 1, 3) FROM DRAGON; */ - -/* Question 6 */ -/* SELECT to_char(current_date, 'YYYY-MM-DD'); */ - -/* Question 7 */ -/* SELECT current_date -10 as "date il y a 10 jours"; */ - -/* Question 8 */ -/* SELECT (CURRENT_DATE - '2004-01-12'::date) / 365 as age, round((current_date - '2004-01-12'::date) / 365::numeric, 3) as age_reel; */ - -/* Question 9 */ -/* SELECT ceil((current_date-'2004-01-12'::date)/365::numeric); */ - -/* Question 10 */ -/* SELECT trunc((current_date-'2004-01-12'::date)/365::numeric,1); - SELECT floor((current_date-'2004-01-12'::date)/365::numeric);*/ - -/* Question 11 */ -/* SELECT round((current_date-date_naissance::date)/365::numeric,3) FROM DRAGON; */ - -/* Question 12 */ -/* SELECT * FROM DRAGON WHERE round((current_date-date_naissance::date)/365::numeric,3)<3;*/ - -/* Question 13 */ -/* SELECT * FROM REPAS WHERE to_char(date_repas, 'MON') = 'SEP'; */ - -/* TP8*/ - -UPDATE DRAGON SET num_terr = 'T03' WHERE numD = 'D0008'; +INSERT INTO AMOUR VALUES('un peu', 'D0008', 'D0002'); /* Question 1 */ -/* SELECT DRAGON.nom FROM DRAGON JOIN TERRITOIRE ON DRAGON.num_terr = TERRITOIRE.num_terr WHERE TERRITOIRE.latitude2 = 'S'; */ - -/* Question 2 */ -/* SELECT DRAGON.nom FROM DRAGON JOIN AMOUR ON DRAGON.numD = AMOUR.numDragon1 WHERE AMOUR.force = 'un peu'; */ +SELECT Dragon.nom FROM Dragon WHERE num NOT IN (SELECT num_dragon FROM Repas WHERE num_nourriture = (SELECT num FROM Nourriture WHERE nom = 'Pomme')); -/* Question 3 */ -/* SELECT DRAGON.nom FROM DRAGON JOIN REPAS ON DRAGON.numD = REPAS.numD JOIN NOURRITURE ON REPAS.numN = NOURRITURE.numN WHERE NOURRITURE.nom = 'Oeuf'; */ +-- Question 2 +SELECT Dragon.nom FROM Dragon WHERE num NOT IN (SELECT num_dragon1 FROM Amour); -/* Question 4 */ -/* SELECT TERRITOIRE.NOM, TERRITOIRE.longitude, TERRITOIRE.latitude1 FROM TERRITOIRE JOIN DRAGON ON TERRITOIRE.num_terr = DRAGON.num_terr JOIN REPAS ON DRAGON.numD = REPAS.numD JOIN NOURRITURE ON REPAS.numN = NOURRITURE.numN WHERE NOURRITURE.nom = 'Orange'; */ +-- Question 3 +SELECT Dragon.nom FROM Dragon WHERE num NOT IN (SELECT num_dragon FROM Repas); -/* Question 5 */ -/* SELECT REPAS.date_repas, REPAS.qte, NOURRITURE.nom, NOURRITURE.calories FROM REPAS JOIN NOURRITURE ON REPAS.numN = NOURRITURE.numN WHERE REPAS.numD = 'D0008' ORDER BY REPAS.date_repas; */ +-- Question 4 +SELECT Dragon.nom FROM Dragon WHERE longueur > (SELECT longueur FROM Dragon WHERE nom = 'Smeagol'); -/* Question 6 */ -/* SELECT NOURRITURE.numn, NOURRITURE.nom, TERRITOIRE.num_terr FROM NOURRITURE JOIN REPAS ON NOURRITURE.numn = REPAS.numn JOIN DRAGON ON REPAS.numd = DRAGON.numd JOIN TERRITOIRE ON DRAGON.num_terr = TERRITOIRE.num_terr ORDER BY TERRITOIRE.num_terr; */ +-- Question 5 +SELECT Dragon.nom FROM Dragon WHERE num NOT IN (SELECT num_dragon1 FROM Amour) AND num NOT IN (SELECT num_dragon FROM Repas); -/* Question 7 */ -/* SELECT DRAGON.nom FROM DRAGON JOIN TERRITOIRE ON DRAGON.num_terr = TERRITOIRE.num_terr JOIN REPAS ON DRAGON.numD = REPAS.numD JOIN NOURRITURE ON REPAS.numN = NOURRITURE.numN WHERE DRAGON.crache_feu = 'O' AND TERRITOIRE.num_terr = 'T02' AND NOURRITURE.nom = 'Oeuf' OR NOURRITURE.nom = 'Orange' ; */ +-- Question 6 +SELECT Dragon.nom FROM Dragon WHERE sexe=0 AND num IN (SELECT num_dragon2 FROM Amour WHERE num_dragon1 NOT IN (SELECT num_dragon FROM Repas)); -/* Question 8 */ -/* SELECT AMOUR.force, DRAGON.nom FROM DRAGON JOIN AMOUR ON DRAGON.numD = AMOUR.numDragon1; */ +-- Question 7 +SELECT Nourriture.nom FROM Nourriture WHERE num NOT IN (SELECT num_nourriture FROM Repas WHERE num_dragon IN (SELECT num FROM Dragon WHERE crache_feu = 'N')); -/* Question 9 */ -/* SELECT DRAGON.nom FROM DRAGON JOIN AMOUR ON DRAGON.numD = AMOUR.numDragon1 JOIN TERRITOIRE ON TERRITOIRE.num_terr = DRAGON.num_terr WHERE DRAGON.crache_feu='O' AND 85 500); -/* Question 10 */ -/* SELECT DRAGON.nom FROM DRAGON JOIN AMOUR ON DRAGON.numD = AMOUR.numDragon1 WHERE AMOUR.force = 'passionement' AND DRAGON.en_amour='macho'; */ +-- Question 9 +SELECT nom, nb_ecailles FROM Dragon WHERE nb_ecailles > 500 AND sexe = 1 AND EXISTS (SELECT * FROM Dragon WHERE nb_ecailles > 5000); -/* Question 11 */ -/* SELECT NOURRITURE.nom FROM NOURRITURE JOIN REPAS ON NOURRITURE.numn = REPAS.numn JOIN DRAGON ON REPAS.numd = DRAGON.numd JOIN AMOUR ON DRAGON.numD = AMOUR.numDragon1 WHERE DRAGON.longeur>200 AND AMOUR.force = 'un peu'; */ +-- Question 10 +SELECT nom FROM Dragon WHERE NOT EXISTS (SELECT * FROM Amour WHERE num_dragon2 = num); -/* Question 12 */ -/* SELECT aimant.nom, aime.nom FROM DRAGON aimant JOIN AMOUR ON aimant.numD = AMOUR.numDragon1 JOIN DRAGON AS aime ON AMOUR.numDragon2 = aime.numD; */ +-- Question 11 +SELECT Dragon.nom FROM Dragon, Territoire WHERE Dragon.num_terr = Territoire.num_terr AND latitude2 = 'S'; -/* Question 13 */ -/* SELECT DISTINCT DRAGON.nom FROM DRAGON JOIN REPAS ON DRAGON.numD = REPAS.numD JOIN NOURRITURE ON REPAS.numN = NOURRITURE.numN WHERE NOURRITURE.nom = 'Oeuf' AND DRAGON.numD NOT IN (SELECT DRAGON.numD FROM DRAGON JOIN REPAS ON DRAGON.numD = REPAS.numD JOIN NOURRITURE ON REPAS.numN = NOURRITURE.numN WHERE NOURRITURE.nom = 'Orange'); */ +-- Question 12 +SELECT Dragon.nom FROM Dragon WHERE num IN (SELECT num_dragon1 FROM Amour WHERE force = 'un peu'); -/* Question 14 */ -/* */ +-- Question 13 +SELECT Dragon.nom FROM Dragon WHERE num IN (SELECT num_dragon FROM Amour) AND crache_feu = 'O' AND num_terr IN (SELECT num_terr FROM Territoire WHERE longitude > 85 AND longitude < 95); -/* TP9 */ - -INSERT INTO AMOUR VALUES('un peu', 'D0008', 'D0002'); - -/* Question 1 */ +-- Question 14 +SELECT Nourriture.nom FROM Nourriture WHERE num IN (SELECT num_nourriture FROM Repas WHERE num_dragon IN (SELECT num FROM Dragon WHERE longueur > 200 +AND num IN (SELECT num_dragon2 FROM Amour WHERE force = 'un peu'))); +-- Question 15 +SELECT Dragon.nom FROM Dragon WHERE crache_feu='O' AND num IN (SELECT num_dragon FROM Repas WHERE num_nourriture IN (SELECT num FROM Nourriture WHERE nom = 'Oeuf' OR nom = 'Orange')); -SELECT * FROM TERRITOIRE; -SELECT * FROM DRAGON; -SELECT * FROM NOURRITURE; -SELECT * FROM AMOUR; -SELECT * FROM REPAS; +-- Question 16 +SELECT Dragon.nom FROM Dragon WHERE crache_feu='O' AND num IN (SELECT num_dragon FROM Repas WHERE num_nourriture IN (SELECT num FROM Nourriture WHERE nom = 'Oeuf' OR nom = 'Orange')) +AND num_terr='T02'; \d From 8c564cdab8d6d8919d266c62f8f36a204d61573e Mon Sep 17 00:00:00 2001 From: "antoine.perederii" Date: Thu, 22 Dec 2022 21:40:03 +0100 Subject: [PATCH 3/3] modif sur le tp 12 --- Algo/tp/tp12/tp12.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Algo/tp/tp12/tp12.c b/Algo/tp/tp12/tp12.c index 12756c5..08503e4 100644 --- a/Algo/tp/tp12/tp12.c +++ b/Algo/tp/tp12/tp12.c @@ -78,7 +78,7 @@ void sauvTbin(Mat *tab[], int nb) fprintf(flot, "%d\n", &nb); for(i = 0; i < nb; i++) fwrite(tab[i], sizeof(Mat), 1, flot); - fclose(flot); + fclose(flot); } int rechdich(char *code, Mat **tmat, int nbmat, int *trouve)