NOMBRES - Curiosités, théorie et usages

 

Accueil                           DicoNombre            Rubriques           Nouveautés      Édition du: 02/03/2016

Orientation générale        DicoMot Math          Atlas                   Références                     M'écrire

Barre de recherche          DicoCulture              Index alphabétique                               

     

Informatique

 

Débutants

Général

Programmation

 

Glossaire

Algorithme

 

 

INDEX

 

Programmation

 

Algorithmes

 

Multimédia

 

<<< Débutant

Boucle

Condition >>>

Ordinateurs

 

Sommaire de cette page

>>> Ma première boucle

>>> Astuce

>>> Je me lance

>>> Progression contrôlée

>>> Double boucle

>>> Multi-boucle

>>> Bilan

>>> Calcul itératif de Pi

 

 

 

 

 

 

Boucle

 

 

*      Comment automatiser un travail répétitif.

*      Je souhaite que l'ordinateur répète une opération autant de fois que je le désire.

 

La boucle répète dix fois avec une seconde d'intervalle: avancer, tourner et miaou.   Voir Scratch

 

 

 

Ma première boucle

 

Première écriture

 

*      Je souhaite lister la suite des carrés des nombres de 1 à 10.

*      Nous avons déjà vu ce programme sous une forme répétitive.

*      Voici le programme avec les commentaires sur la droite:

 

 

*      Vous noterez:

*      Toutes les instructions à exécuter dans la boucle sont encadrées par les mots "début" et "fin". Les instructions dans la boucle sont décalées pour faciliter la lecture du programme.

*      Ne pas oublier de préciser la première valeur de A, avant d'entamer la boucle. C'est la phase d'initialisation de la boucle.

 

 

 

Écriture abrégée

 

*      Il est possible de réduire ce programme avec une instruction spéciale boucle dont voici l'écriture:

 

 

*      Avec la première instruction pour A de 1 à 10, la mémoire nommée A prendra successivement les valeurs 1, 2, 3 jusqu'à 10. et pour chacune de ces valeurs, l'ordinateur calculera la valeur du carré de A qu'il placera dans C.

 

 

 

 

Écriture avec Mapple

 

*      Il s'agit des mêmes instructions, mais traduites en anglais:


for    veut dire   pour
from                  de

to                       à

do                      faire

od est simplement do à l'envers.

 

*      En rouge le programme et en bleu le résultat de l'exécution.

*      Notez l'absence de ; à la première ligne. En fait, le do qui suit est considéré faire partie de cette première instruction.

 

 

 

 

Astuce

 

*      Remarque: vous pouvez intégrer vos commentaires dans le texte du programme lui-même. Il suffit de place le caractère dièse (#) devant le texte de commentaire.

 

*      Il faut changer de ligne pour mettre fin au commentaire.

 

> a:=2;
 b:=10;

 c :=a + b; # addition de a et b dont la somme est placée en c; ceci est un commentaire.

 d:=c*c;

 

 

 

 

JE ME LANCE

 

*      Je souhaite lister le nombre, son carré et son cube pour tous les nombres de 1 à 10.

*      Plusieurs remarques:

*      Je calcule A*A pour le carré et A*A*A pour le cube. Vous constatez qu'il est inutile de baptiser ces nombres.

*      l'instruction lprint (imprimer) permet d'imprimer plusieurs nombres sur la même ligne. Chaque valeur est séparée par une virgule.

 

 

 

Progression contrôlée

 

*      Par défaut, le pointeur de boucle (ici: tutut) progresse d'une unité.

 

*      Il suffit d'ajouter by k (ici: 5) pour que le pointeur soit incrémenté de k à chaque passage en boucle.

*      Ce programme calcule le carré des multiples de 5 jusqu'à 20.

 

 

DOUBLE BOUCLE

 

*      Je souhaite lister un nombre et son retourné, comme 17 et 71.

*      Je vais former mon nombre avec i et j en calculant 10i + j et son retourné sera 10j + i.

*      Comment cela fonctionne-t-il?

*      Pendant que i prend la valeur 1, l'ordinateur exécute la bouche en j qui prend successivement les valeurs 7, 8 et 9.

*      Cette boucle en j terminée, alors i prend la valeur suivante: 2. Et, c'est reparti pour une boucle en j avec 7,8 et 9.

*      Cette boucle en j terminée, alors i prend la valeur suivante: 3. Et, c'est reparti pour une boucle en j avec 7,8 et 9.

*      C'est la fin de la boucle en i. le programme est terminé.

 

 

Note: pour obtenir tous les nombres à deux chiffres faire i de 0 à 9 et j de 0 à 9.

 

 

 

MULTI-BOUCLE

 

*      Je souhaite former les nombre de 0 à 9 999.

*      J'utilise la formule 1000m + 100c + 10d + u et je balaye toutes les valeurs de m, c, d et u au moyen de quatre boucles imbriquées.

 

Note: il serait évidemment plus facile de faire une boucle listant les nombres au moyen d'une simple boucle utilisant l'instruction N:=N+1. Il s'agissait ici d'illustrer un programme avec multi-boucles.

 

 

 

Ce que nous avons appris

 

 

*    Une boucle permet de répéter un jeu d'instructions

*    Son format est

for TOTO from x to y do    {instructions} od;

 

*    L'ordinateur répétera n = y – x fois les instructions e la boucle en donnant à TOTO la valeur x, puis la valeur x + 1 … jusqu'à atteindre la valeur y.

 

*    Il tout à fait possible que {instructions} contienne une boucle interne. Plusieurs boucles imbriquées sont tout à fait permises.

 

 

 

Exemple avec un calcul itératif de Pi

 

*      Calcul de Pi selon la formule de Gregory-Leibniz:

 

 

*      À chaque passage dans la boucle (itération), nous allons calculer deux termes à la fois, comme  + 1/1 – 1/3; le pointeur progresse alors de quatre en quatre pour faire par exemple: + 1/5 – 1/7.

 

L'exécution du programme va sans doute prendre plus d'une heure. Pour savoir où en est l'avancement du programme nous allons lui demander de nous donner son résultat de calcul tout les 40 000 itérations.

 

Explications

 

 

*      PP est la somme Pi/4.

*      Boucle pour aller jusqu'à un million, avec progression de quatre en quatre.

*      Les deux termes sont P1 et P2.

*      Chaque fois que n divisé par 40 000 vaut 1 nous imprimons la valeur de n et celle de Pi.         (Voir Mod)

*      Le programme terminé, il imprime la valeur de Pi.

*      En bleu, les valeurs montrant l'avancement. La valeur de Pi est indicative car donnée avec 10 chiffres seulement.

*      Pour obtenir plus de chiffres, nous spécifions que le programme doit évaluer (evalf) avec 50 décimales.

*      Nous en profitons pour nous rappeler la valeur exacte de Pi.

Voir Comparaison des décimales

Programme (rouge) et exécution (bleu)

 

 

 

 

 

 

Suite

*       Condition

*       Instruction de répétition (while)

Voir

*    Menu en en-tête

*    ProgrammationIndex

Aussi

*    Programmation – En savoir un peu plus

Cette page

http://villemin.gerard.free.fr/aInforma/03Boucle.htm