File:PGCD par divisions successives.svg
Original file (SVG file, nominally 660 × 825 pixels, file size: 4 KB)
Captions
Summary
[edit]DescriptionPGCD par divisions successives.svg |
English: See File:GCD_through successive_divisions.svg
Français : Le PGCD de deux entiers naturels
est leur commun diviseur, multiple de tous leurs diviseurs communs. Pour le calculer, l’algorithme transforme pas à pas un couple d’entiers positifs en un autre de mêmes diviseurs communs. Après chaque division euclidienne, le couple diviseur‑reste devient un nouveau dividende‑diviseur éventuel, jusqu’à un zéro décisif. Le reste qui précède est alors le PGCD désiré. Clé de la démonstration : si deux entiers sont multiples d’un certain entier k, alors leur Par exemple, 72–20 = 52, 52–20 = 32, 32–20 = 12. Et les couples suivants ont 20 est le reste de la division euclidienne de 20 par 72, Première traduction en JavaScript. Quand vous copiez la ligne suivante, et la collez ensuite dans la barre d’adresse de votre navigateur :
votre navigateur exécute le code JavaScript quand vous tapez Entrée. Si ce n’est pas exécuté, alors activez JavaScript dans votre navigateur. Et puis, en saisissant d’autres entiers positifs à la place de 72 et 20, vous obtenez leur PGCD. Seconde traduction en JavaScript. Exemple plus compréhensible, grâce aux copieux commentaires placés entre /* et */ /* Pour ouvrir une fenêtre Firefox
dédiée au code JavaScript : Shift + F4 */
d = 20; g = 72;
/* Impératif : deux entiers positifs entrent dans le calcul.
Ces conditions pourraient être vérifiées automatiquement dans une
fonction plus élaborée PGCD = function(… ){… }, qui
retournerait un message d'alerte en cas d'emploi anormal.
Voir l'instruction try dans
File:PGCD_par soustractions_successives.svg
Ici un emploi anormal n'est pas prévu. Alors, prenez soin de
remplacer 20 et 72 par des entiers positifs, quand vous
commandez le calcul du PGCD de deux autres nombres.
Pourquoi nommer g la 2ème variable ?⸮ G évoque le “Grand”
de l'acronyme PGCD, zéro étant le plus Grand entier (positif)
pour la relation d'ordre partiel nommée “divisibilité” :
zéro est lE mUlTiPlE de tous les entiers. */
mcd = "(" + d +", "+ g;
/* Juste après l'assignation des valeurs de type Number à d
et g, une valeur de type String est attribuée à la variable
nommée mcd. “String” signifie “chaîne de caractères”. Ici
le premier caractère mcd.charAt( 0 ) est une parenthèse.
Ensuite le signe + commande soit “additionne les nombres”,
soit “concatène les chaînes”, selon le contexte. Après une
chaîne, le + commande une concaténation. Alors la valeur
Number de d est tacitement convertie en son écriture en
numération décimale : une chaîne éphémère (20.).toString( 10 )
prolonge la chaîne "(" de longueur 1. La syntaxe qui suit
a une signification similaire.
Les valeurs 20 et 72 sont rangées dans la valeur initiale
de mcd : "(20, 72", avant que la boucle ci‑dessous modifie
ces deux valeurs Number, pour obtenir leur PGCD */
// sqr = " Suite de “tous les restes” :\n " + mcd;
/* Deux slashs // marquent le début d'un commentaire
placé sur la même ligne, non exécuté par un interpréteur
de JavaScript. Ci‑dessus la ligne qui commence par deux slashs
est un commentaire, comme l'est ce texte-ci, placé entre ses
deux paires particulières de caractères (comme en CSS).
Mais si cette 1ère paire de slashs est supprimée, alors
la ligne devient un morceau de code exécuté comme les autres.
Et la valeur String tapée sur cette nouvelle ligne de code
est assignée à la variable sqr. Le caractère "\n" de cette
chaîne commande le début de sa seconde ligne de caractères,
égale à mcd pour le moment, à un espace près. Ci‑dessous
la boucle unique du code modifiera la valeur initiale de sqr,
si la 2ème paire de slashs est aussi supprimée dans cette boucle.
*/
while( g ){
/* début de la boucle.
Entre les parenthèses de while, l'expression est
implicitement convertie en un éphémère objet de type Boolean,
si nécessaire. Sa valeur est true ou false (en français :
vrai ou faux). Code équivalent : while( Boolean( g ))
Par exemple, Boolean( 72 ) renvoie true :
la valeur requise pour entrer dans la boucle.
Autre code équivalent : while( g > 0 )
Vous pouvez vérifier, bien sûr : ( 72 > 0 ) —> true
( 72 > 0 ).constructor —> function Boolean() { [native code] }
Dans un cas ultérieur, Boolean( 0 ) —> false.
Quand Boolean( g ) renvoie false, l'entrée dans la boucle
est refusée, alors le code après la boucle est exécuté. */
r = d % g;
/* % est l'opération modulo.
À la première occurrence du nom de variable r,
une nouvelle variable nommée r est créée, de portée globale.
Le reste de la division euclidienne de d par g est
assigné à la variable r (r comme “reste”).
*/
d = g; g = r;
/* éventuelle paire dividende-diviseur
d'une division ultérieure, si g n'est pas zéro */
// sqr += ", "+ g;
/* code facultatif considéré en fait comme commentaire,
mais exécutable si les slashs sont supprimés. Une erreur
est renvoyée si cette seule paire de slashs est supprimée.
Code équivalent : sqr = sqr + ", "+ g; */
}
/* fin de la boucle while( g ) */
" PGCD" + mcd +") = "+ d;
/* renvoie une chaîne avec le PGCD désiré */
// sqr += ").";
/* Quand les trois paires de slashs ci-dessus sont supprimées,
la valeur définitive de sqr est renvoyée : la suite de
“tous les restes” pour la valeur initiale de la paire (d, g).
N'importe où dans la suite des restes, deux entiers successifs
ont toujours le même ensemble de communs diviseurs.
Raccourci-clavier dans Firefox
pour exécuter le code : Ctrl + L */
|
Date | |
Source | Own work |
Author | Arthur Baelde |
Other versions | |
SVG development InfoField | This /Baelde was created with a text editor. |
Licensing
[edit]- You are free:
- to share – to copy, distribute and transmit the work
- to remix – to adapt the work
- Under the following conditions:
- attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
- share alike – If you remix, transform, or build upon the material, you must distribute your contributions under the same or compatible license as the original.
File history
Click on a date/time to view the file as it appeared at that time.
Date/Time | Thumbnail | Dimensions | User | Comment | |
---|---|---|---|---|---|
current | 12:37, 24 May 2024 | 660 × 825 (4 KB) | Arthur Baelde (talk | contribs) | Uploaded own work with UploadWizard |
You cannot overwrite this file.
File usage on Commons
The following 4 pages use this file:
Metadata
This file contains additional information such as Exif metadata which may have been added by the digital camera, scanner, or software program used to create or digitize it. If the file has been modified from its original state, some details such as the timestamp may not fully reflect those of the original file. The timestamp is only as accurate as the clock in the camera, and it may be completely wrong.
Width | 660 |
---|---|
Height | 825 |