---
# System prepended metadata

title: TD 5 et 6 Info 121

---

# 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;
}