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