Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- TP Noté 2
- IFT1015-B
- Julien Gélineau Poirier (GELJ07089004)
- ======================================
- L'objectif de ce programme est d'approximer la valeur de pi en utilisant
- la suite infinie 4/1 - 4/3 + 4/5 - 4/7 (et ainsi de suite). Selon l'énoncé
- de l'exercice l'approximation sera satisfaisante après 20 000 itérations.
- Ce programme se complète en 290 016 étapes
- */
- // Déclare une variable aproximationPi pour stocker le résultat du calcul
- var approximationPi = 0;
- // Déclare une variable numerateur qui prendra la valeur 4 et ne changera pas
- var numerateur = 4;
- // Déclare une variable denominateur qui sera augmentée dans la boucle for
- var denominateur = 1;
- // Déclare une variable booléenne signe et lui assigne la valeur true
- // pour l'utiliser avec l'opérateur ternaire conditionnel "?"
- var signe = true;
- // Initialisation de la variable i qui sera locale à la boucle for
- // nous voulons 20 000 itérations de la boucle. augmente i de un.
- for (i = 0; i < 20000; ++i) {
- // Additionne à la valeur de approximationpi la première équation si signe = true
- // et la deuxième si false (permet de faire alterner le signe) ensuite augmente la
- // valeur de denominateur afin d'afficher le prochain nombre impair.
- approximationPi += signe ? numerateur / denominateur : -(numerateur / denominateur);
- denominateur += 2;
- // si le signe est true, réassigne la valeur à false et recommence la boucle for avec
- // les nouvelles valeurs de l'équation. sinon renvoie la valeur à true et recommence
- // la boucle for.
- if (signe) {
- signe = false;
- } else {
- signe = true;
- }
- }
- // Lorsque le programme sort de la boucle for il imprime le résultat de l'approximation
- print(approximationPi);
- /* Pour fins d'évaluation veuillez utiliser le premier programmme puisqu'il utilise
- des énoncés blocs tel que demandé. Toutefois, j'ai réussi à optimiser le premier
- programme afin d'effectuer la même tâche mais en 270 012 étapes (20 004 étapes de moins).
- Puisque nous faisons des bonds de deux avec la variable i, il est nécessaire de faire 40 001
- itérations pour obtenir la même précision. J'estime que programme se réalise en moins d'étapes
- car nous utilisons la valeur de 4 directement dans l'équation plutôt qu'aller chercher sa valeur
- dans la variable numerateur (qui ne changeait alors pas).De plus nous effectuons le changement
- de signe dans la même boucle for sans if else.
- var approximationpi = 0;
- var signe = true;
- for (var i = 1; i < 40001; i+=2, signe = !signe) {
- approximationpi += signe ? 4/i : -4/i;
- }
- print(approximationpi);
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement