Antoine PEREDERII 2 years ago
parent a85a0c705d
commit b5e3f85320

Binary file not shown.

@ -2,14 +2,22 @@
void testExercice1() void testExercice1()
{ {
int n = 4; int n;
while(1)
{
printf("Donnez le nombre de segments : ");
scanf("%d", &n);
if(n == 0)
break;
int result = nbSegments(n); int result = nbSegments(n);
printf("Il y a %d segments\n", result); printf("Il y a %d segments\n", result);
} }
}
void testExercice2Nb() 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 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; int n = 10, result, val = 2;
result = sommeNentierT(tab, n); result = sommeNentierT(tab, n);
printf("La somme des entiers est %d\n", result); printf("La somme des entiers est %d\n", result);
@ -32,7 +40,7 @@ void testExercice2Nb()
result = rechercheValMaxT(tab, n); result = rechercheValMaxT(tab, n);
printf("La valeur maximale est %d\n", result); printf("La valeur maximale est %d\n", result);
printf("====================================\n"); printf("====================================\n");
result = compare2T(tab, tab2, n); result = compare2T(tab, tab3, n);
printf("Les tableaux sont %s\n", result ? "identiques" : "different"); printf("Les tableaux sont %s\n", result ? "identiques" : "different");
printf("====================================\n"); printf("====================================\n");
} }
@ -40,31 +48,56 @@ void testExercice2Nb()
void testExercice2Chaine() void testExercice2Chaine()
{ {
char tab1[10]="bonjour", tab2[10]="aurevoir"; char tab1[10]="Bonjour", tab2[10]="aurevoir";
int n = 10, result; int n = 10, result;
char result2[10]; char result2[20];
result = longueurChaine(tab1); result = longueurChaine(tab1);
printf("La longueur de la chaine est %d\n", result); printf("La longueur de la chaine est %d\n", result);
printf("====================================\n"); printf("====================================\n");
result = copieChaine(tab1, tab2); result = copieChaine(tab1, tab2);
printf("La chaine copiee est %s\n", tab2); printf("La chaine copiée est %s\n", tab2);
printf("====================================\n"); printf("====================================\n");
result = concateneChaine(tab1, tab2, result2); result = concateneChaine(tab1, tab2, result2);
printf("La chaine concatenee est %s\n", result2); printf("La chaine concatenee est %s\n", result2);
printf("====================================\n"); printf("====================================\n");
result = compareChaine(tab1, tab2); 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"); printf("====================================\n");
result = mirroirChaine(tab1, result2); result = mirroirChaine(tab1, result2);
printf("La chaine mirroir est %s\n", result2); printf("La chaine mirroir est %s\n", result2);
printf("====================================\n"); 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) int main(void)
{ {
// testExercice1(); // testExercice1();
// testExercice2Nb(); // testExercice2Nb();
testExercice2Chaine(); // testExercice2Chaine();
testExercice3Jeu();
return 1; return 1;
} }

@ -8,7 +8,7 @@ int nbSegments(int n)
return (n-1) + nbSegments(n - 1); return (n-1) + nbSegments(n - 1);
} }
/* Exercice 2 */ /* Exercice 2-a */
int sommeNentierT(int tab[], int n) int sommeNentierT(int tab[], int n)
{ {
@ -66,7 +66,7 @@ int rechercheValMaxT(int tab[], int n)
return max; return max;
} }
int compare2T(int tab1[], int tab2[], int n) //a revoir int compare2T(int tab1[], int tab2[], int n)
{ {
if (n == 1) if (n == 1)
return tab1[0] == tab2[0]; 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); return compare2T(tab1+1, tab2+1, n-1);
} }
// Exercice 2-b
int longueurChaine(char chaine[]) int longueurChaine(char chaine[])
{ {
if (chaine[0] == '\0') if (chaine[0] == '\0')
@ -85,12 +87,15 @@ int longueurChaine(char chaine[])
int copieChaine(char chaine1[], char chaine2[]) int copieChaine(char chaine1[], char chaine2[])
{ {
if (chaine1[0] == '\0') if (chaine1[0] == '\0')
{
chaine2[0] = '\0';
return 0; return 0;
}
chaine2[0] = chaine1[0]; chaine2[0] = chaine1[0];
return 1 + copieChaine(chaine1+1, chaine2+1); 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') if (chaine1[0] == '\0')
return copieChaine(chaine2, chaine3); return copieChaine(chaine2, chaine3);
@ -98,12 +103,12 @@ int concateneChaine(char chaine1[], char chaine2[], char chaine3[])
return 1 + concateneChaine(chaine1+1, chaine2, chaine3+1); 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') if (chaine1[0] == '\0' && chaine2[0] == '\0')
return 1; return 1;
if (chaine1[0] == chaine2[0]) if (chaine1[0] == chaine2[0])
return compareChaine(chaine1+1, chaine2+1); return 1*(compareChaine(chaine1+1, chaine2+1));
return 0; return 0;
} }
@ -117,5 +122,18 @@ int mirroirChaine(char chaine1[], char chaine2[])
/* Exercice 3 */ /* 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 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 */ /* Pour remplir n, il faut remplir n-2, on remplis n-1 vider n-2 et on remplie n-1 */

@ -1,6 +1,7 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <stdbool.h>
int nbSegments(int n); int nbSegments(int n);
int sommeNentierT(int tab[], 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 concateneChaine(char chaine1[], char chaine2[], char chaine3[]);
int compareChaine(char chaine1[], char chaine2[]); int compareChaine(char chaine1[], char chaine2[]);
int mirroirChaine(char chaine1[], char chaine2[]); int mirroirChaine(char chaine1[], char chaine2[]);
int baguenaudier(int n, bool tab[]);
void testExercice3();

@ -60,6 +60,7 @@ CREATE TABLE Fournir (
FOREIGN KEY (num_med) REFERENCES Medicament FOREIGN KEY (num_med) REFERENCES Medicament
); );
<<<<<<< HEAD
/* Q3 */ /* Q3 */
SELECT * FROM Medecin ORDER BY nom, prenom ASC; SELECT * FROM Medecin ORDER BY nom, prenom ASC;
@ -95,5 +96,66 @@ SELECT * FROM Medicament WHERE prix < 100 OR prix * 1.2 > 125;
/* Q14 */ /* Q14 */
SELECT * FROM Medicament WHERE prix < 100 OR prix * 1.2 > 125 AND prix * 1.2 < 150; 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 \d

Loading…
Cancel
Save