Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- /*
- * File: main.cpp
- * Author: Edoardo Carpita, Christophe Lillo
- *
- * Created on November 28, 2016, 10:41 AM
- */
- #include <cstdlib>
- #include <iostream>
- #include <iomanip>
- #include <string>
- #include <sstream>
- #include <math.h>
- using namespace std;
- /* Signature des foctions */
- double moyennePondere (double tab1[], double tab2[] , unsigned taille);
- void affichageTab (double tab1[], double tab2[] , unsigned taille, int choix);
- /* Constantes */
- const int CAPACITE = 100, PRECISION = 2, DIMENSION = 10;
- /**
- * @brief fonction pour afficher les tableaux dans la bonne forme en fonction de la taille et du choix de
- * l'interaction
- * @param tab1 premier tableau qui contient les valeurs
- * @param tab2 deuxieme tableau qui contient les pois
- * @param taille taille des deux tableaux
- * @param choix choix du switch
- */
- void affichageTab (double tab1[], double tab2[] , unsigned taille, int choix)
- {
- // si le choix vaut 4 ou 5
- if (choix == 4 || choix == 5 )
- // on affiche les tableaux selon le choix de l'utilisateur
- for (unsigned i = 0; i < taille; ++i) {
- {
- cout << fixed << setprecision(PRECISION)
- <<(choix == 5 ? "Les valeurs:" : "Les poids:")<<endl
- << setw(5) << right <<"Valeur "<< i+1 << ":"
- << setw(5) << right << (choix == 5 ? tab1[i] : tab2[i]) << " " << endl;
- }
- }
- // si le choix ne vaut pas 4 ou 5
- else {
- // on cree un pseudo tableau pour afficher pois-valeurs et moyenne pondere
- cout << fixed << setprecision(PRECISION)
- << setw(DIMENSION) << left << "Poids " << "| " << setw(DIMENSION) << left << "Valeur" << endl
- << setw(DIMENSION) << left << "----------" << "+" << setw(DIMENSION) << left << "----------" << endl;
- // boucle pour afficher tous les pois et les valeurs correspondants
- for ( unsigned i = 0; i < taille; ++i) {
- cout << setw(DIMENSION) << right << tab2[i] << "| " << setw(DIMENSION - 2) << right << tab1[i] << endl;
- }
- cout << setw(DIMENSION) << left << "----------" << "+" << setw(DIMENSION) << left << "----------" << endl;
- // on ajoute à la fin la moyenne pondere
- cout << setw(DIMENSION * 2) << right << moyennePondere (tab1, tab2 , taille) << endl;
- }
- }
- /**
- * @brief fonction qui permet de calculer la moyenne pondere en fonction des deux tableau valeurs et pois
- * @param tab1 premier tableau qui contient les valeurs
- * @param tab2 deuxieme tableau qui contient les pois
- * @param taille taille des deux tableaux
- * @return
- */
- double moyennePondere (double tab1[], double tab2[] , unsigned taille){
- // initialisation des variables locales
- double numerateur = 0, denominateur = 0;
- // boucle pour calculer pour chaque valeur et pois du tableau la moyenne pondere
- for (unsigned i = 0; i < taille; ++i) {
- numerateur += (tab1[i] * tab2[i]);
- denominateur += tab2[i];
- }
- return (numerateur / denominateur);
- }
- void saisirTab(double tableau[],unsigned taille) {
- double val = 0;
- //tableau[taille];
- //cout << setprecision(PRECISION);
- ;
- for (int i (0); i < taille; ++i) {
- cin>>val;
- tableau[i] = val;
- cout << "Valeur: " << tableau[i];
- }
- }
- void menu (){
- cout<<"=== Calcul de moyennes ponderees."<<endl;
- cout<<"1 - Saisir N."<<endl;
- cout<<"2 - Saisir les poids."<<endl;
- cout<<"3 - Saisir les valeurs."<<endl;
- cout<<"4 - Afficher les poids."<<endl;
- cout<<"5 - Afficher les valeurs."<<endl;
- cout<<"6 - Afficher la moyenne ponderee."<<endl;
- cout<<"0 - Quitter"<<endl;
- }
- int main (){
- int choix;
- unsigned taille = 100;
- double tabPoids[taille];
- double tabValeurs[taille];
- while(1){
- menu ();
- cin>>choix;
- switch(choix){
- case 0:
- return EXIT_SUCCESS;
- break;
- case 1:
- cin>>taille;
- cout<<"valeur:"<<taille;
- break;
- case 2:
- cout << "Saisissez les poids s.v.p." << endl;
- saisirTab(tabPoids,taille);
- break;
- case 3:
- cout << "Saisissez les valeurs s.v.p." << endl;
- saisirTab(tabValeurs,taille);
- break;
- case 4:
- case 5:
- case 6:
- affichageTab(tabValeurs, tabPoids, taille, choix);
- break;
- }
- }
- system ("PAUSE");
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement