/* IFT1169 - démonstration #04 - exercice 02 11-février -2006 v1.00 M.Lokbani - l'énoncé+solution + gcc3.4.2 à partir de Anderson&Anderson contact: lokbani@iro.umontreal.ca Copyright (C) 1999-2006 Université de Montréal Département d'informatique et de Recherche Opérationnelle Mohamed Lokbani -- Tous Droits Réservés -- All Rights Reserved -- Description: ------------ Juste expliquer le fonctionnement de ce programme: Si la valeur de taille est supérieure à celle de max, on prend la valeur de max comme valeur par défaut et on affiche un message en sortie pour informer de ce changement. Si la valeur de taille est égale à 0, on leve une exception, et la variable taille prend par défaut la valeur de max. */ #include #include using namespace std; double moy(const double *buf, unsigned int taille) { char* s = "moy: la taille du tableau est 0!"; if (taille == 0) throw s; double somme = 0.0; for (unsigned int i = 0; i < taille; i++) somme += buf[i]; return somme / taille; } double calc_moy(unsigned int taille){ const unsigned int max = 6; double b[max] = { 1.1, 2.2, 3.3, 4.4, 5.5, 6.6 }; if (taille > max) { cerr << "Erreur dans [calc_moy]: On utilise maintenant la taille pas défaut qui est de: " << max << endl; taille = max; } try{ return moy(b,taille); } catch (char* msg) { cerr << msg << endl; cerr << "Erreur dans [calc_moy]: On utilise maintenant la taille pas défaut qui est de: " << max << endl; return moy(b,max); } } int main() { cout << " calc_moy(4): " << calc_moy(4) << endl<