Cours:TdFonctionsCpp : Différence entre versions
(Page créée avec « === Exercice 1 === * Ecrire une fonction factorielle de manière itérative <math> n!=1*2*3*...*n </math> * réécrire une fonction factorielle de manière récursive... ») |
m (→Rappels) |
||
(7 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
+ | |||
+ | === Rappels === | ||
+ | |||
+ | Une fonction est un ''morceau'' de code: | ||
+ | |||
+ | * réalisant un travail bien précis. | ||
+ | * pouvant recevoir des informations sous forme de paramètre. | ||
+ | * pouvant retourner un résultat. | ||
+ | <source lang=cpp> | ||
+ | float carre(float x) { | ||
+ | return x*x; | ||
+ | } | ||
+ | </source> | ||
+ | qui peut s'utiliser de la manière suivante: | ||
+ | |||
+ | <source lang=cpp> | ||
+ | int main() { | ||
+ | float v; | ||
+ | cout << carre(2); // affiche le carré de 2 | ||
+ | cin >> v; // lit une valeur au clavier et range dans la variable v | ||
+ | cout << carre(v); // affiche le carré de ce qui a été lu au clavier | ||
+ | } | ||
+ | </source> | ||
+ | Autres exemples (en Processing): ''setup(), draw(), rect(..), ellipse(...)'' | ||
=== Exercice 1 === | === Exercice 1 === | ||
Ligne 23 : | Ligne 47 : | ||
=== Exercice 3 === | === Exercice 3 === | ||
− | Calculer une valeur approchée de | + | Calculer une valeur approchée de <math>\pi</math> de la manière suivante: |
* tirer deux valeurs aléatoires comprises entre 0 et 1 en utilisant la | * tirer deux valeurs aléatoires comprises entre 0 et 1 en utilisant la | ||
− | fonction | + | fonction '''rand()''' et les ranger dans deux |
− | variables | + | variables '''x''' et '''y'''. |
* si le point de coordonnées (x,y) est compris dans le quart de disque centré | * si le point de coordonnées (x,y) est compris dans le quart de disque centré | ||
− | sur l'origine et de rayon 1, on incrémente un compteur | + | sur l'origine et de rayon 1, on incrémente un compteur '''c'''. |
− | * on incrémente le compteur de points tirés | + | * on incrémente le compteur de points tirés '''n'''. |
− | On obtient alors en calculant 4*c/n une valeur approchée de | + | On obtient alors en calculant <math>4*c/n</math> une valeur approchée de <math>\pi</math>. |
Remarque: pour calculer un nombre aléatoire entre 0 et 1, on utilise: | Remarque: pour calculer un nombre aléatoire entre 0 et 1, on utilise: | ||
Ligne 40 : | Ligne 64 : | ||
− | Pour plus de détails, | + | Pour plus de détails, [http://www.cplusplus.com/reference/cstdlib/rand/ reference cstdlib rand] |
Version actuelle datée du 25 novembre 2015 à 12:37
Sommaire
Rappels
Une fonction est un morceau de code:
- réalisant un travail bien précis.
- pouvant recevoir des informations sous forme de paramètre.
- pouvant retourner un résultat.
float carre(float x) {
return x*x;
}
qui peut s'utiliser de la manière suivante:
int main() {
float v;
cout << carre(2); // affiche le carré de 2
cin >> v; // lit une valeur au clavier et range dans la variable v
cout << carre(v); // affiche le carré de ce qui a été lu au clavier
}
Autres exemples (en Processing): setup(), draw(), rect(..), ellipse(...)
Exercice 1
- Ecrire une fonction factorielle de manière itérative
Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): n!=1*2*3*...*n
- réécrire une fonction factorielle de manière récursive en remarquant que:
Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): 0!=1 et que sinon Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): n!=n*(n-1)!
Exercice 2
Ecrire une fonction qui calcule une valeur approchée de la racine carrée d'un nombre en utilisant la suite suivante:
Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): u_{n+1}=0.5*(u_n+\frac{a}{u_n})
Cette suite a pour propriété intéressante de converger rapidement vers la racine carrée de a, quelque soit le premier élément de la suite.
Exercice 3
Calculer une valeur approchée de Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): \pi de la manière suivante:
- tirer deux valeurs aléatoires comprises entre 0 et 1 en utilisant la
fonction rand() et les ranger dans deux variables x et y.
- si le point de coordonnées (x,y) est compris dans le quart de disque centré
sur l'origine et de rayon 1, on incrémente un compteur c.
- on incrémente le compteur de points tirés n.
On obtient alors en calculant Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): 4*c/n une valeur approchée de Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): \pi .
Remarque: pour calculer un nombre aléatoire entre 0 et 1, on utilise:
1.0*rand()/RAND_MAX
Pour plus de détails, reference cstdlib rand