Advertisement
walid_Heig

Untitled

Dec 6th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.53 KB | None | 0 0
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6.  
  7. /*
  8.  * File:   main.cpp
  9.  * Author: Edoardo Carpita, Christophe Lillo
  10.  *
  11.  * Created on November 28, 2016, 10:41 AM
  12.  */
  13.  
  14.  
  15. #include <cstdlib>
  16. #include <iostream>
  17. #include <iomanip>
  18. #include <string>
  19. #include <sstream>
  20. #include <math.h>
  21.  
  22. using namespace std;
  23. /* Signature des foctions */
  24. double moyennePondere (double tab1[], double tab2[] , unsigned taille);
  25. void affichageTab (double tab1[], double tab2[] , unsigned taille, int choix);
  26.  
  27. /* Constantes  */
  28. const int CAPACITE = 100, PRECISION = 2, DIMENSION = 10;
  29.  
  30. /**
  31.  * @brief fonction pour afficher les tableaux dans la bonne forme en fonction de la taille et du choix de
  32.  * l'interaction
  33.  * @param tab1 premier tableau qui contient les valeurs
  34.  * @param tab2 deuxieme tableau qui contient les pois
  35.  * @param taille taille des deux tableaux
  36.  * @param choix choix du switch
  37.  */
  38. void affichageTab (double tab1[], double tab2[] , unsigned taille, int choix)
  39. {
  40.    // si le choix vaut 4 ou 5
  41.    if (choix == 4 || choix == 5 )
  42.    // on affiche les tableaux selon le choix de l'utilisateur  
  43.    for (unsigned i = 0; i < taille; ++i) {
  44.       {
  45.          cout << fixed << setprecision(PRECISION)
  46.              <<(choix == 5 ? "Les valeurs:" : "Les poids:")<<endl
  47.             << setw(5) << right <<"Valeur "<< i+1 << ":"
  48.             << setw(5) << right << (choix == 5 ? tab1[i] : tab2[i]) << " " << endl;
  49.       }
  50.    }
  51.    // si le choix ne vaut pas 4 ou 5    
  52.    else {
  53.          // on cree un pseudo tableau pour afficher pois-valeurs et moyenne pondere
  54.          cout << fixed << setprecision(PRECISION)
  55.             << setw(DIMENSION) << left << "Poids " << "| " << setw(DIMENSION) << left << "Valeur" << endl
  56.             << setw(DIMENSION) << left << "----------" << "+" << setw(DIMENSION) << left << "----------" << endl;
  57.             // boucle pour afficher tous les pois et les valeurs correspondants
  58.             for ( unsigned i = 0; i < taille; ++i) {
  59.                cout << setw(DIMENSION) << right << tab2[i] << "| " << setw(DIMENSION - 2) << right << tab1[i] << endl;  
  60.             }
  61.            
  62.             cout << setw(DIMENSION) << left << "----------" << "+" << setw(DIMENSION) << left << "----------" << endl;
  63.             // on ajoute à la fin la moyenne pondere
  64.             cout << setw(DIMENSION * 2) << right << moyennePondere (tab1, tab2 , taille) << endl;  
  65.            
  66.    }
  67.      
  68.    
  69. }
  70.  
  71. /**
  72.  * @brief fonction qui permet de calculer la moyenne pondere en fonction des deux tableau valeurs et pois
  73.  * @param tab1 premier tableau qui contient les valeurs
  74.  * @param tab2 deuxieme tableau qui contient les pois
  75.  * @param taille taille des deux tableaux
  76.  * @return
  77.  */
  78. double moyennePondere (double tab1[], double tab2[] , unsigned taille){
  79.    // initialisation des variables locales
  80.    double numerateur = 0, denominateur = 0;
  81.    
  82.    // boucle pour calculer pour chaque valeur et pois du tableau la moyenne pondere
  83.    for (unsigned i = 0; i < taille; ++i) {
  84.         numerateur += (tab1[i] * tab2[i]);
  85.         denominateur += tab2[i];        
  86.    }
  87.    return (numerateur / denominateur);
  88. }
  89.  
  90. void saisirTab(double tableau[],unsigned taille) {
  91.    double val = 0;
  92.    //tableau[taille];
  93.    //cout << setprecision(PRECISION);
  94.    ;
  95.    for (int i (0); i < taille; ++i) {
  96.       cin>>val;
  97.       tableau[i] = val;
  98.       cout << "Valeur: " << tableau[i];
  99.  
  100.    }  
  101. }
  102.  
  103. void menu (){
  104.  
  105. cout<<"=== Calcul de moyennes ponderees."<<endl;
  106. cout<<"1 - Saisir N."<<endl;
  107. cout<<"2 - Saisir les poids."<<endl;
  108. cout<<"3 - Saisir les valeurs."<<endl;
  109. cout<<"4 - Afficher les poids."<<endl;
  110. cout<<"5 - Afficher les valeurs."<<endl;
  111. cout<<"6 - Afficher la moyenne ponderee."<<endl;
  112. cout<<"0 - Quitter"<<endl;
  113. }
  114.  
  115. int main (){
  116.  
  117.    int choix;
  118.    unsigned taille = 100;
  119.    double tabPoids[taille];
  120.    double tabValeurs[taille];
  121.    
  122. while(1){
  123.    menu ();
  124.    cin>>choix;
  125. switch(choix){
  126.    case 0:
  127.       return EXIT_SUCCESS;
  128.       break;
  129.    case 1:
  130.       cin>>taille;
  131.       cout<<"valeur:"<<taille;
  132.       break;
  133.    case 2:      
  134.     cout << "Saisissez les poids s.v.p." << endl;
  135.     saisirTab(tabPoids,taille);
  136.     break;
  137.    case 3:
  138.     cout << "Saisissez les valeurs s.v.p." << endl;  
  139.    saisirTab(tabValeurs,taille);
  140.    break;
  141.    case 4:
  142.    case 5:
  143.    case 6:
  144.    affichageTab(tabValeurs, tabPoids, taille, choix);
  145.    break;
  146.  
  147. }
  148. }
  149.  
  150. system ("PAUSE");
  151. return EXIT_SUCCESS;
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement