diff --git a/Algo/tp/tp11/exe b/Algo/tp/tp11/exe index 29ae143..30a639f 100755 Binary files a/Algo/tp/tp11/exe and b/Algo/tp/tp11/exe differ 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