// This file is part of the Herezh++ application. // // The finite element software Herezh++ is dedicated to the field // of mechanics for large transformations of solid structures. // It is developed by Gérard Rio (APP: IDDN.FR.010.0106078.000.R.P.2006.035.20600) // INSTITUT DE RECHERCHE DUPUY DE LÔME (IRDL) . // // Herezh++ is distributed under GPL 3 license ou ultérieure. // // Copyright (C) 1997-2022 Université Bretagne Sud (France) // AUTHOR : Gérard Rio // E-MAIL : gerardrio56@free.fr // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, // or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. // See the GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // For more information, please consult: . // fichier : Suite_geometrique.h // classe : Suite_geometrique /************************************************************************ * DATE: 14/11/2007 * * $ * * AUTEUR: G RIO (mailto:gerardrio56@free.fr) * * $ * * PROJET: Herezh++ * * $ * ************************************************************************ * BUT: Classe permettant des calculs relatifs à des suites * * $ * * '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' * * $ * ************************************************************************/ #ifndef SUITE_GEOMETRIQUE_M_H #define SUITE_GEOMETRIQUE_M_H #include "SuiteReel.h" #include "Sortie.h" /// @addtogroup def_classes_suites_reel /// @{ /// /// Suite_geometrique: cas d'une suite géométrique class Suite_geometrique : public SuiteReel { public : // CONSTRUCTEURS : // par défaut Suite_geometrique( ) : SuiteReel(SUITE_GEOMETRIQUE), U_0(0.), p(0.) {}; // de copie Suite_geometrique(const Suite_geometrique& Co) : SuiteReel(Co), U_0(Co.U_0), p(Co.p) {}; // DESTRUCTEUR : ~Suite_geometrique(){}; // METHODES PUBLIQUES : // affichage de la courbe void Affiche() const ; // ramène la valeur d'un élément n de la suite double U_n(int n) ; // ramène la somme de la suite de 0 à n // de manière arbitraire pour n=-1 ==> 0 // pour n < -1 --> erreur double Somme_Suite(int n); // interactif écran-clavier pour saisir les paramètres d'une suite // si amplitude != 0 alors il faut n non nulle et: // on a Somme_suite(n) = amplitude, ce qui permet pour les suites de réduire le nombre de paramètre à lire void Def_suite(double amplitude, int n) ; protected : // VARIABLES PROTEGEES : double U_0 ; // la valeur du terme initiale de la suite double p ; // raison géométrique double PUISSn(double a, const int n) { #ifdef MISE_AU_POINT if ( n < 0) { cout << "\n erreur, exposant négatif dans la fonction PUISSN(T1 a, const int n) "; Sortie(1); } #endif int m=n; return ((m > 0) ? (a * PUISSn(a,--m)) : 1.); }; }; /// @} // end of group #endif