[PDF] Correction TP de programmation no3 - Fonctions et procédures





Previous PDF Next PDF



FRACTIONS PUISSANCES

https://www.maths-et-tiques.fr/telech/19RacPuissM.pdf



ALGO 1.1 œ Correction TD N°5.

Exercice 1. Afficher (« Entrez un nombre entier positif : »). Saisir(n) factorielle ? 1 ... Exercice 5. Calcul d'une racine carrée par itérations.



Exo7 - Exercices de mathématiques

20 104.02 Racine carrée équation du second degré Exercice 95 Congruence des carrés modulo 5 ... Exercice 373 Décomposition à coefficients positifs.



Chapitre 1 exercice 3 1. Vrai : la somme dun nombre rationnel et d

Faux : la somme de deux nombres irrationnels positifs est irrationnelle. Vrai : la racine carrée d'un nombre irrationnel positif est irrationnelle.



Correction TP de programmation no3 - Fonctions et procédures

(Racine carrée et n-ième) Cet exercice est obligatoire ceux qui ne l'ont pas fini en un nombre positif à l'utilisateur et qui affiche sa racine carrée.



Racine carrée - Exercices corrigés

RACINE CARREE. EXERCICES CORRIGES. Les carrés parfaits : ( sauf 1 ). 4 9



Modèle mathématique. Ne pas hésiter à consulter le fichier daide

RACINE CARREE D'UN NOMBRE POSITIF. 1. I). Définition et conditions d'existence de la racine carrée d'un nombre. 1) Définition . Il existe deux nombres tel 



Exercices corrigés

S'il est positif ou nul affichez sa racine



Nombres complexes

Exercice 4. Déterminer le module et l'argument des nombres complexes : eei? et ei? +e2i? . Indication ?. Correction ?. Vidéo ?. [000013]. 2 Racines carrées 



les racines carrées :

a) Existe il un nombre décimal positif dont le carré est 2 ? Le dernier chiffre non nul de l'écriture décimale de ce nombre serait 12



[PDF] Racine carrée - Exercices corrigés - Collège Le Castillon

RACINE CARREE EXERCICES CORRIGES Les carrés parfaits : ( sauf 1 ) 4 9 16 25 36 49 64 81 100 et la racine carrée de ces carrés 



[PDF] FRACTIONS PUISSANCES RACINES CARRÉES - maths et tiques

Définition : La racine carrée de est le nombre (toujours positif) dont le carré est Racines de carrés parfaits : ?0 = 0 ?25 = 5 ?100 = 10 ?1 = 1 ? 



[PDF] Exercices de révisions : Racines carrées - ddm-vergote

Les nombres dont le carré est 16 sont 16 et -16 256 et -256 4 et -4 2 et -2 b) Tout nombre positif a deux racines carrées a une racine



[PDF] racines carrées

On appelle racine carrée de a le nombre positif dont le carré est égal à a Cette définition se traduit en écritures mathématiques par :



[PDF] 3ème : Chapitre11 : Les racines carrées - AC Nancy Metz

La racine carrée de a est le nombre positif dont le carré est a La racine carré de a se note On a Remarques : 1 La racine carrée d' 



[PDF] LES RACINES CARRéES - AlloSchool

II- Racines carrées et opérations : 1) Multiplication de racine carrée : Soient a et b deux nombres positifs on a :



[PDF] Racines Carrées

Nombres et calculs : les racines carrées Module ?a n'existe que si a est un nombre positif ou nul (voir définition) Exercice 1



[PDF] cours_3eme_chap_a3_racines_

RACINE CARREE D'UN NOMBRE POSITIF 1 I) Définition et conditions d'existence de la racine carrée d'un nombre 1) Définition Il existe deux nombres tel 



[PDF] les racines carrées :

On suppose connu le résultat suivant : Page 2 Les carrés de deux nombres positifs sont rangés dans le même ordre que ces nombres Si un nombre positif dont le 

  • Quelle est la racine carrée d'un nombre positif ?

    Racine carrée d'un nombre positif
    On appelle racine carrée de a le nombre positif dont le carré est égal à a. On note ce nombre a et on le lit « racine carrée de a ». Le symbole « » est appelé radical.
  • Comment faire la racine carré d'un nombre négatif ?

    Quelle bonne question En fait, la racine carrée d'un nombre négatif n'existe pas. La racine carrée peut etre négative car un carré, comme il est connu, est obtenu en multipliant un nombre par lui-même. De ce fait, donc dans ce cas, le carré d'un nombre négatif est positif.
  • Simplifier une racine carrée, c'est l'écrire sous la forme « a x ?b » avec b le plus petit possible. La simplification de racines carrées est utile quand on doit effectuer des additions, des soustractions ou des multiplications de racines carrées.
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 Dans la suite, on demande d"écrire soi-même les fonctions dont on a besoin.

De plus, on commentera et testera, dans la mesure du possible, toutes lesfonctions à l"aide de la macroASSERTci-dessous:

#define ASSERT(test) if (!(test)) cout << "Test failed in file " << __FILE__ \ << " line " << __LINE__ << ": " #test << endl xExercice 2. Ecriture et test d"une fonction simple.Vous allez maintenant faire la démarche

complète d"ecrire une fonction vous-même puis de l"appeler. Le but est de maîtriser la syntaxe de

base de définition et d"appel d"une fonction. Vous pouvez consulter votre cours ou bien repartir de

l"exemple de la factorielle. 1. Ra joutezdans le même fic hierle co ded"une fonction squarequi prend en paramètre un nombre entier et calcule son carré. 2. Ra joutezaussi le co ded"une fonction testSquarequi teste la fonctionsquareen l"ap- pellant avec différentes valeurs (vous pouvez vous inspirer des fonctionstestFactorielet testBinome). 3. Ra joutezun test a vecdeux app elsim briqués,p ourv érifierque (32)2= 81. 4. Mo difiezv otreprog rammemainpour lancer les tests de cette nouvelle fonction. !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 carré d"un nombre

10* @param n réel

11* @return un réel

12**/

13int square(int n) {

14return n * n;

15} 16

17/** Tester la fonction binome

18**/

19void testSquare() {

20// valeur de base

21ASSERT(square(0) == 0);

22ASSERT(square(1) == 1);

23ASSERT(square(2) == 4);

24ASSERT(square(3) == 9);

25ASSERT(square(10) == 100);

26ASSERT(square(square(3))== 81);

27}
28

29/** Fonction principale

30**/
4

31int main() {

32testSquare();

33cout << "OK" << endl;

34}!

xExercice 3. (Racine carrée etn-ième)Cet exercice est obligatoire, ceux qui ne l"ont pas fini en

TP devront envoyer le corrigé par email au professeur du TP. On reprend l"exercice 2 du TP précédent.

Sur les nombres à virgule (float), l"opérateur==n"est pas très utile à cause des erreurs d"arrondis.

Pour résoudre ce problème, quand on veut comparer deux nombres à virgule, on teste si la valeur

absolue de la différence est négligeable devant les deux nombres : jxyj jxjetjxyj jyj(1) oùest un très petit nombre. 1. Définir une constan teepsilonégale à106(1e-6enC++); 2. Écrire une fonction presqueEgalqui prend deux nombresxetyet qui teste s"ils vérifient la

condition ci-dessus, c"est à dire s"ils sont égaux avec une précision de. Remarque importante :

quand on vous demande d"écrire une fonction qui teste quelque chose, cela signifie qu"on veut une fonction qui renvoie un booléen. 3. Écrire une fonction testpresqueEgalque vérifie par desASSERTquepresqueEgal(1,

1+epsilon/2),presqueEgal(1, 1),presqueEgal(1+1, 2),presqueEgal(0, 0)retournent

bien vrai et quepresqueEgal(1, 1+2*epsilon),presqueEgal(0, 1)retournent bien faux. On montre en mathématique que étant donné un réel positifala suite u

0:=a; un+1:=un+a=un2

(2) converge vers pa. 4.

Écrire une fonction qui prend en argumen tun réel aet calcule sa racine carrée en utilisant la

suite définie ci-dessus. Par définition, la racine carrée est la solution positivexde l"équation

x

2=a. On utilisera ce test et la fonctionpresqueEgaldéfinie plus haut pour arrêter le calcul

au bon moment. Si vous en avez besoin, vous pouvez adapter la fonctionsquareprécédente pour qu"elle travaille aussi avec les réels (typefloat). 5. T estercette fonction en v érifianten treautre que p0 = 0,p1 = 1,p4 = 2etp21:4142135 6. Écrire un programme qui de mandeu nnom brep ositifà l"utilisateur et qui affic hesa racine carrée.

Pour calculer la racinen-ième d"un nombre, on procède de la même manière que pour la racine carrée

en utilisant la suite u

0:=a; uk+1=1n

(n1)uk+au n1 k qui converge vers npasia >0. 7.

Écrire une fonction q uicalcule la racine n-ième d"un réela. Par définition, la racinen-ième

est la solution positivexde l"équationxn=a. On utilisera ce test et la fonctionpresqueEgal définie plus haut pour arrêter le calcul au bon moment. On reprendra la fonction puissance du

TP précédent.

8.

T esterla fonction sac hantque

5p21:1486983.

5 xExercice 4. Exponentielle La fonction exponentielle est définie parexp(a) :=P1 i=0ai=i!: 1. En réutilisan tla fonction presqueEgalécrire une fonctionexponentiellequi calcule l"expo- nentielle d"un nombrea. On utilisera une boucle et un accumulateur pour calculer les sommesPN i=0ai=i!. On stoppe la boucle dès que deux sommes calculées consécutivement sont "presque

égales».

Cette méthode n"est pas très efficace car, en utilisant les fonctionsfactorielleetpuissance, on re-

calcule plusieurs fois les mêmes produits. Pour aller plus vite, on peut, dans la même boucle, accumuler

la factorielle, la puissance et la somme. 2. Écrire une fonction exponentielle2qui fait le calcul plus rapidement en utilisant les trois accumulateurs dans la même boucle. On gardera la même condition d"arrêt de la boucle. !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

9const float epsilon = 1e-6;

10

11/** Calculer le factoriel d"un entier

12* @param n un entier

13* @return un entier

14**/

15int factoriel(int n) {

16if (n < 0) {

17cout << "Factoriel argument negatif file " << __FILE__ << " line " << __LINE__ << endl;

18exit(1);

19}

20int res = 1, i;

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

22res *= i;

23}

24return res;

25}
26

27/** Puissance d"un nombre réel

28* @param n un entier positif

29* @param a un nombre réel

6

30* @return a^n

31**/

32float puissance(float a, unsigned int n) {

33float res = 1.;

34for (unsigned int i = 0; i

35res = res*a;

36return res;

37}
38

39/** Valeur absolue d"un float

40* @param x un float

41* @return |x|

42**/

43float absolue(float x) {

44if (x < 0) return -x;

45else return x;

46}
47

48/** Égalité des float

49* @param x, y deux float

50* @return si x == y à epsilon près

51**/

52bool presqueEgal(float x, float y) {

53return absolue(x-y) <= epsilon*absolue(x) and absolue(x-y) <= epsilon*absolue(y);

54}
55

56/** Exponentielle d"un float

57* @param a, un float

58* @return exp(a)

59**/

60float exponentielle(float a) {

61int i = 0;

62float res = 0.;

63bool stop = false;

64while (not stop) {

65float tmp = res + (float)puissance(a, i) / (float)factoriel(i);

66if (presqueEgal(res, tmp))

67stop = true;

68else

69res = tmp;

70i = i + 1;

71}

72return res;

73}
74

75void testExponentielle() {

76ASSERT(presqueEgal(exponentielle(0.), 1.));

77ASSERT(presqueEgal(exponentielle(1.), 2.7182818));

78ASSERT(presqueEgal(exponentielle(2.), 7.3890561));

79}
80

81/** Exponentielle d"un float avec la méthode rapide

82* @param a, un float

83* @return exp(a)

84**/
7

85float exponentielle2(float a) {

86int i = 0;

87float acc_puiss = 1;

88float acc_fact = 1;

89float res = 0.;

90bool stop = false;

91while (not stop) {

92float tmp = res + (float)acc_puiss / (float)acc_fact;

93if (presqueEgal(res, tmp))

94stop = true;

95else

96res = tmp;

97i = i + 1;

quotesdbs_dbs33.pdfusesText_39

[PDF] pourquoi l'information financière joue-t-elle un rôle central dans le fonctionnement de l'entreprise

[PDF] l'information financière pourquoi pour qui

[PDF] racine(ab)=a+b/2

[PDF] cycle renforcement musculaire college

[PDF] fiabilité des systèmes pdf

[PDF] racine exponentielle complexe

[PDF] la ressemblance arts plastiques

[PDF] préparation d'un salon professionnel

[PDF] comment organiser un salon professionnel pdf

[PDF] résoudre une équation dont l inconnue est une puissance

[PDF] retroplanning salon professionnel

[PDF] si c'est un homme résumé par chapitre

[PDF] retroplanning organisation salon

[PDF] si c'est un homme film

[PDF] si c'est un homme résumé court