# TD 5 et 6 Info 121
## Exercice 2, TD5
1)
```cpp=
struct Fourniture {
int code;
string libellé;
float prix;
int nbAchete;
int nbVendu;
};
```
2)
Réponse Etudiant 1
```cpp=
void saisirFourniture(Fourniture &F){
cout << "Saisir le code" << endl;
cin >> F.code;
cout << "Saisir le libellé" << endl;
cin >> F.libelle;
do{
cout << "Saisir le prix" << endl;
cin >> F.prix;
}while(F.prix<0);
do{
cout << "Saisir la quantité achetée" << endl;
cin >> F.nbAchete;
}while(F.nbAchete<0);
do {
cout << "Saisir la quantité vendue" << endl;
cin >> F.nbVendu;
} while (F.nbVendu > F.nbAchete);
}
```
Réponse Etudiant 2
```cpp=
void saisir(Fourniture &F){
// Ajouter les do while
cout<<"Quelle est le code?"<< endl;
cin>>F.code;
cout<<"quelle est le libellé?"<<endl;
cin>F.libellé;
cout<<"quelle est le prix?"<<endl;
cin>>F.prix;
cout<<"quelle est le nombre d'item acheté?"<<endl;
cin>>F.nbAchete;
cout<<"quelle est le nombre d'item vendu?"<<endl;
cin>>F.nbVendu;
}
```
3)
Réponse Etudiant 1
```cpp=
void affiche (Fourniture a){
cout << "Code : "<< a.code <<endl;
cout << "Libellé : "<< a.libellé <<endl;
cout << "Prix : "<< a.prix << endl;
cout << "nbAchete : "<< a.nbAchete << endl;
cout << "nbVendu : "<< a.nbVendu << endl;
}
```
Réponse Etudiant 2
```cpp=
void affiche(Fourniture F){
cout<< "le code numerique est:"<< F.code << endl;
cout<<" le libellé est:"<< F.libellé <<endl;
cout<<"le prix est:"<< F.prix <<endl;
cout<<"le nombre d'item acheté est:"<< F.nbAchete <<endl;
cout<<" le nombre d'item vendu est:"<< F.nbVendu <<endl;
}
```
4)
Réponse Etudiant 1
```cpp=
void vente(Fourniture &F, int n){
F.nbVendu = F.nbVendu + n;
}
```
5)
Réponse Etudiant
```cpp=
void Calcul (Fourniture f, int &s, float &m){
s = f.nbAchete-f.nbVendu;
m = s*f.prix;
}
```
6)
```cpp=
int max = 500;
struct Catalogue{
Fourniture tab[max];
int nbF;
};
```
7)
```cpp=
void ajouteCatalogue(Catalogue &C,Fourniture F){
if(C.nbF<max){
C.tab[C.nbF]=F;
C.nbF++;
}else{
cout<<"Plus de place dans le catalogue";
}
}
```
8)
```cpp=
void bilan(Catalogue C){
int total = 0;
float prixtotal = 0;
for(int i=0;i<C.nbf;i++){
affiche(C.tab[i]);
int s;
float m;
Calcul(C.tab[i],s,m);
cout<<"stock : "<< s <<endl;
cout<<"montant du stock : "<<m<<endl;
//total += s;
prixtotal += m;
}
//cout<<"total qté:"<<total<<endl;
cout<<"valeur totale"<<prixtotal<<endl;
}
```
```cpp=
void retirer(Catalogue &C, int code){
int trouve = C.nbF;
for(int i = 0; i<C.nbF;i++){
if(C.tab[i].code==code){
trouve=i;
C.nbF--;
}
}for(int i = trouve;i<C.nbF;i++){
C.tab[i]=C.tab[i+1];
}
}
```
# TD6
## Exercice 1
1)
```cpp=
void remonteUneBulle(int T[TAILLE]){
for (int i = 0; i < TAILLE - 1; i++){
if(T[i+1] < T[i]){
int temp = T[i];
T[i] = T[i+1];
T[i+1] = temp;
}
}
}
```
2)
```cpp=
void remonteUneBulle(int T[TAILLE], bool &p){
p = false;
for (int i = 0; i < TAILLE - 1; i++){
if(T[i+1] < T[i]){
int temp = T[i];
T[i] = T[i+1];
T[i+1] = temp;
p = true;
}
}
}
```
```cpp=
void TriBulle(int T[TAILLE]){
bool s = true;
while(s==true){
remonteUneBulle(T[Taille], s);
}
}
```
3)
```cpp=
int main(){
TriBulle(monTableau);
affichetableau(monTableau);
}
```
## Exercice 2
1)
```cpp=
int nbreCarteCouleur(MainJ main, couleurCarte c){
int compteur = 0;
for (int i = 0; i < 13 ; i++){
if (main[i].couleur == c)
compteur++;
}
return compteur;
}
```
2)
```cpp=
2) int evaluePtd(MainJ main){
int nbpoints = 0;
int compteur1 = 0;
for(couleurCarte c = pique; c<= trefle; c++){
compteur1 = 0;
compteur1= nbreCarteCouleur(main,c);
if(compteur1<=2){
nbpoints += 3-compteur1;
}
}
return nbpoints;
}
```
3)
```cpp=
int evaluePtH(MainJ main){
int compteur2 = 0;
for (int i = 0; i < 13 ; i++){
if(main[i].valeur==As){
compteur2 = compteur2 +4;
}
if(main[i].valeur==Roi){
compteur2 = compteur2 +3;
}
if(main[i].valeur==Dame){
compteur2 = compteur2 +2;
}
if(main[i].valeur==Valet){
compteur2 = compteur2 +1;
}
}return compteur2;
}
int evaluePtH(MainJ main){
int compteur = 0;
for (int i = 0; i < 13; i++)
compteur += ptHCarte[main[i].valeur];
return compteur;
}