Cours:TdFonctionsCpp

De troyesGEII
Révision datée du 20 novembre 2015 à 18:10 par Bjacquot (discussion | contributions) (Exercice 3)
Aller à : navigation, rechercher

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