Correction TP de programmation no3 - Fonctions et procédures









LOGARITHME D'UNE SOMME ET D'UNE DIFFÉRENCE

Michel Petrovitch (Belgrade). Les logarithmes de Gauss out pour ohjet de faire trouver le logarithme de la somme et de la différence de deux nombres parle.


LOGARITHME NEPERIEN

Remarque : La fonction exponentielle transformant une somme en produit on peut penser que la fonction logarithme népérien qui est sa fonction réciproque
ln


Algorithmique Notion de complexité

somme des termes Uk où k vérifie p ≤ k ≤ q (entiers) ;. Convention utile en informatique log fonction logarithme sans base précise à une constante.
Complexite


1 Sujet : Etudier la somme des inverses des entiers. Création d'un

20 sept. 2017 Graphique résultant de l'algorithme précédent : On remarque une ressemblance avec le graphique de la fonction logarithme népérien. Les résultats.
abcompte rendu maths





FONCTION EXPONENTIELLE ET FONCTION LOGARITHME

Remarque : Cette formule permet de transformer une somme en produit et réciproquement. Corollaires : Pour tous réels x et y on a : a) exp(− ) =.
Texplog


FONCTION LOGARITHME DÉCIMAL

Remarque : La première formule permet de transformer un produit en somme. Ainsi celui qui aurait à effectuer 36 x 62
LogTT


Programme cahier de vacances

Propriétés fondamentales des logarithmes : somme produit


Correction TP de programmation no3 - Fonctions et procédures

logarithme réel void exit(int e) On utilisera une boucle et un accumulateur pour calculer les sommes ... la factorielle la puissance et la somme.
TP corr





Cours de mathématiques - Exo7

Pour un entier n fixé programmer le calcul de la somme Sn = 13 + 23 + 33 + ··· + Dans l'algorithme précédent nous avions utilisé le logarithme décimal ...
ch algo


Dérivées et différentielles des fonctions de plusieurs variables

La différentielle logarithmique df/f d'une fonction de plusieurs ou égale à la somme des valeurs absolues des différents termes.
melodelima christelle p


213652 Correction TP de programmation no3 - Fonctions et procédures

Correction TP de programmation n

o3Cours de programmation impérative-Licence MPI L1 S2 - Info 121-Fonctions et procédures

Cette séance de travaux pratiques est dédiée à l"écriture et l"utilisation de fonctions simples.

Voici quelques exemples de fonctions et procédures de la bibliothèque standard deC++: prototype de la fonction fichier descriptionint abs(int j) cstdlibvaleur absolue entière float fabs(float x) cmathvaleur absolue réelle float round(float x) cmatharrondi à l"entier le plus proche float trunc(float x) cmatharrondi à l"entier inférieur float pow(float x, float y) cmathpuissance réelle float sqrt(float x) cmathracine carrée réelle float exp(float x) cmathexponentielle réelle float log(float x) cmathlogarithme réel void exit(int e) cstdlibquitte le programme Pour utiliser une fonction, il faut inclure le fichier de déclaration correspondant (par exemple #include ).

LeC++ne fait pas la différence entre une fonction et une procédure : une procédure est juste

une fonction qui ne retourne rien (c"est-à-direvoid). Voici comment on peut écrire la fonction valeur absolue : float absolue(float x) { if (x >= 0.) return x; else return -x; }xExercice 1. Fonction factorielle et coefficients du binôme de Newton La fonction pour calculer la factorielle d"un entier est donnée dans le fichierbinome.cpp. 1. P ourtester la fonction factoriel, on utilise la fonctiontestFactoriel. Ajouter dans cette fonction quelques tests en dehors de la convention factoriel(0) = 1. 2. On app elleco efficientdu binôme de Ne wton(ou co efficientbinomial) n ple nombre de parties àpéléments dans un ensemble ànéléments. Par exemple : 0 0 = 1;3 2 = 3;4 2 = 6

Le coefficient binômial

n ppeut être calculé par : n p =n!p!(np)!

En utilisant la fonction factorielle écrite à la question précédente, compléter la fonctionbinome

dans le fichierbinome.cpp, et la tester par la fonctiontestBinome. 1

1#include

2#include

3

4using namespace std;

5

6#define ASSERT(test) if (!(test)) cout << "Test failed in file " << __FILE__ \

7<< " line " << __LINE__ << ": " #test << endl

8

9/** Calculer le factoriel d"un entier

10* @param n un entier

11* @return un entier

12**/

13int factoriel(int n) {

14if (n < 0) {

15cerr << "Factoriel argument negatif file " << __FILE__ << " line " << __LINE__ << endl;

16exit(1);

17}

18int res = 1, i;

19for (i = 1 ; i <= n ; i ++) {

20res *= i;

21}

22return res;

23}
24

25/** Tester la fonction factorielle

26**/

27void testFactoriel() {

28ASSERT(factoriel(0) == 1);

29ASSERT(factoriel(1) == 1);

30ASSERT(factoriel(4) == 24);

31ASSERT(factoriel(10) == 3628800);

32}
33

34/** Calculer le binome de Newton

35* @param n entier, p entier, n >= p

36* @return un entier

37**/

38int binome(int n, int p) {

39// Il n"y a pas de soucis à utiliser la division entière ici donc il n"y a pas besoin d"un cast

40// vers un double.

41return factoriel(n)/(factoriel(p) * factoriel(n - p));

42}
43

44/** Tester la fonction binome

45**/

46void testBinome() {

47// valeur de base

48ASSERT(binome(0, 0) == 1);

49ASSERT(binome(3, 2) == 3);

50ASSERT(binome(4, 2) == 6);

51ASSERT(binome(5, 3) == 10);

52ASSERT(binome(10, 5) == 252);

53}
54
2

55/** Fonction principale

56**/

57int main() {

58testFactoriel();

59testBinome();

60cout << "OK" << endl;

61}!
3

Correction TP de programmation n

o3Cours de programmation impérative-Licence MPI L1 S2 - Info 121-Fonctions et procédures

Cette séance de travaux pratiques est dédiée à l"écriture et l"utilisation de fonctions simples.

Voici quelques exemples de fonctions et procédures de la bibliothèque standard deC++: prototype de la fonction fichier descriptionint abs(int j) cstdlibvaleur absolue entière float fabs(float x) cmathvaleur absolue réelle float round(float x) cmatharrondi à l"entier le plus proche float trunc(float x) cmatharrondi à l"entier inférieur float pow(float x, float y) cmathpuissance réelle float sqrt(float x) cmathracine carrée réelle float exp(float x) cmathexponentielle réelle float log(float x) cmathlogarithme réel void exit(int e) cstdlibquitte le programme Pour utiliser une fonction, il faut inclure le fichier de déclaration correspondant (par exemple #include ).

LeC++ne fait pas la différence entre une fonction et une procédure : une procédure est juste

une fonction qui ne retourne rien (c"est-à-direvoid). Voici comment on peut écrire la fonction valeur absolue : float absolue(float x) { if (x >= 0.) return x; else return -x; }xExercice 1. Fonction factorielle et coefficients du binôme de Newton La fonction pour calculer la factorielle d"un entier est donnée dans le fichierbinome.cpp. 1. P ourtester la fonction factoriel, on utilise la fonctiontestFactoriel. Ajouter dans cette fonction quelques tests en dehors de la convention factoriel(0) = 1. 2. On app elleco efficientdu binôme de Ne wton(ou co efficientbinomial) n ple nombre de parties àpéléments dans un ensemble ànéléments. Par exemple : 0 0 = 1;3 2 = 3;4 2 = 6

Le coefficient binômial

n ppeut être calculé par : n p =n!p!(np)!

En utilisant la fonction factorielle écrite à la question précédente, compléter la fonctionbinome

dans le fichierbinome.cpp, et la tester par la fonctiontestBinome. 1

1#include

2#include

3

4using namespace std;

5

6#define ASSERT(test) if (!(test)) cout << "Test failed in file " << __FILE__ \

7<< " line " << __LINE__ << ": " #test << endl

8

9/** Calculer le factoriel d"un entier

10* @param n un entier

11* @return un entier

12**/

13int factoriel(int n) {

14if (n < 0) {

15cerr << "Factoriel argument negatif file " << __FILE__ << " line " << __LINE__ << endl;

16exit(1);

17}

18int res = 1, i;

19for (i = 1 ; i <= n ; i ++) {

20res *= i;

21}

22return res;

23}
24

25/** Tester la fonction factorielle

26**/

27void testFactoriel() {

28ASSERT(factoriel(0) == 1);

29ASSERT(factoriel(1) == 1);

30ASSERT(factoriel(4) == 24);

31ASSERT(factoriel(10) == 3628800);

32}
33

34/** Calculer le binome de Newton

35* @param n entier, p entier, n >= p

36* @return un entier

37**/

38int binome(int n, int p) {

39// Il n"y a pas de soucis à utiliser la division entière ici donc il n"y a pas besoin d"un cast

40// vers un double.

41return factoriel(n)/(factoriel(p) * factoriel(n - p));

42}
43

44/** Tester la fonction binome

45**/

46void testBinome() {

47// valeur de base

48ASSERT(binome(0, 0) == 1);

49ASSERT(binome(3, 2) == 3);

50ASSERT(binome(4, 2) == 6);

51ASSERT(binome(5, 3) == 10);

52ASSERT(binome(10, 5) == 252);

53}
54
2

55/** Fonction principale

56**/

57int main() {

58testFactoriel();

59testBinome();

60cout << "OK" << endl;

61}!
3
  1. logarithmus summe
  2. logaritmen sommen
  3. somme logarithme népérien