Wikilivres
frwikibooks
https://fr.wikibooks.org/wiki/Accueil
MediaWiki 1.39.0-wmf.21
first-letter
Média
Spécial
Discussion
Utilisateur
Discussion utilisateur
Wikilivres
Discussion Wikilivres
Fichier
Discussion fichier
MediaWiki
Discussion MediaWiki
Modèle
Discussion modèle
Aide
Discussion aide
Catégorie
Discussion catégorie
Transwiki
Discussion Transwiki
Wikijunior
Discussion Wikijunior
TimedText
TimedText talk
Module
Discussion module
Gadget
Discussion gadget
Définition de gadget
Discussion définition de gadget
Programmation PHP/Opérateurs
0
5804
682358
669560
2022-07-25T06:02:49Z
JackPotte
5426
/* Opérateur ? */
wikitext
text/x-wiki
<noinclude>{{Programmation PHP}}</noinclude>
Les '''opérateurs''' sont des symboles qui permettent de manipuler les variables.
== Opérateurs arithmétiques ==
=== = Opérateur d'affectation ===
<syntaxhighlight lang="php">
<?php
$un_chiffre = 4; //affectation de l'entier 4 à la variable un_chiffre
$un_mot = 'je suis fan des pâtes'; //affectation de la chaîne de caractères à la variable "un_mot"
</syntaxhighlight>
=== + : Opérateur d'addition ===
<syntaxhighlight lang="php">
<?php
$mon_premier_chiffre = 3; //affectation du premier chiffre
$mon_deuxieme_chiffre = 4; //affectation du deuxième chiffre
$resultat = $mon_premier_chiffre + $mon_deuxieme_chiffre; //affectation de l'addition des deux chiffres
echo $resultat; //affiche 3+4 soit 7
</syntaxhighlight>
{{attention|Si les opérandes sont des tableaux, "+" est l'opérateur union<ref>https://www.php.net/manual/fr/language.operators.array.php</ref>.}}
=== - Opérateur de soustraction ===
<syntaxhighlight lang="php">
<?php
$mon_premier_chiffre = 3;
$mon_deuxieme_chiffre = 4;
$resultat = $mon_premier_chiffre - $mon_deuxieme_chiffre;
echo $resultat; //affiche 3-4 soit -1
</syntaxhighlight>
=== * Opérateur de multiplication ===
<syntaxhighlight lang="php">
<?php
$mon_premier_chiffre = 3;
$mon_deuxieme_chiffre = 4;
$resultat = $mon_premier_chiffre * $mon_deuxieme_chiffre;
echo $resultat; //affiche 3*4 soit 12
</syntaxhighlight>
=== ** Opérateur d’exponentiation ===
<syntaxhighlight lang="php">
<?php
$mon_premier_chiffre = 2;
$mon_deuxieme_chiffre = 3;
$resultat = $mon_premier_chiffre ** $mon_deuxieme_chiffre;
echo $resultat; //affiche 2^3 soit 8
</syntaxhighlight>
=== / Opérateur de division ===
<syntaxhighlight lang="php">
<?php
$mon_premier_chiffre = 3;
$mon_deuxieme_chiffre = 4;
$resultat = $mon_premier_chiffre / $mon_deuxieme_chiffre;
echo $resultat; //affiche 3/4 soit 0,75
</syntaxhighlight>
=== % Opérateur modulo ===
<syntaxhighlight lang="php">
<?php
$mon_premier_chiffre = 3;
$mon_deuxieme_chiffre = 4;
$resultat = $mon_premier_chiffre % $mon_deuxieme_chiffre;
echo $resultat; //affiche 3 modulo 4 soit 3 (le modulo est le reste entier de la division euclidienne)
</syntaxhighlight>
Il sert à tester si un nombre est le multiple d'un autre :
<syntaxhighlight lang="php">
<?php
if ($nb % 3 == 0) {
// $nb est un multiple de trois
}
</syntaxhighlight>
{{remarque|Le reste de la division peut être obtenu avec la fonction <code>fmod()</code><ref>https://www.php.net/manual/fr/function.fmod.php</ref>.}}
{{attention|1=Lors de la division de nombres à virgules flottantes, on peut facilement avoir un problème de précision du langage à cause du mode de leur stockage en mémoire. Par exemple sur http://phpfiddle.org/ :
<syntaxhighlight lang=php>
echo PHP_VERSION.PHP_EOL;
var_dump(fmod(9999.00000, 9998.00001));
</syntaxhighlight>
donne :
<syntaxhighlight lang=bash>
7.3.14
float(0.99999000000025)
</syntaxhighlight>
Il faut les arrondir à un nombre de chiffre après la virgule bien déterminé.
}}
== Opérateurs logiques booléens ==
Les opérateurs logiques agissent sur les types booléens (<code>true</code> ou <code>false</code>).
* ! : négation. Transforme <code>false</code> en <code>true</code> et <code>true</code> en <code>false</code>.
* && : opérateur "et".
* and : opérateur "et" de moindre priorité.
* || : opérateur "ou"
* or : opérateur "ou" de moindre priorité.
== Opérateurs logiques bit à bit ==
Les opérateurs logiques bit à bit agissent sur chaque bit des valeurs entières.
*~ Négation : <code>0</code> -> <code>1</code> et <code>1</code> -> <code>0</code>
*& Opérateur et (and)
*| Opérateur ou (or)
*^ Opérateur ou exclusif (xor)
== Opérateur d'assignation ==
Ils permettent de simplifier l'écriture des assignations.
* += additionne deux valeurs et stocke le résultat dans la variable ($x += 5 équivaut à $x = $x+5)
* -= soustrait deux valeurs et stocke le résultat dans la variable ($x -= 5 équivaut à $x = $x-5)
* <nowiki>*</nowiki>= multiplie deux valeurs et stocke le résultat dans la variable ($x *= 5 équivaut à $x = $x*5)
* /= divise deux valeurs et stocke le résultat dans la variable ($x /= 5 équivaut à $x = $x/5)
* %= donne le reste de la division de deux valeurs et stocke le résultat dans la variable ($x %=5 équivaut à $x = $x%5)
* |= effectue un OU logique entre deux valeurs et stocke le résultat dans la variable ($x |=5 équivaut à $x = $x|5)
* ^= effectue un OU exclusif entre deux valeurs et stocke le résultat dans la variable ($x ^= 5 équivaut à $x = $x^5)
* &= effectue un ET logique entre deux valeurs et stocke le résultat dans la variable ($x &= 5 équivaut à $x = $x&5)
* .= concatène deux chaînes et stocke le résultat dans la variable ($x .= 'test' équivaut à $x = $x.'test')
== Opérateur d'incrémentation ==
* ++ : incrémente de 1 la valeur de la variable si "$x = 1 ", "$x++" vaut "++$x" qui vaut "2".
* -- : décrémente de 1 la valeur de la variable si "$x = 2", "$x--" vaut "--$x" qui vaut "1".
Ces opérateurs sont très utiles dans les boucles (notamment ''for'').
== Opérateur de comparaison ==
* == renvoie un booléen pour indiquer l'égalité (ce n'est pas ''='') : $x == 1 teste si la valeur $x est égale à 1.
* === renvoie un booléen pour indiquer à l'identique, c'est-à-dire l'égalité à la fois de la valeur '''et''' du type.
* != (alias <>) renvoie un booléen pour indiquer la différence : $x != 1 teste si la valeur $x est différente de 1.
* !== renvoie un booléen pour indiquer la différence '''ou''' de la valeur '''ou''' du type.
* > renvoie un booléen pour indiquer la supériorité stricte si $x > 1 teste si la valeur $x est strictement supérieure à 1.
* < renvoie un booléen pour indiquer l'infériorité stricte : $x < 1 teste si la valeur $x est strictement inférieure à 1.
* >= renvoie un booléen pour indiquer la supériorité-égalité si $x >= 1 teste si la valeur $x est supérieure ou égale à 1.
* <= renvoie un booléen pour indiquer l'infériorité-égalité si $x <= 1 teste si la valeur $x est inférieure ou égale à 1.
* <=><ref>PHP>=7</ref> renvoie 1 si le premier opérande est supérieur, 0 s'il est égal, et -1 s'il est inférieur au deuxième.
{{attention|Si les opérandes sont des tableaux :
* "==" est l'opérateur d'égalité (mêmes paires clés/valeurs).
* "===" vérifie aussi le type et l'ordre des paires clés/valeurs.
* "!=" (alias "<>") est l'opérateur d'inégalité.
* "!==" est l'opérateur non identique.
}}
== Opérateur divers ==
=== Opérateur ? ===
L'opérateur <code>?</code> permet de renvoyer une valeur ou une autre en fonction d'un test.
* ??<ref>PHP>=7</ref> (Null Coalescing Operator) opérateur binaire qui renvoie l'opérande qui le précède s'il existe (isset), sinon l'opérande qui le suit.
* ?:<ref>PHP>=7</ref> opérateur ternaire qui renvoie l'opérande qui le précède s'il existe et est non vide (empty), sinon l'opérande qui le suit.
Par exemple :
<syntaxhighlight lang="php">
$appreciation = ($note>10) ? "bon" : "mauvais";
</syntaxhighlight>
qui est équivalent au bloc PHP suivant :
<syntaxhighlight lang="php">
if ($note>10)
$appreciation="bon";
else
$appreciation="mauvais";
</syntaxhighlight>
ou
<syntaxhighlight lang="php">
if ($note > 10) {
$appreciation = "bon";
} else {
$appreciation = "mauvais";
}
</syntaxhighlight>
Toutefois il présente un autre avantage que sa concision : la {{w|Stratégie d'évaluation (informatique)|stratégie d'évaluation}} de cet opérateur ne calcule pas le "else" si le script n'a pas besoin d'y aller. Il devient donc moins gourmand en ressources.
En l'absence de premier résultat, le ternaire renvoie l'expression comparée à la place. Exemple :
<syntaxhighlight lang="php">
print 1 ?: 0;
// 1
</syntaxhighlight>
{{remarque|Il est généralement plus lisible de placer un retour chariot avant les ternaires. Ex :
<syntaxhighlight lang="PHP">
print 'Un est plus ' . (1 > 2
? ' grand'
: ' petit'
). ' que deux.';
</syntaxhighlight>
}}
=== Opérateur objet ===
L'opérateur objet -> permet d'accéder aux propriétés d'un objet. Exemple :
<syntaxhighlight lang="php">
print $voiture->couleur;
$voiture->repeindre('bleu');
</syntaxhighlight>
=== Opérateur de résolution de portée ===
L'opérateur ::, également appelé en PHP {{w|Paamayim Nekudotayim}}, permet d'accéder aux membres statiques ou constants d'une classe. Exemple :
<syntaxhighlight lang="php">
print $voiture::couleur;
</syntaxhighlight>
=== Opérateur de contrôle d'erreur ===
L'arobase permet d'ignorer les erreurs de l'expression qui le suit. Ex :
<syntaxhighlight lang="php">
print 1/0; //Warning: Division by zero, puis INF
print @(1/0); // INF
</syntaxhighlight>
=== Opérateur de référence ===
"&" accolé avant une variable désigne sa référence<ref>http://php.net/manual/fr/language.references.php</ref>, qui est en quelque sorte un {{wp|Pointeur (programmation)|pointeur}} en lecture seule. Elles sont utiles par exemple pour éviter copier un grand tableau en mémoire quand il est en paramètre d'une fonction. Exemple :
<syntaxhighlight lang="php">
public function archive(&$db)
{
var_dump($db);
}
</syntaxhighlight>
Son utilisation pour les fonctions sera détaillée dans [[../Fonctions#Références_de_variables|le chapitre sur les fonctions]], mais on peut aussi l'utiliser dans les boucles.
=== Opérateur de fonction {{wt|variadique}} ===
Depuis PHP 5.6, "..." dans la liste des arguments d'une fonction indique que ceux-ci sont d'un nombre variable.
Exemple :
<syntaxhighlight lang="php">
public function somme(...$nombres)
{
$somme = 0;
foreach ($nombres as $n) {
$somme += $n;
}
return $somme;
}
echo somme(1, 2, 3);
echo somme(1, 2, 3, 4);
</syntaxhighlight>
== Précédence des opérateurs ==
Quand une opérande est entourée de deux opérateurs (ex : 1 + 2 * 3 = 7), des règles de priorités s'appliquent systématiquement pour résoudre les opérations<ref>http://php.net/manual/fr/language.operators.precedence.php</ref>.
{{À faire|Site source légèrement incomplet, ex : $$.}}
== Références ==
{{Références}}
p89ws1itykeh0lpkpr7jyeagfmxb1ka
Pygame/Introduction à Pygame
0
10837
682359
672832
2022-07-25T06:39:03Z
185.228.229.14
/* Un avant-goût */Le verbe doit être au pluriel
wikitext
text/x-wiki
{{Pygame}}
Traduit de l'anglais, l'original par ''Pete Shinners'' :<br/>
https://www.pygame.org/docs/tut/PygameIntro.html
== Introduction à Pygame ==
Cet article est une introduction à la bibliothèque Pygame pour les programmeurs Python. La version originale est parue dans le Pyzine volume 1 issue 3. Cette version contient des révisions trop mineures pour créer un nouvel article. Pygame est une bibliothèque d'extension de [http://www.python.org Python], enveloppe de la bibliothèque [http://www.libsdl.org SDL].
== Histoire ==
Pygame a commencé durant l'été 2000. Connaissant le langage C depuis des années, j'ai découvert Python et SDL en même temps. Si vous êtes déjà familiarisé avec Python, (qui en était à la version 1.5.2), vous pourriez avoir besoin d'une introduction à SDL : ''Simple Directmedia Librairy''. Créée par Sam Lantinga, SDL est une bibliothèque multi-plateforme écrite en C afin de gérer le multimédia, elle est comparable à DirectX. Elle a été utilisée par des centaines de projets commerciaux et de jeux open-source. J'ai été impressionné par la propreté et la simplicité des deux projets et j'ai vite réalisé qu'associer Python et SDL était une idée intéressante.
J'ai découvert un petit projet existant avec exactement la même idée : PySDL. Créé par Mark Baker, PySDL était une implémentation de SDL pour Python. L'interface était propre mais je trouvais que ce code était trop proche du C. La mort de PySDL m'a encouragé à lancer un nouveau projet.
J'ai cherché à faire un projet tirant réellement profit de Python. Mon but était de permettre de réaliser facilement des choses simples aussi bien que des choses plus complexes. Pygame a commencé en octobre 2000. Six mois plus tard, la version 1.0 faisait son apparition.
== Un avant-goût ==
Je trouve que le meilleur moyen pour saisir le fonctionnement d'une nouvelle bibliothèque est de directement regarder un exemple parlant. Dans les premiers jours avec Pygame, j'ai créé une animation de balle rebondissante en 7 lignes de code. Jetons un coup d'œil à une version simplifiée de la même chose.
<syntaxhighlight lang="python" line>
import sys, time, pygame
pygame.init()
size = width, height = 320, 240
speed = [2, 2]
black = 0, 0, 0
screen = pygame.display.set_mode(size)
ball = pygame.image.load("intro_ball.gif")
ballrect = ball.get_rect()
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()
ballrect = ballrect.move(speed)
if ballrect.left < 0 or ballrect.right > width:
speed[0] = -speed[0]
if ballrect.top < 0 or ballrect.bottom > height:
speed[1] = -speed[1]
screen.fill(black)
screen.blit(ball, ballrect)
time.sleep(0.01)
pygame.display.flip()
</syntaxhighlight>[[Fichier:Intro ball.gif|vignette|intro_ball.gif|alt=intro_ball.gif|gauche]]
(Si vous voulez essayer cet exemple, mettez une image nommée ''intro_ball.gif'' dans le même dossier.)
* C'est la façon la plus simple d'obtenir une animation de balle rebondissante. On voit au début du code l'importation et l'initialisation du module Pygame, ce qui ne change pas vraiment d'un programme à un autre. Le <code>import pygame</code> importe toutes les modules disponibles de Pygame. L'appel de <code>pygame.init()</code> initialise chacun de ces modules.
* ''À la ligne 8'', une fenêtre graphique est créée par l'appel de <code>pygame.display.set_mode()</code>. Pygame et SDL nous simplifie la vie en sélectionnant par défaut les modes graphiques les plus adaptés au matériel graphique. Vous pouvez outrepasser ce mode et Pygame compensera tout ce que le matériel ne peut pas faire. Pygame représente les images comme des objets Surface. La fonction <code>display.set_mode()</code> crée un nouvel objet Surface représentant le graphisme actuel à afficher. Tous les dessins que vous faites sur cette surface seront visibles à l'écran.
* ''À la ligne 10'', nous chargeons notre image de balle. Pygame supporte une grande variété de format d'image, comme la bibliothèque ''SDL_image'', les formats pris en compte sont : JPG, PNG, TGA et GIF. La fonction <code>pygame.image.load()</code> nous retourne la surface contenant l'image de balle. La surface gardera toutes les propriétés (couleur clé et/ou de transparence alpha) du fichier d'origine. Après le chargement de l'image de la balle, nous créons une variable <code>ballrect</code>. Pygame possède un objet très utile nommé <code>Rect</code> qui représente une zone rectangulaire. Dans la partie du code chargée de l'animation, nous verrons quel est le rôle des objets <code>Rect</code>.
* ''À la ligne 13'', notre programme est initialisé et prêt à être lancé. À l'intérieur d'une boucle infinie qui gère les évènements générés par l'utilisateur, le code dessine et fait bouger la balle. Si vous êtes familier avec la programmation de GUI (Graphical User Interface, ou Interface Utilisateur Graphique), vous avez certainement une notion de ce que sont les évènements. Avec Pygame, il s'agit de la même chose. Lorsqu'un évènement se produit, le programme l'intercepte et agit en conséquence. Le premier évènement pris en compte est l'action de quitter le programme. Si cet évènement survient, le programme agit en conséquence en appelant la méthode <code>sys.exit()</code>.
* Ensuite vient le traitement de l'actualisation de la position de la balle. ''Les lignes 17 et 21'' déplacent la variable <code>ballrect</code> par sa vitesse courante. Si la balle s'est déplacée à l'extérieur de l'écran, la vitesse de la balle est inversée pour qu'elle reparte dans l'autre sens. Ça ne correspond pas exactement aux lois de Newton, mais ce n'était pas l'objectif de ce premier programme de toute façon.
* ''À la ligne 23'', nous effaçons l'écran en le remplissant de noir. Si vous n'avez jamais travaillé avec des animations, ceci peut vous paraître étrange. Vous pouvez vous demander : ''Pourquoi avons-nous besoin de tout effacer ? Pourquoi n'avons-nous pas juste la balle à bouger sur l'écran ?'', ceci n'est pas vraiment la manière de fonctionner des animations sur ordinateur. Une animation n'est rien de plus qu'une succession d'images, mais cette succession des images est tellement rapide que le cerveau humain voit une animation. <code>screen</code> n'est qu'une image que l'utilisateur voit. Si vous n'avez pas pris le temps d'effacer la balle de l'écran, nous pourrions voir la trace de la balle tout en continuant de voir la balle dans ses nouvelles positions.
* ''À la ligne 24'', nous dessinons l'image de la balle sur l'écran. Le dessin de ces images est géré par la méthode <code>Surface.blit()</code>. Un blit signifie que l'on copie les couleurs de chaque pixel d'une image sur une autre. Avec la méthode <code>blit()</code>, on prend une surface dite ''source'' que l'on applique sur la surface ''destination'', le tout à une position définie.
* ''À la ligne 25'', le programme attend 10 millisecondes entre chaque image afin que l'animation ne soit pas trop rapide.
* La dernière chose dont nous avons besoin, est la mise à jour de l'affichage visible. Pygame gère l'affichage avec un double tampon (double buffer). Quand nous avons fini de dessiner, nous faisons appel à la fonction <code>pygame.display.flip()</code>. Ceci fait que tout ce que nous avons dessiné sur la Surface screen devient visible. Cette mise en tampon fait que nous sommes sûr de voir des images complètes dessinée à l'écran. Sans cette manipulation par tampon, l'utilisateur verrait l'image se dessiner au fur et à mesure sur son écran.
Ceci conclut notre courte introduction à Pygame. Pygame possède plusieurs modules pour gérer les entrées de la souris, du clavier et du joystick. Il est aussi possible de mixer des fichiers audio et de décoder des flux musicaux. Avec les Surfaces, vous pouvez dessiner de simples formes (ronds, ...), les faire pivoter, et/ou les mettre à une certaine échelle. Avec en plus un module pour des manipulations de pixels sur les images en temps réel avec les ''NumPy arrays''. Pygame peut lire les videos MPEG et supporte les CDs audio. Pygame a également la capacité d'agir en tant que couche d'affichage multi-plateforme pour PyOpenGL. La plupart des modules de Pygame sont écrits en C, peu sont en Python.
Le site internet de Pygame possède une documentation de référence complète pour chaque fonction de Pygame et plusieurs tutoriaux pour tout niveau d'utilisateur. Les sources de Pygame viennent avec de nombreux exemples pour une compréhension facilitée.
== Python et les jeux ==
''Python est il approprié pour les jeux ?''<br/>
La réponse est : ''Cela dépend du jeu.''
Python est en fait capable de faire tourner des jeux. Cela vous surprendra toujours de savoir tout ce qu'il est possible de faire en 30 millisecondes. Toutefois, il n'est pas difficile de plafonner une fois que votre jeu commencera à devenir plus complexe. N'importe quel jeu fonctionnant en temps réel utilisera pleinement l'ordinateur.
Depuis plusieurs années, il y a une tendance intéressante dans le développement de jeux : l'utilisation de langage de plus haut niveau (plus proches de l'utilisateur que de la machine). Généralement un jeu est divisé en 2 parties majeures. Le moteur de jeu, qui doit être le plus rapide possible, et la logique de jeu, qui commande le moteur de jeu. Il n'y a pas si longtemps, le moteur était écrit en assembleur avec quelques portions de C. De nos jours, le C est plus présent dans les moteurs de jeu, tandis que le jeu en lui même est écrit en langage de script de haut niveau. Les jeux comme ''Quake3'' et ''Unreal Tournament'' exécutent ces scripts en tant que bytecode portable.
Dans le courant 2001, les développeurs de ''Rebel Act Studios'' ont fini leur jeu, ''[[w:Severance: Blade of Darkness|Severance: Blade of Darkness]]''. Ce jeu utilise un moteur de jeu 3D modifié, le reste du jeu est écrit en Python. Le jeu est un jeu d'action à la 3ème personne. Vous contrôlez un guerrier mediéval attaquant et explorant des donjons. Vous pouvez télécharger le 3ème addon pour ce jeu, et vous verrez qu'il n'y a rien d'autre que des fichiers sources en Python.
Beaucoup plus récemment, Python a été utilisé par une grande variété de jeux comme ''Freedom Force'' et ''Humungous' Backyard Sports Series''.
Pygame et SDL s'utilisent comme un excellent moteur de jeu en C pour des jeux en 2D. Les jeux trouvent en grande partie ce dont ils ont besoin dans la SDL pour le graphisme. SDL peut avantageusement utiliser l'accélération graphique matérielle. Vous pouvez optimiser le jeu pour lui faire afficher entre 40 et 200 FPS (images par seconde). Lorsque l'on voit qu'un jeu en Python peut afficher 200 FPS, on réalise que Python et les jeux peuvent se combiner.
Il est impressionnant de savoir que Python et SDL fonctionne sur de multiple plateformes. Par exemple, en mai 2001, j'ai actualisé complètement mon projet avec Pygame : ''SolarWolf'', un jeu d'action et d'arcade. Une chose qui m'a étonné est qu'un an après, il n'avait toujours pas eu besoin de patches, correction de bugs, ou de mises à jour. Le jeu était entièrement développé sous Windows mais tournait aussi sous Linux, Mac OSX et plusieurs Unix sans aucun travail de ma part.
Mais il y a clairement beaucoup de limitations. La meilleure manière de gérer l'accélération matérielle n'est pas toujours la meilleure façon d'avoir de meilleurs résultats pour une accélération logicielle. L'accélération n'est pas disponible sur toutes les plateformes. Quand un jeu devient trop complexe, il doit souvent se réduire à une seule plateforme. La SDL a également quelques limitations de conception, des choses comme le scrolling en plein écran peuvent réduire fortement la vitesse du jeu, jusqu'à ce que ça devienne injouable. SDL n'est pas fait pour tous les types de jeux, mais souvenez-vous que des compagnies comme Loki ont utilisé la SDL pour faire fonctionner une grande variété de jeux.
Pygame est un langage bas niveau quand il est utilisé pour coder les jeux. Vous aurez rapidement besoin d'envelopper des fonctions communes pour votre environnement de jeu. C'est en grande partie dû au fait qu'il n'y a rien dans Pygame pour ça. Votre programme a le contrôle total sur tout. Vous constaterez que l'effet indésirable à cela est que vous devrez écrire beaucoup de code ennuyeux pour obtenir un cadre plus avancé. Vous aurez besoin d'une meilleure compréhension de ce que vous faites.
== En conclusion ==
Le développement en vaut la peine, il y a quelque chose d'excitant dans le fait de pouvoir voir et interagir avec le code que vous avez écrit. Pygame est actuellement utilisée par plus de 30 projets. Plusieurs sont jouables dès maintenant. Vous allez être surpris en visitant le site internet de [http://www.pygame.org Pygame] en voyant ce que les autres utilisateurs sont capables de faire avec Python.
Une chose qui a retenu mon attention, est que beaucoup de personnes se sont mises à utiliser Python pour leurs premiers essais en développement de jeu. Je peux voir pourquoi les jeux attirent de nouveaux programmeurs, mais il peut être difficile de créer un jeu qui requiert une compréhension plus solide du langage. J'ai essayé de soutenir ce type d'utilisateurs en écrivant plusieurs exemples et tutoriels sur Pygame pour des personnes nouvelles à ces concepts.
Pour finir, mon conseil est de faire au plus simple. Je ne peux me soumettre à une contrainte. Si vous prévoyez de créer votre premier jeu, sachez qu'il y a beaucoup à apprendre. Même un simple jeu est un challenge, et les jeux complexes ne sont pas nécessairement de bons jeux. Lorsque vous comprenez Python, vous pourrez utiliser Pygame pour créer un simple jeu en une ou deux semaines. Mais pour avoir un jeu complètement présentable, il vous faudra de nombreuses heures de travail.
== Vue d'ensemble des modules de Pygame ==
Voici un récapitulatif des modules disponibles dans la bibliothèque de Pygame, avec un lien sur la documentation de référence de chacun de ces modules.
{| border="1" cellpadding="10" cellspacing="0"
|
;'''[http://www.pygame.org/docs/ref/cdrom.html Cdrom]'''
: Accéder et contrôler les lecteurs CD audio.
|
; '''[http://www.pygame.org/docs/ref/cursors.html Cursors]'''
: Charger et compiler des images de curseur.
|
; '''[http://www.pygame.org/docs/ref/display.html Display]'''
: Configurer la surface d'affichage.
|-
|
; '''[http://www.pygame.org/docs/ref/draw.html Draw]'''
: Dessiner des formes simples comme des lignes et des ellipses sur des surfaces.
|
; '''[http://www.pygame.org/docs/ref/event.html Event]'''
: Gérer les évènements à partir de différents matériels d'entrée (clavier, souris, ...), ainsi que du fenêtrage.
|
; '''[http://www.pygame.org/docs/ref/font.html Font]'''
: Charger et faire un rendu des polices TrueType.
|-
|
; '''[http://www.pygame.org/docs/ref/image.html Image]'''
: Charger, sauver et transférer des images sur des surfaces.
|
; '''[http://www.pygame.org/docs/ref/joystick.html Joystick]'''
: Gérer les joysticks.
|
; '''[http://www.pygame.org/docs/ref/key.html Key]'''
: Gérer le clavier.
|-
|
; '''[http://www.pygame.org/docs/ref/mixer.html Mixer]'''
: Charger et jouer des sons.
|
; '''[http://www.pygame.org/docs/ref/mouse.html Mouse]'''
: Gérer la souris et son affichage.
|
; '''[http://www.pygame.org/docs/ref/movie.html Movie]'''
: Lecture de vidéo à partir de film en MPEG.
|-
|
; '''[http://www.pygame.org/docs/ref/music.html Music]'''
: Jouer des pistes musicales en streaming.
|
; '''[http://www.pygame.org/docs/ref/overlay.html Overlay]'''
: Accès à l'affichage vidéo avancé.
|
; '''[http://www.pygame.org/docs/ref/pygame.html Pygame]'''
: Fonctions de haut niveau pour le contrôle de Pygame.
|-
|
; '''[http://www.pygame.org/docs/ref/rect.html Rect]'''
: Conteneur flexible pour un rectangle.
|
; '''[http://www.pygame.org/docs/ref/sndarray.html Sndarray]'''
: Manipuler des échantillons de données audio.
|
; '''[http://www.pygame.org/docs/ref/sprite.html Sprite]'''
: Objets de haut niveau pour la représentation des images de jeu.
|-
|
; '''[http://www.pygame.org/docs/ref/surface.html Surface]'''
: Objets pour des images et l'écran.
|
; '''[http://www.pygame.org/docs/ref/surfarray.html Surfarray]'''
: Manipuler des données de pixel d'image.
|
; '''[http://www.pygame.org/docs/ref/time.html Time]'''
: Manipuler les temporisateurs et le taux d'image.
|-
|
; '''[http://www.pygame.org/docs/ref/transform.html Transform]'''
: Redimensionner et déplacer des images.
|
|
|}
gl42ng9gnoltfyhaosalzh25as3qp4l
Modèle:À faire
10
15691
682373
493323
2022-07-25T10:33:09Z
DavidL
1746
wikitext
text/x-wiki
{{Méta-bandeau|class=noprint|couleur=jaune|titre={{{titre|À faire...}}}|image=Nuvola apps korganizer.svg|clear={{{clear|}}}|
{{{note|{{{1|}}}}}}
}}<noinclude>
== Raccourcis ==
* {{m|A faire}}
* {{m|Todo}}
* {{m|TODO}}
Catégorise dans [[:Catégorie:À faire]].
== Variante ==
* {{m|Note à faire}} pour inclusion dans les références et notes de bas de page, span, ...
[[Catégorie:Modèles bandeau|A faire]]
[[Catégorie:Modèles ébauche|A faire]]
[[Catégorie:Modèles avec raccourcis à nettoyer]]
</noinclude><includeonly>{{#ifexpr:{{NAMESPACENUMBER}}=2 or {{NAMESPACENUMBER}}=3||[[Catégorie:À faire|{{PAGENAME}}]]}}</includeonly>
suvjzwclx9yrva3o1gluhbraohm44z3
Programmation Python/Et pour quelques widgets de plus...
0
16115
682369
674159
2022-07-25T10:30:37Z
DavidL
1746
wikitext
text/x-wiki
<noinclude>{{Python}}</noinclude>
Les pages qui suivent contiennent des indications et et des exemples complémentaires qui pourront vous être utiles pour le développement de vos projets personnels. Il ne s'agit évidemment pas d'une documentation de référence complète sur ''Tkinter''. Pour en savoir plus, vous devrez tôt ou tard consulter des ouvrages spécialisés, comme par exemple l'excellent ''Python and Tkinter programming'' de John E. Grayson, dont vous trouverez la référence complète à la page.
== Les « boutons radio » ==
Les ''widgets'' « boutons radio » permettent de proposer à l'utilisateur un ensemble de choix mutuellement exclusifs. On les appelle ainsi par analogie avec les boutons de sélection que l'on trouvait jadis sur les postes de radio. Ces boutons étaient conçus de telle manière qu'un seul à la fois pouvait être enfoncé : tous les autres ressortaient automatiquement.
[[Image:Apprendre à programmer avec Python 47.png|right]]
La caractéristique essentielle de ces ''widgets'' est qu'on les utilise toujours par groupes. Tous les boutons radio faisant partie d'un même groupe sont associés à une seule et même ''variable Tkinter'', mais chacun d'entre eux se voit aussi attribuer une ''valeur'' particulière.
Lorsque l'utilisateur sélectionne l'un des boutons, la valeur correspondant à ce bouton est affectée à la ''variable Tkinter'' commune.
<syntaxhighlight lang=python line>
from Tkinter import *
class RadioDemo(Frame):
"""Démo : utilisation de widgets 'boutons radio'"""
def __init__(self, boss =None):
"""Création d'un champ d'entrée avec 4 boutons radio"""
Frame.__init__(self)
self.pack()
# Champ d'entrée contenant un petit texte :
self.texte = Entry(self, width =30, font ="Arial 14")
self.texte.insert(END, "La programmation, c'est génial")
self.texte.pack(padx =8, pady =8)
# Nom français et nom technique des quatre styles de police :
stylePoliceFr =["Normal", "Gras", "Italique", "Gras/Italique"]
stylePoliceTk =["normal", "bold", "italic" , "bold italic"]
# Le style actuel est mémorisé dans un 'objet-variable' Tkinter ;
self.choixPolice = StringVar()
self.choixPolice.set(stylePoliceTk[0])
# Création des quatre 'boutons radio' :
for n in range(4):
bout = Radiobutton(self,
text = stylePoliceFr[n],
variable = self.choixPolice,
value = stylePoliceTk[n],
command = self.changePolice)
bout.pack(side =LEFT, padx =5)
def changePolice(self):
"""Remplacement du style de la police actuelle"""
police = "Arial 15 " + self.choixPolice.get()
self.texte.configure(font =police)
if __name__ == '__main__':
RadioDemo().mainloop()
</syntaxhighlight>
;Commentaires
<ul>
<li>Ligne 3 : Cette fois encore, nous préférons construire notre petite application comme une classe dérivée de la classe <code>Frame()</code>, ce qui nous permettrait éventuellement de l'intégrer sans difficulté dans une application plus importante.</li>
<li>Ligne 8 : En général, on applique les méthodes de positionnement des ''widgets'' (<code>pack()</code>, <code>grid()</code>, ou <code>place()</code>) après instanciation de ceux-ci, ce qui permet de choisir librement leur disposition à l'intérieur des fenêtres maîtresses. Comme nous le montrons ici, il est cependant tout à fait possible de déjà prévoir ce positionnement dans le constructeur du ''widget''.</li>
<li>Ligne 11 : Les ''widgets'' de la classe <code>Entry</code> disposent de plusieurs méthodes pour accéder à la chaîne de caractères affichée. La méthode <code>get()</code> permet de récupérer la chaîne entière. La méthode <code>delete()</code> permet d'en effacer tout ou partie. La méthode <code>insert()</code> permet d'insérer de nouveaux caractères à un emplacement quelconque (c'est-à-dire au début, à la fin, ou même à l'intérieur d'une chaîne préexistante éventuelle). Cette méthode s'utilise donc avec deux arguments, le premier indiquant l'emplacement de l'insertion (utilisez 0 pour insérer au début, <code>END</code> pour insérer à la fin, ou encore un indice numérique quelconque pour désigner un caractère dans la chaîne).</li>
<li>Lignes 14-15 : Plutôt que de les instancier dans des instructions séparées, nous préférons créer nos quatre boutons à l'aide d'une boucle. Les options spécifiques à chacun d'eux sont d'abord préparées dans les deux listes <code>stylePoliceFr</code> et <code>stylePoliceTk</code> : la première contient les petits textes qui devront s'afficher en regard de chaque bouton, et la seconde les valeurs qui devront leur être associées.</li>
<li>Lignes 17-18 : Comme expliqué précédemment, les quatre boutons forment un groupe autour d'une variable commune. Cette variable prendra la valeur associée au bouton radio que l'utilisateur décidera de choisir. Nous ne pouvons cependant pas utiliser une variable ordinaire pour remplir ce rôle, parce que les attributs internes des objets ''Tkinter'' ne sont accessibles qu'au travers de méthodes spécifiques. Une fois de plus, nous utilisons donc ici un objet-variable ''Tkinter'', de type 'chaîne de caractères', que nous instancions à partir de la classe <code>StringVar()</code>, et auquel nous donnons une valeur par défaut à la ligne 18.</li>
<li>Lignes 20 à 26 : Instanciation des quatre boutons radio. Chacun d'entre eux se voit attribuer une étiquette et une valeur différentes, mais tous sont associés à la même ''variable Tkinter'' commune (<code>self.choixPolice</code>). Tous invoquent également la même méthode <code>self.changePolice()</code>, chaque fois que l'utilisateur effectue un clic de souris sur l'un ou l'autre.</li>
<li>Lignes 28 à 31 : Le changement de police s'obtient par re-configuration de l'option font du ''widget'' <code>Entry</code>. Cette option attend un tuple contenant le nom de la police, sa taille, et éventuellement son style. Si le nom de la police ne contient pas d'espaces, le tuple peut aussi être remplacé par une chaîne de caractères. Exemples :<br />
<code>('Arial', 12, 'italic')</code><br />
<code>('Helvetica', 10)</code><br />
<code>('Times New Roman', 12, 'bold italic')</code><br />
<code>"Verdana 14 bold"</code><br />
<code>"President 18 italic"</code><br />
</li>
</ul>
== Utilisation des cadres (frames) pour la composition d'une fenêtre ==
[[Image:Apprendre à programmer avec Python 48.png|right]]
Vous avez déjà abondamment utilisé la classe de ''widgets'' <code>Frame()</code> (« cadre », en français), notamment pour créer de nouveaux ''widgets'' complexes par dérivation.
Le petit script ci-dessous vous montre l'utilité de cette même classe pour regrouper des ensembles de ''widgets'' et les disposer d'une manière déterminée dans une fenêtre. Il vous démontre également l'utilisation de certaines options décoratives (bordures, relief, etc.).
Pour composer la fenêtre ci-contre, nous avons utilisé deux cadres <code>f1</code> et <code>f2</code>, de manière à réaliser deux groupes de ''widgets'' bien distincts, l'un à gauche et l'autre à droite. Nous avons coloré ces deux cadres pour bien les mettre en évidence, mais ce n'est évidemment pas indispensable.
Le cadre <code>f1</code> contient lui-même 6 autres cadres, qui contiennent chacun un ''widget'' de la classe <code>Label()</code>. Le cadre <code>f2</code> contient un ''widget'' <code>Canvas()</code> et un ''widget'' <code>Button()</code>. Les couleurs et garnitures sont de simples options.
<syntaxhighlight lang=python line>
from Tkinter import * #1
#2
fen = Tk() #3
fen.title("Fenêtre composée à l'aide de frames") #4
fen.geometry("300x300") #5
#6
f1 = Frame(fen, bg = '#80c0c0') #7
f1.pack(side =LEFT, padx =5) #8
#9
fint = [0]*6 #10
for (n, col, rel, txt) in [(0, 'grey50', RAISED, 'Relief sortant'), #11
(1, 'grey60', SUNKEN, 'Relief rentrant'), #12
(2, 'grey70', FLAT, 'Pas de relief'), #13
(3, 'grey80', RIDGE, 'Crête'), #14
(4, 'grey90', GROOVE, 'Sillon'), #15
(5, 'grey100', SOLID, 'Bordure')]: #16
fint[n] = Frame(f1, bd =2, relief =rel) #17
e = Label(fint[n], text =txt, width =15, bg =col) #18
e.pack(side =LEFT, padx =5, pady =5) #19
fint[n].pack(side =TOP, padx =10, pady =5) #20
#21
f2 = Frame(fen, bg ='#d0d0b0', bd =2, relief =GROOVE) #22
f2.pack(side =RIGHT, padx =5) #23
#24
can = Canvas(f2, width =80, height =80, bg ='white', bd =2, relief =SOLID) #25
can.pack(padx =15, pady =15) #26
bou =Button(f2, text='Bouton') #27
bou.pack() #28
#29
fen.mainloop() #30
</syntaxhighlight>
* Lignes 3 à 5 : Afin de simplifier au maximum la démonstration, nous ne programmons pas cet exemple comme une nouvelle classe. Remarquez à la ligne 5 l'utilité de la méthode <code>geometry()</code> pour fixer les dimensions de la fenêtre principale.
* Ligne 7 : Instanciation du cadre de gauche. La couleur de fond (une variété de bleu cyan) est déterminée par l'argument <code>bg</code> (''background''). Cette chaîne de caractères contient en notation hexadécimale la description des trois composantes rouge, verte et bleue de la teinte que l'on souhaite obtenir : Après le caractère # signalant que ce qui suit est une valeur numérique hexadécimale, on trouve trois groupes de deux symboles alphanumériques. Chacun de ces groupes représente un nombre compris entre 1 et 255. Ainsi <code>80</code> correspond à 128, et <code>c0</code> correspond à 192 en notation décimale. Dans notre exemple, les composantes rouge, verte et bleue de la teinte à représenter valent donc respectivement 128, 192 & 192.<br />En application de cette technique descriptive, le noir serait obtenu avec <code>#000000</code>, le blanc avec <code>#ffffff</code>, le rouge pur avec <code>#ff0000</code>, un bleu sombre avec <code>#000050</code>, etc.
* Ligne 8 : Puisque nous lui appliquons la méthode <code>pack()</code>, le cadre sera automatiquement dimensionné par son contenu. L'option side <code>=LEFT</code> le positionnera à gauche dans sa fenêtre maîtresse. L'option <code>padx =5</code> ménagera un espace de 5 pixels à sa gauche et à sa droite (nous pouvons traduire « padx » par « espacement horizontal »).
* Ligne 10 : Dans le cadre <code>f1</code> que nous venons de préparer, nous avons l'intention de regrouper 6 autres cadres similaires contenant chacun une étiquette. Le code correspondant sera plus simple et plus efficient si nous instancions ces ''widgets'' dans une liste plutôt que dans des variables indépendantes. Nous préparons donc cette liste avec 6 éléments que nous remplacerons plus loin.
* Lignes 11 à 16 : Pour construire nos 6 cadres similaires, nous allons parcourir une liste de 6 tuples contenant les caractéristiques particulières de chaque cadre. Chacun de ces tuples est constitué de 4 éléments : un indice, une constante ''Tkinter'' définissant un type de relief, et deux chaînes de caractères décrivant respectivement la couleur et le texte de l'étiquette.<br />La boucle <code>for</code> effectue 6 itérations pour parcourir les 6 éléments de la liste. À chaque itération, le contenu d'un des tuples est affecté aux variables <code>n</code>, <code>col</code>, <code>rel</code> et <code>txt</code> (et ensuite les instructions des lignes 17 à 20 sont exécutées). Le parcours d'une liste de tuples à l'aide d'une boucle for constitue donc une construction particulièrement compacte, qui permet de réaliser de nombreuses affectations avec un très petit nombre d'instructions.
* Ligne 17 : Les 6 cadres sont instanciés comme des éléments de la liste <code>fint</code>. Chacun d'entre eux est agrémenté d'une bordure décorative de 2 pixels de large, avec un certain effet de relief.
* Lignes 18-20 : Les étiquettes ont toutes la même taille, mais leurs textes et leurs couleurs de fond diffèrent. Du fait de l'utilisation de la méthode <code>pack()</code>, c'est la dimension des étiquettes qui détermine la taille des petits cadres. Ceux-ci à leur tour déterminent la taille du cadre qui les regroupe (le cadre <code>f1</code>). Les options <code>padx</code> et <code>pady</code> permettent de réserver un petit espace autour de chaque étiquette, et un autre autour de chaque petit cadre. L'option <code>side =TOP</code> positionne les 6 petits cadres les uns en dessous des autres dans le cadre conteneur <code>f1</code>.
* Lignes 22-23 : Préparation du cadre <code>f2</code> (cadre de droite). Sa couleur sera une variété de jaune, et nous l'entourerons d'une bordure décorative ayant l'aspect d'un sillon.
* Lignes 25 à 28 : Le cadre <code>f2</code> contiendra un canevas et un bouton. Notez encore une fois l'utilisation des options <code>padx</code> et <code>pady</code> pour ménager des espaces autour des ''widgets'' (Considérez par exemple le cas du bouton, pour lequel cette option n'a pas été utilisée : de ce fait, il entre en contact avec la bordure du cadre qui l'entoure). Comme nous l'avons fait pour les cadres, nous avons placé une bordure autour du canevas. Sachez que d'autres ''widgets'' acceptent également ce genre de décoration : boutons, champs d'entrée, etc.
== Comment déplacer des dessins à l'aide de la souris ==
Le ''widget'' canevas est l'un des points forts de la bibliothèque graphique ''Tkinter''. Il intègre en effet un grand nombre de dispositifs très efficaces pour manipuler des dessins. Le script ci-après est destiné à vous montrer quelques techniques de base. Si vous voulez en savoir plus, notamment en ce qui concerne la manipulation de dessins composés de plusieurs parties, veuillez consulter l'un ou l'autre ouvrage de référence traitant de ''Tkinter''.
Au démarrage de notre petite application, une série de dessins sont tracés au hasard dans un canevas (il s'agit en l'occurrence de simples ellipses colorées). Vous pouvez déplacer n'importe lequel de ces dessins en les « saisissant » à l'aide de votre souris.
Lorsqu'un dessin est déplacé, il passe à l'avant-plan par rapport aux autres, et sa bordure apparaît plus épaisse pendant toute la durée de sa manipulation.
[[Image:Apprendre à programmer avec Python 49.png|center]]
Pour bien comprendre la technique utilisée, vous devez vous rappeler qu'un logiciel utilisant une interface graphique est un logiciel « piloté par les événements » (revoyez au besoin les explications de la page {{todo}}). Dans cette application, nous allons mettre en place un mécanisme qui réagit aux événements : « enfoncement du bouton gauche de la souris », « déplacement de la souris, le bouton gauche restant enfoncé », « relâchement du bouton gauche ».
Ces événements sont générés par le système d'exploitation et pris en charge par l'interface ''Tkinter''. Notre travail de programmation consistera donc simplement à les associer à des gestionnaires différents (fonctions ou méthodes).
<syntaxhighlight lang=python line>
# Exemple montrant comment faire en sorte que les objets dessinés dans un
# canevas puissent être manipulés à l'aide de la souris
from Tkinter import *
from random import randrange
class Draw(Frame):
"classe définissant la fenêtre principale du programme"
def __init__(self):
Frame.__init__(self)
# mise en place du canevas - dessin de 15 ellipses colorées :
self.c = Canvas(self, width =400, height =300, bg ='ivory')
self.c.pack(padx =5, pady =3)
for i in range(15):
# tirage d'une couleur au hasard :
coul =['brown','red','orange','yellow','green','cyan','blue',
'violet', 'purple'][randrange(9)]
# tracé d'une ellipse avec coordonnées aléatoires :
x1, y1 = randrange(300), randrange(200)
x2, y2 = x1 + randrange(10, 150), y1 + randrange(10, 150)
self.c.create_oval(x1, y1, x2, y2, fill =coul)
# liaison d'événements <souris> au widget <canevas> :
self.c.bind("<Button-1>", self.mouseDown)
self.c.bind("<Button1-Motion>", self.mouseMove)
self.c.bind("<Button1-ButtonRelease>", self.mouseUp)
# mise en place d'un bouton de sortie :
b_fin = Button(self, text ='Terminer', bg ='royal blue', fg ='white',
font =('Helvetica', 10, 'bold'), command =self.quit)
b_fin.pack(pady =2)
self.pack()
def mouseDown(self, event):
"Op. à effectuer quand le bouton gauche de la souris est enfoncé"
self.currObject =None
# event.x et event.y contiennent les coordonnées du clic effectué :
self.x1, self.y1 = event.x, event.y
# <find_closest> renvoie la référence du dessin le plus proche :
self.selObject = self.c.find_closest(self.x1, self.y1)
# modification de l'épaisseur du contour du dessin :
self.c.itemconfig(self.selObject, width =3)
# <lift> fait passer le dessin à l'avant-plan :
self.c.lift(self.selObject)
def mouseMove(self, event):
"Op. à effectuer quand la souris se déplace, bouton gauche enfoncé"
x2, y2 = event.x, event.y
dx, dy = x2 -self.x1, y2 -self.y1
if self.selObject:
self.c.move(self.selObject, dx, dy)
self.x1, self.y1 = x2, y2
def mouseUp(self, event):
"Op. à effectuer quand le bouton gauche de la souris est relâché"
if self.selObject:
self.c.itemconfig(self.selObject, width =1)
self.selObject =None
if __name__ == '__main__':
Draw().mainloop()
</syntaxhighlight>
;Commentaires
Le script contient essentiellement la définition d'une classe graphique dérivée de <code>Frame()</code>.
Comme c'est souvent le cas pour les programmes exploitant les classes d'objets, le corps principal du script se résume à une seule instruction composée, dans laquelle on réalise deux opérations consécutives : instanciation d'un objet de la classe définie précédemment, et activation de sa méthode <code>mainloop()</code> (laquelle démarre l'observateur d'événements).
Le constructeur de la classe <code>Draw()</code> présente une structure qui doit vous être devenue familière, à savoir : appel au constructeur de la classe parente, puis mise en place de divers ''widgets''.
Dans le ''widget'' canevas, nous instancions 15 dessins sans nous préoccuper de conserver leurs références dans des variables. Nous pouvons procéder ainsi parce que ''Tkinter'' conserve lui-même une référence interne pour chacun de ces objets. (Si vous travaillez avec d'autres bibliothèques graphiques, vous devrez probablement prévoir une mémorisation de ces références).
Les dessins sont de simples ellipses colorées. Leur couleur est choisie au hasard dans une liste de 9 possibilités, l'indice de la couleur choisie étant déterminé par la fonction <code>randrange()</code> importée du module <code>random</code>.
Le mécanisme d'interaction est installé ensuite : on associe les trois identificateurs d'événements <code><Button-1></code>, <code><Button1-Motion></code> et <code><Button1-ButtonRelease></code> concernant le ''widget'' canevas, aux noms des trois méthodes choisies comme gestionnaires d'événements.
Lorsque l'utilisateur enfonce le bouton gauche de sa souris, la méthode <code>mouseDown()</code> est donc activée, et le système d'exploitation lui transmet en argument un objet <code>event</code>, dont les attributs <code>x</code> et <code>y</code> contiennent les coordonnées du curseur souris dans le canevas, déterminées au moment du clic.
Nous mémorisons directement ces coordonnées dans les variables d'instance <code>self.x1</code> et <code>self.x2</code>, car nous en aurons besoin par ailleurs. Ensuite, nous utilisons la méthode <code>find_closest()</code> du ''widget'' canevas, qui nous renvoie la référence du dessin le plus proche. (Note : cette méthode bien pratique renvoie toujours une référence, même si le clic de souris n'a pas été effectué à l'intérieur du dessin).
Le reste est facile : la référence du dessin sélectionné est mémorisée dans une variable d'instance, et nous pouvons faire appel à d'autres méthodes du ''widget'' canevas pour modifier ses caractéristiques. En l'occurrence, nous utilisons les méthodes <code>itemconfig()</code> et <code>lift()</code> pour épaissir son contour et le faire passer à l'avant-plan.
Le « transport » du dessin est assuré par la méthode <code>mouseMove()</code>, invoquée à chaque fois que la souris se déplace alors que son bouton gauche est resté enfoncé. L'objet event contient cette fois encore les coordonnées du curseur souris, au terme de ce déplacement. Nous nous en servons pour calculer les différences entre ces nouvelles coordonnées et les précédentes, afin de pouvoir les transmettre à la méthode <code>move()</code> du ''widget'' canevas, qui effectuera le transport proprement dit.
Nous ne pouvons cependant faire appel à cette méthode que s'il existe effectivement un objet sélectionné, et il nous faut veiller également à mémoriser les nouvelles coordonnées acquises.
La méthode <code>mouseUp()</code> termine le travail. Lorsque le dessin transporté est arrivé à destination, il reste à annuler la sélection et rendre au contour son épaisseur initiale. Ceci ne peut être envisagé que s'il existe effectivement une sélection, bien entendu.
== Python Mega Widgets ==
Les modules ''Pmw'' constituent une extension intéressante de ''Tkinter''. Entièrement écrits en Python, ils contiennent toute une bibliothèque de ''widgets'' composites, construits à partir des classes de base de ''Tkinter''. Dotés de fonctionnalités très étendues, ces ''widgets'' peuvent se révéler fort précieux pour le développement rapide d'applications complexes. Si vous souhaitez les utiliser, sachez cependant que les modules ''Pmw'' ne font pas partie de l'installation standard de Python : vous devrez donc toujours vérifier leur présence sur les machines cibles de vos programmes.
Il existe un grand nombre de ces méga-widgets. Nous n'en présenterons ici que quelques-uns parmi les plus utiles. Vous pouvez rapidement vous faire une idée plus complète de leurs multiples possibilités, en essayant les scripts de démonstration qui les accompagnent (lancez par exemple le script all.py , situé dans le répertoire <code>.../Pmw/demos</code>).
=== « Combo Box » ===
[[Image:Apprendre à programmer avec Python 50.png|right]]
Les méga-widgets s'utilisent aisément. La petite application ci-après vous montre comment mettre en œuvre un ''widget'' de type <code>ComboBox</code> (boîte de liste combinée à un champ d'entrée). Nous l'avons configuré de la manière la plus habituelle (avec une boîte de liste déroulante).
Lorsque l'utilisateur de notre petit programme choisit une couleur dans la liste déroulante (il peut aussi entrer un nom de couleur directement dans le champ d'entrée), cette couleur devient automatiquement la couleur de fond pour la fenêtre maîtresse.
Dans cette fenêtre maîtresse, nous avons ajouté un libellé et un bouton, afin de vous montrer comment vous pouvez accéder à la sélection opérée précédemment dans le ''ComboBox'' lui-même (le bouton provoque l'affichage du nom de la dernière couleur choisie).
<syntaxhighlight lang=python line=1>
from Tkinter import *
import Pmw
def changeCoul(col):
fen.configure(background = col)
def changeLabel():
lab.configure(text = combo.get())
couleurs = ('navy', 'royal blue', 'steelblue1', 'cadet blue',
'lawn green', 'forest green', 'dark red',
'grey80','grey60', 'grey40', 'grey20')
fen = Pmw.initialise()
bou = Button(fen, text ="Test", command =changeLabel)
bou.grid(row =1, column =0, padx =8, pady =6)
lab = Label(fen, text ='néant', bg ='ivory')
lab.grid(row =1, column =1, padx =8)
combo = Pmw.ComboBox(fen, labelpos = NW,
label_text = 'Choisissez la couleur :',
scrolledlist_items = couleurs,
listheight = 150,
selectioncommand = changeCoul)
combo.grid(row =2, columnspan =2, padx =10, pady =10)
fen.mainloop()
</syntaxhighlight>
;Commentaires
* Lignes 1 & 2 : On commence par importer les composants habituels de ''Tkinter'', ainsi que le module ''Pmw''.
* Ligne 14 : Pour créer la fenêtre maîtresse, il faut utiliser de préférence la méthode <code>Pmw.initialise()</code>, plutôt que d'instancier directement un objet de la classe <code>Tk()</code>. Cette méthode veille en effet à mettre en place tout ce qui est nécessaire afin que les widgets esclaves de cette fenêtre puissent être détruits correctement lorsque la fenêtre elle-même sera détruite. Cette méthode installe également un meilleur gestionnaire des messages d'erreurs.
* Ligne 12 : L'option <code>labelpos</code> détermine l'emplacement du libellé qui accompagne le champ d'entrée. Dans notre exemple, nous l'avons placé au-dessus, mais vous pourriez préférer le placer ailleurs, à gauche par exemple (<code>labelpos = W</code>). Notez que cette option est indispensable si vous souhaitez un libellé (pas de valeur par défaut).
* Ligne 14 : L'option <code>selectioncommand</code> transmet un argument à la fonction invoquée : l'item sélectionné dans la boîte de liste. Vous pourrez également retrouver cette sélection à l'aide de la méthode <code>get()</code>, comme nous le faisons à la ligne 8 pour actualiser le libellé.
=== Remarque concernant l'entrée de caractères accentués ===
Nous vous avons déjà signalé précédemment que Python est tout à fait capable de prendre en charge les alphabets du monde entier (grec, cyrillique, arabe, japonais, etc. - voir notamment page {{todo}}). Il en va de même pour ''Tkinter''. En tant que francophone, vous souhaiterez certainement que les utilisateurs de vos scripts puissent entrer des caractères accentués dans les widgets ''Entry'', ''Text'' et leurs dérivés (''ComboBox'', ''ScrolledText'').
Veuillez donc prendre bonne note que lorsque vous entrez dans l'un de ces widgets une chaîne contenant un ou plusieurs caractères non-ASCII (tel qu'une lettre accentuée, par exemple), ''Tkinter'' encode cette chaîne suivant la norme UTF-8. Si votre ordinateur utilise plutôt le codage Latin-1 par défaut (ce qui est très souvent le cas), vous devrez convertir la chaîne avant de pouvoir l'afficher.
Cela peut se faire très aisément en utilisant la fonction intégrée <code>encode()</code>. Exemple :
<pre>
# -*- coding: Latin-1 -*-
from Tkinter import *
def imprimer():
ch1 = e.get() # le widget Entry renvoie une chaîne utf8
ch2 = ch1.encode("Latin-1") # conversion utf8 -> Latin-1
print ch2
f = Tk()
e = Entry(f)
e.pack()
Button(f, text ="afficher", command =imprimer).pack()
f.mainloop()
</pre>
Essayez ce petit script en entrant des chaînes avec caractères accentués dans le champ d'entrée.
Essayez encore, mais en remplaçant l'instruction <code>print ch2</code> par <code>print ch1</code>. Concluez.
=== « Scrolled Text » ===
Ce ''méga-widget'' étend les possibilités du ''widget'' Text sandard, en lui associant un cadre, un libellé (titre) et des barres de défilement.
Comme le démontrera le petit script ci-dessous, il sert fondamentalement à afficher des textes, mais ceux-ci peuvent être mis en forme et intégrer des images.
Vous pouvez également rendre « cliquables » les éléments affichés (textes ou images), et vous en servir pour déclencher toutes sortes de mécanismes.
[[Image:Apprendre à programmer avec Python 51.png|right]]
Dans l'application qui génère la figure ci-dessus, par exemple, le fait de cliquer sur le nom « Jean de la Fontaine » provoque le défilement automatique du texte (''scrolling''), jusqu'à ce qu'une rubrique décrivant cet auteur devienne visible dans le ''widget'' (Voir page suivante le script correspondant).
D'autres fonctionnalités sont présentes, mais nous ne présenterons ici que les plus fondamentales. Veuillez donc consulter les démos et exemples accompagnant ''Pmw'' pour en savoir davantage.
''Gestion du texte affiché'' : Vous pouvez accéder à n'importe quelle portion du texte pris en charge par le ''widget'' grâce à deux concepts complémentaires, les ''indices'' et les ''balises'' :
* Chaque caractère du texte affiché est référencé par un ''indice'', lequel doit être une chaîne de caractères contenant deux valeurs numériques reliées par un point (ex : <code>"5.2"</code>). Ces deux valeurs indiquent respectivement le numéro de ligne et le numéro de colonne où se situe le caractère.
* N'importe quelle portion du texte peut être associée à une ou plusieurs ''balise(s)'', dont vous choisissez librement le nom et les propriétés. Celles-ci vous permettent de définir la police, les couleurs d'avant- et d'arrière-plan, les événements associés, etc.
Note : Pour la bonne compréhension du script ci-dessous, veuillez considérer que le texte de la fable traitée doit être accessible, dans un fichier nommé ''CorbRenard.txt''.
<syntaxhighlight lang=python line>
from Tkinter import * #1
import Pmw #2
#3
def action(event=None): #4
"""défilement du texte jusqu'à la balise <cible>""" #5
index = st.tag_nextrange('cible', '0.0', END) #6
st.see(index[0]) #7
#8
# Instanciation d'une fenêtre contenant un widget ScrolledText : #9
fen = Pmw.initialise() #10
st = Pmw.ScrolledText(fen, #11
labelpos =N, #12
label_text ="Petite démo du widget ScrolledText", #13
label_font ='Times 14 bold italic', #14
label_fg = 'navy', label_pady =5, #15
text_font='Helvetica 11 normal', text_bg ='ivory', #16
text_padx =10, text_pady =10, text_wrap ='none', #17
borderframe =1, #18
borderframe_borderwidth =3, #19
borderframe_relief =SOLID, #20
usehullsize =1, #21
hull_width =370, hull_height =240) #22
st.pack(expand =YES, fill =BOTH, padx =8, pady =8) #23
#24
# Définition de balises, liaison d'un gestionnaire d'événement au clic de souris : #25
st.tag_configure('titre', foreground ='brown', font ='Helvetica 11 bold italic') #26
st.tag_configure('lien', foreground ='blue', font ='Helvetica 11 bold') #27
st.tag_configure('cible', foreground ='forest green', font ='Times 11 bold') #28
st.tag_bind('lien', '<Button-1>', action) #29
#30
titre ="""Le Corbeau et le Renard #31
par Jean de la Fontaine, auteur français #32
\n""" #33
auteur =""" #34
Jean de la Fontaine #35
écrivain français (1621-1695) #36
célèbre pour ses Contes en vers, #37
et surtout ses Fables, publiées #38
de 1668 à 1694.""" #39
#40
# Remplissage du widget Text (2 techniques) : #41
st.importfile('CorbRenard.txt') #42
st.insert('0.0', titre, 'titre') #43
st.insert(END, auteur, 'cible') #44
# Insertion d'une image : #45
photo =PhotoImage(file= 'Penguin.gif') #46
st.image_create('6.14', image =photo) #47
# Mise en œuvre dynamique d'une balise : #48
st.tag_add('lien', '2.4', '2.23') #49
#50
fen.mainloop() #51
</syntaxhighlight>
;Commentaires
* Lignes 4-7 : Cette fonction est un gestionnaire d'événement, qui est appelé lorsque l'utilisateur effectue un clic de souris sur le nom de l'auteur (cf. lignes 27 et 29). À la ligne 6, on utilise la méthode <code>tag_nextrange()</code> du ''widget'' pour trouver les ''indices'' de la portion de texte associée à la ''balise'' <code>cible</code>. La recherche de ces index est limitée au domaine défini par les 2e et 3e arguments (dans notre exemple, on recherche du début à la fin du texte entier). La méthode <code>tag_nextrange()</code> renvoie une liste de deux indices (ceux des premier et dernier caractères de la portion de texte associée à la balise « cible »). À la ligne 7, nous nous servons d'un seul de ces index (le premier) pour activer la méthode <code>see()</code>. Celle-ci provoque un défilement automatique du texte (''scrolling''), de telle manière que le caractère correspondant à l'index transmis devienne visible dans le ''widget'' (avec en général un certain nombre des caractères qui suivent).
* Lignes 9 à 23 : Construction classique d'une fenêtre destinée à afficher un seul ''widget''. Dans le code d'instanciation du ''widget'', nous avons inclus un certain nombre d'options destinées à vous montrer une petite partie des nombreuses possibilités de configuration.
* Ligne 12 : L'option labelpos détermine l'emplacement du libellé (titre) par rapport à la fenêtre de texte. Les valeurs acceptées s'inspirent des lettres utilisées pour désigner les points cardinaux (N, S, E, W, ou encore NE, NW, SE, SW). Si vous ne souhaitez pas afficher un libellé, il vous suffit tout simplement de ne pas utiliser cette option.
* Lignes 13 à 15 : Le libellé n'est rien d'autre qu'un ''widget'' <code>Label</code> standard, intégré dans le ''widget'' composite <code>ScrolledText</code>. On peut accéder à toutes ses options de configuration, en utilisant la syntaxe qui est présentée dans ces lignes : on y voit qu'il suffit d'associer le préfixe <code>label_</code> au nom de l'option que l'on souhaite activer, pour définir aisément les couleurs d'avant- et d'arrière-plans, la police, la taille, et même l'espacement à réserver autour du ''widget'' (option <code>pady</code>).
* Lignes 16-17 : En utilisant une technique similaire à celle qui est décrite ci-dessus pour le libellé, on peut accéder aux options de configuration du ''widget'' <code>Text</code> intégré dans <code>ScrolledText</code>. Il suffit cette fois d'associer aux noms d'option le préfixe <code>text_</code>.
* Lignes 18 à 20 : Il est prévu un cadre (un ''widget'' <code>Frame</code>) autour du ''widget'' <code>Text</code>. L'option <code>borderframe = 1</code> permet de le faire apparaître. On accède ensuite à ses options de configuration d'une manière similaire à celle qui a été décrite ci-dessus pour <code>label_</code> et <code>text_</code>.
* Lignes 21-22 : Ces options permettent de fixer globalement les dimensions du ''widget''. Une autre possibilité serait de définir plutôt les dimensions de son composant <code>Text</code> (par exemple à l'aide d'options telles que <code>text_width</code> et <code>text_height</code>), mais alors les dimensions globales du ''widget'' risqueraient de changer en fonction du contenu (apparition/disparition automatique de barres de défilement). Note : le mot ''hull'' désigne le contenant global, c'est à dire le ''méga-widget'' lui-même.
* Ligne 23 : Les options <code>expand = YES</code> et <code>fill = BOTH</code> de la méthode <code>pack()</code> indiquent que le ''widget'' concerné pourra être redimensionné à volonté, dans ses 2 dimensions horiz. et verticale.
* Lignes 26 à 29 : Ces lignes définissent les trois ''balises'' <code>titre</code>, <code>lien</code> et <code>cible</code> ainsi que le formatage du texte qui leur sera associé. La ligne 29 précise en outre que le texte associé à la balise <code>lien</code> sera « cliquable », avec indication du gestionnaire d'événement correspondant.
* Ligne 42 : Importation de texte à partir d'un fichier. Note : Il est possible de préciser l'endroit exact où devra se faire l'insertion, en fournissant un index comme second argument.
* Lignes 43-44 : Ces instructions insèrent des fragments de texte (respectivement au début et à la fin du texte préexistant), en associant une balise à chacun d'eux.
* Ligne 49 : L'association des balises au texte est dynamique. À tout moment, vous pouvez activer une nouvelle association (comme nous le faisons ici en rattachant la balise « lien » à une portion de texte préexistante). Note : pour « détacher » une balise, utilisez la méthode <code>tag_delete()</code>.
=== « Scrolled Canvas » ===
Le script ci-après vous montre comment vous pouvez exploiter le <code>méga-widget</code> <code>ScrolledCanvas</code>, lequel étend les possibilités du ''widget'' <code>Canvas</code> standard en lui associant des barres de défilement, un libellé et un cadre. Notre exemple constitue en fait un petit jeu d'adresse, dans lequel l'utilisateur doit réussir à cliquer sur un bouton qui s'esquive sans cesse. (Note : si vous éprouvez vraiment des difficultés pour l'attraper, commencez d'abord par dilater la fenêtre).
[[Image:Apprendre à programmer avec Python 52.png|center]]
Le ''widget'' <code>Canvas</code> est très versatile : il vous permet de combiner à volonté des dessins, des images ''bitmap'', des fragments de texte, et même d'autres ''widgets'', dans un espace parfaitement extensible. Si vous souhaitez développer l'un ou l'autre jeu graphique, c'est évidemment le ''widget'' qu'il vous faut apprendre à maîtriser en priorité.
Comprenez bien cependant que les indications que nous vous fournissons à ce sujet dans les présentes notes sont forcément très incomplètes. Leur objectif est seulement de vous aider à comprendre quelques concepts de base, afin que vous puissiez ensuite consulter les ouvrages de référence spécialisés dans de bonnes conditions.
Notre petite application se présente comme une nouvelle classe <code>FenPrinc()</code>, obtenue par dérivation à partir de la classe de ''méga-widgets'' <code>Pmw.ScrolledCanvas()</code>. Elle contient donc un grand canevas muni de barres de défilement, dans lequel nous commençons par planter un décor constitué de 80 ellipses de couleur dont l'emplacement et les dimensions sont tirés au hasard.
Nous y ajoutons également un petit clin d'œil sous la forme d'une image bitmap, destinée avant tout à vous rappeler comment vous pouvez gérer ce type de ressource.
Nous y installons enfin un véritable ''widget'' : un simple bouton, en l'occurrence, mais la technique mise en œuvre pourrait s'appliquer à n'importe quel autre type de ''widget'', y compris un gros ''widget'' composite comme ceux que nous avons développés précédemment. Cette grande souplesse dans le développement d'applications complexes est l'un des principaux bénéfices apportés par le mode de programmation « orientée objet ».
Le bouton s'anime dès qu'on l'a enfoncé une première fois. Dans votre analyse du script ci-après, soyez attentifs aux méthodes utilisées pour modifier les propriétés d'un objet existant.
<syntaxhighlight lang=python line>
from Tkinter import * #1
import Pmw #2
from random import randrange #3
#4
Pmw.initialise() #5
coul =['sienna','maroon','brown','pink','tan','wheat','gold','orange','plum', #6
'red','khaki','indian red','thistle','firebrick','salmon','coral'] #7
#8
class FenPrinc(Pmw.ScrolledCanvas): #9
"""Fenêtre principale : canevas extensible avec barres de défilement""" #10
def __init__(self): #11
Pmw.ScrolledCanvas.__init__(self, #12
usehullsize =1, hull_width =500, hull_height =300, #13
canvas_bg ='grey40', canvasmargin =10, #14
labelpos =N, label_text ='Attrapez le bouton !', #15
borderframe =1, #16
borderframe_borderwidth =3) #17
# Les options ci-dessous doivent être précisées après initialisation : #18
self.configure(vscrollmode ='dynamic', hscrollmode ='dynamic') #19
self.pack(padx =5, pady =5, expand =YES, fill =BOTH) #20
#21
self.can = self.interior() # accès au composant canevas #22
# Décor : tracé d'une série d'ellipses aléatoires : #23
for r in range(80): #24
x1, y1 = randrange(-800,800), randrange(-800,800) #25
x2, y2 = x1 + randrange(40,300), y1 + randrange(40,300) #26
couleur = coul[randrange(0,16)] #27
self.can.create_oval(x1, y1, x2, y2, fill=couleur, outline='black') #28
# Ajout d'une petite image GIF : #29
self.img = PhotoImage(file ='linux2.gif') #30
self.can.create_image(50, 20, image =self.img) #31
# Dessin du bouton à attraper : #32
self.x, self.y = 50, 100 #33
self.bou = Button(self.can, text ="Start", command =self.start) #34
self.fb = self.can.create_window(self.x, self.y, window =self.bou) #35
self.resizescrollregion() #36
#37
def anim(self): #38
if self.run ==0: #39
return #40
self.x += randrange(-60, 61) #41
self.y += randrange(-60, 61) #42
self.can.coords(self.fb, self.x, self.y) #43
self.configure(label_text = 'Cherchez en %s %s' % (self.x, self.y)) #44
self.resizescrollregion() #45
self.after(250, self.anim) #46
#47
def stop(self): #48
self.run =0 #49
self.bou.configure(text ="Restart", command =self.start) #50
#51
def start(self): #52
self.bou.configure(text ="Attrapez-moi !", command =self.stop) #53
self.run =1 #54
self.anim() #55
#56
##### Main Program ############## #57
#58
if __name__ == '__main__': #59
FenPrinc().mainloop() #60
</syntaxhighlight>
;Commentaires
* Ligne 6 : Tous ces noms de couleurs sont acceptés par ''Tkinter''. Vous pourriez bien évidemment les remplacer par des descriptions hexadécimales, comme nous l'avons expliqué page {{todo}}.
* Lignes 12 à 17 : Ces options sont très similaires à celles que nous avons décrites plus haut pour le ''widget ScrolledText''. Le présent ''méga-widget'' intègre un composant <code>Frame</code>, un composant <code>Label</code>, un composant <code>Canvas</code> et deux composants <code>Scrollbar</code>. On accède aux options de configuration de ces composants à l'aide d'une syntaxe qui relie le nom du composant et celui de l'option par l'intermédiaire d'un caractère « souligné ».
* Ligne 19 : Ces options définissent le mode d'apparition des barres de défilement. En mode « ''static'' », elles sont toujours présentes. En mode « ''dynamic'' », elles disparaissent si les dimensions du canevas deviennent inférieures à celles de la fenêtre de visualisation.
* Ligne 22 : La méthode <code>interior()</code> renvoie la référence du composant <code>Canvas</code> intégré dans le ''méga-widget'' <code>ScrolledCanvas</code>. Les instructions suivantes (lignes 23 à 35) installent ensuite toute une série d'éléments dans ce canevas : des dessins, une image et un bouton.
* Lignes 25 à 27 : La fonction <code>randrange()</code> permet de tirer au hasard un nombre entier compris dans un certain intervalle (Veuillez vous référer aux explications de la page {{todo}}).
* Ligne 35 : C'est la méthode <code>create_window()</code> du ''widget'' <code>Canvas</code> qui permet d'y insérer n'importe quel autre ''widget'' (y compris un ''widget'' composite). Le ''widget'' à insérer doit cependant avoir été défini lui-même au préalable comme un esclave du canevas ou de sa fenêtre maîtresse.<br />La méthode <code>create_window()</code> attend trois arguments : les coordonnées X et Y du point où l'on souhaite insérer le widget, et la référence de ce widget.
* Ligne 36 : La méthode <code>resizescrollregion()</code> réajuste la situation des barres de défilement de manière à ce qu'elles soient en accord avec la portion du canevas actuellement affichée.
* Lignes 38 à 46 : Cette méthode est utilisée pour l'animation du bouton. Après avoir repositionné le bouton au hasard à une certaine distance de sa position précédente, elle se ré-appelle elle-même après une pause de 250 millisecondes. Ce bouclage s'effectue sans cesse, aussi longtemps que la variable <code>self.run</code> contient une valeur non-nulle.
* Lignes 48 à 55 : Ces deux gestionnaires d'événement sont associés au bouton en alternance. Ils servent évidemment à démarrer et à arrêter l'animation.
=== Barres d'outils avec bulles d'aide - expressions lambda ===
De nombreux programmes comportent une ou plusieurs « barres d'outils » (''toolbar'') constituées de petits boutons sur lesquels sont représentés des pictogrammes (icônes). Cette façon de faire permet de proposer à l'utilisateur un grand nombre de commandes spécialisées, sans que celles-ci n'occupent une place excessive à l'écran (un petit dessin vaut mieux qu'un long discours, dit-on).
La signification de ces pictogrammes n'est cependant pas toujours évidente, surtout pour les utilisateurs néophytes. Il est donc vivement conseillé de compléter les barres d'outils à l'aide d'un système de bulles d'aide (''tool tips''), qui sont des petits messages explicatifs apparaissant automatiquement lorsque la souris survole les boutons concernés.
L'application décrite ci-après comporte une barre d'outils et un canevas. Lorsque l'utilisateur clique sur l'un des boutons de la barre, le pictogramme qu'il porte est recopié dans le canevas, à un emplacement choisi au hasard :
[[Image:Apprendre à programmer avec Python 53.png|center]]
Dans notre exemple, chaque bouton apparaît entouré d'un sillon. Vous pouvez aisément obtenir d'autres aspects en choisissant judicieusement les options <code>relief</code> et <code>bd</code> (bordure) dans l'instruction d'instanciation des boutons. En particulier, vous pouvez choisir <code>relief = FLAT</code> et <code>bd = 0</code> pour obtenir des petits boutons « plats », sans aucun relief.
La mise en place des bulles d'aide est un jeu d'enfant. Il suffit d'instancier un seul objet <code>Pmw.Balloon</code> pour l'ensemble de l'application, puis d'associer un texte à chacun des ''widgets'' auxquels on souhaite associer une bulle d'aide, en faisant appel autant de fois que nécessaire à la méthode <code>bind()</code> de cet objet.
<syntaxhighlight lang=python line>
from Tkinter import *
import Pmw
from random import randrange
# noms des fichiers contenant les icônes (format GIF):
images =('floppy_2','papi2','pion_1','pion_2','help_4')
textes =('sauvegarde','papillon','joueur 1','joueur 2','Aide')
class Application(Frame):
def __init__(self):
Frame.__init__(self)
# Création d'un objet <bulle d'aide> (un seul suffit) :
tip = Pmw.Balloon(self)
# Création de la barre d'outils (c'est un simple cadre) :
toolbar = Frame(self, bd =1)
toolbar.pack(expand =YES, fill =X)
# Nombre de boutons à construire :
nBou = len(images)
# Les icônes des boutons doivent être placées dans des variables
# persistantes. Une liste fera l'affaire :
self.photoI =[None]*nBou
for b in range(nBou):
# Création de l'icône (objet PhotoImage Tkinter) :
self.photoI[b] =PhotoImage(file = images[b] +'.gif')
# Création du bouton.:
# On utilise une expression "lambda" pour transmettre
# un argument à la méthode invoquée comme commande :
bou = Button(toolbar, image =self.photoI[b], relief =GROOVE,
command = lambda arg =b: self.action(arg))
bou.pack(side =LEFT)
# association du bouton avec un texte d'aide (bulle) :
tip.bind(bou, textes[b])
self.ca = Canvas(self, width =400, height =200, bg ='orange')
self.ca.pack()
self.pack()
def action(self, b):
"l'icône du bouton b est recopiée dans le canevas"
x, y = randrange(25,375), randrange(25,175)
self.ca.create_image(x, y, image =self.photoI[b])
Application().mainloop()
</syntaxhighlight>
=== Métaprogrammation. Expressions lambda : ===
Vous savez qu'en règle générale, on associe à chaque bouton une ''commande'', laquelle est une méthode ou une fonction particulière qui se charge d'effectuer le travail lorsque le bouton est activé. Or dans l'application présente, tous les boutons doivent faire à peu près la même chose (recopier un dessin dans le canevas), la seule différence entre eux étant le dessin concerné.
Pour simplifier notre code, nous voudrions donc pouvoir associer l'option <code>command</code> de tous nos boutons avec une seule et même méthode (ce sera la méthode <code>action()</code>), mais en lui transmettant à chaque fois la référence du bouton particulier utilisé, de manière à ce que l'action accomplie puisse être différente pour chacun d'eux.
Une difficulté se présente, cependant, parce que l'option command du ''widget'' <code>Button</code> accepte seulement une ''valeur'' ou une ''expression'', et non une ''instruction''. Il est donc permis de lui indiquer la référence d'une fonction, mais pas de l'invoquer véritablement en lui transmettant des arguments éventuels (c'est la raison pour laquelle on indique le nom de cette fonction sans lui adjoindre de parenthèses).
On peut résoudre cette difficulté de deux manières :
<ul>
li> Du fait de son caractère ''dynamique'', Python accepte qu'''un programme puisse se modifier lui-même'', par exemple en définissant de nouvelles fonctions au cours de son exécution (c'est le concept de ''métaprogrammation'').
Il est donc possible de définir à la volée une fonction qui utilise des paramètres, en indiquant pour chacun de ceux-ci une valeur par défaut, et ensuite d'invoquer cette même fonction sans arguments là où ceux-ci ne sont pas autorisés. Puisque la fonction est définie en cours d'exécution, les valeurs par défaut peuvent être les contenus de variables, et le résultat de l'opération est un véritable transfert d'arguments.
Pour illustrer cette technique, remplacez les lignes 27 à 31 du script par les suivantes :
<pre>
# Création du bouton.:
# On définit à la volée une fonction avec un paramètre, dont
# la valeur par défaut est l'argument à transmettre.
# Cette fonction appelle la méthode qui nécessite un argument :
def agir(arg = b):
self.action(arg)
# La commande associée au bouton appelle la fonction ci-dessus :
bou = Button(toolbar, image =self.photoI[b], relief =GROOVE,
command = agir)
</pre></li>
<li>Tout ce qui précède peut être simplifié en faisant appel à une expression ''lambda''. Ce mot réservé Python désigne une ''expression'' qui renvoie un objet fonction, similaire à ceux que vous créez avec l'instruction <code>def</code>, mais avec la différence que <code>lambda</code> étant une expression et non une instruction, on peut l'utiliser comme interface afin d'invoquer une fonction (avec passage d'arguments) là où ce n'est normalement pas possible. Notez au passage qu'une telle fonction est anonyme (elle ne possède pas de nom).
Par exemple, l'instruction :
<code>lambda ar1=b, ar2=c : bidule(ar1,ar2)</code>
renvoie la référence d'une fonction anonyme qui aura elle-même invoqué la fonction <code>bidule()</code> en lui transmettant les arguments <code>b</code> et <code>c</code>, ceux-ci étant utilisés comme valeurs par défaut dans la définition des paramètres de la fonction.
Cette technique utilise finalement le même principe que la précédente, mais elle présente l'avantage d'être plus concise, raison pour laquelle nous l'avons utilisée dans notre script. En revanche, elle est un peu plus difficile à comprendre :
<code>command = lambda arg =b: self.action(arg)</code>
Dans cette portion d'instruction, la commande associée au bouton se réfère à une fonction anonyme dont le paramètre <code>arg</code> possède une valeur par défaut : la valeur de l'argument <code>b</code>.
Invoquée sans argument par la commande, cette fonction anonyme peut tout de même utiliser son paramètre (avec la valeur par défaut) pour faire appel à la méthode cible <code>self.action()</code>, et l'on obtient ainsi un véritable transfert d'argument vers cette méthode.</li></ul>
Nous ne détaillerons pas davantage ici la question des expressions lambda, car elle déborde du cadre que nous nous sommes fixés pour cet ouvrage d'initiation. Si vous souhaitez en savoir plus, veuillez donc consulter l'un ou l'autre des ouvrages de référence cités dans la bibliographie.
== Fenêtres avec menus ==
Nous allons décrire à présent la construction d'une fenêtre d'application dotée de différents types de menus « déroulants », chacun de ces menus pouvant être « détaché » de l'application principale pour devenir lui-même une petite fenêtre indépendante, comme dans l'illustration ci-dessous.
Cet exercice un peu plus long nous servira également de révision, et nous le réaliserons par étapes, en appliquant une stratégie de programmation que l'on appelle ''développement incrémental''.
[[Image:Apprendre à programmer avec Python 54.png|right]]
Comme nous l'avons déjà expliqué précédemment<ref>Voir page : Recherche des erreurs et expérimentation {{Note à faire}}</ref>, cette méthode consiste à commencer l'écriture d'un programme par une ébauche, qui ne comporte que quelques lignes seulement mais qui est déjà fonctionnelle. On teste alors cette ébauche soigneusement afin d'en éliminer les ''bugs'' éventuels. Lorsque l'ébauche fonctionne correctement, on y ajoute une fonctionnalité supplémentaire. On teste ce complément jusqu'à ce qu'il donne entière satisfaction, puis on en ajoute un autre, et ainsi de suite...
''Cela ne signifie pas que vous pouvez commencer directement à programmer'' sans avoir au préalable effectué une analyse sérieuse du projet, dont au moins les grandes lignes devront être convenablement décrites dans un ''cahier des charges'' clairement rédigé.
{{remarque|Il reste également impératif de commenter convenablement le code produit, au fur et à mesure de son élaboration. S'efforcer de rédiger de bons commentaires est en effet nécessaire, non seulement pour que votre code soit facile à lire (et donc à maintenir plus tard, par d'autres ou par vous-même), mais aussi pour que vous soyez forcés d'exprimer ce que vous souhaitez vraiment que la machine fasse (cf. ''Erreurs sémantiques'').}}
;Cahier des charges de l'exercice
Notre application comportera simplement une barre de menus et un canevas. Les différentes rubriques et options des menus ne serviront qu'à faire apparaître des fragments de texte dans le canevas ou à modifier des détails de décoration, mais ce seront avant tout des exemples variés, destinés à donner un aperçu des nombreuses possibilités offertes par ce type de ''widget'', accessoire indispensable de toute application moderne d'une certaine importance.
Nous souhaitons également que le code produit dans cet exercice soit bien structuré. Pour ce faire, nous ferons usage de deux classes : une classe pour l'application principale, et une autre pour la barre de menus. Nous voulons procéder ainsi afin de bien mettre en évidence la construction d'une application type incorporant plusieurs classes d'objets interactifs.
=== Première ébauche du programme : ===
Lorsque l'on construit l'ébauche d'un programme, il faut tâcher d'y faire apparaître le plus tôt possible la structure d'ensemble, avec les relations entre les principaux blocs qui constitueront l'application définitive. C'est ce que nous nous sommes efforcés de faire dans l'exemple ci-dessous :
<syntaxhighlight lang=python line>
from Tkinter import * #1
#2
class MenuBar(Frame): #3
"""Barre de menus déroulants""" #4
def __init__(self, boss =None): #5
Frame.__init__(self, borderwidth =2) #6
#7
##### Menu <Fichier> ##### #8
fileMenu = Menubutton(self, text ='Fichier') #9
fileMenu.pack(side =LEFT) #10
# Partie "déroulante" : #11
me1 = Menu(fileMenu) #12
me1.add_command(label ='Effacer', underline =0, #13
command = boss.effacer) #14
me1.add_command(label ='Terminer', underline =0, #15
command = boss.quit) #16
# Intégration du menu : #17
fileMenu.configure(menu = me1) #18
#19
class Application(Frame): #20
"""Application principale""" #21
def __init__(self, boss =None): #22
Frame.__init__(self) #23
self.master.title('Fenêtre avec menus') #24
mBar = MenuBar(self) #25
mBar.pack() #26
self.can = Canvas(self, bg='light grey', height=190, #27
width=250, borderwidth =2) #28
self.can.pack() #29
self.pack() #30
#31
def effacer(self): #32
self.can.delete(ALL) #33
#34
if __name__ == '__main__': #35
app = Application() #36
app.mainloop() #37
</syntaxhighlight>
[[Image:Apprendre à programmer avec Python 55.png|right]]
Veuillez donc encoder ces lignes et en tester l'exécution. Vous devriez obtenir une fenêtre avec un canevas gris clair surmonté d'une barre de menus. À ce stade, la barre de menus ne comporte encore que la seule rubrique « Fichier ».
Cliquez sur la rubrique « fichier » pour faire apparaître le menu correspondant : l'option « Effacer » n'est pas encore fonctionnelle (elle servira à effacer le contenu du canevas), mais l'option « Terminer » devrait déjà vous permettre de fermer proprement l'application.
Comme tous les menus gérés par ''Tkinter'', le menu que vous avez créé peut être converti en menu « flottant » : il suffit de cliquer sur la ligne pointillée apparaissant en-tête de menu. Vous obtenez ainsi une petite fenêtre satellite, que vous pouvez alors positionner où bon vous semble sur le bureau.
;Analyse du script
La structure de ce petit programme devrait désormais vous apparaître familière : afin que les classes définies dans ce script puissent éventuellement être (ré)utilisées dans d'autres projets par importation, comme nous l'avons déjà expliqué précédemment<ref>Voir page : Modules contenant des bibliothèques de classes {{Note à faire}}</ref>, le corps principal du programme (lignes 35 à 37) comporte l'instruction classique : <code>if __name__ == '__main__'</code> :
Les deux instructions qui suivent consistent seulement à instancier un objet <code>app</code> et à faire fonctionner sa méthode <code>mainloop()</code>. Comme vous le savez certainement, nous aurions pu également condenser ces deux instructions en une seule.
L'essentiel du programme se trouve cependant dans les définitions de classes qui précèdent :
La classe <code>MenuBar()</code> contient la description de la barre de menus. Dans l'état présent du script, elle se résume à une ébauche de constructeur.
* Ligne 5 : Le paramètre boss réceptionne la référence de la fenêtre maîtresse du ''widget'' au moment de son instanciation. Cette référence va nous permettre d'invoquer les méthodes associées à cette fenêtre maîtresse, aux lignes 14 & 16.
* Ligne 6 : Activation obligatoire du constructeur de la classe parente.
* Ligne 9 : Instanciation d'un ''widget'' de la classe <code>Menubutton()</code>, défini comme un « esclave » de <code>self</code> (c'est-à-dire l'objet composite « barre de menus » dont nous sommes occupés à définir la classe). Comme l'indique son nom, ce type de ''widget'' se comporte un peu comme un bouton : une action se produit lorsque l'on clique dessus.
* Ligne 12 : Afin que cette action consiste en l'apparition véritable d'un menu, il reste encore à définir celui-ci : ce sera encore un nouveau ''widget'', de la classe <code>Menu()</code> cette fois, défini lui-même comme un « esclave » du ''widget'' <code>Menubutton</code> instancié à la ligne 9.
* Lignes 13 à 16 : On peut appliquer aux ''widgets'' de la classe <code>Menu()</code> un certain nombre de méthodes spécifiques, chacune d'elles acceptant de nombreuses options. Nous utilisons ici la méthode <code>add_command()</code> pour installer dans le menu les deux items « Effacer » et « Terminer ». Nous y intégrons tout de suite l'option underline, qui sert à définir un ''raccourci clavier'' : cette option indique en effet lequel des caractères de l'item doit apparaître souligné à l'écran. L'utilisateur sait alors qu'il lui suffit de frapper ce caractère au clavier pour que l'action correspondant à cet item soit activée (comme s'il avait cliqué dessus à l'aide de la souris).<br />L'action à déclencher lorsque l'utilisateur sélectionne l'item est désignée par l'option command. Dans notre script, les commandes invoquées sont toutes les deux ''des méthodes de la fenêtre maîtresse'', dont la référence aura été transmise au présent ''widget'' au moment de son instanciation par l'intermédiaire du paramètre <code>boss</code>. La méthode <code>effacer()</code>, que nous définissons nous-même plus loin, servira à vider le canevas. La méthode prédéfinie <code>quit()</code> provoque la sortie de la boucle <code>mainloop()</code> et donc l'arrêt du réceptionnaire d'événements associé à la fenêtre d'application.
* Ligne 18 : Lorsque les items du menu ont été définis, il reste encore à reconfigurer le ''widget'' maître <code>Menubutton</code> de manière à ce que son option « menu » désigne effectivement le ''Menu'' que nous venons de construire. En effet, nous ne pouvions pas déjà préciser cette option lors de la définition initiale du ''widget'' <code>Menubutton</code>, puisqu'à ce stade le <code>Menu</code> n'existait pas encore. Nous ne pouvions pas non plus définir le ''widget'' <code>Menu</code> en premier lieu, puisque celui-ci doit être défini comme un « esclave » du ''widget'' <code>Menubutton</code>. Il faut donc bien procéder en trois étapes comme nous l'avons fait, en faisant appel à la méthode <code>configure()</code>. (Cette méthode peut être appliquée à n'importe quel ''widget'' préexistant pour en modifier l'une ou l'autre option).
La classe <code>Application()</code> contient la description de la fenêtre principale du programme ainsi que les méthodes gestionnaires d'événements qui lui sont associées.
* Ligne 20 : Nous préférons faire dériver notre application de la classe <code>Frame()</code>, qui présente de nombreuses options, plutôt que de la classe primordiale <code>Tk()</code>. De cette manière, l'application toute entière est encapsulée dans un ''widget'', lequel pourra éventuellement être intégré par la suite dans une application plus importante. Rappelons que de toute manière, ''Tkinter'' instanciera automatiquement une fenêtre maîtresse de type <code>Tk()</code> pour contenir de cette ''Frame''.
* Lignes 23-24 : Après l'indispensable activation du constructeur de la classe parente, nous utilisons l'attribut master que ''Tkinter'' associe automatiquement à chaque ''widget'', pour référencer la fenêtre principale de l'application (la fenêtre maîtresse dont nous venons de parler au paragraphe précédent) et en redéfinir le bandeau-titre.
* Lignes 25 à 29 : Instanciation de deux ''widgets'' esclaves pour notre ''Frame'' principale. La « barre de menus » est évidemment le ''widget'' défini dans l'autre classe.
* Ligne 30 : Comme n'importe quel autre ''widget'', notre ''Frame'' principale doit être mise en place.
* Lignes 32-33 : La méthode servant à effacer le canevas est définie dans la classe présente (puisque l'objet canevas en fait partie), mais elle est invoquée par l'option ''command'' d'un ''widget'' esclave défini dans l'autre classe. Comme nous l'avons expliqué plus haut, ce ''widget'' esclave reçoit la référence de son widget maître par l'intermédiaire du paramètre <code>boss</code>. Toutes ces références sont hiérarchisées à l'aide de la qualification des noms par points.
=== Ajout de la rubrique « Musiciens » ===
Continuez le développement de ce petit programme, en ajoutant les lignes suivantes dans le constructeur de la classe <code>MenuBar()</code> (après la ligne 18) :
<pre>
##### Menu <Musiciens> #####
self.musi = Menubutton(self, text ='Musiciens')
self.musi.pack(side =LEFT, padx ='3')
# Partie "déroulante" du menu <Musiciens> :
me1 = Menu(self.musi)
me1.add_command(label ='17e siècle', underline =1,
foreground ='red', background ='yellow',
font =('Comic Sans MS', 11),
command = boss.showMusi17)
me1.add_command(label ='18e siècle', underline =1,
foreground='royal blue', background ='white',
font =('Comic Sans MS', 11, 'bold'),
command = boss.showMusi18)
# Intégration du menu :
self.musi.configure(menu = me1)
</pre>
... ainsi que les définitions de méthodes suivantes à la classe Application() (après la ligne 33) :
<pre>
def showMusi17(self):
self.can.create_text(10, 10, anchor =NW, text ='H. Purcell',
font=('Times', 20, 'bold'), fill ='yellow')
def showMusi18(self):
self.can.create_text(245, 40, anchor =NE, text ="W. A. Mozart",
font =('Times', 20, 'italic'), fill ='dark green')
</pre>
Lorsque vous y aurez ajouté toutes ces lignes, sauvegardez le script et exécutez-le.
[[Image:Apprendre à programmer avec Python 56.png|right]]
Votre barre de menus comporte à présent une rubrique supplémentaire : la rubrique « Musiciens ».
Le menu correspondant propose deux items qui sont affichés avec des couleurs et des polices personnalisées. Vous pourrez vous inspirer de ces techniques décoratives pour vos projets personnels. À utiliser avec modération !
Les commandes que nous avons associées à ces items sont évidemment simplifiées afin de ne pas alourdir l'exercice : elles provoquent l'affichage de petits textes sur le canevas.
;Analyse du script
Les seules nouveautés introduites dans ces lignes concernent l'utilisation de polices de caractères bien déterminées (option <code>font</code>), ainsi que de couleurs pour l'avant-plan (option <code>foreground</code>) et le fond (option <code>background</code>) des textes affichés.
Veuillez noter encore une fois l'utilisation de l'option <code>underline</code> pour désigner les caractères correspondant à des raccourcis claviers (en n'oubliant pas que la numérotation des caractères d'une chaîne commence à partir de zéro), et surtout que l'option <code>command</code> de ces ''widgets'' accède aux méthodes de l'autre classe, par l'intermédiaire de la référence mémorisée dans l'attribut <code>boss</code>.
La méthode <code>create_text()</code> du canevas doit être utilisée avec deux arguments numériques, qui sont les coordonnées X et Y d'un point dans le canevas. Le texte transmis sera positionné par rapport à ce point, en fonction de la valeur choisie pour l'option anchor : Celle-ci détermine comment le fragment de texte doit être « ancré » au point choisi dans le canevas, par son centre, par son coin supérieur gauche, etc., en fonction d'une syntaxe qui utilise l'analogie des points cardinaux géographiques (NW = angle supérieur gauche, SE = angle inférieur droit, CENTER = centre, etc.)
=== Ajout de la rubrique « Peintres » : ===
Cette nouvelle rubrique est construite d'une manière assez semblable à la précédente, mais nous lui avons ajouté une fonctionnalité supplémentaire : des menus « en cascade ». Veuillez donc ajouter les lignes suivantes dans le constructeur de la classe <code>MenuBar()</code> :
<pre>
##### Menu <Peintres> #####
self.pein = Menubutton(self, text ='Peintres')
self.pein.pack(side =LEFT, padx='3')
# Partie "déroulante" :
me1 = Menu(self.pein)
me1.add_command(label ='classiques', state=DISABLED)
me1.add_command(label ='romantiques', underline =0,
command = boss.showRomanti)
# Sous-menu pour les peintres impressionistes :
me2 = Menu(me1)
me2.add_command(label ='Claude Monet', underline =7,
command = boss.tabMonet)
me2.add_command(label ='Auguste Renoir', underline =8,
command = boss.tabRenoir)
me2.add_command(label ='Edgar Degas', underline =6,
command = boss.tabDegas)
# Intégration du sous-menu :
me1.add_cascade(label ='impressionistes', underline=0, menu =me2)
# Intégration du menu :
self.pein.configure(menu =me1)
</pre>
... et les définitions suivantes dans la classe Application() :
<pre>
def showRomanti(self):
self.can.create_text(245, 70, anchor =NE, text = "E. Delacroix",
font =('Times', 20, 'bold italic'), fill ='blue')
def tabMonet(self):
self.can.create_text(10, 100, anchor =NW, text = 'Nymphéas à Giverny',
font =('Technical', 20), fill ='red')
def tabRenoir(self):
self.can.create_text(10, 130, anchor =NW,
text = 'Le moulin de la galette',
font =('Dom Casual BT', 20), fill ='maroon')
def tabDegas(self):
self.can.create_text(10, 160, anchor =NW, text = 'Danseuses au repos',
font =('President', 20), fill ='purple')
</pre>
;Analyse du script
Vous pouvez réaliser aisément des menus en cascade, en enchaînant des sous-menus les uns aux autres jusqu'à un niveau quelconque (il vous est cependant déconseillé d'aller au-delà de 5 niveaux successifs : vos utilisateurs s'y perdraient).
Un sous-menu est défini comme un menu « esclave » du menu de niveau précédent (dans notre exemple, me2 est défini comme un menu « esclave » de <code>me1</code>). L'intégration est assurée ensuite à l'aide de la méthode <code>add_cascade()</code>.
L'un des items est désactivé (option <code>state = DISABLED</code>). L'exemple suivant vous montrera comment vous pouvez activer ou désactiver à volonté des items, par programme.
=== Ajout de la rubrique « Options » : ===
La définition de cette rubrique est un peu plus compliquée, parce que nous allons y intégrer l'utilisation de variables internes à ''Tkinter''.
Les fonctionnalités de ce menu sont cependant beaucoup plus élaborées : les options ajoutées permettent en effet d'activer ou de désactiver à volonté les rubriques « Musiciens » et « Peintres », et vous pouvez également modifier à volonté l'aspect de la barre de menus elle-même.
[[Image:Apprendre à programmer avec Python 57.png|center]]
Veuillez donc ajouter les lignes suivantes dans le constructeur de la classe <code>MenuBar()</code> :
<pre>
##### Menu <Options> #####
optMenu = Menubutton(self, text ='Options')
optMenu.pack(side =LEFT, padx ='3')
# Variables Tkinter :
self.relief = IntVar()
self.actPein = IntVar()
self.actMusi = IntVar()
# Partie "déroulante" du menu :
self.mo = Menu(optMenu)
self.mo.add_command(label = 'Activer :', foreground ='blue')
self.mo.add_checkbutton(label ='musiciens',
command = self.choixActifs, variable =self.actMusi)
self.mo.add_checkbutton(label ='peintres',
command = self.choixActifs, variable =self.actPein)
self.mo.add_separator()
self.mo.add_command(label = 'Relief :', foreground ='blue')
for (v, lab) in [(0,'aucun'), (1,'sorti'), (2,'rentré'),
(3,'sillon'), (4,'crête'), (5,'bordure')]:
self.mo.add_radiobutton(label =lab, variable =self.relief,
value =v, command =self.reliefBarre)
# Intégration du menu :
optMenu.configure(menu = self.mo)
</pre>
... ainsi que les définitions de méthodes suivantes (toujours dans la classe <code>MenuBar()</code>) :
<pre>
def reliefBarre(self):
choix = self.relief.get()
self.configure(relief =[FLAT,RAISED,SUNKEN,GROOVE,RIDGE,SOLID][choix])
def choixActifs(self):
p = self.actPein.get()
m = self.actMusi.get()
self.pein.configure(state =[DISABLED, NORMAL][p])
self.musi.configure(state =[DISABLED, NORMAL][m])
</pre>
;Analyse du script
;Menu avec « cases à cocher »
Notre nouveau menu déroulant comporte deux parties. Afin de bien les mettre en évidence, nous avons inséré une ligne de séparation ainsi que deux « faux items » (« Activer : » et « Relief : ») qui servent simplement de titres. Nous faisons apparaître ceux-ci en couleur pour que l'utilisateur ne les confonde pas avec de véritables commandes.
Les items de la première partie sont dotées de « cases à cocher ». Lorsque l'utilisateur effectue un clic de souris sur l'un ou l'autre de ces items, les options correspondantes sont activées ou désactivées, et ces états « actif / inactif » sont affichés sous la forme d'une coche. Les instructions qui servent à mettre en place ce type de rubrique sont assez explicites. Elles présentent en effet ces items comme des ''widgets'' de type <code>chekbutton</code> :
<pre>
self.mo.add_checkbutton(label = 'musiciens', command = choixActifs,
variable = mbu.me1.music)
</pre>
Il est important de comprendre ici que ce type de ''widget'' comporte nécessairement une variable interne, destinée à mémoriser l'état « actif / inactif » du ''widget''. Cette variable ne peut pas être une variable Python ordinaire, parce que les classes de la bibliothèque ''Tkinter'' sont écrites dans un autre langage. Et par conséquent, on ne pourra accéder à une telle variable interne qu'à travers une interface. Cette interface, appelée « ''variable Tkinter'' », est en fait un objet, que l'on crée à partir d'une classe particulière, qui fait partie du module ''Tkinter'' au même titre que les classes de ''widgets''. L'utilisation de ces « objets-variables » est relativement simple :
<ul>
<li>La classe <code>IntVar()</code> permet de créer des objets équivalents à des variables de type entier.
On commence donc par créer un ou plusieurs de ces objets-variables, que l'on mémorise dans notre exemple comme de nouveaux attribiuts d'instance :
<pre>
self.actMusi =IntVar()
</pre>
Après cette affectation, l'objet référencé dans <code>self.actMusi</code> contient désormais l'équivalent d'une variable de type entier, dans un format spécifique à ''Tkinter''.</li>
<li>Ensuite, on associe l'option <code>variable</code> de l'objet <code>checkbutton</code> à la variable ''Tkinter'' ainsi définie :
<pre>
self.mo.add_checkbutton(label ='musiciens', variable =self.actMusi)
</pre></li>
<li>Il est nécessaire de procéder ainsi en deux étapes, parce que ''Tkinter'' ne peut pas directement assigner des valeurs aux variables Python. Pour une raison similaire, il n'est pas possible à Python de lire directement le contenu d'une ''variable Tkinter''. Il faut utiliser pour cela une méthode spécifique de cette classe d'objets : la méthode <code>get()</code><ref>Pour ''écrire'' dans une variable ''Tkinter'', il faudrait utiliser la méthode <code>set()</code>. Exemple :<br />
<code>self.actMusi.set(45)</code></ref> :
<pre>
m = self.actMusi.get()
</pre>
Dans cette instruction, nous affectons à <code>m</code> (variable ordinaire de Python) le contenu d'une ''variable Tkinter'' (laquelle est elle-même associée à un ''widget'' bien déterminé).</li>
</ul>
Tout ce qui précède peut vous paraître un peu compliqué. Considérez simplement qu'il s'agit de votre première rencontre avec les problèmes d'''interfaçage'' entre deux langages de programmation différents, utilisés ensemble dans un projet composite.
;Menu avec choix exclusifs
La deuxième partie du menu « Options » permet à l'utilisateur de choisir l'aspect que prendra la barre de menus, parmi six possibilités. Il va de soi que l'on ne peut activer qu'une seule de ces possibilités à la fois. Pour mettre en place ce genre de fonctionnalité, on fait classiquement appel appel à des ''widgets'' de type « boutons radio ». La caractéristique essentielle de ces ''widgets'' est que plusieurs d'entre eux doivent être associés à une seule et même ''variable Tkinter''. À chaque bouton radio correspond alors une valeur particulière, et c'est cette valeur qui est affectée à la variable lorsque l'utilisateur sélectionne le bouton.
Ainsi, l'instruction :
<pre>
self.mo.add_radiobutton(label ='sillon', variable =self.relief,
value =3, command =self.reliefBarre)
</pre>
configure un item du menu «Options» de telle manière qu'il se comporte comme un bouton radio.
Lorsque l'utilisateur sélectionne cet item, la valeur 3 est affectée à la ''variable Tkinter'' <code>self.relief</code> (celle-ci étant désignée à l'aide de l'option <code>variable</code> du ''widget''), et un appel est lancé en direction de la méthode <code>reliefBarre()</code>. Celle-ci récupère alors la valeur mémorisée dans la ''variable Tkinter'' pour effectuer son travail.
Dans le contexte particulier de ce menu, nous souhaitons proposer 6 possibilités différentes à l'utilisateur. Il nous faut donc six « boutons radio », pour lesquels nous pourrions encoder six instructions similaires à celle que nous avons reproduite ci-dessus, chacune d'elles ne différant des cinq autres que par ses options <code>value</code> et <code>label</code>. Dans une situation de ce genre, la bonne pratique de programmation consiste à placer les valeurs de ces options dans une liste, et à parcourir ensuite cette liste à l'aide d'une boucle <code>for</code>, afin d'instancier les ''widgets'' avec une instruction commune :
<pre>
for (v, lab) in [(0,'aucun'), (1,'sorti'), (2,'rentré'),
(3,'sillon'), (4,'crête'), (5,'bordure')]:
self.mo.add_radiobutton(label =lab, variable =self.relief,
value =v, command =self.reliefBarre)
</pre>
La liste utilisée est une liste de six tuples (valeur, libellé). À chacune des 6 itérations de la boucle, un nouvel item <code>radiobutton</code> est instancié, dont les options <code>label</code> et <code>value</code> sont extraites de la liste par l'intermédiaire des variables <code>lab</code> et <code>v</code>.
Dans vos projets personnels, il vous arrivera fréquemment de constater que vous pouvez ainsi remplacer des suites d'instructions similaires, par une structure de programmation plus compacte (en général, la combinaison d'une liste et d'une boucle, comme dans l'exemple ci-dessus).
Vous découvrirez petit à petit encore d'autres techniques pour alléger votre code : nous en fournissons encore un exemple dans le paragraphe suivant. Tâchez cependant de garder à l'esprit cette règle essentielle, qu'un bon programme doit avant tout rester ''lisible'' et ''commenté''.
;Contrôle du flux d'exécution à l'aide d'une liste
Veuillez à présent considérer la définition de la méthode <code>reliefBarre()</code> :
À la première ligne, la méthode <code>get()</code> nous permet de récupérer l'état d'une ''variable Tkinter'' qui contient le numéro du choix opéré par l'utilisateur dans le sous-menu « Relief : ».
À la seconde ligne, nous utilisons le contenu de la variable <code>choix</code> pour extraire d'une liste de six éléments celui qui nous intéresse. Par exemple, si <code>choix</code> contient la valeur <code>2</code>, c'est l'option <code>SUNKEN</code> qui sera utilisée pour reconfigurer le ''widget''.
La variable <code>choix</code> est donc utilisée ici comme un index, servant à désigner un élément de la liste. En lieu et place de cette construction compacte, nous aurions pu programmer une série de tests conditionnels, comme par exemple :
<pre>
if choix ==0:
self.configure(relief =FLAT)
elif choix ==1:
self.configure(relief =RAISED)
elif choix ==2:
self.configure(relief =SUNKEN)
...
etc.
</pre>
D'un point de vue strictement fonctionnel, le résultat serait exactement le même. Vous admettrez cependant que la construction que nous avons choisie est d'autant plus efficiente, que le nombre de possibilités de choix est élevé. Imaginez par exemple que l'un de vos programmes personnels doive effectuer une sélection dans un très grand nombre d'éléments : avec une construction du type ci-dessus, vous seriez peut-être amené à encoder plusieurs pages de « <code>elif</code> » !
Nous utilisons encore la même technique dans la méthode <code>choixActifs()</code>. Ainsi l'instruction :
<pre>
self.pein.configure(state =[DISABLED, NORMAL][p])
</pre>
utilise le contenu de la variable <code>p</code> comme index pour désigner lequel des deux états <code>DISABLED</code>, <code>NORMAL</code> doit être sélectionné pour reconfigurer le menu « Peintres ».
Lorsqu'elle est appelée, la méthode <code>choixActifs()</code> reconfigure donc les deux rubriques « Peintres » et « Musiciens » de la barre de menus, pour les faire apparaître « normales » ou « désactivées » en fonction de l'état des variables <code>m</code> et <code>p</code>, lesquelles sont elles-mêmes le reflet de variables ''Tkinter''.
Ces variables intermédiaires <code>m</code> et <code>p</code> ne servent en fait qu'à clarifier le script. Il serait en effet parfaitement possible de les éliminer, et de rendre le script encore plus compact, en utilisant la composition d'instructions. On pourrait par exemple remplacer les deux instructions :
<pre>
m = self.actMusi.get()
self.musi.configure(state =[DISABLED, NORMAL][m])
</pre>
par une seule, telle que :
<pre>
self.musi.configure(state =[DISABLED, NORMAL][self.actMusi.get()])
</pre>
Notez cependant que ce que l'on gagne en compacité se paie d'une certaine perte de lisibilité.
;Pré-sélection d'une rubrique
Pour terminer cet exercice, voyons encore comment vous pouvez déterminer à l'avance certaines sélections, ou bien les modifier par programme.
Veuillez donc ajouter l'instruction suivante dans le constructeur de la classe <code>Application()</code> (juste avant l'instruction <code>self.pack()</code>, par exemple) :
<pre>
mBar.mo.invoke(2)
</pre>
Lorsque vous exécutez le script ainsi modifié, vous constatez qu'au départ la rubrique « Musiciens » de la barre de menus est active, alors que la rubrique « Peintres » ne l'est pas. Programmées comme elles le sont, ces deux rubriques devraient être actives toutes deux par défaut. Et c'est effectivement ce qui se passe si nous supprimons l'instruction :
<pre>
mBar.mo.invoke(2)
</pre>
Nous vous avons suggéré d'ajouter cette instruction au script, pour vous montrer comment vous pouvez effectuer ''par programme'' la même opération que celle que l'on obtient normalement avec un clic de souris.
L'instruction ci-dessus ''invoque'' le ''widget'' <code>mBar.mo</code> en actionnant la commande associée au ''deuxième'' item de ce ''widget''. En consultant le listing, vous pouvez vérifier que ce deuxième item est bien l'objet de type checkbutton qui active/désactive le menu « Peintres » (Rappelons encore une fois que l'on numérote toujours à partir de zéro).
Au démarrage du programme, tout se passe donc comme si l'utilisateur effectuait tout de suite un premier clic sur la rubrique « Peintres » du menu « Options », ce qui a pour effet de désactiver le menu correspondant.Mais si vous voulez le réactiver , vous devrez éteinde votre ordinateur et le tour sera joué !
== Notes ==
{{références}}
0ugl17pzr7ontfjruchndqdm7k9rs9t
Programmation Python/Threads
0
16119
682363
672509
2022-07-25T10:21:52Z
DavidL
1746
[[Spécial:LintErrors/misc-tidy-replacement-issues]] : pas de bandeau dans les <ref>
wikitext
text/x-wiki
<noinclude>{{Python}}</noinclude>
== Gestion de plusieurs tâches en parallèle à l'aide des threads ==
Le système de communication que nous avons élaboré dans les pages précédentes est vraiment très rudimentaire : d'une part il ne met en relation que deux machines seulement, et d'autre part il limite la liberté d'expression des deux interlocuteurs. Ceux-ci ne peuvent en effet envoyer des messages que chacun à leur tour. Par exemple, lorsque l'un d'eux vient d'émettre un message, son système reste bloqué tant que son partenaire ne lui a pas envoyé une réponse. Lorsqu'il vient de recevoir une telle réponse, son système reste incapable d'en réceptionner une autre, tant qu'il n'a pas entré lui-même un nouveau message, ... et ainsi de suite.
Tous ces problèmes proviennent du fait que nos scripts habituels ne peuvent s'occuper que d'une seule chose à la fois. Lorsque le flux d'instructions rencontre une fonction <code>input()</code>, par exemple, il ne se passe plus rien tant que l'utilisateur n'a pas introduit la donnée attendue. Et même si cette attente dure très longtemps, il n'est habituellement pas possible que le programme effectue d'autres tâches pendant ce temps. Ceci n'est toutefois vrai qu'au sein d'un seul et même programme : vous savez certainement que vous pouvez exécuter d'autres applications entre-temps sur votre ordinateur, car les systèmes d'exploitation modernes sont ''multi-tâches''.
Les pages qui suivent sont destinées à vous expliquer comment vous pouvez introduire cette fonctionnalité multi-tâches dans vos programmes, afin que vous puissiez développer de véritables applications réseau, capables de communiquer simultanément avec plusieurs partenaires.
Veuillez à présent considérer le script de la page précédente. Sa fonctionnalité essentielle réside dans la boucle <code>while</code> des lignes 23 à 29. Or, cette boucle s'interrompt à deux endroits :
* À la ligne 27, pour attendre les entrées clavier de l'utilisateur (fonction raw_input()) ;
* À la ligne 29, pour attendre l'arrivée d'un message réseau.
Ces deux attentes sont donc ''successives'', alors qu'il serait bien plus intéressant qu'elles soient ''simultanées''. Si c'était le cas, l'utilisateur pourrait expédier des messages à tout moment, sans devoir attendre à chaque fois la réaction de son partenaire. Il pourrait également recevoir n'importe quel nombre de messages, sans l'obligation d'avoir à répondre à chacun d'eux pour recevoir les autres.
Nous pouvons arriver à ce résultat si nous apprenons à gérer plusieurs séquences d'instructions ''en parallèle'' au sein d'un même programme. Mais comment cela est-il possible ?
Au cours de l'histoire de l'informatique, plusieurs techniques ont été mises au point pour partager le temps de travail d'un processeur entre différentes tâches, de telle manière que celles-ci paraissent être effectuées en même temps (alors qu'en réalité le processeur s'occupe d'un petit bout de chacune d'elles à tour de rôle). Ces techniques sont implémentées dans le système d'exploitation, et il n'est pas nécessaire de les détailler ici, même s'il est possible d'accéder à chacune d'elles avec Python.
Dans les pages suivantes, nous allons apprendre à utiliser celle de ces techniques qui est à la fois la plus facile à mettre en œuvre, et la seule qui soit véritablement portable (elle est en effet supportée par tous les grands systèmes d'exploitation) : on l'appelle la technique des processus légers ou threads<ref>Dans un système d'exploitation de type Unix (comme Linux), les différents ''threads'' d'un même programme font partie d'un seul ''processus''. Il est également possible de gérer différents processus à l'aide d'un même script Python (opération ''fork''), mais l'explication de cette technique dépasse largement le cadre de ce cours.</ref>.
Dans un programme d'ordinateur, les threads sont des flux d'instructions qui sont menés en parallèle (quasi-simultanément), tout en partageant le même espace de noms global.
En fait, le flux d'instructions de n'importe quel programme Python suit toujours au moins un thread : le ''thread principal''.
À partir de celui-ci, d'autres threads « enfants » peuvent être amorcés, qui seront exécutés en parallèle. Chaque thread enfant se termine et disparaît sans autre forme de procès lorsque toutes les instructions qu'il contient ont été exécutées. Par contre, lorsque le thread principal se termine, il faut parfois s'assurer que tous ses threads enfants « meurent » avec lui.
== Client gérant l'émission et la réception simultanées ==
Nous allons maintenant mettre en pratique la technique des threads pour construire un système de « chat »<ref>Le ''chat'' est l'occupation qui consiste à « papoter » par l'intermédiaire d'ordinateurs. Les canadiens francophones ont proposé le terme de ''clavardage'' pour désigner ce « bavardage par claviers interposés ».</ref> simplifié. Ce système sera constitué d'un seul serveur et d'un nombre quelconque de clients. Contrairement à ce qui se passait dans notre premier exercice, personne n'utilisera le serveur lui-même pour communiquer, mais lorsque celui-ci aura été mis en route, plusieurs clients pourront s'y connecter et commencer à s'échanger des messages.
Chaque client enverra tous ses messages au serveur, mais celui-ci les ré-expédiera immédiatement à tous les autres clients connectés, de telle sorte que chacun puisse voir l'ensemble du trafic. Chacun pourra à tout moment envoyer ses messages, et recevoir ceux des autres, dans n'importe quel ordre, la réception et l'émission étant gérées simultanément, dans des threads séparés.
Le script ci-après définit le programme client. Vous constaterez que la partie principale du script (ligne 38 et suivantes) est similaire à celle de l'exemple précédent. Seule la partie « Dialogue avec le serveur » a été remplacée. Au lieu d'une boucle <code>while</code>, vous y trouvez à présent les instructions de création de deux objets threads (aux lignes 49 et 50), dont on démarre la fonctionnalité aux deux lignes suivantes. Ces objets threads sont créés par dérivation, à partir de la classe <code>Thread()</code> du module ''threading''. Ils s'occuperont indépendamment de la réception et de l'émission des messages. Les deux threads « enfants » sont ainsi parfaitement encapsulés dans des objets distincts, ce qui facilite la compréhension du mécanisme.
<syntaxhighlight lang=python line>
# Définition d'un client réseau gérant en parallèle l'émission
# et la réception des messages (utilisation de 2 THREADS).
host = '192.168.0.235'
port = 40000
import socket, sys, threading
class ThreadReception(threading.Thread):
"""objet thread gérant la réception des messages"""
def __init__(self, conn):
threading.Thread.__init__(self)
self.connexion = conn # réf. du socket de connexion
def run(self):
while 1:
message_recu = self.connexion.recv(1024)
print "*" + message_recu + "*"
if message_recu =='' or message_recu.upper() == "FIN":
break
# Le thread <réception> se termine ici.
# On force la fermeture du thread <émission> :
th_E._Thread__stop()
print "Client arrêté. Connexion interrompue."
self.connexion.close()
class ThreadEmission(threading.Thread):
"""objet thread gérant l'émission des messages"""
def __init__(self, conn):
threading.Thread.__init__(self)
self.connexion = conn # réf. du socket de connexion
def run(self):
while 1:
message_emis = raw_input()
self.connexion.send(message_emis)
# Programme principal - Établissement de la connexion :
connexion = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
connexion.connect((host, port))
except socket.error:
print "La connexion a échoué."
sys.exit()
print "Connexion établie avec le serveur."
# Dialogue avec le serveur : on lance deux threads pour gérer
# indépendamment l'émission et la réception des messages :
th_E = ThreadEmission(connexion)
th_R = ThreadReception(connexion)
th_E.start()
th_R.start()
</syntaxhighlight>
;Commentaires
Remarque générale : Dans cet exemple, nous avons décidé de créer deux objets threads indépendants du thread principal, afin de bien mettre en évidence les mécanismes. Notre programme utilise donc trois threads en tout, alors que le lecteur attentif aura remarqué que deux pourraient suffire. En effet : le thread principal ne sert en définitive qu'à lancer les deux autres ! Il n'y a cependant aucun intérêt à limiter le nombre de threads. Au contraire : à partir du moment où l'on décide d'utiliser cette technique, il faut en profiter pour compartimenter l'application en unités bien distinctes.
Ligne 7 : Le module ''threading'' contient la définition de toute une série de classes intéressantes pour gérer les threads. Nous n'utiliserons ici que la seule classe <code>Thread()</code>, lorsque nous devrons nous préoccuper de problèmes de synchronisation entre différents threads concurrents.
Lignes 9 à 25 : Les classes dérivées de la classe <code>Thread()</code> contiendront essentiellement une méthode <code>run()</code>. C'est dans celle-ci que l'on placera la portion de programme spécifiquement confiée au thread. Il s'agira souvent d'une boucle répétitive, comme ici. Vous pouvez parfaitement considérer le contenu de cette méthode comme un script indépendant, qui s'exécute en parallèle avec les autres composants de votre application. Lorsque ce code a été complètement exécuté, le thread se referme.
Lignes 16 à 20 : Cette boucle gère la réception des messages. À chaque itération, le flux d'instructions s'interrompt à la ligne 17 dans l'attente d'un nouveau message, mais le reste du programme n'est pas figé pour autant : les autres threads continuent leur travail indépendamment.
Ligne 19 : La sortie de boucle est provoquée par la réception d'un message <code>'fin'</code> (en majuscules ou en minuscules), ou encore d'un message vide (c'est notamment le cas si la connexion est coupée par le partenaire). Quelques instructions de « nettoyage » sont alors exécutées, et puis le thread se termine.
Ligne 23 : Lorsque la réception des messages est terminée, nous souhaitons que le reste du programme se termine lui aussi. Il nous faut donc forcer la fermeture de l'autre objet thread, celui que nous avons mis en place pour gérer l'émission des messages. Cette fermeture forcée peut être obtenue à l'aide de la méthode <code>_Thread__stop()</code><ref>Que les puristes veuillent bien me pardonner : j'admets volontiers que cette astuce pour forcer l'arrêt d'un thread n'est pas vraiment recommandable. Je me suis autorisé ce raccourci afin de ne pas trop alourdir ce texte, qui se veut seulement une initiation. Le lecteur exigeant pourra approfondir cette question en consultant l'un ou l'autre des ouvrages de référence mentionnés dans la bibliographie située en fin d'ouvrage.</ref>.
Lignes 27 à 36 : Cette classe définit donc un autre objet thread, qui contient cette fois une boucle de répétition perpétuelle. Il ne pourra donc se terminer que contraint et forcé par méthode décrite au paragraphe précédent. À chaque itération de cette boucle, le flux d'instructions s'interrompt à la ligne 35 dans l'attente d'une entrée clavier, mais cela n'empêche en aucune manière les autres threads de faire leur travail.
Lignes 38 à 45 : Ces lignes sont reprises à l'identique des scripts précédents.
Lignes 47 à 52 : Instanciation et démarrage des deux objets threads « enfants ». Veuillez noter qu'il est recommandé de provoquer ce démarrage en invoquant la méthode intégrée <code>start()</code>, plutôt qu'en faisant appel directement à la méthode <code>run()</code> que vous aurez définie vous-même. Sachez également que vous ne pouvez invoquer <code>start()</code> qu'une seule fois (une fois arrêté, un objet thread ne peut pas être redémarré).
== Serveur gérant les connexions de plusieurs clients en parallèle ==
Le script ci-après crée un serveur capable de prendre en charge les connexions d'un certain nombre de clients du même type que ce que nous avons décrit dans les pages précédentes.
Ce serveur n'est pas utilisé lui-même pour communiquer : ce sont les clients qui communiquent les uns avec les autres, par l'intermédiaire du serveur. Celui-ci joue donc le rôle d'un relais : il accepte les connexions des clients, puis attend l'arrivée de leurs messages. Lorsqu'un message arrive en provenance d'un client particulier, le serveur le ré-expédie à tous les autres, en lui ajoutant au passage une chaîne d'identification spécifique du client émetteur, afin que chacun puisse voir tous les messages, et savoir de qui ils proviennent.
<syntaxhighlight lang=python line>
# Définition d'un serveur réseau gérant un système de CHAT simplifié.
# Utilise les threads pour gérer les connexions clientes en parallèle.
HOST = '192.168.0.235'
PORT = 40000
import socket, sys, threading
class ThreadClient(threading.Thread):
'''dérivation d'un objet thread pour gérer la connexion avec un client'''
def __init__(self, conn):
threading.Thread.__init__(self)
self.connexion = conn
def run(self):
# Dialogue avec le client :
nom = self.getName() # Chaque thread possède un nom
while 1:
msgClient = self.connexion.recv(1024)
if msgClient.upper() == "FIN" or msgClient =="":
break
message = "%s> %s" % (nom, msgClient)
print message
# Faire suivre le message à tous les autres clients :
for cle in conn_client:
if cle != nom: # ne pas le renvoyer à l'émetteur
conn_client[cle].send(message)
# Fermeture de la connexion :
self.connexion.close() # couper la connexion côté serveur
del conn_client[nom] # supprimer son entrée dans le dictionnaire
print "Client %s déconnecté." % nom
# Le thread se termine ici
# Initialisation du serveur - Mise en place du socket :
mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
mySocket.bind((HOST, PORT))
except socket.error:
print "La liaison du socket à l'adresse choisie a échoué."
sys.exit()
print "Serveur prêt, en attente de requêtes ..."
mySocket.listen(5)
# Attente et prise en charge des connexions demandées par les clients :
conn_client = {} # dictionnaire des connexions clients
while 1:
connexion, adresse = mySocket.accept()
# Créer un nouvel objet thread pour gérer la connexion :
th = ThreadClient(connexion)
th.start()
# Mémoriser la connexion dans le dictionnaire :
it = th.getName() # identifiant du thread
conn_client[it] = connexion
print "Client %s connecté, adresse IP %s, port %s." %\
(it, adresse[0], adresse[1])
# Dialogue avec le client :
connexion.send("Vous êtes connecté. Envoyez vos messages.")
</syntaxhighlight>
;Commentaires
Lignes 35 à 43 : L'initialisation de ce serveur est identique à celle du serveur rudimentaire décrit au début du présent chapitre.
Ligne 46 : Les références des différentes connexions doivent être mémorisées. Nous pourrions les placer dans une liste, mais il est plus judicieux de les placer dans un dictionnaire, pour deux raisons : La première est que nous devrons pouvoir ajouter ou enlever ces références dans n'importe quel ordre, puisque les clients se connecteront et se déconnecteront à leur guise. La seconde est que nous pouvons disposer aisément d'un identifiant unique pour chaque connexion, lequel pourra servir de clé d'accès dans un dictionnaire. Cet identifiant nous sera en effet fourni automatiquement par La classe <code>Thread()</code>.
Lignes 47 à 51 : Le programme commence ici une boucle de répétition perpétuelle, qui va constamment attendre l'arrivée de nouvelles connexions. Pour chacune de celles-ci, un nouvel objet <code>ThreadClient()</code> est créé, lequel pourra s'occuper d'elle indépendamment de toutes les autres.
Lignes 52 à 54 : Obtention d'un identifiant unique à l'aide de la méthode <code>getName()</code>. Nous pouvons profiter ici du fait que Python attribue automatiquement un nom unique à chaque nouveau thread : ce nom convient bien comme identifiant (ou clé) pour retrouver la connexion correspondante dans notre dictionnaire. Vous pourrez constater qu'il s'agit d'une chaîne de caractères, de la forme : « Thread-N » (N étant le numéro d'ordre du thread).
Lignes 15 à 17 : Gardez bien à l'esprit qu'il se créera autant d'objets <code>ThreadClient()</code> que de connexions, et que tous ces objets fonctionneront en parallèle. La méthode <code>getName()</code> peut alors être utilisée au sein de l'un quelconque de ces objets pour retrouver son identité particulière. Nous utiliserons cette information pour distinguer la connexion courante de toutes les autres (voir ligne 26).
Lignes 18 à 23 : L'utilité du thread est de réceptionner tous les messages provenant d'un client particulier. Il faut donc pour cela une boucle de répétition perpétuelle, qui ne s'interrompra qu'à la réception du message spécifique : « fin », ou encore à la réception d'un message vide (cas où la connexion est coupée par le partenaire).
Lignes 24 à 27 : Chaque message reçu d'un client doit être ré-expédié à tous les autres. Nous utilisons ici une boucle for pour parcourir l'ensemble des clés du dictionnaire des connexions, lesquelles nous permettent ensuite de retrouver les connexions elles-mêmes. Un simple test (à la ligne 26) nous évite de ré-expédier le message au client dont il provient.
Ligne 31 : Lorsque nous fermons un socket de connexion, il est préférable de supprimer sa référence dans le dictionnaire, puisque cette référence ne peut plus servir. Et nous pouvons faire cela sans précaution particulière, car les éléments d'un dictionnaire ne sont pas ordonnés (nous pouvons en ajouter ou en enlever dans n'importe quel ordre).
== Jeu des bombardes, version réseau ==
Au chapitre 15, nous avons commenté le développement d'un petit jeu de combat dans lequel des joueurs s'affrontaient à l'aide de bombardes. L'intérêt de ce jeu reste toutefois fort limité, tant qu'il se pratique sur un seul et même ordinateur. Nous allons donc le perfectionner, en y intégrant les techniques que nous venons d'apprendre. Comme le système de « chat » décrit dans les pages précédentes, l'application complète se composera désormais de deux programmes distincts : un logiciel serveur qui ne sera mis en fonctionnement que sur une seule machine, et un logiciel client qui pourra être lancé sur toute une série d'autres. Du fait du caractère portable de Python, il vous sera même possible d'organiser des combats de bombardes entre ordinateurs gérés par des systèmes d'exploitation différents (MacOS <> Linux <> Windows !).
[[Image:Apprendre à programmer avec Python 70.png|center|capture d'écran du jeu des bombardes]]
=== Programme serveur : vue d'ensemble ===
Les programmes serveur et client exploitent la même base logicielle, elle-même largement récupérée de ce qui avait déjà été mis au point tout au long du chapitre 15. Nous admettrons donc pour la suite de cet exposé que les deux versions précédentes du jeu ont été sauvegardées dans les fichiers-modules <code>canon03.py</code> et <code>canon04.py</code>, installés dans le répertoire courant. Nous pouvons en effet réutiliser une bonne partie du code qu'ils contiennent, en nous servant judicieusement de l'importation et de l'héritage de classes.
Du module ''canon04'', nous allons réutiliser la classe <code>Canon()</code> telle quelle, aussi bien pour le logiciel serveur que pour le logiciel client. De ce même module, nous importerons également la classe <code>AppBombardes()</code>, dont nous ferons dériver la classe maîtresse de notre application serveur : <code>AppServeur()</code>.
Du module ''canon03'', nous récupérerons la classe <code>Pupitre()</code> dont nous tirerons une version plus adaptée au « contrôle à distance ».
Enfin, deux nouvelles classes viendront s'ajouter aux précédentes, chacune spécialisée dans la création d'un objet thread : la classe <code>ThreadClients()</code>, dont une instance surveillera en permanence le socket destiné à réceptionner les demandes de connexion de nouveaux clients, et la classe <code>ThreadConnexion()</code>, qui servira à créer autant d'objets sockets que nécessaire pour assurer le dialogue avec chacun des clients déjà connectés.
Ces nouvelles classes seront inspirées de celles que nous avions développées pour notre serveur de ''chat'' dans les pages précédentes. La principale différence par rapport à celui-ci est que nous devrons activer un thread spécifique pour le code qui gère l'attente et la prise en charge des connexions clientes, afin que l'application principale puisse faire autre chose pendant ce temps.
À partir de là, notre plus gros travail consistera à ''développer un protocole de communication'' pour le dialogue entre le serveur et ses clients. De quoi est-il question ? Tout simplement de définir la teneur des messages que vont s'échanger les machines connectées. Rassurez-vous : la mise au point de ce « langage » peut être progressive. On commence par établir un dialogue de base, puis on y ajoute petit à petit un « vocabulaire » plus étendu.
L'essentiel de ce travail peut être accompli en s 'aidant du logiciel client développé précédemment pour le système de ''chat''. On se sert de celui-ci pour envoyer des « ordres » au serveur en cours de développement, et on corrige celui-ci jusqu'à ce qu'il « obéisse » : en clair, les procédures que l'on met en place progressivement sur le serveur sont testées au fur et à mesure, en réponse aux messages correspondants émis « à la main » à partir du client.
=== Protocole de communication ===
Il va de soi que le protocole décrit ci-après est tout à fait arbitraire. Il serait parfaitement possible de choisir d'autres conventions complètement différentes. Vous pouvez bien évidemment critiquer les choix effectués, et vous souhaiterez peut-être même les remplacer par d'autres, plus efficients ou plus simples.
Vous savez déjà que les messages échangés sont de simples chaînes de caractères. Prévoyant que certains de ces messages devront transmettre plusieurs informations à la fois, nous avons décidé que chacun d'eux pourrait comporter plusieurs champs, que nous séparerons à l'aide de virgules. Lors de la réception de l'un quelconque de ces messages, nous pourrons alors aisément récupérer tous ses composants dans une liste, à l'aide de la méthode intégrée <code>split()</code>.
Voici un exemple de dialogue type, tel qu'il peut être suivi du côté d'un client. Les messages entre astérisques sont ceux qui sont reçus du serveur ; les autres sont ceux qui sont émis par le client lui-même :
<syntaxhighlight lang=text line>
*serveur OK*
client OK
*canons,Thread-3;104;228;1;dark red,Thread-2;454;166;-1;dark blue,*
OK
*nouveau_canon,Thread-4,481,245,-1,dark green,le_vôtre*
orienter,25,
feu
*mouvement_de,Thread-4,549,280,*
feu
*mouvement_de,Thread-4,504,278,*
*scores,Thread-4;1,Thread-3;-1,Thread-2;0,*
*angle,Thread-2,23,*
*angle,Thread-2,20,*
*tir_de,Thread-2,*
*mouvement_de,Thread-2,407,191,*
*départ_de,Thread-2*
*nouveau_canon,Thread-5,502,276,-1,dark green*
</syntaxhighlight>
Lorsqu'un nouveau client démarre, il envoie une requête de connexion au serveur, lequel lui expédie en retour le message : « serveur OK ». À la réception de ce dernier, le client répond alors en envoyant lui-même : « client OK ». Ce premier échange de politesses n'est pas absolument indispensable, mais il permet de vérifier que la communication passe bien dans les deux sens. Étant donc averti que le client est prêt à travailler, le serveur lui expédie alors une description des canons déjà présents dans le jeu (éventuellement aucun) : identifiant, emplacement sur le canevas, orientation et couleur (ligne 3).
En réponse à l'accusé de réception du client (ligne 4), le serveur installe un nouveau canon dans l'espace de jeu, puis il signale les caractéristiques de cette installation non seulement au client qui l'a provoquée, mais également à tous les autres clients connectés. Le message expédié au nouveau client comporte cependant une différence (car c'est lui le propriétaire de ce nouveau canon) : en plus des caractéristiques du canon, qui sont fournies à tout le monde, il comporte un champ supplémentaire contenant simplement « le_vôtre » (comparez par exemple la ligne 5 avec la ligne 17, laquelle signale la connexion d'un autre joueur). Cette indication supplémentaire permet au client propriétaire du canon de distinguer parmi plusieurs messages similaires éventuels, celui qui contient l'identifiant unique que lui a attribué le serveur.
Les messages des lignes 6 et 7 sont des commandes envoyées par le client (réglage de la hausse et commande de tir). Dans la version précédente du jeu, nous avions déjà convenu que les canons se déplaceraient quelque peu (et au hasard) après chaque tir. Le serveur effectue donc cette opération, et s'empresse ensuite d'en faire connaître le résultat à tous les clients connectés. Le message reçu du serveur à la ligne 8 est donc l'indication d'un tel déplacement (les coordonnées fournies sont les coordonnées résultantes pour le canon concerné).
La ligne 11 reproduit le type de message expédié par le serveur lorsqu'une cible a été touchée. Les nouveaux scores de tous les joueurs sont ainsi communiqués à tous les clients.
Les messages serveur des lignes 12, 13 et 14 indiquent les actions entreprises par un autre joueur (réglage de hausse suivi d'un tir). Cette fois encore, le canon concerné est déplacé au hasard après qu'il ait tiré (ligne 15).
Lignes 16 et 17 : lorsque l'un des clients coupe sa connexion, le serveur en avertit tous les autres, afin que le canon correspondant disparaisse de l'espace de jeu sur tous les postes. À l'inverse, de nouveaux clients peuvent se connecter à tout moment pour participer au jeu.
;Remarques complémentaires
Le premier champ de chaque message indique sa teneur. Les messages envoyés par le client sont très simples : ils correspondent aux différentes actions entreprises par le joueur (modifications de l'angle de tir et commandes de feu). Ceux qui sont envoyés par le serveur sont un peu plus complexes. La plupart d'entre eux sont expédiés à tous les clients connectés, afin de les tenir informés du déroulement du jeu. En conséquence, ces messages doivent mentionner l'identifiant du joueur qui a commandé une action ou qui est concerné par un changement quelconque. Nous avons vu plus haut que ces identifiants sont des noms générés automatiquement par le gestionnaire de threads du serveur, chaque fois qu'un nouveau client se connecte.
Certains messages concernant l'ensemble du jeu contiennent plusieurs informations par champ. Dans ce cas, les différents « sous-champs » sont séparés par des points-virgules (lignes 3 et 11).
=== Programme serveur : première partie ===
Vous trouverez dans les pages qui suivent le script complet du programme serveur. Nous vous le présentons en trois morceaux successifs afin de rapprocher les commentaires du code correspondant, mais la numérotation de ses lignes est continue. Bien qu'il soit déjà relativement long et complexe, vous estimerez probablement qu'il mérite d'être encore perfectionné, notamment au niveau de la présentation générale. Nous vous laisserons le soin d'y ajouter vous-même tous les compléments qui vous sembleront utiles (par exemple, une proposition de choisir les coordonnées de la machine hôte au démarrage, une barre de menus, etc.) :
<syntaxhighlight lang=python line>
#######################################################
# Jeu des bombardes - partie serveur #
# (C) Gérard Swinnen, Liège (Belgique)- Juillet 2004 #
# Licence : GPL #
# Avant d'exécuter ce script, vérifiez que l'adresse #
# IP ci-dessous soit bien celle de la machine hôte. #
# Vous pouvez choisir un numéro de port différent, ou #
# changer les dimensions de l'espace de jeu. #
# Dans tous les cas, vérifiez que les mêmes choix ont #
# été effectués pour chacun des scripts clients. #
#######################################################
host, port = '192.168.0.235', 35000
largeur, hauteur = 700, 400 # dimensions de l'espace de jeu
from Tkinter import *
import socket, sys, threading, time
import canon03
from canon04 import Canon, AppBombardes
class Pupitre(canon03.Pupitre):
"""Pupitre de pointage amélioré"""
def __init__(self, boss, canon):
canon03.Pupitre.__init__(self, boss, canon)
def tirer(self):
"déclencher le tir du canon associé"
self.appli.tir_canon(self.canon.id)
def orienter(self, angle):
"ajuster la hausse du canon associé"
self.appli.orienter_canon(self.canon.id, angle)
def valeur_score(self, sc =None):
"imposer un nouveau score <sc>, ou lire le score existant"
if sc == None:
return self.score
else:
self.score =sc
self.points.config(text = ' %s ' % self.score)
def inactiver(self):
"désactiver le bouton de tir et le système de réglage d'angle"
self.bTir.config(state =DISABLED)
self.regl.config(state =DISABLED)
def activer(self):
"activer le bouton de tir et le système de réglage d'angle"
self.bTir.config(state =NORMAL)
self.regl.config(state =NORMAL)
def reglage(self, angle):
"changer la position du curseur de réglage"
self.regl.config(state =NORMAL)
self.regl.set(angle)
self.regl.config(state =DISABLED)
</syntaxhighlight>
La classe <code>Pupitre()</code> est construite par dérivation de la classe de même nom importée du module ''canon03''. Elle hérite donc toutes les caractéristiques de celle-ci, mais nous devons surcharger<ref>Rappel : dans une classe dérivée, vous pouvez définir une nouvelle méthode avec le même nom qu'une méthode de la classe parente, afin de modifier sa fonctionnalité dans la classe dérivée. Cela s'appelle surcharger cette méthode</ref> ses méthodes <code>tirer()</code> et <code>orienter()</code> :
Dans la version monoposte du logiciel, en effet, chacun des pupitres pouvait commander directement l'objet canon correspondant. Dans cette version réseau, par contre, ce sont les clients qui contrôlent à distance le fonctionnement des canons. Par conséquent, les pupitres qui apparaissent dans la fenêtre du serveur ne peuvent être que de simples répétiteurs des manœuvres effectuées par les joueurs sur chaque client. Le bouton de tir et le curseur de réglage de la hausse sont donc désactivés, mais les indications fournies obéissent aux injonctions qui leur sont adressées par l'application principale.
Cette nouvelle classe <code>Pupitre()</code> sera également utilisée telle quelle dans chaque exemplaire du programme client. Dans la fenêtre de celui-ci comme dans celle du serveur, tous les pupitres seront affichés comme des répétiteurs, mais l'un d'entre eux cependant sera complètement fonctionnel : celui qui correspond au canon du joueur.
Toutes ces raisons expliquent également l'apparition des nouvelles méthodes : <code>activer()</code>, <code>desactiver()</code>, <code>reglage()</code> et <code>valeur_score()</code>, qui seront elles aussi invoquées par l'application principale, en réponse aux messages-instructions échangés entre le serveur et ses clients.
La classe <code>ThreadConnexion()</code> ci-dessous sert à instancier la série d'objets threads qui s'occuperont en parallèle de toutes les connexions lancées par les clients. Sa méthode <code>run()</code> contient la fonctionnalité centrale du serveur, à savoir la boucle d'instructions qui gère la réception des messages provenant d'un client particulier, lesquels entraînent chacun toute une cascade de réactions. Vous y trouverez la mise en œuvre concrète du protocole de communication décrit dans les pages précédentes.
<syntaxhighlight lang=python line start=58>
class ThreadConnexion(threading.Thread):
"""objet thread gestionnaire d'une connexion client"""
def __init__(self, boss, conn):
threading.Thread.__init__(self)
self.connexion = conn # réf. du socket de connexion
self.app = boss # réf. de la fenêtre application
def run(self):
"actions entreprises en réponse aux messages reçus du client"
nom = self.getName() # id. du client = nom du thread
while 1:
msgClient = self.connexion.recv(1024)
print "**%s** de %s" % (msgClient, nom)
deb = msgClient.split(',')[0]
if deb == "fin" or deb =="":
self.app.enlever_canon(nom)
# signaler le départ de ce canon aux autres clients :
self.app.verrou.acquire()
for cli in self.app.conn_client:
if cli != nom:
message = "départ_de,%s" % nom
self.app.conn_client[cli].send(message)
self.app.verrou.release()
# fermer le présent thread :
break
elif deb =="client OK":
# signaler au nouveau client les canons déjà enregistrés :
msg ="canons,"
for g in self.app.guns:
gun = self.app.guns[g]
msg =msg +"%s;%s;%s;%s;%s," % \
(gun.id, gun.x1, gun.y1, gun.sens, gun.coul)
self.app.verrou.acquire()
self.connexion.send(msg)
# attendre un accusé de réception ('OK') :
self.connexion.recv(100)
self.app.verrou.release()
# ajouter un canon dans l'espace de jeu serveur.
# la méthode invoquée renvoie les caract. du canon créé :
x, y, sens, coul = self.app.ajouter_canon(nom)
# signaler les caract. de ce nouveau canon à tous les
# clients déjà connectés :
self.app.verrou.acquire()
for cli in self.app.conn_client:
msg ="nouveau_canon,%s,%s,%s,%s,%s" % \
(nom, x, y, sens, coul)
# pour le nouveau client, ajouter un champ indiquant
# que le message concerne son propre canon :
if cli == nom:
msg =msg +",le_vôtre"
self.app.conn_client[cli].send(msg)
self.app.verrou.release()
elif deb =='feu':
self.app.tir_canon(nom)
# Signaler ce tir à tous les autres clients :
self.app.verrou.acquire()
for cli in self.app.conn_client:
if cli != nom:
message = "tir_de,%s," % nom
self.app.conn_client[cli].send(message)
self.app.verrou.release()
elif deb =="orienter":
t =msgClient.split(',')
# on peut avoir reçu plusieurs angles. utiliser le dernier:
self.app.orienter_canon(nom, t[-2])
# Signaler ce changement à tous les autres clients :
self.app.verrou.acquire()
for cli in self.app.conn_client:
if cli != nom:
# virgule terminale, car messages parfois groupés :
message = "angle,%s,%s," % (nom, t[-2])
self.app.conn_client[cli].send(message)
self.app.verrou.release()
# Fermeture de la connexion :
self.connexion.close() # couper la connexion
del self.app.conn_client[nom] # suppr. sa réf. dans le dictionn.
self.app.afficher("Client %s déconnecté.\n" % nom)
# Le thread se termine ici
</syntaxhighlight>
=== Synchronisation de threads concurrents à l'aide de « verrous » (thread locks) ===
Au cours de votre examen du code ci-dessus, vous aurez certainement remarqué la structure particulière des blocs d'instructions par lesquelles le serveur expédie un même message à tous ses clients. Considérez par exemple les lignes 74 à 80 :
La ligne 75 active la méthode <code>acquire()</code> d'un objet « verrou » qui a été créé par le constructeur de l'application principale. Cet objet est une instance de la classe <code>Lock()</code>, laquelle fait partie du module ''threading'' que nous avons importé en début de script. Les lignes suivantes (76 à 79) provoquent l'envoi d'un message à tous les clients connectés (sauf un). Ensuite, l'objet « verrou » est à nouveau sollicité, cette fois pour sa méthode <code>release()</code>.
À quoi cet objet « verrou » peut-il donc bien servir ? Puisqu'il est produit par une classe du module ''threading'', vous pouvez deviner que son utilité concerne les threads. En fait, de tels objets « verrous » servent à ''synchroniser les threads concurrents''. De quoi s'agit-il ?
Vous savez que le serveur démarre un thread différent pour chacun des clients qui se connecte. Ensuite, tous ces threads fonctionnent en parallèle. Il existe donc un risque que de temps à autre, deux ou plusieurs de ces threads essaient d'utiliser une ressource commune en même temps.
Dans les lignes de code que nous venons de discuter, par exemple, nous avons affaire à un thread qui souhaite exploiter quasiment toutes les connexions présentes pour poster un message. Il est donc parfaitement possible que pendant ce temps, un autre thread tente d'exploiter lui aussi l'une ou l'autre de ces connexions, ce qui risque de provoquer un dysfonctionnement (en l'occurrence, la superposition chaotique de plusieurs messages).
Un tel problème de ''concurrence entre threads'' peut être résolu par l'utilisation d'un objet-verrou (thread lock). Un tel objet n'est créé qu'en un seul exemplaire, dans un espace de noms accessible à tous les threads concurrents. Il se caractérise essentiellement par le fait qu'il se trouve toujours dans l'un ou l'autre de deux états : soit verrouillé, soit déverrouillé. Son état initial est l'état déverrouillé.
;Utilisation
Lorsqu'un thread quelconque s'apprête à accéder à une ressource commune, il active d'abord la méthode <code>acquire()</code> du verrou. Si celui-ci était dans l'état déverrouillé, il se verrouille, et le thread demandeur peut alors utiliser la ressource commune, en toute tranquillité. Lorsqu'il aura fini d'utiliser la ressource, il s'empressera cependant d'activer la méthode <code>release()</code> du verrou, ce qui le fera repasser dans l'état déverrouillé.
En effet : Si un autre thread concurrent active lui aussi la méthode <code>acquire()</code> du verrou, alors que celui-ci est dans l'état verrouillé, la méthode « ne rend pas la main », provoquant le blocage de ce thread, lequel suspend donc son activité jusqu'à ce que le verrou repasse dans l'état déverrouillé. Ceci l'empêche donc d'accéder à la ressource commune durant tout le temps où un autre thread s'en sert. Lorsque le verrou est déverrouillé, l'un des threads en attente (il peut en effet y en avoir plusieurs) reprend alors son activité, et ainsi de suite.
L'objet verrou mémorise les références des threads bloqués, de manière à n'en débloquer qu'un seul à la fois lorsque sa méthode <code>release()</code> est invoquée. Il faut donc toujours veiller à ce que chaque thread qui active la méthode acquire() du verrou avant d'accéder à une ressource, active également sa méthode <code>release()</code> peu après.
Pour autant que tous les threads concurrents respectent la même procédure, cette technique simple empêche donc qu'une ressource commune soit exploitée en même temps par plusieurs d'entre eux. On dira dans ce cas que les threads ont été ''synchronisés''.
=== Programme serveur : suite et fin ===
Les deux classes ci-dessous complètent le script serveur. Le code implémenté dans la classe <code>ThreadClients()</code> est assez similaire à celui que nous avions développé précédemment pour le corps d'application du logiciel de « Chat ». Dans le cas présent, toutefois, nous le plaçons dans une classe dérivée de <code>Thread()</code>, parce que devons faire fonctionner ce code dans un thread indépendant de celui de l'application principale. Celui-ci est en effet déjà complètement accaparé par la boucle <code>mainloop()</code> de l'interface graphique.
La classe <code>AppServeur()</code> dérive de la classe <code>AppBombardes()</code> du module ''canon04''. Nous lui avons ajouté un ensemble de méthodes complémentaires destinées à exécuter toutes les opérations qui résulteront du dialogue entamé avec les clients. Nous avons déjà signalé plus haut que les clients instancieront chacun une version dérivée de cette classe (afin de profiter des mêmes définitions de base pour la fenêtre, le canevas, etc.).
<syntaxhighlight lang=python line start=138>
class ThreadClients(threading.Thread):
"""objet thread gérant la connexion de nouveaux clients"""
def __init__(self, boss, connex):
threading.Thread.__init__(self)
self.boss = boss # réf. de la fenêtre application
self.connex = connex # réf. du socket initial
def run(self):
"attente et prise en charge de nouvelles connexions clientes"
txt ="Serveur prêt, en attente de requêtes ...\n"
self.boss.afficher(txt)
self.connex.listen(5)
# Gestion des connexions demandées par les clients :
while 1:
nouv_conn, adresse = self.connex.accept()
# Créer un nouvel objet thread pour gérer la connexion :
th = ThreadConnexion(self.boss, nouv_conn)
th.start()
it = th.getName() # identifiant unique du thread
# Mémoriser la connexion dans le dictionnaire :
self.boss.enregistrer_connexion(nouv_conn, it)
# Afficher :
txt = "Client %s connecté, adresse IP %s, port %s.\n" %\
(it, adresse[0], adresse[1])
self.boss.afficher(txt)
# Commencer le dialogue avec le client :
nouv_conn.send("serveur OK")
class AppServeur(AppBombardes):
"""fenêtre principale de l'application (serveur ou client)"""
def __init__(self, host, port, larg_c, haut_c):
self.host, self.port = host, port
AppBombardes.__init__(self, larg_c, haut_c)
self.active =1 # témoin d'activité
# veiller à quitter proprement si l'on referme la fenêtre :
self.bind('<Destroy>',self.fermer_threads)
def specificites(self):
"préparer les objets spécifiques de la partie serveur"
self.master.title('<<< Serveur pour le jeu des bombardes >>>')
# widget Text, associé à une barre de défilement :
st =Frame(self)
self.avis =Text(st, width =65, height =5)
self.avis.pack(side =LEFT)
scroll =Scrollbar(st, command =self.avis.yview)
self.avis.configure(yscrollcommand =scroll.set)
scroll.pack(side =RIGHT, fill =Y)
st.pack()
# partie serveur réseau :
self.conn_client = {} # dictionn. des connexions clients
self.verrou =threading.Lock() # verrou pour synchroniser threads
# Initialisation du serveur - Mise en place du socket :
connexion = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
connexion.bind((self.host, self.port))
except socket.error:
txt ="La liaison du socket à l'hôte %s, port %s a échoué.\n" %\
(self.host, self.port)
self.avis.insert(END, txt)
self.accueil =None
else:
# démarrage du thread guettant la connexion des clients :
self.accueil = ThreadClients(self, connexion)
self.accueil.start()
def depl_aleat_canon(self, id):
"déplacer aléatoirement le canon <id>"
x, y = AppBombardes.depl_aleat_canon(self, id)
# signaler ces nouvelles coord. à tous les clients :
self.verrou.acquire()
for cli in self.conn_client:
message = "mouvement_de,%s,%s,%s," % (id, x, y)
self.conn_client[cli].send(message)
self.verrou.release()
def goal(self, i, j):
"le canon <i> signale qu'il a atteint l'adversaire <j>"
AppBombardes.goal(self, i, j)
# Signaler les nouveaux scores à tous les clients :
self.verrou.acquire()
for cli in self.conn_client:
msg ='scores,'
for id in self.pupi:
sc = self.pupi[id].valeur_score()
msg = msg +"%s;%s," % (id, sc)
self.conn_client[cli].send(msg)
time.sleep(.5) # pour mieux séparer les messages
self.verrou.release()
def ajouter_canon(self, id):
"instancier un canon et un pupitre de nom <id> dans 2 dictionn."
# on alternera ceux des 2 camps :
n = len(self.guns)
if n %2 ==0:
sens = -1
else:
sens = 1
x, y = self.coord_aleat(sens)
coul =('dark blue', 'dark red', 'dark green', 'purple',
'dark cyan', 'red', 'cyan', 'orange', 'blue', 'violet')[n]
self.guns[id] = Canon(self.jeu, id, x, y, sens, coul)
self.pupi[id] = Pupitre(self, self.guns[id])
self.pupi[id].inactiver()
return (x, y, sens, coul)
def enlever_canon(self, id):
"retirer le canon et le pupitre dont l'identifiant est <id>"
if self.active == 0: # la fenêtre a été refermée
return
self.guns[id].effacer()
del self.guns[id]
self.pupi[id].destroy()
del self.pupi[id]
def orienter_canon(self, id, angle):
"régler la hausse du canon <id> à la valeur <angle>"
self.guns[id].orienter(angle)
self.pupi[id].reglage(angle)
def tir_canon(self, id):
"déclencher le tir du canon <id>"
self.guns[id].feu()
def enregistrer_connexion(self, conn, it):
"Mémoriser la connexion dans un dictionnaire"
self.conn_client[it] = conn
def afficher(self, txt):
"afficher un message dans la zone de texte"
self.avis.insert(END, txt)
def fermer_threads(self, evt):
"couper les connexions existantes et fermer les threads"
# couper les connexions établies avec tous les clients :
for id in self.conn_client:
self.conn_client[id].send('fin')
# forcer la terminaison du thread serveur qui attend les requêtes :
if self.accueil != None:
self.accueil._Thread__stop()
self.active =0 # empêcher accès ultérieurs à Tk
if __name__ =='__main__':
AppServeur(host, port, largeur, hauteur).mainloop()
</syntaxhighlight>
;Commentaires
* Ligne 173 : Il vous arrivera de temps à autre de vouloir « intercepter » l'ordre de fermeture de l'application que l'utilisateur déclenche en quittant votre programme, par exemple parce que vous voulez forcer la sauvegarde de données importantes dans un fichier, ou fermer aussi d'autres fenêtres, etc. Il suffit pour ce faire de détecter l'événement <Destroy>, comme nous le faisons ici pour forcer la terminaison de tous les threads actifs.
* Lignes 179 à 186 : Au passage, voici comment vous pouvez associer une barre de défilement (widget ''Scrollbar'') à un widget ''Text'' (vous pouvez faire de même avec un widget ''Canvas''), sans faire appel à la bibliothèque ''Pmw''<ref>Voir : [[../Tkinter#Installation_des_Python_m.C3.A9ga-widgets|Python Mega Widgets]]</ref>.
* Ligne 190 : Instanciation de l'obet « verrou » permettant de synchroniser les threads.
* Lignes 202, 203 : Instanciation de l'objet thread qui attendra en permanence les demandes de connexion des clients potentiels.
* Lignes 205 à 213, 215 à 227 : Ces méthodes surchargent les méthodes de même nom héritées de leur classe parente. Elles commencent par invoquer celles-ci pour effectuer le même travail (lignes 207, 217), puis ajoutent leur fonctionnalité propre, laquelle consiste à signaler à tout le monde ce qui vient de se passer.
* Lignes 229 à 243 : Cette méthode instancie un nouveau poste de tir, chaque fois qu'un nouveau client se connecte. Les canons sont placés alternativement dans le camp de droite et dans celui de gauche, procédure qui pourrait bien évidemment être améliorée. La liste des couleurs prévues limite le nombre de clients à 10, ce qui devrait suffire.
=== Programme client ===
Le script correspondant au logiciel client est reproduit ci-après. Comme celui qui correspond au serveur, il est relativement court, parce qu'il utilise lui aussi l'importation de modules et l'héritage de classes. Le script serveur doit avoir été sauvegardé dans un fichier-module nommé ''canon_serveur.py''. Ce fichier doit être placé dans le répertoire courant, de même que les fichiers-modules ''canon03.py'' et ''canon04.py'' qu'il utilise lui-même.
De ces modules ainsi importés, le présent script utilise les classes <code>Canon()</code> et <code>Pupitre()</code> à l'identique, ainsi qu'une forme dérivée de la classe <code>AppServeur()</code>. Dans cette dernière, de nombreuses méthodes ont été surchargées, afin d'adapter leur fonctionnalité. Considérez par exemple les méthodes <code>goal()</code> et <code>depl_aleat_canon()</code>, dont la variante surchargée ne fait plus rien du tout (instruction pass), parce que le calcul des scores et le repositionnement des canons après chaque tir ne peuvent être effectués que sur le serveur seulement.
C'est dans la méthode <code>run()</code> de la classe <code>ThreadSocket()</code> (lignes 86 à 126) que se trouve le code traitant les messages échangés avec le serveur. Nous y avons d'ailleurs laissé une instruction print (à la ligne 88) afin que les messages reçus du serveur apparaissent sur la sortie standard. Si vous réalisez vous-même une forme plus définitive de ce jeu, vous pourrez bien évidemment supprimer cette instruction.
<syntaxhighlight lang=python line>
#######################################################
# Jeu des bombardes - partie cliente #
# (C) Gérard Swinnen, Liège (Belgique) - Juillet 2004 #
# Licence : GPL #
# Avant d'exécuter ce script, vérifiez que l'adresse, #
# le numéro de port et les dimensions de l'espace de #
# jeu indiquées ci-dessous correspondent exactement #
# à ce qui a été défini pour le serveur. #
#######################################################
from Tkinter import *
import socket, sys, threading, time
from canon_serveur import Canon, Pupitre, AppServeur
host, port = '192.168.0.235', 35000
largeur, hauteur = 700, 400 # dimensions de l'espace de jeu
class AppClient(AppServeur):
def __init__(self, host, port, larg_c, haut_c):
AppServeur.__init__(self, host, port, larg_c, haut_c)
def specificites(self):
"préparer les objets spécifiques de la partie client"
self.master.title('<<< Jeu des bombardes >>>')
self.connex =ThreadSocket(self, self.host, self.port)
self.connex.start()
self.id =None
def ajouter_canon(self, id, x, y, sens, coul):
"instancier 1 canon et 1 pupitre de nom <id> dans 2 dictionnaires"
self.guns[id] = Canon(self.jeu, id, int(x),int(y),int(sens), coul)
self.pupi[id] = Pupitre(self, self.guns[id])
self.pupi[id].inactiver()
def activer_pupitre_personnel(self, id):
self.id =id # identifiant reçu du serveur
self.pupi[id].activer()
def tir_canon(self, id):
r = self.guns[id].feu() # renvoie False si enrayé
if r and id == self.id:
self.connex.signaler_tir()
def imposer_score(self, id, sc):
self.pupi[id].valeur_score(int(sc))
def deplacer_canon(self, id, x, y):
"note: les valeurs de x et y sont reçues en tant que chaînes"
self.guns[id].deplacer(int(x), int(y))
def orienter_canon(self, id, angle):
"régler la hausse du canon <id> à la valeur <angle>"
self.guns[id].orienter(angle)
if id == self.id:
self.connex.signaler_angle(angle)
else:
self.pupi[id].reglage(angle)
def fermer_threads(self, evt):
"couper les connexions existantes et refermer les threads"
self.connex.terminer()
self.active =0 # empêcher accès ultérieurs à Tk
def depl_aleat_canon(self, id):
pass # => méthode inopérante
def goal(self, a, b):
pass # => méthode inopérante
class ThreadSocket(threading.Thread):
"""objet thread gérant l'échange de messages avec le serveur"""
def __init__(self, boss, host, port):
threading.Thread.__init__(self)
self.app = boss # réf. de la fenêtre application
# Mise en place du socket - connexion avec le serveur :
self.connexion = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
self.connexion.connect((host, port))
except socket.error:
print "La connexion a échoué."
sys.exit()
print "Connexion établie avec le serveur."
def run(self):
while 1:
msg_recu = self.connexion.recv(1024)
print "*%s*" % msg_recu
# le message reçu est d'abord converti en une liste :
t =msg_recu.split(',')
if t[0] =="" or t[0] =="fin":
# fermer le présent thread :
break
elif t[0] =="serveur OK":
self.connexion.send("client OK")
elif t[0] =="canons":
self.connexion.send("OK") # accusé de réception
# éliminons le 1er et le dernier élément de la liste.
# ceux qui restent sont eux-mêmes des listes :
lc = t[1:-1]
# chacune est la description complète d'un canon :
for g in lc:
s = g.split(';')
self.app.ajouter_canon(s[0], s[1], s[2], s[3], s[4])
elif t[0] =="nouveau_canon":
self.app.ajouter_canon(t[1], t[2], t[3], t[4], t[5])
if len(t) >6:
self.app.activer_pupitre_personnel(t[1])
elif t[0] =='angle':
# il se peut que l'on ait reçu plusieurs infos regroupées.
# on ne considère alors que la première :
self.app.orienter_canon(t[1], t[2])
elif t[0] =="tir_de":
self.app.tir_canon(t[1])
elif t[0] =="scores":
# éliminons le 1er et le dernier élément de la liste.
# ceux qui restent sont eux-mêmes des listes :
lc = t[1:-1]
# chaque élément est la description d'un score :
for g in lc:
s = g.split(';')
self.app.imposer_score(s[0], s[1])
elif t[0] =="mouvement_de":
self.app.deplacer_canon(t[1],t[2],t[3])
elif t[0] =="départ_de":
self.app.enlever_canon(t[1])
# Le thread <réception> se termine ici.
print "Client arrêté. Connexion interrompue."
self.connexion.close()
def signaler_tir(self):
self.connexion.send('feu')
def signaler_angle(self, angle):
self.connexion.send('orienter,%s,' % angle)
def terminer(self):
self.connexion.send('fin')
# Programme principal :
if __name__ =='__main__':
AppClient(host, port, largeur, hauteur).mainloop()
</syntaxhighlight>
;Commentaires
* Lignes 15, 16 : Vous pouvez vous-même perfectionner ce script en lui ajoutant un formulaire qui demandera ces valeurs à l'utilisateur au cours du démarrage.
* Lignes 19 à 27 : Le constructeur de la classe parente se termine en invoquant la méthode <code>specificites()</code>. On peut donc placer dans celle-ci ce qui doit être construit différemment dans le serveur et dans les clients. (Le serveur instancie notamment un widget text qui n'est pas repris dans les clients ; l'un et l'autre démarrent des objets threads différents pour gérer les connexions).
* Lignes 39 à 42 : Cette méthode est invoquée chaque fois que l'utilisateur enfonce le bouton de tir. Le canon ne peut cependant pas effectuer des tirs en rafale. Par conséquent, aucun nouveau tir ne peut être accepté tant que l'obus précédent n'a pas terminé sa trajectoire. C'est la valeur « vraie » ou « fausse » renvoyée par la méthode <code>feu()</code> de l'objet canon qui indique si le tir a été accepté ou non. On utilise cette valeur pour ne signaler au serveur (et donc aux autres clients) que les tirs qui ont effectivement eu lieu.
Lignes 105 à 108 : Un nouveau canon doit être ajouté dans l'espace de jeu de chacun (c'est-à-dire dans le canevas du serveur, et dans le canevas de tous les clients connectés), chaque fois qu'un nouveau client se connecte. Le serveur envoie donc à ce moment un même message à tous les clients pour les informer de la présence de ce nouveau partenaire. Mais le message envoyé à celui-ci en particulier comporte un champ supplémentaire (lequel contient simplement la chaîne « le_vôtre »), afin que ce partenaire sache que ce message concerne son propre canon, et qu'il puisse donc activer le pupitre correspondant, tout en mémorisant l'identifiant qui lui a été attribué par le serveur (voir également les lignes 35 à 37).
;Conclusions et perspectives
Cette application vous a été présentée dans un but didactique. Nous y avons délibérément simplifié un certain nombre de problèmes. Par exemple, si vous testez vous-même ces logiciels, vous constaterez que les messages échangés sont souvent rassemblés en « paquets », ce qui nécessiterait d'affiner les algorithmes mis en place pour les interpréter. De même, nous avons à peine esquissé le mécanisme fondamental du jeu : répartition des joueurs dans les deux camps, destruction des canons touchés, obstacles divers, etc. Il vous reste bien des pistes à explorer !
{{Exercices}}
# Simplifiez le script correspondant au client de « chat » vu précédemment, en supprimant l'un des deux objets threads. Arrangez-vous par exemple pour traiter l'émission de messages au niveau du thread principal.
# Modifiez le jeu des bombardes vu précédemment (version monoposte), en ne gardant qu'un seul canon et un seul pupitre de pointage. Ajoutez-y une cible mobile, dont le mouvement sera géré par un objet thread indépendant (de manière à bien séparer les portions de code qui contrôlent l'animation de la cible et celle du boulet).
{{solution}}
<ol>
<li>Réfléchissez !</li>
<li>
<pre>
#####################################
# Bombardement d'une cible mobile #
# (C) G. Swinnen - Avril 2004 - GPL #
#####################################
from Tkinter import *
from math import sin, cos, pi
from random import randrange
from threading import Thread
class Canon:
"""Petit canon graphique"""
def __init__(self, boss, num, x, y, sens):
self.boss = boss # référence du canevas
self.num = num # n° du canon dans la liste
self.x1, self.y1 = x, y # axe de rotation du canon
self.sens = sens # sens de tir (-1:gauche, +1:droite)
self.lbu = 30 # longueur de la buse
# dessiner la buse du canon (horizontale) :
self.x2, self.y2 = x + self.lbu * sens, y
self.buse = boss.create_line(self.x1, self.y1,
self.x2, self.y2, width =10)
# dessiner le corps du canon (cercle de couleur) :
self.rc = 15 # rayon du cercle
self.corps = boss.create_oval(x -self.rc, y -self.rc, x +self.rc,
y +self.rc, fill ='black')
# pré-dessiner un obus (au départ c'est un simple point) :
self.obus = boss.create_oval(x, y, x, y, fill='red')
self.anim = 0
# retrouver la largeur et la hauteur du canevas :
self.xMax = int(boss.cget('width'))
self.yMax = int(boss.cget('height'))
def orienter(self, angle):
"régler la hausse du canon"
# rem : le paramètre <angle> est reçu en tant que chaîne.
# il faut donc le traduire en réel, puis le convertir en radians :
self.angle = float(angle)*2*pi/360
self.x2 = self.x1 + self.lbu * cos(self.angle) * self.sens
self.y2 = self.y1 - self.lbu * sin(self.angle)
self.boss.coords(self.buse, self.x1, self.y1, self.x2, self.y2)
def feu(self):
"déclencher le tir d'un obus"
# référence de l'objet cible :
self.cible = self.boss.master.cible
if self.anim ==0:
self.anim =1
# position de départ de l'obus (c'est la bouche du canon) :
self.xo, self.yo = self.x2, self.y2
v = 20 # vitesse initiale
# composantes verticale et horizontale de cette vitesse :
self.vy = -v *sin(self.angle)
self.vx = v *cos(self.angle) *self.sens
self.animer_obus()
def animer_obus(self):
"animer l'obus (trajectoire balistique)"
# positionner l'obus, en re-définissant ses coordonnées :
self.boss.coords(self.obus, self.xo -3, self.yo -3,
self.xo +3, self.yo +3)
if self.anim >0:
# calculer la position suivante :
self.xo += self.vx
self.yo += self.vy
self.vy += .5
self.test_obstacle() # a-t-on atteint un obstacle ?
self.boss.after(1, self.animer_obus)
else:
# fin de l'animation :
self.boss.coords(self.obus, self.x1, self.y1, self.x1, self.y1)
def test_obstacle(self):
"évaluer si l'obus a atteint une cible ou les limites du jeu"
if self.yo >self.yMax or self.xo <0 or self.xo >self.xMax:
self.anim =0
return
if self.yo > self.cible.y -3 and self.yo < self.cible.y +18 \
and self.xo > self.cible.x -3 and self.xo < self.cible.x +43:
# dessiner l'explosion de l'obus (cercle orange) :
self.explo = self.boss.create_oval(self.xo -10,
self.yo -10, self.xo +10, self.yo +10,
fill ='orange', width =0)
self.boss.after(150, self.fin_explosion)
self.anim =0
def fin_explosion(self):
"effacer le cercle d'explosion - gérer le score"
self.boss.delete(self.explo)
# signaler le succès à la fenêtre maîtresse :
self.boss.master.goal()
class Pupitre(Frame):
"""Pupitre de pointage associé à un canon"""
def __init__(self, boss, canon):
Frame.__init__(self, bd =3, relief =GROOVE)
self.score =0
s =Scale(self, from_ =88, to =65,
troughcolor ='dark grey',
command =canon.orienter)
s.set(45) # angle initial de tir
s.pack(side =LEFT)
Label(self, text ='Hausse').pack(side =TOP, anchor =W, pady =5)
Button(self, text ='Feu !', command =canon.feu).\
pack(side =BOTTOM, padx =5, pady =5)
Label(self, text ="points").pack()
self.points =Label(self, text=' 0 ', bg ='white')
self.points.pack()
# positionner à gauche ou à droite suivant le sens du canon :
gd =(LEFT, RIGHT)[canon.sens == -1]
self.pack(padx =3, pady =5, side =gd)
def attribuerPoint(self, p):
"incrémenter ou décrémenter le score"
self.score += p
self.points.config(text = ' %s ' % self.score)
class Cible:
"""objet graphique servant de cible"""
def __init__(self, can, x, y):
self.can = can # référence du canevas
self.x, self.y = x, y
self.cible = can.create_oval(x, y, x+40, y+15, fill ='purple')
def deplacer(self, dx, dy):
"effectuer avec la cible un déplacement dx,dy"
self.can.move(self.cible, dx, dy)
self.x += dx
self.y += dy
return self.x, self.y
class Thread_cible(Thread):
"""objet thread gérant l'animation de la cible"""
def __init__(self, app, cible):
Thread.__init__(self)
self.cible = cible # objet à déplacer
self.app = app # réf. de la fenêtre d'application
self.sx, self.sy = 6, 3 # incréments d'espace et de
self.dt =300 # temps pour l'animation (ms)
def run(self):
"animation, tant que la fenêtre d'application existe"
x, y = self.cible.deplacer(self.sx, self.sy)
if x > self.app.xm -50 or x < self.app.xm /5:
self.sx = -self.sx
if y < self.app.ym /2 or y > self.app.ym -20:
self.sy = -self.sy
if self.app != None:
self.app.after(int(self.dt), self.run)
def stop(self):
"fermer le thread si la fenêtre d'application est refermée"
self.app =None
def accelere(self):
"accélérer le mouvement"
self.dt /= 1.5
class Application(Frame):
def __init__(self):
Frame.__init__(self)
self.master.title('<<< Tir sur cible mobile >>>')
self.pack()
self.xm, self.ym = 600, 500
self.jeu = Canvas(self, width =self.xm, height =self.ym,
bg ='ivory', bd =3, relief =SUNKEN)
self.jeu.pack(padx =4, pady =4, side =TOP)
# Instanciation d'un canon et d'un pupitre de pointage :
x, y = 30, self.ym -20
self.gun =Canon(self.jeu, 1, x, y, 1)
self.pup =Pupitre(self, self.gun)
# instanciation de la cible mobile :
self.cible = Cible(self.jeu, self.xm/2, self.ym -25)
# animation de la cible mobile, sur son propre thread :
self.tc = Thread_cible(self, self.cible)
self.tc.start()
# arrêter tous les threads lorsque l'on ferme la fenêtre :
self.bind('<Destroy>',self.fermer_threads)
def goal(self):
"la cible a été touchée"
self.pup.attribuerPoint(1)
self.tc.accelere()
def fermer_threads(self, evt):
"arrêter le thread d'animation de la cible"
self.tc.stop()
if __name__ =='__main__':
Application().mainloop()
</pre>
</li>
</ol>
{{fin}}
== Utilisation de threads pour optimiser les animations. ==
Le dernier exercice proposé à la fin de la section précédente nous suggère une méthodologie de développements d'applications qui peut se révéler particulièrement intéressante, dans le cas de jeux vidéo impliquant plusieurs animations simultanées.
En effet : si vous programmez les différents éléments animés d'un jeu comme des objets indépendants fonctionnant chacun sur son propre thread, alors non seulement vous vous simplifiez la tâche et vous améliorez la lisibilité de votre script, mais encore vous augmentez la vitesse d'exécution et donc la fluidité de ces animations. Pour arriver à ce résultat, vous devrez abandonner la technique de temporisation que vous avez exploitée jusqu'ici, mais celle que vous allez utiliser à sa place est finalement plus simple !
=== Temporisation des animations à l'aide de after() ===
Dans toutes les animations que nous avons décrites jusqu'à présent, le « moteur » était constitué à chaque fois par une fonction contenant la méthode <code>after()</code>, laquelle est associée d'office à tous les widgets ''Tkinter''. Vous savez que cette méthode permet d'introduire une temporisation dans le déroulement de votre programme : un chronomètre interne est activé, de telle sorte qu'après un intervalle de temps convenu, le système invoque automatiquement une fonction quelconque. En général, c'est la fonction contenant <code>after()</code> qui est elle-même invoquée : on réalise ainsi une boucle récursive, dans laquelle il reste à programmer les déplacements des divers objets graphiques.
Vous devez bien comprendre que pendant l'écoulement de l'intervalle de temps programmé à l'aide de la méthode <code>after()</code>, votre application n'est pas du tout « figée ». Vous pouvez par exemple pendant ce temps : cliquer sur un bouton, redimensionner la fenêtre, effectuer une entrée clavier, etc. Comment cela est-il rendu possible ?
Nous avons mentionné déjà à plusieurs reprises le fait que les applications graphiques modernes comportent toujours une sorte de moteur qui « tourne » continuellement en tâche de fond : ce dispositif se met en route lorsque vous activez la méthode <code>mainloop()</code> de votre fenêtre principale. Comme son nom l'indique fort bien, cette méthode met en œuvre une boucle répétitive perpétuelle, du même type que les boucles <code>while</code> que vous connaissez bien. De nombreux mécanismes sont intégrés à ce « moteur ». L'un d'entre eux consiste à réceptionner tous les événements qui se produisent, et à les signaler ensuite à l'aide de messages appropriés aux programmes qui en font la demande (voir : Programmes pilotés par des événements), d'autres contrôlent les actions à effectuer au niveau de l'affichage, etc. Lorsque vous faites appel à la méthode <code>after()</code> d'un widget, vous utilisez en fait un mécanisme de chronométrage qui est intégré lui aussi à <code>mainloop()</code>, et c'est donc ce gestionnaire central qui déclenche l'appel de fonction que vous souhaitez, après un certain intervalle de temps.
La technique d'animation utilisant la méthode <code>after()</code> est la seule possible pour une application fonctionnant toute entière sur un seul thread, parce que c'est la boucle <code>mainloop()</code> qui dirige l'ensemble du comportement d'une telle application de manière absolue. C'est notamment elle qui se charge de redessiner tout ou partie de la fenêtre chaque fois que cela s'avère nécessaire. Pour cette raison, vous ne pouvez pas imaginer de construire un moteur d'animation qui redéfinirait les coordonnées d'un objet graphique à l'intérieur d'une simple boucle <code>while</code>, par exemple, parce que pendant tout ce temps l'exécution de <code>mainloop()</code> resterait suspendue, ce qui aurait pour conséquence que pendant tout ce temps aucun objet graphique ne serait redessiné (en particulier celui que vous souhaitez mettre en mouvement !). En fait, toute l'application apparaîtrait figée, aussi longtemps que la boucle while ne serait pas interrompue.
Puisqu'elle est la seule possible, c'est donc cette technique que nous avons utilisée jusqu'à présent dans tous nos exemples d'applications mono-thread. Elle comporte cependant un inconvénient gênant : du fait du grand nombre d'opérations prises en charge à chaque itération de la boucle <code>mainloop()</code>, la temporisation que l'on peut programmer à l'aide de <code>after()</code> ne peut pas être très courte. Par exemple, elle ne peut guère descendre en dessous de 15 ms sur un PC typique (processeur de type Pentium IV, f = 1,5 GHz). Vous devez tenir compte de cette limitation si vous souhaitez développer des animations rapides.
Un autre inconvénient lié à l'utilisation de la méthode <code>after()</code> réside dans la structure de la boucle d'animation (à savoir une fonction ou une méthode « récursive », c'est-à-dire qui s'appelle elle-même) : il n'est pas toujours simple en effet de bien maîtriser ce genre de construction logique, en particulier si l'on souhaite programmer l'animation de plusieurs objets graphiques indépendants, dont le nombre ou les mouvements doivent varier au cours du temps.
=== Temporisation des animations à l'aide de time.sleep() ===
Vous pouvez ignorer les limitations de la méthode <code>after()</code> évoquées ci-dessus, si vous en confiez l'animation de vos objets graphiques à des threads indépendants. En procédant ainsi, vous vous libérez de la tutelle de <code>mainloop()</code>, et il vous est permis alors de construire des procédures d'animation sur la base de structures de boucles plus « classiques », utilisant l'instruction <code>while</code> ou l'instruction for par exemple.
Au cœur de chacune de ces boucles, vous devez cependant toujours veiller à insérer une temporisation pendant laquelle vous « rendez la main » au système d'exploitation (afin qu'il puisse s'occuper des autres threads). Pour ce faire, vous ferez appel à la fonction <code>sleep()</code> du module ''time''. Cette fonction permet de suspendre l'exécution du thread courant pendant un certain intervalle de temps, pendant lequel les autres threads et applications continuent à fonctionner. La temporisation ainsi produite ne dépend pas de <code>mainloop()</code>, et par conséquent, elle peut être beaucoup plus courte que celle que vous autorise la méthode <code>after()</code>.
Attention : cela ne signifie pas que le rafraîchissement de l'écran sera lui-même plus rapide, car ce rafraîchissement continue à être assuré par <code>mainloop()</code>. Vous pourrez cependant accélérer fortement les différents mécanismes que vous installez vous-même dans vos procédures d'animation. Dans un logiciel de jeu, par exemple, il est fréquent d'avoir à comparer périodiquement les positions de deux mobiles (tels qu' un projectile et une cible), afin de pouvoir entreprendre une action lorsqu'ils se rejoignent (explosion, ajout de points à un score, etc.). Avec la technique d'animation décrite ici, vous pouvez effectuer beaucoup plus souvent ces comparaisons et donc espérer un résultat plus précis. De même, vous pouvez augmenter le nombre de points pris en considération pour le calcul d'une trajectoire en temps réel, et donc affiner celle-ci.
Remarque : Lorsque vous utilisez la méthode <code>after()</code>, vous devez lui indiquer la temporisation souhaitée en millisecondes, sous la forme d'un argument entier. Lorsque vous faites appel à la fonction <code>sleep()</code>, par contre, l'argument que vous transmettez doit être exprimé en secondes, sous la forme d'un réel (''float''). Vous pouvez cependant utiliser des très petites valeurs (0.0003 par ex.).
=== Exemple concret ===
Le petit script reproduit ci-dessous illustre la mise en œuvre de cette technique, dans un exemple volontairement minimaliste. Il s'agit d'une petite application graphique dans laquelle une figure se déplace en cercle à l'intérieur d'un canevas. Son « moteur » <code>mainloop()</code> est lancé comme d'habitude sur le thread principal. Le constructeur de l'application instancie un canevas contenant le dessin d'un cercle, un bouton et un objet thread. C'est cet objet thread qui assure l'animation du dessin, mais sans faire appel à la méthode <code>after()</code> d'un widget. Il utilise plutôt une simple boucle <code>while</code> très classique, installée dans sa méthode <code>run()</code>.
[[Image:Apprendre à programmer avec Python 71.png|center|capture d'écran de l'application]]
<syntaxhighlight lang=python line>
from Tkinter import *
from math import sin, cos
import time, threading
class App(Frame):
def __init__(self):
Frame.__init__(self)
self.pack()
can =Canvas(self, width =400, height =400,
bg ='ivory', bd =3, relief =SUNKEN)
can.pack(padx =5, pady =5)
cercle = can.create_oval(185, 355, 215, 385, fill ='red')
tb = Thread_balle(can, cercle)
Button(self, text ='Marche', command =tb.start).pack(side =LEFT)
# Button(self, text ='Arrêt', command =tb.stop).pack(side =RIGHT)
# arrêter l'autre thread si l'on ferme la fenêtre :
self.bind('<Destroy>', tb.stop)
class Thread_balle(threading.Thread):
def __init__(self, canevas, dessin):
threading.Thread.__init__(self)
self.can, self.dessin = canevas, dessin
self.anim =1
def run(self):
a = 0.0
while self.anim == 1:
a += .01
x, y = 200 + 170*sin(a), 200 +170*cos(a)
self.can.coords(self.dessin, x-15, y-15, x+15, y+15)
time.sleep(0.010)
def stop(self, evt =0):
self.anim =0
App().mainloop()
</syntaxhighlight>
;Commentaires
* Lignes 13 & 14 : Afin de simplifier notre exemple au maximum, nous créons l'objet thread chargé de l'animation, directement dans le constructeur de l'application principale. Cet objet thread ne démarrera cependant que lorsque l'utilisateur aura cliqué sur le bouton « Marche », qui active sa méthode <code>start()</code> (rappelons ici que c'est cette méthode intégrée qui lancera elle-même la méthode <code>run()</code> où nous avons installé notre boucle d'animation).
* Ligne 15 : Vous ne pouvez par redémarrer un thread qui s'est terminé. De ce fait, vous ne pouvez lancer cette animation qu'une seule fois (tout au moins sous la forme présentée ici). Pour vous en convaincre, activez la ligne n° 15 en enlevant le caractère <code>#</code> situé au début (et qui fait que Python considère qu'il s'agit d'un simple commentaire) : lorsque l'animation est lancée, un clic de souris sur le bouton ainsi mis en place provoque la sortie de la boucle <code>while</code> des lignes 27-31, ce qui termine la méthode <code>run()</code>. L'animation s'arrête, mais le thread qui la gérait s'est terminé lui aussi. Si vous essayez de le relancer à l'aide du bouton « Marche », vous n'obtenez rien d'autre qu'un message d'erreur.
* Lignes 26 à 31 : Pour simuler un mouvement circulaire uniforme, il suffit de faire varier continuellement la valeur d'un angle a. Le sinus et le cosinus de cet angle permettent alors de calculer les coordonnées x et y du point de la circonférence qui correspond à cet angle. À chaque itération, l'angle ne varie que d'un centième de radian seulement (environ 0,6°), et il faudra donc 628 itérations pour que le mobile effectue un tour complet. La temporisation choisie pour ces itérations se trouve à la ligne 31 : 10 millisecondes. Vous pouvez accélérer le mouvement en diminuant cette valeur, mais vous ne pourrez guère descendre en dessous de 1 milliseconde (0.001 s), ce qui n'est déjà pas si mal.
== Notes ==
{{références}}
{{todo|
# ajouter des images
}}
<noinclude>[[Catégorie:Threads|Python]]</noinclude>
n1vojz450894sb7hcpg8vqj3hv64kge
Étymologie de la langue française/Origines du vocabulaire
0
32301
682390
681113
2022-07-25T11:15:59Z
Dim Blob
109914
/* Les doublets */
wikitext
text/x-wiki
{{Étymologie de la langue française/Navigation}}
== Les mots d'origine latine ==
=== Remarques préliminaires sur l'évolution de la prononciation ===
Il convient de souligner l'importance du facteur phonétique dans l'évolution des mots. Par exemple, ''oie'' vient du latin populaire ''auca'' dérivé du latin classique ''avis'' (« oiseau ») que l'on retrouve dans ''aviculture'' (« élevage des oiseaux ») ou ''grippe aviaire'' (« transmise par des oiseaux »).
Pour comprendre les évolutions phonétiques, il faut garder à l'esprit :
* Qu'elles se sont déroulées sur de nombreuses générations. En comptant qu'une génération « vaut » vingt-cinq ans, près de cinquante générations se sont succédé entre le sac de Rome en 410 et ''Le Cid'' de Pierre Corneille, où nous constatons que nous ne prononçons pas exactement comme notre grand-mère (génération G-2).
* Que jusqu'au XX{{e|e}} siècle, il n'existait ni radio ni télévision et donc aucune norme nationale « palpable » en matière de prononciation. C'est la radio qui a facilité une prononciation homogène. Pendant la Première Guerre mondiale, des agrégés d'allemand faits prisonniers furent fusillés pour avoir refusé de servir d'interprètes entre des officiers du sud et du nord de l'Allemagne qui ne se comprenaient pas très bien. Dans les années 1950 et 1960, en Angleterre, il existait des offres d'emploi exigeant des candidats qu'ils eussent l'[[wikt:accent|accent]] de la BBC (Abréviation de ''British Broadcasting Corporation'', signifiant « Corporation britannique de radiodiffusion »), la radio nationale officielle britannique.
* Que la conjonction de ces deux phénomènes fait qu'encore au XVII{{e|e}} et XVIII{{e|e}} siècles, à la Cour, le son [wa] se prononçait [wɛ] (d'où [lə rwɛ] pour « le roi », [lə bwɛ] pour « le bois ») et que l'on ne prononçait aucune lettre finale ([lə sɛr] pour « le cerf », [nuri] pour « nourrir ») alors que le peuple parisien prononçait [rwa], [bwa], [sɛr]. À la Cour comme à la ville, on roulait les ''r''. Encore à l'époque de Victor Hugo, lorsque l'on déclamait : « le bruit sourd des canons roulants vers Austerlitz », l'auditoire entendait un véritable grondement.
* Que jusque dans les années 1950, la sonorisation était rare et imparfaite, ce qui imposait de parler en articulant, en découpant bien les syllabes sans « manger » les finales rétablies en partie au début du XIX{{e}} siècle. Imaginez un cours sans micro dans un amphithéâtre de la Sorbonne, un sermon sans micro à Notre-Dame de Paris, une plaidoirie sans micro dans la grande salle d'audience d'un tribunal aujourd'hui classé monument historique, un discours dans l'hémicycle du Sénat. Des générations de professeurs, de prêtres, d'avocats ou d'hommes politiques ont pourtant dû le faire.
Pour le commun des mortels, se faire entendre dans une foire où tout le monde criait ne devait pas être facile, pas plus que dans la salle de garde d'un château (Essayez par exemple au Palais des Papes à Avignon un jour d'affluence : elle correspond à la salle d'accueil).
* Qu'il y a toujours eu des modes qui laissent des traces. Au XVI{{e|e}} siècle, il était de bon ton de prononcer [z] le ''r'' compris entre deux voyelles. « Paris » se prononçait [pazi], et « oratoire » [ozatwar] d'où les noms de ville en ''-Ozoir'' ou ''-Osoir'' lorsque la commune comptait une chapelle. Sous Napoléon I<sup>er</sup>, et peut-être parce que Joséphine de Beauharnais éprouvait des difficultés à les prononcer, il devient à la mode d'élider les ''r'' d'où les ''inc'oyables'' et les ''mé'veilleuses''. Entre les deux, les Précieuses — qui étaient loin d'être nécessairement ridicules — ont fait la chasse à tous les gestes disgracieux ; on leur doit les mousses inventées par leurs cuisiniers à qui elles avaient demandé des plats qui n'exigeassent pas des mouvements musculaires trop marqués lors de la mastication. Cette volonté a sûrement exercé une influence sur leur prononciation.
* Que, plus généralement, les sons des langues indo-européennes s'articulent en un système qui permet de distinguer des labiales, des dentales, des palatales et que le passage de l'une à l'autre est assez simple ce qui explique, par exemple, qu'au ''qu'' latin corresponde ''v'' ou ''f'' dans les langues plus nordiques comme « quatre » (français) / « quattro » (italien) et « vier » (allemand), « voor » (flamand) et « four » (anglais) ou encore « qui » (français) / « chi » (italien) et « who » (anglais) / « wer » (allemand) ; de même, on trouve une correspondance entre le [d] et le [t] (« dent » au Sud contre « tooth » (même sens) au Nord, « dies » (« jour ») au Sud contre « Tag » (même sens) au Nord).
=== Les doublets ===
Au fil du temps, les mots latins ont évolué phonétiquement et sémantiquement en français. Par exemple, ''captivum'' a donné ''chétif'' avec le sens que nous lui connaissons, un captif étant souvent chétif du fait des mauvaises conditions de sa détention.
Lorsque, à partir du XIV{{e|e}} siècle, on se mit à traduire beaucoup de textes latins en français parce que le latin commençait à [[w:langue morte|disparaître]], alors même que le contenu des textes latins conquérait l'intérêt des lecteurs français, on traduisit ''captivum'' par ''captif'' pour désigner le prisonnier en tant que tel. On dit ainsi que ''captif'' et ''chétif'' sont des [[w:Doublet lexical|doublets]]. D'une façon générale, les mots de formation populaire se référent au concret et les mots de formation savante sont plus abstraits ; mais il existe des exceptions.
Exemples :
* ''ancêtre'' (milieu du XI{{e|e}} siècle) ~ ''antécesseur'' (XIV{{e|e}} siècle) ← ''antecessor''
* ''arracher'' (XII{{e|e}} siècle) ~ ''éradiquer'' (XIV{{e|e}} siècle) ← ''eradicare''
* ''Auvray'' ({{e|e}} siècle) ~ ''Alfred'' ({{e|e}} siècle) ← ''Alv(e)redus''
* ''banquier'' (XII{{e|e}} siècle) ~ ''bancaire'' (XIX{{e|e}} siècle) ← ''bancarius''
* ''benêt'' (XVI{{e|e}} siècle) ~ ''béni'' ({{e|e}} siècle) ← ''benedictus''
* ''béton'' (XII{{e|e}} siècle) ~ ''bitume'' (XII{{e|e}} siècle) ← ''bitumen''
* ''biche'' (XII{{e|e}} siècle) ~ ''bête'' (XII{{e|e}} siècle) ← ''bestia''
* ''Benoît'' ({{e|e}} siècle) ~ ''Bénédict'' ({{e|e}} siècle) ← ''Benedictus''
* ''carré'' (XII{{e|e}} siècle) ~ ''quadrat'' (XVII{{e|e}} siècle, via l'[[italien]] ''quadrato'') ← ''quadratum''
* ''chaîne'' (XII{{e|e}} siècle) ~ ''catène'' (XVIII{{e|e}} siècle) ← ''catena''
* ''chaire'' (XII{{e|e}} siècle) ~ ''cathèdre'' (XIII{{e|e}} siècle) ← ''cathedra'' — N.B. : On a en réalité affaire à un triplet lexical, puisque le mot ''chaise'' n'est lui-même qu'une variante dialectale de ''chaire''.
* ''chance'' (XII{{e}} siècle) ~ ''cadence'' (XVI{{e}} siècle, via l'[[italien]] ''cadenza'') ← ''cadentia''
* ''chanoine'' (XII{{e|e}} siècle) ~ ''canonique'' (XIII{{e|e}} siècle) ← ''canonicus''
* ''chape'' (XI{{e|e}} siècle) ~ ''cape'' (XVII{{e|e}} siècle) ← ''cappa''
* ''chasser'' (fin du XII{{e}} siècle) ~ ''capter'' (XV{{e|e}} siècle) ← ''captare'' — N.B. : ''Captare'' s'est vraisemblablement altéré en ''captiare'' très tôt en bas-latin avant de donner ''chacier'' en ancien français.
* ''chaume'' (fin du XII{{e|e}} siècle) ~ ''calame'' (XVI{{e|e}} siècle) ← ''calamus''
* ''cheptel'' (XII{{e|e}} siècle) ~ ''capital'' (XIII{{e|e}} siècle) ← ''capitalis''
* ''chétif'' (XI{{e|e}} siècle) ~ ''captif'' (XV{{e|e}} siècle) ← ''captivus''
* ''chose'' (IV{{e}} siècle) ~ ''cause'' (milieu du XII{{e|e}} siècle) ← ''causa''
* ''colère'' (XIII{{e}} siècle) ~ ''choléra'' (XVI{{e|e}} siècle) ← ''cholera'' — N.B. ''Cholera'' est devenu ''colera'' en bas latin.
* ''concierge'' (XII{{e|e}} siècle) ~ ''conserve'' (XIV{{e|e}} siècle) ← ''conservus''
* ''confiance'' (XIII{{e}} siècle) ~ ''confidence'' (XIV{{e|e}} siècle) ← ''confidentia''
* ''copain'' (XVIII{{e|e}} siècle) ~ ''compagnon'' (XII{{e|e}} siècle) ← ''companio''
* ''couple'' (XII{{e}} siècle) ~ ''copule'' (XV{{e|e}} siècle) ← ''copula''
* ''cré{{--}}tin'' (XVIII{{e}} siècle) ~ ''chrétien'' (IX{{e|e}} siècle) ← ''christianus''
* ''déchéance'' (XII{{e}} siècle) ~ ''décadence'' (XVI{{e|e}} siècle) ← ''decadentia''
* ''dépit'' (XII{{e|e}} siècle) ~ ''despect'' ({{e|e}} siècle) ← ''despectus''
* ''dévoué'' ({{e|e}} siècle) ~ ''dévot'' (fin du XII{{e|e}} siècle) ← ''devotus''
* ''employer'' (début du XII{{e}} siècle) ~ ''impliquer'' (XIV{{e|e}} siècle) ← ''implicare''
* ''enchantement'' (XII{{e}} siècle) ~ ''incantation'' (XIII{{e}} siècle) ← ''incantatio''
* ''enchanteur'' / ''enchanteresse'' (XII{{e|e}} siècle) ~ ''incantateur'' / ''incantatrice'' (XV{{e|e}} siècle) ← ''incantator'' / ''incantatrix''
* ''entier (XI{{e|e}} siècle) ~ ''intègre'' ({{e|e}} siècle) ← ''integer''
* ''exploiter'' (début du XII{{e|e}} siècle) ~ ''expliciter'' (XIX{{e|e}} siècle) ← ''explicitare'' — N.B. : L'ancien français ''espleitier'' / ''esploitier'' a été refait ''exploiter'' au XVI{{e|e}} siècle.
* ''écluse'' (XI{{e}} siècle) ~ ''exclue'' (XIII{{e|e}} siècle) ← ''exclusa'', participe passé féminin du verbe ''excludere''
* ''écolier'' (XIII{{e}} siècle) ~ ''scolaire'' (XIX{{e|e}} siècle) ← ''scholaris''
* ''écouter'' (X{{e}} siècle) ~ ''ausculter'' (XVI{{e|e}} siècle) ← ''auscultare''
* ''écrit'' (XII{{e}} siècle) ~ ''script'' (XX{{e|e}} siècle) ← ''scriptum''
* ''étroit'' (XII{{e|e}} siècle) ~ ''strict'' (XVIII{{e|e}} siècle) ← ''strictus''
* ''éveux'' ({{e|e}} siècle) ~ ''aqueux'' (XVI{{e|e}} siècle) ← ''aquosus''
* ''évêché'' (X{{e|e}} siècle) ~ ''épiscopat'' (XVII{{e}} siècle) ← ''episcopatus''
* ''évier'' (XIII{{e|e}} siècle) ~ ''aquarium'' (XIX{{e}} siècle) ← ''aquarium''
* ''Edwige'' ({{e}} siècle) ~ ''Havoise'' ({{e}} siècle) ← ''Hedvigis''
* ''façon'' (XII{{e|e}} siècle) ~ ''faction'' (XIV{{e|e}} siècle) ← ''factio''
* ''faix'' (XII{{e|e}} siècle) ~ ''fasce'' (1<sup>re</sup> moitié du XII{{e|e}} siècle) ← ''fascis''
* ''fantôme'' (XII{{e|e}} siècle) ~ ''fantasme'' (XIII{{e|e}} siècle) ← ''phantasma''
* ''ferme'' (XII{{e|e}} siècle) ~ ''firme'' (XIX{{e|e}} siècle) ← ''firma''
* ''féal'' (XII{{e|e}} siècle) ~ ''fidèle'' (X{{e|e}} siècle, réintroduit au XVI{{e}} siècle) ← ''fidelis''
* ''fétiche'' (XVII{{e|e}} siècle) ~ ''factice'' (XVI{{e|e}} siècle) ← ''facticius''
* ''forge'' (XII{{e|e}} siècle) ~ ''fabrique'' (XIV{{e}} siècle) ← ''fabrica''
* ''frêle'' (XI{{e|e}} siècle) ~ ''fragile'' (XIV{{e}} siècle) ← ''fragilis''
* ''fuir'' (IX{{e|e}} siècle) ~ ''fuguer'' (XX{{e}} siècle) ← ''fugere'' — N.B. : ''Fugere'' a d'abord changé de conjugaison en bas latin (''fugire'') avant d'aboutir à « fuir ».
* ''gaine'' (XIII{{e|e}} siècle) ~ ''vagin'' (XVII{{e|e}} siècle) ← ''vagina'' — N.B. : ''Vagina'' donnera aussi, via l'espagnol ''vainilla'', le terme « vanille ». Ce dernier désigne à l'origine la ''petite'' gousse du vanillier, d'où le suffixe diminutif ''-illa'' (''-ille'').
* ''grêle'' (XII{{e|e}} siècle) ~ ''gracile'' (XVI{{e|e}} siècle) ← ''gracilis''
* ''Geoffroy'' ({{e|e}} siècle) ~ ''Godefroy'' ({{e|e}} siècle) ← ''Godefridus''
* ''Gilles'' ({{e|e}} siècle) ~ ''Égide'' ({{e|e}} siècle) ← ''Aegidius''
* ''hôtel'' (XI{{e|e}} siècle) ~ ''hôpital'' (XII{{e|e}} siècle) ← ''hospitalia''
* ''luette'' (fin du XIII{{e|e}} siècle) ~ ''uvule'' (XIII{{e|e}} siècle) ← ''uvula''
* ''Louis'' ({{e|e}} siècle) ~ ''Ludovic'' ({{e}} siècle) ← ''Ludovicus''
* ''mâcher'' (XII{{e|e}} siècle) ~ ''mastiquer'' (XVI{{e|e}} siècle) ← ''masticare''
* ''ménestrel'' (XI{{e|e}} siècle) ~ ''ministériel'' (XVI{{e|e}} siècle) ← ''ministerialis''
* ''métier'' (XI{{e|e}} siècle) ~ ''ministère'' (XIII{{e|e}} siècle) ← ''ministerium''
* ''moutier'' (XI{{e|e}} siècle) ~ ''monastère'' (XIII{{e|e}} siècle) ← ''monasterium''
* ''moyen'' (XIII{{e|e}} siècle) ~ ''médian'' (XVI{{e}} siècle) ← ''medianus''
* ''mûr'' (XII{{e|e}} siècle) ~ ''mature'' (XX{{e|e}} siècle, anglicisme) ← ''maturus''
* ''Maud'' ({{e|e}} siècle) ~ ''Mathilde'' ({{e|e}} siècle) ← ''Mathilda''
* ''nourrisson'' (XII{{e|e}} siècle) ~ ''nutrition'' (XIV{{e|e}} siècle) ← ''nutritio''
* ''Noël'' (XII{{e|e}} siècle) ~ ''natal'' (XVI{{e|e}} siècle) ← ''natalis''
* ''œuvre'' (XII{{e|e}} siècle) ~ ''opéra'' (XVII{{e|e}} siècle, via l'[[italien]] ''opera'', de même sens) ← ''opera'', pluriel d<nowiki>'</nowiki>''opus''
* ''orfraie'' (XIV{{e|e}} siècle) ~ ''ossifrage'' (XVI{{e|e}} siècle) ← ''ossifraga''
* ''oreiller'' (XII{{e|e}} siècle) ~ ''auriculaire'' (XVI{{e|e}} siècle) ← ''auricularis''
* ''orteil'' (XII{{e|e}} siècle) ~ ''article'' (XII{{e|e}} siècle) ← ''articulus''
* ''paladin'' (XVI{{e|e}} siècle, via l'italien ''paladino'', XIII{{e}} siècle) ~ ''palatin'' (XIII{{e|e}} siècle) ← ''palatinus''
* ''parvis'' (XIII{{e|e}} siècle) ~ ''paradis'' (fin du X{{e|e}} siècle) ← ''paradisus''
* ''parole'' (XI{{e|e}} siècle) ~ ''parabole'' (XIII{{e|e}} siècle) ← ''parabola''
* ''pèlerin'' (XI{{e|e}} siècle) ~ ''pérégrin'' (1<sup>re</sup> moitié du XII{{e|e}} siècle) ← ''peregrinus''
* ''pitié'' (XI{{e|e}} siècle) ~ ''piété'' (fin du X{{e|e}} siècle) ← ''pietas''
* ''poison'' (XII{{e|e}} siècle) ~ ''potion'' (XVI{{e|e}} siècle) ← ''potio''
* ''Péronnelle'' ({{e|e}} siècle) ~ ''Pétronille'' ({{e|e}} siècle) ← '' Petronilla''
* ''raison'' (X{{e}} siècle) ~ ''ration'' (XIII{{e|e}} siècle) ← ''ratio''
* ''renard'' ({{e|e}} siècle) ~ ''Renart'' ({{e|e}} siècle) ← ''Renartus''
* ''répit'' (XII{{e|e}} siècle) ~ ''respect'' (XIII{{e|e}} siècle) ← ''respectus''
* ''rouer'' (XII{{e|e}} siècle) ~ ''rôder'' (XV{{e|e}} siècle via l'ancien occitan ''rodar'', « vagabonder ») ← ''rotare''
* ''royal'' (IX{{e}} siècle) ~ ''régalien'' (XVII{{e|e}} siècle) ← ''regalis''
* ''Renaud'' ({{e|e}} siècle) ~ ''Réginald'' ({{e|e}} siècle) ← ''Reginaldus''
* ''sanglier'' (fin du XI{{e|e}} siècle) ~ ''singulier'' (fin du XIII{{e|e}} siècle) ← ''singularis'' — N.B. : ''Sanglier'' est en réalité tiré de l'expression ''porc sanglier'', c'est-à-dire ''cochon solitaire''.
* ''sauveur'' ({{e|e}} siècle) ~ ''sauveteur'' ({{e|e}} siècle) ← ''salvator''
* ''seing'' (XII{{e|e}} siècle) ~ ''signe'' (2<sup>de</sup> moitié du X{{e|e}} siècle) ← ''signum''
* ''serment'' (IX{{e|e}} siècle) ~ ''sacrement'' (XII{{e|e}} siècle) ← ''sacramentum''
* ''taverne'' (XII{{e|e}} siècle) ~ ''tabernacle'' (XIV{{e|e}} siècle) ← ''taberna'' — N.B. : ''Tabernacle'' vient de ''tabernaculum'', diminutif de ''taberna''.
* ''tâter'' (XII{{e|e}} siècle) ~ ''taxer'' (XIII{{e|e}} siècle) ← ''taxare''
* ''thiois'' ({{e|e}} siècle) ~ ''tudesque'' (XII{{e|e}} siècle) ← ''theodiscus''
* ''traiteur'' (XVII{{e|e}} siècle) ~ ''tracteur'' (XVIII{{e}} siècle) ← ''tractor''
* ''Thierry'' ({{e|e}} siècle) ~ ''Théodoric'' ({{e|e}} siècle) ← ''Theodoricus''
* ''Tiphaine'' ({{e|e}} siècle) ~ ''Théophanie'' ({{e|e}} siècle) ← ''Theophania''
* ''veiller'' (XII{{e|e}} siècle) ~ ''vigiler'' ({{e|e}} siècle) ← ''vigilare''
* ''verge'' (XII{{e|e}} siècle) ~ ''vergue'' (XII{{e|e}} siècle) ← ''virga''
* ''vergogne'' (XIII{{e|e}} siècle) ~ ''vérécondie'' (XVI{{e|e}} siècle) ← ''verecundia''
* ''vouivre'' (XII{{e|e}} siècle) ~ ''vipère'' (XIII{{e|e}} siècle) ← ''vipera''
Il existe également des doublets constitués de deux termes populaires. C'est par exemple le cas de :
* ''chaînon'' (XII{{e|e}} siècle) et ''chignon'' (fin du XII{{e|e}} siècle) qui proviennent chacun du bas latin ''catenion''.
* ''chaire'' (début du XII{{e|e}} siècle) et ''chaise'' (début du XV{{e|e}} siècle) qui proviennent chacun du latin ''cathedra''
* ''gourde'' (XIII{{e|e}} siècle) et ''courge'' (XIV{{e|e}} siècle) qui proviennent chacun du latin classique ''cucurbita''.
'''Note :''' Les datations correspondent à la première attestation écrite d'un mot, mais ne sont pas forcément représentatives de sa première utilisation orale.
=== Les fusions ===
On notera aussi les fusions dans lesquelles deux mots fusionnent en un seul :
* '''affaire''' (initialement ce qu'il y a ''à faire'').
* '''alarme''' (initialement ''all'arme'', « aux armes »). L'italien actuel a conservé la forme originelle ''all'arme''.
* '''antan''' (initialement *''ant(e) anu'' en latin vulgaire, du syntagme latin ''ante annum'' « l'année dernière »).
* '''aujourd'hui''' (composé de ''au jour de'' et de ''hui'', du latin ''hodie'', (« en ce jour »), il signifie donc « au jour présent »). De ce fait, ''au jour d'aujourd'hui'' est un splendide pléonasme.
* '''bonhomme''' (initialement un ''bon homme'', c'est-à-dire un brave homme, un homme cultivé).
* '''gendarmes''' (initialement ''gens d'armes'').
* '''malgré''' (initialement ''mal gré'', « de mauvais gré »).
* '''naguère''' (initialement il ''n'y a guère'' de temps).
* '''parce que''' (initialement ''par ce'' que ce mot, etc.).
* '''voilà''' (initialement ''vois là'').
== Les emprunts ==
'''Note :''' les astérisques (*) indiquent une forme reconstruite, c'est-à-dire non attestée à l'écrit mais supposée par plusieurs autres formes. C'est par exemple le cas de l'{{w|indo-européen commun}}, qui est une langue hypothétique (puisque non attestée à l'écrit) dont découlent, entres autres, les langues indo-iraniennes, les langues celtiques, germaniques, helléniques, italiques, etc.
=== Les emprunts au francique ===
Les mercenaires et travailleurs ruraux avaient déjà introduit quelques termes dès les années 250 après J.-C.<ref name="Larousse"></ref>, mais ce sont surtout les {{w|Invasions barbares|Grandes invasions}} qui ont introduit le vocabulaire de la guerre et du droit salique<ref name="Larousse"></ref>, très différent du droit romain. Par la suite, les vainqueurs ont adopté la langue de l'ex-Empire romain comme les Romains avaient eux-mêmes adopté la civilisation des Grecs, qu'ils avaient dominés militairement (L'élite romaine parlait le grec ancien ; lorsqu'il fut poignardé, Jules César s'exprima en grec ancien en reconnaissant Brutus parmi les conspirateurs ; il ne dit pas : « ''Tu quoque mi fili'' » mais « Καὶ σύ τέκνον » (kaí sú téknon). Parmi les mots d'origine francique, citons :
* '''bordel''' qui désignait une grosse planche. Comment est-on passé du sens de « planche » à celui de « désordre » ? À partir de ces planches, on pouvait construire de pauvres maisons rudimentaires et ce fut le premier sens (le composé à partir du composant). Cette cabane de planches en « bord'eau » ou « bord'elle » (la mer, la rivière) servant de « guinguette », etc.
:: Avec le temps, ces maisons rudimentaires n'offrirent plus le confort minimal que les gens attendaient d'un foyer et seules les plus pauvres continuaient à abriter des prostituées. Le mot se spécialisa dans le sens de « maison de passe », « maison de tolérance », et autres locutions employées jusqu'alors.
:: En latin, la maison de prostitution est appelée « lupanar ». Ce nom dérive du mot « lupa » (louve) qui désigne métaphoriquement une prostituée. L'image de la « louve » prenant soin de Romulus et Rémus ne doit donc pas être interprétée selon le sens premier du terme.
:: Les clients de ces établissements se livrant à des débordements en tout genre, le mot en vint à désigner l'état de désordre qui en résultait.
:: En anglais, la formule correspondante est « what a mess ». « mess » vient du latin « mensa », désignant la table. Le mess des officiers est l'endroit où il y a des tables pour manger. La fraternité militaire donnant parfois lieu à des excès de beuverie, le mess se trouve alors dans un état qui sert de référence en matière de désordre. Le même mot latin donne aussi « manséatique » qui désigne des montagnes aplanies comme une table (par exemple le massif ibérique).
:: En italien, la formule correspondante est « che casino » où ''casino'' a le même sens qu'en français, mais y est perçu comme un lieu de débordement et surtout très bruyant.
* '''chambellan''' de *''kamerling''.
* '''danser''' de *''dintjan'', ou de *''dansôn'' (« tirer », « traîner »).
* '''échanson''' de *''skankjo'' (même sens).
* '''épier''' de *''spehôn'' (« observer avec attention »).
* '''fauteuil''' de *''faldistôl'' (« chaise pliable »).
* '''frapper''', peut-être de *''hrappan'' (« arracher »).
* '''garou''' de *''werwolf'' (« homme-loup ») (« garou » signifiant déjà « homme-loup », il était erroné d'ajouter « loup » à ce terme).
* '''gâcher''' de *''waskôn'' (« laver »).
* '''gâteau''' de *''wastil'' (« nourriture »).
* '''grès''' de *''greot'' (« gravier, sable »).
* '''grêler''' de *''grisilôn'', de même sens.
* '''gris''' de *''grîs'', (néerlandais : ''grijs'') de même sens ; de ce mot dérive ''grisette'', « étoffe commune de teinte grise » puis par métonymie « jeune fille d'humble condition ».
* '''guerre''' : du mot francique *''werra'' (« querelle ») qui donne ''war'' et ''Wehr'' respectivement en anglais et allemand modernes. En latin, la guerre se disait ''bellum'' que l'on retrouve dans ''belliqueux''. ''Beau'' se dit ''pulcher'' en latin classique, mais une forme populaire, ''bellus'', se développa, générant une confusion entre ''bellus'' (« beau ») et ''bellum'' (« guerre ») qui favorisa l'adoption du mot francique au IX{{e}} siècle.
* '''Guillaume''' de *''Willahelm'' (« volonté de protection »).
* '''haïr''' de *''hatjan'', que l'on retrouve en néerlandais en tant que ''haten'', dans l'anglais ''to hate'', l'allemand ''hassen''. Le terme francique est issu d'une racine indo-européenne *''keh<sub>₂</sub>d-''<ref>Guus Kroonen, ''Etymological Dictionary of Proto-Germanic''</ref>.
* '''hargne''' de *''harmjam'' (« insulter »).
* '''haubert''' (cotte de maille) de *''halsberg'' (proprement « ce qui protège le cou »), composé de *''hals'' (« cou ») et *''bergan'' (« mettre en sûreté, protéger »). En allemand moderne, on retrouve ''Hals'' pour le cou, mais non en anglais où ''neck'' vient d'un radical *''hnakkô''. En néerlandais, on les retrouve tous les deux : ''hals'' et ''nek''.
* '''heaume''' de *''helm'' (« casque ») d'où l'allemand ''Helm'', l'anglais ''helm''.
* '''honnir''' de *''haunjan'' (« insulter »). On le retrouve dans ''honen'' (« bafouer ») en néerlandais, ou dans ''höhnen'' (« bafouer ») en allemand.
* '''honte''' de *''haunita''. Le latin disait ''pudor'', qui a donné le français ''pudeur''. Cf. ''honnir''.
* '''houx''' de *''hulis'' (« houx »). Ce radical a donné ''hulis'', ''huls'' en ancien haut allemand, ''huls'' en moyen néerlandais, ''hulst'' en néerlandais.
* '''laid''' de *''laiþ'' (« désagréable », « contrariant », « rebutant »). En néerlandais, on retrouve ''leed'' pour « désagréable », mais aussi ''lelijk'' pour « laid ». On le retrouve aussi dans l'allemand ''leid'' et ''Leid''
* '''loge''' de *''laubja'' (« hutte de feuillage »), qui donne l'allemand ''Laube''.
* '''maçon''' de *''makjo'', lui-même dérivé de *''makôn'' (« faire »). On retrouve en néerlandais le verbe ''maken'' (« faire », « construire »), en anglais ''to make'', en allemand ''machen''.
* '''malle''' de *''malha'' (« sacoche »), d'où le moyen néerlandais ''male'' (« sac de voyage », « coffre »), le néerlandais ''maal'' (« sac », « sacoche », « coffre »).
* '''marais''' de *''marisk''. En moyen néerlandais, on retrouve ''mersch'', ''maersch'' (« pré », « terrain marrécageux »). En néerlandais moderne, ''moeras'' (« marais, marécage »). L'anglais ''marsh'' et l'allemand ''Marsch'' sont également issus de la racine.
* '''maréchal''' de *''marhskalk'' (« [[wikt:palefrenier|palefrenier]] »).
* '''moue''' de *''mauwa'' (même sens), source du moyen néerlandais ''mouwe''.
* '''rang''' de *''hring'' (« anneau », « cercle »). De ce terme sont issus ''ring'' (« anneau ») en néerlandais et en anglais, ''Ring'' en allemand.
* '''riche''' de *''riki'' (« puissant »), que l'on retrouve dans le vieil anglais ''rīce'' (d'où l'anglais moderne ''rich''), le moyen néerlandais ''rijcke'', ''rijck'' (d'où le néerlandais moderne ''rijk''), l'ancien haut allemand ''rîchi'', ''rîche'' (d'où l'allemand ''reich''), etc. En ancien français, le mot a d'abord signifié « puissant » avant d'acquérir le sens moderne.
* '''renard''' de *''Reginhart'' ; a remplacé « goupil » dans le vocabulaire courant suite au succès du ''{{w|Roman de Renart}}''.
* '''sénéchal''' de *''siniskalk'' (« serviteur doyen »).
* '''trêve''' de *''treuwa'' (« contrat », « convention »). En néerlandais, on le retrouve dans ''trouw'' (« fidèle »), ''Treue'' en allemand (« fidélité »).
* '''trotter''' de *''trottôn'' (« courir »).
=== Les emprunts au moyen néerlandais ===
Le moyen néerlandais a beaucoup apporté à la langue française, notamment — mais non exclusivement — dans le vocabulaire maritime<ref name="Larousse"></ref>. Cependant, celui-ci a diminué au XVII{{e}} siècle, laissant place à l'anglais<ref name="Larousse"></ref>. Parmi les mots empruntés, citons :
* '''bâbord''' de ''bakboord'', composé de ''bak'' (« dos ») et de ''boord'' (« bord »). À l'époque, le gouvernail était constitué d'un {{w|aviron de gouverne}} fixé à l'arrière droit (tribord), le barreur trouvait ainsi le dos au côté gauche (bâbord)<ref name="Robert">{{w|Alain Rey}}, ''Dictionnaire historique de la langue française'', Dictionnaires Le Robert, Paris, 1992</ref>. '''Tribord''' vient, lui, de ''stierboord'', une variante de ''stuurboord'' composé de ''stuur'' (« gouvernail »), et de ''boord'', littéralement « côté du gouvernail », puisqu'il se trouvait du côté droit<ref>« tribord », dans ''TLFi, Le Trésor de la langue française informatisé'', 1971–1994 [https://www.cnrtl.fr/etymologie/tribord → consulter cet ouvrage]</ref>.
* '''bière''' est soit emprunté au moyen haut allemand ''bier'', soit au moyen néerlandais ''bier''.
* '''botte''' (Au sens de « assemblage de plusieurs choses liées ensemble ») vient de ''bote'' (« touffe de lin »), rattaché au verbe ''boten'' (« frapper »).
* '''bouquin''' d'un diminutif de ''boec'' (« livre »), apparenté à ''book'' en anglais et ''Buch'' en allemand. Compte tenu du fait que les formes attestées (''boecskijn'', ''boekelkij'') rendent difficilement compte du français ''bouquin'', on a supposé une forme non attestée *''boeckijn''.
* '''brique''' de ''bricke'', ''brike''. À l'origine, il y a la racine francique *''brëkan'' (« casser », « briser ») que l'on retrouve dans le néerlandais ''breken'' (« casser »), l'anglais ''to break'' (« casser »), l'allemand ''brechen'' (« briser »). '''Brioche''' est dérivé de ''brier'' (forme normande de ''broyer'', au sens de « pétrir la pâte ») avec le suffixe ''-oche''. '''Broyer''' est issu du francique *''brëkan'', et signifie à l'origine « réduire en morceaux, en poudre, en pâte ». Au XIII{{e}} siècle, ''brique'' avait en français le sens de « petit morceau », « miette »<ref name="Robert"></ref> ; passé le XVI{{e|e}} siècle, ce sens a disparu, sauf dans une expression populaire qui a survécu jusqu'à la fin du XIX{{e}} siècle : « bouffer des briques » (« n'avoir à manger que des miettes, c'est-à-dire rien »), où l'idée de dureté et de caractère indigeste de l'aliment comparable à de la brique de construction s'ajoute à la notion de pénurie. La '''brique à pont''', c'est une pierre de grès fin utilisée par les marins pour '''briquer''' leur navire, d'où le sens familier de ''briquer'' « frotter dynamiquement, nettoyer »<ref name="Robert"></ref>.
* '''digue''' de ''dijc'', d'où la forme moderne ''dijk''.
* '''drogue''' (« substance psychotrope ») vient peut-être de ''droge'' (« produits séchés », « drogue »), substantivation de ''droge vate'' (« tonneaux secs »).
* '''étape''' de ''stapel'' (« entrepôt »).
* '''mannequin''' (« figurine ») de ''mannekijn'' (« petit homme »). Le sens de « panier » est emprunté au moyen néerlandais ''mannekijn'' (« petit panier »), diminutif de ''manne'' (« panier »).
* '''pamplemousse''' est emprunté au néerlandais moderne ''pompelmoes'' (avec ''moes'' prononcé \mus\), dont l'étymologie est discutée : soit composé de ''pompel'' (« gros ») (ou de ''pompoen'', « citrouille ») et de ''limoes'' (« citron »), soit lui-même emprunté au tamoul பம்பரமாசு (pamparamāsu) (« [[wikt:bigarade|bigarade]] »). À l'origine, ''pamplemousse'' désigne ''{{w|Citrus maxima}}'', mais s'applique aujourd'hui souvent à ''{{w|Citrus paradisi}}''.
{| class="wikitable"
|+ '''Appellations des deux fruits en France et dans quelques pays francophones'''
!
! {{nobr|''Citrus maxima''}}
! {{nobr|''Citrus'' ''paradisi''}}
|-
! colspan="3" | français, usage en botanique et horticulture
|-
!français
|'''pamplemousse'''
|pomélo
|--
! colspan="3" | français, usage commercial et courant
|-
!
|[[image:Citrus grandis - Honey White.jpg|70px]]
|[[image:Citrus paradisi (Grapefruit, pink) white bg.jpg|70px]]
|-
!Belgique
|pomelo
|'''pamplemousse'''
|-
!Canada
|'''pamplemousse'''
|pomélo <small>(ou pomelo)</small>, grapefruit <small>(anglicisme)</small> ou '''pamplemousse'''
|-
!France
|'''pamplemousse'''
|'''pamplemousse''', pomélo <small>''(Moins courant)''</small>
|-
!Suisse
|pomélo
|grapefruit ou '''pamplemousse'''
|-
|}
Le néerlandais a également fourni des mots à d'autres langues. Par exemple, dans le cas de l'anglais :
* '''cookie''' vient de ''koekje'', diminutif de ''koek'' (« gâteau »)<ref>« cookie », dans ''Merriam-Webster'', 2022 [https://www.merriam-webster.com/dictionary/cookie#related-phrases → consulter cet ouvrage]</ref>.
* '''Santa Claus''' (Le surnom états-unien du [[wikt:père Noël|père Noël]].) vient de ''Sinterklaas'' (désignant [[w:Nicolas de Myre|saint Nicolas]]), lui-même altération de ''Sint Nikolaas''<ref>« Santa Claus », dans ''Merriam-Webster'', 2022 [https://www.merriam-webster.com/dictionary/Santa%20Claus → consulter cet ouvrage]</ref>.
=== Les emprunts à l'arabe ===
Même après l'effondrement de l'Empire romain, l'Occident n'a jamais cessé d'entretenir des relations entre, d'une part, Byzance et, d'autre part, les pays d'Afrique du Nord et du Proche-Orient, essentiellement à partir de la Provence, du Languedoc et de l'Italie<ref name="Larousse"></ref>. Les Croisades ont accentué ces contacts<ref name="Larousse"></ref>. Inversement, la conquête de la péninsule Ibérique par les Arabes n'a pas laissé de traces majeures dans le reste de l'Europe, le franchissement des Pyrénées étant, somme toute, plus difficile que la traversée de la Méditerranée. Parmi les emprunts à l'arabe, citons :
* '''adobe''' : de ألطوب (ʾāṭ-ṭwb) (« brique séchée au Soleil »). Le terme est arrivé en français au XIX{{e|e}} siècle, par le biais de l'espagnol, attesté dès le XII{{e}} siècle. [1868]
* '''alambic''' : de الإنبيق (āl-anbyq) formé de ال (āl) (« le », « la ») et du grec ancien ἄμϐιξ (ámbix) (« vase »), de même sens, peut-être via le latin médiéval des alchimistes. {{w|Albert Dauzat|Dauzat}} a proposé un intermédiaire espagnol ''alambique'', mais celui-ci est impossible car l'espagnol n'est attesté que depuis 1444. Le mot arabe a aussi donné l'italien ''lambisco'', le portugais ''alambique''. [1265]
* '''alcali''' : de القلي (āl-qily) (« soude (plante) »), via le latin médiéval ''alkali''. [1363]
* '''alchimie''' : de الكيمياء (āl-kymyāʾ) (« science des quantités »). Le terme est arrivé en français au XIII{{e|e}} siècle, par l'intermédiaire du [[latin]] médiéval ''alchimia''. L'arabe viendrait du grec ancien χυμεία (khumeía) (« mélange »), lui-même de χυμός (khumós) (« jus »), ou d'un mot copte signifiant « noir », désignant aussi l'Égypte. Les mots ''alchimie'' et ''chimie'' sont restés synonymes jusqu'à l'apparition de la [[chimie]] moderne à la fin du XVIII{{e|e}} siècle <ref name="Robert"></ref>. [1275]
* '''alcool''' : de الكحل (āl-kuḥl) (« distillat », « poudre »), par l'espagnol ''alcohol''. [1586]
* '''alcôve''' : de القبة (āl-qubba) (« petite pièce »), par le biais de l'espagnol ''alcoba''. [1646]
* '''algèbre''' : de الجبر (āl-ǧabr) (« réduction » au sens où nous disons que le problème se ramène / se réduit à un système à deux équations), via le latin médiéval ''algebra''. [fin du XIV{{e}} siècle]
* '''algorithme''' : du nom du mathématicien perse [[w:Al-Khwârizmî|Al-Khwârizmî]], par l'intermédiaire de l'ancien espagnol ''algorismo''. La forme actuelle est calquée sur le latin médiéval ''algorithmus'', altération influencé par ''arithmetica''. [1230]
* '''amiral''' : de أميرالعلي (ʾāmyr āl-ʿalī) (« grand chef »). [1100]
* '''avarie''' : de عَوَارِيَّة (ʿawāriyya), dérivé de عور (ʿawar) (« défaut »), par le génois ''avaria''. [1200]
* '''aya''' : de آية (ʾāya) (« verset »)
* '''azur''' : de لازورد (lāzaward) (« lapis-lazuli ») [1080]
* '''Abdallah''' : de عبد الله (ʿAbdullāh) (« serviteur de Dieu »)
* '''Abdellatif''' : de عبد اللطيف (ʿAbdullāṭyf) (« serviteur de l'Aimable »)
* '''Aladin''' : de علاء الدين (ʿAlāʾad-dyn) (« noblesse de foi »)
* '''Allah''' : de الله (ʾAllāh) (« Dieu »)
* '''Al-Qaïda''' : de القاعدة (āl-Qāʿyda) (« la Base ») [XX{{e|e}} siècle]
* '''brêle''' : de بغل (beġel) (« mulet »)
* '''cafard''' : de « كافر » (kāfir) (« hypocrite », « faux dévot »)
* '''café''' : de « قهوة » (qahwah)
* '''calife''' : de « خليفة » (ḫalyfah) (« successeur [du Prophète] »)
* '''camphre''' : de « كافور » (kāfwr) issu du sanskrit « कर्पूरम् » (karpūram).
* '''candi''' : initialement dit ''condi'', par l'intermédiaire de l'italien, emprunté à l'arabe « قندي » (qandy) (« confit ») [1256]
* '''chahada''' : de « شهادة » (šahādat) (« témoignage de foi »)
* '''charia''' : de « شريعة » (šaryʿah) (« chemin pour respecter la loi [de Dieu] »)
* '''cheh''' : de « صح » (ṣaḥ) (« »)
* '''cheikh''' : de « شيخ » (šayḫ) (« maître », « vieillard », « sage »)
* '''cheykha''' : de « شيخة » (šayḫa) (« »)
* '''chéchia''' : de « شاشية » (šašyah) (« »)
* '''chérif''' : de « شريف » (šaryf) (« »)
* '''Coran''' : de « القران » (āl-Qurān) (« la Récitation »)
* '''dawa''' : de « دعوة » (daʿwa) (« appel »)
* '''djihad''' : de « جهاد » (ǧihād) (« effort »)
* '''djinn''' : de « جن » (ǧinn) (« génie » au sens d'« être merveilleux »)
* '''estragon''' : de « طرخون » (ṭarḫwn)
* '''élixir''' : de « إكسير » (āl-ʾiksyr) (« la [[wikt:pierre philosophale|pierre philosophale]] ») formé de « ال » (āl) (« le », « la ») et du grec ancien « ξηρίον » (xêríon) (« poudre siccative à mettre sur les blessures »)
* '''éfrit''' : de « عفريت » (ʿfryt)
* '''émir''' : de « أمير » (ʾāmyr) (« commandant », « prince »)
* '''fanfaron''' : de « فرفار » (farfār) (« volage », « inconstant », « bavard »)
* '''fez''' : de « فأس » (fās) (« »)
* '''fissa''' : de « في ساعة » (fy sāʿah) (« dans l'instant », « sur l'heure »)
* '''fondouk''' : de « فندق » (funduq) (« hôtel »)
* '''Fatima''' : de « فاطمة » (Fāṭima) (« jeune chamelle sevrée »)
* '''gazelle''' : de « غزال » (ġazāl) (« antilope ») [fin du XII{{e}} siècle]
* '''goudron''' : de « قطران » (qaṭrān) (« asphalte »)
* '''goule''' (au sens de « créature monstrueuse ») : de « غول » (ġwl) (« démon »). Le nom du criminel [[w:Ra's al Ghul|Ra's al Ghul]] vient de « رأس الغول » (Rāʾs āl-Ḡwl) (« Tête de démon »).
* '''gourbi''' : de « غوربي » (ġwrby) (« »)
* '''gwer''' : de « غور » (ġwr) (« »), diminutif de « غوري » (Ġawry) (« Ligurien »)
* '''hadith''' : de « حديث » (ḥadyṯ) (« parole du Prophète »)
* '''hajj''' : de « حج » (ḥaǧ) (« pèlerinage »)
* '''halal''' : de « حلال » (ḥalāl) (« licite »)
* '''hamdoullah''' : de « الحمد لله » (āl-ḥamdullāh) (« louange à Dieu »)
* '''haram''' : de « حرام » (ḥarām) (« illicite »)
* '''hasard''' : de « الزهر » (az-zahr) (« dé », « jeu de dés »), nommé d'après « زهر » (zahr) (« fleur ») car la face gagnante du dé portait une fleur
* '''inch'Allah''' : de « ان شاء الله » (in šāʾ ʾAllāh) (« si Allah le veut »)
* '''Iblis''' : de « إبليس » (Iblīs) (« Celui qui n'a plus d'espoir [de se repentir] »)
* '''Jafar''' : de « جعفر » (Ǧaʿfar)
* '''Jaouad''' : de « جواد » (Ǧawād)
* '''Jasmine''' : de « ياسمين » (Yāsmyn)
* '''keffieh''' : de « كوفية » (kwfīya) (« »)
* '''khey''' : de « أخي » (ʾaḫī) (« frère »)
* '''maboul''' : de « مهبول » (mahbwl) (« fou », « débile ») [XIX{{e|e}} siècle]
* '''machallah''' : de « ماشاء الله » (māšāʾallāh) (« ce que Dieu veut »)
* '''masser''' (au sens de « pétrir avec les mains ») : de « مس » (mas) (« palper », « toucher ») [XVIII{{e|e}} siècle]
* '''matelas''' : de « مطرح » (maṭraḥ) (« tapis », « lieu où l'on jette quelque chose ») [XVI{{e|e}} siècle]
* '''mesquin''' : de « مسكين » (miskyn) (« pauvre »)
* '''miramolin''' : de « أمير المؤمنين » (ʾāmyr āl-mwʾminyn) (« commandeur des croyants »)
* '''momie''' : de « مومياء » (mwmyāʾ) (« corps embaumé »)
* '''mounâfik''' : de : « منافق » (munāfiq) (« hypocrite »)
* '''Machrek''' : de « المشرق » (āl-Mašriq) (« le Levant »)
* '''Maghreb''' : de « المغرب » (āl-Maġrib) (« le Couchant »)
* '''Mahomet''' : de « محمد » (Muḥammad) (« digne de louanges »)
* '''Moustapha''' : de « مصطفى » (Muṣṭafaā) (« l'Élu »)
* '''nifâk''' : de « نفاق » (nifāq) (« hypocrisie »)
* '''niquer''' : de « نك » (nik) (« faire l'amour ») [XIX{{e|e}} siècle]
* '''nuque''' : de « نخاع » (nuḫāʿ) (« partie dorsale du cou ») [XIV{{e|e}} siècle]
* '''Omar''' : de « عمر » (ʿOmar) (« »)
* '''papegai''' (ancien nom français du [[wikt:perroquet|perroquet]]) : de « ببغاء » (babaġāʾ) (« »)
* '''ramdam''' : de « رمضان » (Ramaḍān) (« mois de jeûne »)
* '''roumi''' : de « رومي » (Rwmy) (« Romain »)
* '''salat''' : de « صلاة » (ṣalāt) (« ensemble de cinq prières »)
* '''salep''' : de « ثعلب » (ṯaʿlab) (« renard ») abréviation de « خصى الثعلب » (ḫuṣān aṯ-ṯaʿlab) (« testicules de renard ») Le nom complet fut choisi en raison de la forme des bulbes de cette plante.
* '''saoum''' : de « صوم » (ṣawm) (« jeûne »)
* '''starfallah''' : de « أستغفر الله » (ʾastaḡfirullāh) (« Que Dieu me pardonne »)
* '''soubhanallah''' : de « سبحان الله » (subḥān allāh) (« louez Dieu »)
* '''souk''' : de « سوق » (sūq) (« marché »)
* '''sourate''' : de « سورة » (swrah) (« chapitre »)
* '''sucre''' : de « سكر » (sukar) issu du sanskrit « शर्करा » (śarkarā).
* '''sultan''' : de « سلطان » (sulṭān) (« pouvoir », « autorité »)
* '''Saïd''' : de « سعيد » (Saʿyd) (« heureux »)
* '''Salîm''' : de « سليم » (Salym) (« le Saint », « le Parfait »)
* '''Shaytân''' : de « شيطان » (Šayṭān) (« l'Adversaire »)
* '''talc''' : de « تلك » (talk)
* '''tarbouche''' : de « طربوش » (ṭarbwš) (« »)
* '''toubib''' : de « طبيب » (ṭabyb) (« médecin ») [1617]
* '''wallah''' : de « والله » (wallāh) (« par Dieu »)
* '''wesh''' : de « واش » (wāš) (« quoi »)
* '''Wahid''' : de « واحد » (Wāḥid) (« l'Unique »)
* '''zakât''' : de « زكاة » (zakāt) (« purification »)
* '''zinzolin''' : de « جنجلان » (ğunğulān) (« semence de sésame »)
* '''zob''' : de « زب » (zubb) (« pénis »)
Beaucoup de mots empruntés à l'arabe commencent par ''al'' ou ''a'' car, en arabe, ''al'' est l'article défini qui a été accolé au substantif lors de l'emprunt. (Comme si un enfant qui maîtrisait encore mal le français disait ''le lane'' pour ''l'âne''.)
Un cas intéressant est l'emprunt du mot « صفر » (ṣifr) qui signifie « vide » et a été transcrit à la fois par « chiffre » et par « zéro » (la notation arabe des chiffres utilisant un point pour le zéro).
=== Les emprunts à l'italien ===
Les royales épouses et les nobles dames venues d'Italie au XVI{{e|e}} siècle et au début du suivant ont apporté la civilisation du Quattrocento dans leurs bagages : vocabulaire des cours ducales et princières et du commerce qui avait permis les développements économiques lombard et toscan. Bref, quelque 8000 mots à l'époque, dont environ 10% sont utilisés encore aujourd'hui. Sur les 2000 à 8000 italianismes que comptait la langue française, seulement 700 environ ont survécu. Citons :
* '''accort''' : de ''accorto'' (« clairvoyant », « adroit »)
* '''amouracher''' : de ''amoracciare'' (« »)
* '''assassin''' : de ''assassino'' (« meurtrier »)
* '''avoir martel''' (terme aujourd'hui disparu) : être jaloux(se)
* '''bambin''' : de ''bambino'' (« bébé », « enfant »)
* '''bamboche''' : de ''bamboccio'' (« poupard », « bébé joufflu »)
* '''banque''' : de ''banca''. La banque est un banc ou plutôt une petite table sur laquelle on pose l'argent à changer, ce qui constituait l'activité première des banques. En cas de faillite (d'une racine signifiant « tomber » que l'on retrouve dans « défaillir ») du banquier, la corporation lui interdisait symboliquement de continuer son activité en lui cassant sa table. (D'où l'italien « bancarotta », qui a donné le français « banqueroute ».)
* '''bataillon''' : de ''battaglione''
* '''berlingot''' : de ''berlingozzo''
* '''bombe''' : de ''bomba''
* '''birouchette''' : de ''baroccio'' (« charrette à deux roues »)
* '''brocoli''' : du pluriel de ''broccolo''
* '''burler''' (terme aujourd'hui disparu) : se moquer
* '''brusque''' : de ''brusco'' (« âpre », « aigre »)
* '''cabriole''' : de ''capriola'' (« saut de cabri »)
* '''caprice''' : de ''capriccio'' (« frisson »)
* '''carrière''' : de ''carriera'' (« chemin de chars »)
* '''carrosse''' : de ''carrozza''
* '''carrousel''' : de ''carosello''
* '''carton''' : de ''cartone''
* '''cartouche''' : de ''cartuccia''
* '''charlatan''' : de ''ciarlatano''
* '''citrouille''' : de ''citruolo''
* '''colonel''' : de ''colonello''
* '''cortège''' : de ''corteggio''
* '''courtisan(e)''' : de ''cortigiano(a)''
* '''courtiser''' : de ''corteggiare''
* '''couci-couci''' : de ''così così'' (« ainsi ainsi »)
* '''désastre''' : de ''disastro'' (« mauvaise étoile »)
* '''discote''' (terme aujourd'hui disparu) : de ''discotto'' (« éloigné »)
* '''escadre''' : de ''squadra''
* '''escadron''' : de ''squadrone''
* '''escarpe''' (terme aujourd'hui disparu) : de ''scarpa'' (« chaussure »)
* '''escarpin''' : de ''scarpino''
* '''escroc''' : de ''scrocco''
* '''espadon''' : de ''spadone'' (« grande épée »)
* '''-esque''' : de ''-esco''
* '''estafette''' : de ''staffetta'' (« courrier à cheval »)
* '''estivallet''' (terme aujourd'hui disparu) : de '''' (« bottine »)
* '''fantassin''' : de ''fantaccino''
* '''fantoche''' : de ''fantoccio'' (« marionnette »)
* '''filigrane''' : de ''filigrana''
* '''frasque''' : de ''frasca'' (« soudain écart de conduite »)
* '''fresque''' : de ''fresco'' (« frais »)
* '''ganache''' : de ''ganascia'' (« mâchoire »)
* '''gonze''' : de ''gonzo'' (« idiot »)
* '''hippogriffe''' : de ''ippogrifo''
* '''imbattre''' (terme aujourd'hui disparu) : de ''imbrattare''
* '''intrigue''' : de ''intrigo''
* '''jalousie''' (au sens de « treillis de bois ou de fer permettant d'observer sans être vu ») : de ''gelosia''
* '''lasagne''' : du pluriel de ''lasagna''.
* '''le plus de temps''' : de ''il più del tempo''
* '''leste''' : de ''lesto'' (« adroit, agile »)
* '''manège''' : de ''maneggio''
* '''masque''' : de ''maschera''
* '''page''' (au sens de « serviteur d'un aristocrate ») : de ''paggio''
* '''paillasse''' (au sens de « bouffon ») : de ''pagliaccio'' (« bateleur », « clown », « pitre »)
* '''pécore''' : de ''pecora'' (« brebis »)
* '''pédant''' : de ''pedante''
* '''pianelle''' (terme aujourd'hui disparu) : de ''pianella'' (« chaussure de daim »)
* '''pizza'''
* '''pizzaïolo''' : de ''pizzaiolo''
* '''poltron''' : de ''poltrone'' (« paresseux »)
* '''porcelaine''' : de ''porcellana''
* '''salami''' : du pluriel de ''salame''
* '''sbire''' : de ''sbirro''
* '''sigisbée''' : de ''cicisbeo'' (« galant », « dameret »)
* '''spadassin''' : de ''spadaccino'' (« bretteur »)
* '''spaghetti''' : du pluriel de ''spaghetto''.
* '''spurquesse''' (terme aujourd'hui disparu) : de ''sporchezza'' (« saleté »)
* '''supercherie''' : de ''soperchieria''
* '''taffetas''' : de ''taffetà''
* '''trop mieux''' : de ''troppo meglio''
* '''trop plus''' : de ''troppo più''
* '''voltiger''' : de ''volteggiare'' (« voleter »)
* '''zibeline''' : de ''zibellino''
L'essentiel du vocabulaire français lié à la musique est emprunté à l'italien. Citons :
* '''allégro''' = joyeux
* '''andante''' = simple, habituel (mot à mot : qui marche [à pieds])
* '''adagio''' = lentement (Si vous circulez en véhicule sur les routes d'Italie, vous constaterez que ce mot apparaît fréquemment à l'entrée des parkings souterrains ou aux abords des écoles.)
* '''scherzo''' = plaisanterie
* '''ténor''' = de « tenore » qui désigne le « contenu essentiel » ; formule comparable aux expressions françaises « teneur de la loi » ou « teneur en oxygène ». Le ténor est le chanteur qui assume l'essentiel de l'opéra.
À la période romantique s'ajouteront des mots allemands comme « Lied » (« chant »).
=== Les emprunts au russe ===
Vers la fin du {{XIXe siècle}}, la popularité des romans russes, traduits en français, apportent beaucoup de nouveaux mots (''steppe'', ''cosaque'', ''toundra'', etc.)<ref name="Larousse">{{W|Jean Dubois (linguiste)|Jean Dubois}}, {{W|Henri Mitterand}}, {{W|Albert Dauzat}}, ''Dictionnaire étymologique et historique du français'', {{W|Éditions Larousse}}, 2007</ref>. À leur tour, la {{w|révolution russe}} et le développement du socialisme introduisent nombre de nouveaux termes en français (''kolkhoze'', ''bolchévique'', ''koulak'', ''soviet'', etc.)<ref name="Larousse"></ref>. Parmi les nombreux emprunts, citons :
* '''bogatyr''' : de « богатырь » (bogatyr’) (« héros »).
* '''combinat''' : de « комбинат » (kombinat).
* '''cosmonaute''' : de « космонавт » (kosmonavt).
* '''datcha''' : de « дача » (datcha).
* '''drojki''' : de « дрожки » (drojki).
* '''goulag''' : lexicalisation de « ГУЛАГ » (GULÁG), acronyme de « Главное Управление Лагерей » (Glávnyj Upravlěniě Láger') (« Direction Principale des Camps »).
* '''icône''' : de « икона » (ikona) (« image religieuse »).
* '''isba''' : de « изба » (izba).
* '''jaleïka''' : de « жалейка » (zhaléika).
* '''kopeck''' : de « копе́йка » (kopéjka).
* '''lezguinka''' : « лезгинка » (lezginka).
* '''mammouth''' : de « мамант » (mamant), variante désuète de « мамонт » (mamont).
* '''mazout''' : de « мазут » (mazout), qui viendrait de l'arabe « مَخْزول » (makhzoul) (« résidu »).
* '''morse''' : de « морж » (morj).
* '''moujik''' : de « мужик » (muzhik), diminutif de « муж » (muzh) (« homme »).
* '''niet''' : de « нет » (niet) (« non »).
* '''novitchok''' : de « новичок » (novitchok) (« novice »).
* '''oblast''' : de « область » (oblast').
* '''pérestroïka''' : de « перестройка » (perestroika).
* '''podzol''' : de « подзол » (podzol).
* '''rouble''' : de « рубль » (rubl').
* '''sarafane''' : de « сарафан » (sarafan).
* '''taïga''' : de « тайга » (taiga).
* '''télègue''' : de « телега » (telega).
* '''tsar''' : de « царь » (tsar’), lui-même du vieux slave « цѣсарь » (cěsarĭ), emprunté au latin « Caesar » via le grec ancien « Καῖσαρ » (Kaîsar), source aussi de l'allemand « Kaiser » (d'où ''kaiser'' en français).
* '''ukase''' : de « указ » (ukaz).
* '''vodka''' : de « водка » (vodka), diminutif de « вода » (voda) (« eau ») avec le suffixe « -ка » (-ka).
* '''yourte''' : de « юрта » (júrta).
=== Les emprunts à l'allemand ===
Les emprunts à l'allemand sont souvent limités à des vocabulaires spéciaux, notamment celui de la guerre<ref name="Larousse></ref>. Ils ont été apportés par les mercenaires allemands et suisses des XVI{{e}} et XVII{{e}}, et, dans une moindre mesure, par l'{{w|Occupation de la France par l'Allemagne de 1870 à 1873|occupation allemande de 1870 à 1873}} et l'{{w|Occupation de la France par l'Allemagne pendant la Seconde Guerre mondiale|occupation de 1940 à 1943}}<ref name="Larousse></ref> :
* '''accordéon''' : de ''Akkordeon'', mot forgé en 1829 par {{w|Cyrill Demian}}, inventeur de l'instrument.
* '''aspirine''' : de ''Aspirin''.
* '''aux fines herbes''' (« au revoir ») : c'est une déformation de « auf Wiedersehen ».
* '''blitzkrieg''' : de ''Blitzkrieg'' (« guerre éclair »), composé de ''Blitz'' (« éclair ») et de ''Krieg'' (« guerre »).
* '''blockhaus''' : de ''Blockhaus''.
* '''bunker''' : de ''Bunker''
* '''cobalt''' : emprunt à l'allemand ''Kobalt'', de ''Kobold'', nom d'un lutin malicieux.
* '''devise''' : au sens financier, probablement de ''Devise''
* '''écologie''' : de ''Ökologie'', terme forgé par {{w|Ernst Haeckel}} en 1866.
* '''ersatz''' (mot à mot ''qui se tient à la place de'').
* '''feldwebel''' : de l'allemand ''Feldwebel'', même sens.
* '''flic''' est dérivé de « Fliege » (« mouche », d'après le sens argotique « espion »), ou de « Flick » (« garçon, jeune homme »).
* '''fritz''' : du prénom allemand ''Fritz'', diminutif de ''Friedrich''.
* '''Gestapo''' : de l'allemand, ellipse de '''''Ge'''heime '''Sta'''ats'''po'''lizei'' (« police secrète d’État »).
* '''heimatlos''' : emprunt à l'allemand ''heimatlos'' (« apatride »).
* '''homosexuel''' : probablement de ''homosexual'', composé de ''homo-'' et de ''sexual''.
* '''képi''' : de ''Käppi''.
* '''lansquenet''' : de ''Landsknecht'' (« fantassin »).
* '''loustic''' est la francisation de ''[[wikt:lustig|lustig]]'' (« joyeux »). Dans les troupes allemandes, il y avait un bouffon que l'on appelait « Lustig » (« le Joyeux »).
* '''nazi''' : de ''Nazi'', contraction de '''''Na'''tionalso'''zi'''alist''.
* '''obus''' : de ''Haubitze'' (« obusier »), lui-même emprunté au tchèque ''houfnice'' (« catapulte »).
* '''putsch''' : de ''Putsch''.
* '''se faire appeler Arthur''' (« se faire gronder ») : dans cette locution, « Arthur » est une déformation de « acht Uhr » signifiant « huit heures » ; pendant la [[w:Seconde Guerre mondiale|Seconde Guerre mondiale]], en France occupée, le [[wikt:couvre-feu|couvre-feu]] était à huit heures du soir. Les patrouilles allemandes avaient donc pour habitude de prévenir les retardataires en leur indiquant leur montre et en leur disant « acht Uhr! ».
* '''thalweg''' : de ''Thalweg'', composé de ''Thal'' (« vallée ») et de ''Weg'' (« chemin »).
* '''Wehrmacht''' : de ''Wehrmacht''.
=== Les emprunts aux langues américaines indigènes ===
Tous les produits exotiques découverts aux « Indes occidentales » comme l'on disait alors ont été importés, le plus souvent via l'Espagne ou le Portugal avec leur nom d'origine plus ou moins bien compris et déformé. Ainsi :
* '''avocat''' et '''hamac''' des Caraïbes
* '''cacahuète'''
* '''chocolat'''
* '''topinambour''' qui en même temps qu'il désignait le tubercule comestible avait aussi le sens de « personne de caractère ombrageux », caractère que l'on attribuait à la tribu Topinambour d'où ont été exportées les premières de ces plantes.
Cela explique que ces mots soient peu ou prou identiques dans toutes les langues européennes d'aujourd'hui. On notera le cas de l'espagnol qui appelle « platanas », les bananes. Lorsque les premiers Conquistadores rapportèrent des bananes à Séville, les badauds leur demandèrent combien il en poussait « là-bas ». « Autant que de platanes à Séville » fut la réponse qui parut par trop exagérée (bien qu'elle fut vraie) et conduisit à appeler le fruit « platana » à Séville puis dans toute l'Espagne.
Indépendamment de ces importations, espagnol et portugais ont laissé quelques mots apportés par les mercenaires et liés à la vie militaire tels « adjudant » ou « camarade ».
L<nowiki>'</nowiki>'''adjudant''' est celui qui aide (Du verbe ''adjutare'', « aider ») un officier (un aide de camp) comme l'adjuvant est un additif qui renforce (qui aide) les qualités d'un remède ou d'un produit industriel comme le béton.
Le '''camarade''' est celui avec qui l'on partage sa chambre (« camera » d'où la « camera obscura » (chambre noire) qui aboutit plus simplement à la caméra [de cinéma]). Le camarade est le compagnon de chambrée, le '''compagnon''' étant celui avec (cum) qui l'on partage le pain (panis).
Du portugais l'on peut aussi retenir :
* '''pintade''' qui est l'abrégé de « galina pintada » (poule peinte)
* '''sombrer''' qui vient — via un verbe français « soussoubrer » — d'un verbe portugais « soçobrar » signifiant « aller sous l'eau ».
=== Les emprunts à l'anglais ===
S'ils sont aujourd'hui importants, surtout à travers l'américain, il n'en fut pas ainsi pendant longtemps ne serait-ce que parce que les familles anglaises parlaient français et que la première grammaire française fut rédigée en anglais pour permettre aux féodaux autochtones d'acquérir la langue d'expression de leurs souverains.
Les premiers emprunts à l'anglais apparaissent au XVIII{{e|e}} siècle sous la double influence du libéralisme politique qui se développe en Angleterre et définit les notions et les mots de « parlementaire » ou de « comité » et de l'expansion pré-industrielle comme de l'hégémonie maritime qui succède à celle des pays du Sud de l'Europe d'où « rail », et « tunnel ».
=== Les emprunts aux autres langues ===
Les autres langues ont moins apporté, en dehors de mots désignant des institutions ou des produits locaux (comme les boyards, le caviar). Citons :
Le vieux norrois avec :
* '''garer''' : de « varask » (« être sur ses gardes »).
* '''quille''' (terme de marine), emprunté au vieux norrois « kilir », pluriel de « kjǫlr ».
* '''saga''', signifiant « récit mythologique ou historique » ; le mot est à rapprocher de l'anglais « to say » (« dire ») et de l'allemand « sagen » (même sens).
* '''vague''' est issu de « vágr », apparenté à l'anglais « wave ».
Le japonais avec :
* '''emoji''' : de « 絵文字 » (emoji).
* '''judo''', de « 柔道 » (jūdō), composé de « 柔 » (ju) (« souplesse ») et « 道 » (do) (« voie »), littéralement « voie de la souplesse ».
* '''kakemono''' emprunté au japonais « 掛物 » (kakemono).
* '''manga''' tiré de « 漫画 », lui-même composé de « 漫然 » (manzen) (« sans intention ») et « 画 » (ga) (« dessin »).
* '''zen''' : emprunt au japonais « 禅 » (zen), issu du chinois « 禪 » (chán), lui-même abréviation de « 禪那 » (chánnà), du sanskrit « ध्यान » (dhyāna) (« méditation »).
Le turc avec :
* '''babouche''', de « papuç » (« chaussure »).
* '''derviche''', emprunté au turc « derviş », lui-même emprunt au persan « درويش » (derwiš) (« mendiant, pauvre »).
* '''kebab''', tiré de « kebap ».
L'occitan avec :
* '''aïoli''' : de « alhòli ».
* '''bosquet''', issu de « bosquet », diminutif de « bòsc » (bois) avec le suffixe « -et ».
* '''garrigue''', emprunté à l'occitan « garriga », de l'ancien occitan « garric » (« chêne kermès »).
* '''malfrat''', probablement issu de « maufaras », « malfaras » (« malfaiteur »).
* '''muscat'''.
* '''péguer''', mot utilisé en Occitanie signifiant « coller », est issu de l'occitan « pegar » (même sens).
* '''pétanque''', de l'occitan « petanca ».
=== Le fond gaulois ===
La littérature gauloise était essentiellement composée de poésies épiques et transmise exclusivement par voie orale. C'est pourquoi s'il reste encore de nombreuses traces du gaulois dans les noms de lieux, cette langue n'a laissé — essentiellement à travers le latin — qu'une quarantaine de mots :
* '''alouette'''
* '''berceau'''
* '''bordigue''', cabane avec des étagères pour garder le poisson au bord de la mer
* les '''braies''', les « pantalons » de l'Antiquité, d'où viennent les mots « braguette » et « débraillé ».
* '''bruyère'''. Le mot a été, par ailleurs confondu avec le mot latin « ruscus » qui signifiait « houx ». Un terrain à bruyères était appelé « bruscia » (qui signifiait « taillis », « buisson ») puis « brousse » (et « broussaille ») mais aussi « brosse » d'où les premières brosses qui n'étaient pas faites pour se coiffer mais pour laver le linge ou le sol et donc fabriquées à partir de végétaux très durs et acérés. « brosse » et « brousse » se spécialisèrent par la suite mais il reste des traces de cette synonymie en français moderne : « brosser » lorsque l'on parle d'un animal qui se faufile dans les taillis (ex : En brossant, le lièvre évita le chasseur.). Par analogie, on appelle aussi « brosse », la rangée de poils que l'on trouve au bout des pattes ou antennes de certains insectes et qui leur permettent, par exemple, de se situer dans l'espace tout en servant à la pollinisation.
* '''cervoise''', bière d’orge ou de blé sans houblon.
* '''charrue''' qui désigne à l'origine un char gaulois puis un char agricole puis finit par se limiter à un instrument muni de roues et d'un soc.
*'''chêne''' qui est une fusion du gaulois latinisé ''casanus'' et du mot bas latin ''fresne''
* '''glaner'''
* '''sillon''' d'une racine signifiant ''amasser de la terre''
* probablement '''tamis''' avec le même sens.
* '''taisson''' qui est l'ancien nom du blaireau.
* '''talus''', de ''talo'' qui désigne le front puis, par analogie avec la pente du front, un terrain en pente dans le langage des mineurs
=== L'emprunt par composition lexicale ===
Une forme particulière d'emprunt est la composition lexicale à partir de racines grecques et latines, contrairement à l'emprunt proprement dit où un mot étranger courant est introduit dans la langue d'accueil. Initié dès le XVI{{e|e}} siècle, le procédé a été particulièrement utilisé de 1750 à 1950 (pour avoir des chiffres ronds) dans tous les domaines de la vie scientifique et technique. En principe les deux racines doivent être ou grecques ou latines mais l'on rencontre des mots mixtes.
Les spécialités médicales en sont un bon exemple ; à partir de « -logie » (de « λόγος », l'étude) on construit :
* « andrologie » [] de « ἀνήρ », l'homme en grec ancien.
* « anthropologie » [] de « ἄνθρωπος », l'être humain en grec ancien.
* « cardiologie » [1797] de « καρδία », le cœur en grec ancien.
* « coprologie » [] de « κόπρος », l'excrément en grec ancien.
* « dermatologie » [1836] de « δέρμα », la peau en grec ancien. Le mot latin « pellis » désigne initialement la peau de bête tannée ; appliquer ce terme à la peau humaine a dû être quelque peu grossier à l'origine, comme aujourd'hui parler de la « gueule » de quelqu'un.
* « gynécologie » [] de « γυνή », la femme en grec ancien.
* « hématologie » [] de « αἷμα », le sang en grec ancien.
* « œnologie » [] de « οἶνος », le vin en grec ancien.
* « oncologie » [1970] de « ὄγκος », la tumeur en grec ancien ; les tumeurs constituent un amas en imagerie médicale comme à la palpation
* « ophtalmologie » [1753] de « ὀφθαλμός », l'œil en grec ancien
* « proctologie » [1970] de « πρωκτός », l'anus en grec ancien
* « scatologie » [] de « σκῶρ », l'excrément en grec ancien.
* « urologie » [] de « οὖρον », l'urine en grec ancien
De la même façon, on construit :
* « saurien » [1800] (de « σαῦρος » (« lézard »)) reptile à écailles
* « dinosaure » [1845] (de « δεινός » (« terrible ») et « σαῦρος » (« lézard »)
* « ichtyosaure » [1824] (de « ἰχθύς » (« poisson ») et « σαῦρος » (« lézard »)
* « lycoperdon » [] (de « λύκος » (« loup ») et « πέρδομαι » (« flatuler »)
* « callipyge » [] (de « κάλλος » (« beauté ») et « πυγή » (« fesse »)
ou encore, en vrac :
* « alopécie » [{{e}} siècle] qui désigne la chute des cheveux comparée à celle des poils du renard (« ἀλώπηξ ») se produisant chaque année.
* « dromadaire » [XII{{e}} siècle] qui est le coureur (« δρομάς ») du désert
* « éthologie » [1856] l'étude des mœurs (« ἦθος »)
* « hippopotame » [1265] qui est le cheval (« ἵππος ») du fleuve (« πόταμος »)
* « hippodrome » [1534] qui est la course (« δρόμος ») du cheval (« ἵππος »)
* « pétrole » [XIII{{e}} siècle] de « πετρέλαιον »
* « rhinocéros » [1288] qui a une corne (« κέρας ») sur le nez (« ῥίς »)
Certains mots furent composés autrement :
* « chauve-souris » vient du bas latin ''calvas sorices'' (pluriel), altération sous l'influence de ''calvus'' (« chauve »), du bas latin ''cawa sorix'', formé de ''cawa'' (« chouette ») et ''sorix'' (« souris »), signifiant littéralement « chouette-souris ». Le petit de ce mammifère volant s'appelle le « chauve-souriceau » (« chauve-souricelle » au féminin). Le nom anglais de cet animal est « bat », ce qui insipira Bill Finger et Bob Kane pour la création de [[w:Batman|Batman]].
* « soutien-gorge » [1904] dérive de ''soutien'' et de ''gorge''. Dans ce mot, ''gorge'' signifie métaphoriquement « poitrine » ou « sein ».
== Les noms propres (personnes, villes, personnages de roman) devenus noms communs ==
Le plus connu est '''Poubelle''' du nom du préfet de police de Paris, qui imposa, en 1884, de placer les déchets dans un récipient et non de les déposer en vrac sur la chaussée et institua leur collecte régulière mais l'on peut également citer :
* le père '''Clément''' qui fut le premier à obtenir des clémentines dans un orphelinat d'Oran en 1902 par greffe d'un hybride d'oranger et de mandarinier sur un pied de mandarinier.
* John Loudon '''MacAdam''' qui utilisa un revêtement qui venait d'être mis au point pour solidariser les routes et les rendre plus confortables.
* En 1950, après avoir assisté à une grande exposition du peintre Vittore '''Carpaccio''', le chef Giuseppe Cipriani inventa une recette de viande de bœuf crue à laquelle il donna le nom de famille de l'artiste.
* '''Casanova''' est le nom de famille d'un Italien qui écrivit de célèbres mémoires érotiques (et non « pornographiques » ; bien qu'« érotisme » et « pornographie » viennent tous deux du [[grec ancien]], les sens respectifs de ces deux mots sont très différents.) Aujourd'hui, on appelle « casanova » un homme désirant ardemment séduire de nombreuses femmes.
* '''Doberman''' est le nom de famille d'un gardien de fourrière d'une petite ville allemande qui, chargé d'exterminer les chiens errants, réussit à les croiser de façon à obtenir une race de chiens de garde et en sauva ainsi quelques-uns d'une mort prématurée
* John '''Duns''' Scot (1266-1308) est un théologien et philosophe écossais. Devenu « dunce » en anglais, son nom pris le sens du mot français « cancre » désignant un écolier paresseux. Dans les écoles anglo-américaines, on coiffait autrefois les mauvais élèves de chapeaux coniques portant le mot « ᴅᴜɴᴄᴇ ». L'anglais « dunce cap » correspond métaphoriquement au français « [[wikt:bonnet d’âne|bonnet d'âne]] ».
* '''Guillaume''' est l'imprimeur qui introduisit les guillemets (appelés initialement « guillaumets ») dans l'imprimerie ; dans ce secteur, un autre Guillaume, Massiquot (1797-1870) laisse son nom sous une forme orthographique simplifiée (massicot) au dispositif qui permet de couper les feuilles.
* Louis '''Pasteur''' dont le nom se retrouve dans la plupart des langues dans des termes comme « pasteuriser » ou « pasteurisation »
* François '''Barrême''', mathématicien (1640-1703) auteur d'un des premiers manuels pratiques de comptabilité
* Partisane de la réforme vestimentaire, l'employée des postes Amelia '''Bloomer''' fit la promotion de [[wikt:culotte|culottes]] bouffantes ; avec le temps, ces sous-vêtements prirent le nom de leur promotrice.
* Devenu aveugle très jeune, Louis '''Braille''' improvisa un système d'écriture en relief facilement lisible du bout des doigts.
* Carlo '''Tonti''' qui conçu les tontines (dans une tontine, un emprunteur offre 100 euros par an pour rémunérer un capital initial de 10 000 euros par exemple. Au fur et à mesure que les prêteurs meurent la rémunération annuelle qui reste constante à 100 euros est répartie sur les seuls survivants ; ce procède fut très utilisé par les rois de France du milieu du XVII{{e}} siècle aux abords de la Révolution française puis par les premières institutions mutualistes)
* '''Figaro'''. Personnage de [[w:Pierre-Augustin Caron de Beaumarchais|Pierre-Augustin Caron de Beaumarchais]], il est le barbier du Comte Almaviva ; « aller chez le figaro » signifie « aller chez le barbier/coiffeur ». Dans la deuxième pièce de la trilogie lui étant consacrée, il dit à la scène 3 de l'acte V : « Sans la liberté de blâmer, il n'est point d'éloge flatteur. » Depuis sa fondation le 15 janvier 1826, le journal quotidien ''[[w:Le Figaro|Le Figaro]]'' met cette réplique en exergue comme étant sa devise.
* '''Frangipane'''. Marquis italien, Frangipani mis au point en 1558 un parfum pour les gants ; ledit parfum connut rapidement du succès pour accommoder les pâtisseries.
* '''Fuller'''. Eugène Fuller est l'architecte qui dessina les plans de la géode. Les nano-particules ont une structure qui rappelle une géode. Pour honorer Fuller on eut l'idée de donner son nom à la structure.
* '''Bougainvilliers''', navigateur qui ramena la plante. De même, camélia (initialement écrit Camellia) à qui Linné (qui nomma nombre de plantes de façon raisonnée) donna ce nom en souvenir du père jésuite qui l'avait ramené du Japon : Camellus
* '''Oignon''' était le responsable du protocole de Louis XIV et il exigeait des Grands qu'ils fussent rangés. Par la suite, la référence à ce royal ordonnancement fut oubliée et l'image d'oignons rangés sur un marché se substitua à l'originale.
* '''Calepin'''. En 1502, Ambrogio Calepino publia un dictionnaire de latin. Le mot « calepin » désigna d'abord un dictionnaire (latin ou non) puis évolua vers le sens de recueil de notes.
* '''Sandwich''' est le nom d'un comte anglais (1718-1792) qui, joueur infatigable, demanda qu'on lui servît son repas entre deux tranches de pain pour ne pas quitter le salon de jeu.
* '''grégorien''' : Pape de 590 à 604, Grégoire XIII fixa définitivement les textes rituels et plaça la messe à la première place des cérémonies du culte, sur le plan artistique. Il fit établir une sélection de chants épurés destinés à toutes les fêtes de l'année (l'antiphonaire) et fonda une école de musique destinée à diffuser une nouvelle interprétation mélodique. Il réforma également le calendrier julien.
* '''Lalune''' était un général dont les bourdes étaient nombreuses d'où l'expression ''bête comme la lune''
* À l'inverse, Jean '''Colin-Maillard''', aveuglé par le sang d'une blessure infligée par l'ennemi se saisit d'un maillard (« marteau » — à comparer avec « maillet » —) et frappant plus ou moins au hasard massacra nombre de ses adversaires ; d'où le jeu de colin-maillard.
* '''Hooley''' était un Irlandais qui rançonnait les paysans en faisant montre d'une extrême violence vis à vis de ceux qui ne se soumettaient pas à ses exactions d'où les « hooligans » des stades.
* Étienne de '''Silhouette''' était contrôleur général des Finances au XVIII{{e}} siècle. Son nom est resté dans la langue soit en raison des nombreuses caricatures que l'on fit de lui soit du fait de ses passages rapides aux affaires qui ne permettaient que de l'y apercevoir.
* '''dulcinée''' désigne poétiquement une femme inspirant une passion romanesque. Cet emploi provient du nom d'un personnage de ''[[w:Don Quichotte|L'Ingénieux Hidalgo Don Quichotte de la Manche]]'', l'œuvre la plus connue de [[w:Miguel de Cervantes|Miguel de Cervantes]] (1547-1616).
* '''Paparazzo''' est le nom d'un photographe apparaissant dans le film ''[[w:La Dolce Vita|La Dolce Vita]]'' (1960). Aujourd'hui, on appelle « paparazzo » un photographe ayant comme domaine de prédilection la vie privée des célébrités.
Dans le genre « grunge » on trouve ''isabelle'' et ''bourdaloue''.
* '''isabelle''' est la couleur de la robe d'un cheval ou du pelage d'un chat qui associe jaune pâle, rouge et noir. La légende veut qu'une noble dame prénommée Isabelle ait fait vœu de ne pas changer sa chemise entre le départ de son époux pour la guerre et son retour. Il existe deux variantes : Isabelle la Catholique lorsque le roi soutint le siège de Grenade (1491) qui dura un an et l'archi-duchesse Isabelle, petite fille de Catherine de Médicis et de Henri II lorsque son époux — Albert — partit pour Ostende et revient en triomphateur après que la ville ait cessé de lui résister pendant trois ans. D'où la couleur de la chemise au retour du bien-aimé. Il semble cependant aux philologues modernes que le mot est tout simplement l'emprunt du mot ''hiza'' (lion) à l'arabe à cause de la couleur du pelage de ce fauve.
* '''Bourdaloue''' (ce n'est plus légende mais réalité) était un prédicateur de Notre-Dame de Paris à l'éloquence fort prisée des dames de la bourgeoisie parisienne. Rhétoricien accompli, il captivait son public pendant plusieurs heures et certaines dames eurent l'idée de s'équiper d'un petit vase très discret leur permettant de satisfaire leurs besoins naturels sans quitter leur place (à l'époque les robes étaient assez larges)
* Dans l<nowiki>'</nowiki>''Orlando innamorato'', Matteo Maria Boiardo raconte que le roi circassien '''Sacripante''' fit preuve d'une bravoure et d'une force extraordinaires pour porter secours à la dame de ses pensées sans qu'on le payât en retour. Francisé en ''sacripant'', le nom de ce personnage désigna d'abord un bravache (Au même titre que « matamore » et « rodomont ».), puis un mauvais sujet et une personne dont la compagnie est peu recommandable. Aujourd'hui, il s'emploie affectueusement pour désigner un individu espiègle ou malicieux (En particulier les petits garçons, au même titre que « chenapan », « coquin » et « garnement »).
Coté paillettes, au contraire, le '''strass''' fut inventé par un joailler parisien : Georges Frederic Strass (1770-1773)
Pour ce qui est des villes citons :
* '''angora''' : Initialement on ne parlait pas d'un chat angora mais d'un chat d'Angora, ancien nom de la ville d'Ankara en Turquie
* '''bougie'''. Cire fine de Bougie, ville située dans l'Algérie actuelle, prisée dès le XIV{{e}} siècle car elle ne produisait pas trop de fumée pour un bon éclairage.
* '''corbillard'''. Dès le XVI{{e}} siècle, on appelait « corbeillard » le coche d'eau — peint en noir — qui assurait une navette entre Paris et Corbeil. Le mot pris son sens actuel au XVIII{{e}} siècle. Les bateaux-mouches ont une origine identique : une navette entre Lyon et le quartier de La Mouche.
* '''cordonnier'''. Étymologiquement, c'est celui qui travaille le cuir à la façon des Cordouans (habitants de Cordoue en Espagne) ou, plus probablement, le cuir en provenance de cette ville.
* '''cravate'''. C'est à l'origine le large ruban que les soldats du Royal Croate étaient autorisés à porter par Louis XIV. « Croate » se prononça rapidement « cravate ».
* '''faïence'''. Ce type de poterie fut imaginé dans le région italienne de Faenza (une cinquantaine de kilomètres au sud-est de Bologne).
* '''jeans'''. Vers 1850, Levi-Strauss fabrique des pantalons avec de la toile servant à bâcher les chariots dont il renforce les coutures avec des rivets. Cependant une dizaine d'années plus tard il trouve encore plus résistant : un tissu de coton fabriqué à Nîmes depuis la fin du XVI{{e}} siècle, teint en bleu avec de l'indigo. Ce tissu de Nîmes deviendra ''denim'' d'abord prononcé ''denime''. Comme Nîmes n'est pas un port, c'est de Gênes que le tissu prend la mer pour les États-Unis d'où sa seconde appellation de ''tissu bleu de Gênes'' devenu ''blue-jeans'' puis simplement ''jeans''.
*'''sardine'''. Originellement il s'agit d'un poisson pêché en Sardaigne.
Sans dériver de noms de personnes, des noms communs sont issus de noms de personnages de roman ou de noms commerciaux :
* Le ''Roman de Renart'' fut aussi célèbre au Moyen Âge que les aventures d'Harry Potter de nos jours. Il met en scène un goupil (c'est à dire en ancien français un renard) nommé « Renart » (Du francique ''Reginhart'', signifiant « le fort en conseil ») qui berne Ysengrin le loup, Noble le lion ou encore Tibert le chat. Ce récit eut tellement de succès que le nom de son personnage principal se substitua au mot « goupil », issu du latin « vulpes ». En 1973, Walt Disney Pictures s'inspira de cette œuvre pour ''[[w:Robin des Bois (film, 1973)|Robin des Bois]]''. En 1985, ce roman fut adapté assez librement et « modernisé » dans une série d'animation française intitulée ''[[w:Moi Renart|Moi Renart]]''. En 1919, l'écrivain américain [[w:Johnston McCulley|Johnston McCulley]] publie ''[[w:Le Fléau de Capistrano|Le Fléau de Capistrano]]'' un récit dont le héros a choisi de lutter contre l'injustice en cachant sa véritable identité sous le nom espagnol du renard. (« zorro » Pour désigner le justicier homonyme, les hispanophones disent et écrivent « El Zorro ».)
* La '''syphilis''' (une maladie sexuellement transmissible) doit son nom au berger Syphilus des ''Métamorphoses'' d'Ovide, un des auteurs latins les plus lus au Moyen Âge. (Qui connut d'ailleurs une « renaissance ovidienne ».) Le plus original est que cette maladie, importée du Nouveau Monde, n'existait pas à l'époque antique. C'est un traducteur de Vérone, Girolamo Fracastoro, qui ajouta cet épisode à son modèle en 1530, époque où cette maladie faisait aussi peur que le sida aujourd'hui ; car, les Européens n'ayant jamais été au contact de l'agent infectieux, ils étaient nombreux à en mourir. Selon les endroits, on donnait différents surnoms à la syphilis : « mal italien » (pour les Français), « mal français » (pour les Italiens, les Espagnols, les Russes, les Allemands, les Anglais et les Polonais), « mal espagnol » (pour les Portugais et les Néerlandais), « mal anglais » (pour les Écossais), « rash de Canton » / « ulcère chinois » (pour les Japonais).
Nicolas '''Chauvin''', personnage d'un vaudeville de 1831 (''La Cocarde tricolore'') représentait un soldat de l'Empire un peu bébête au patriotisme quelque peu excessif.
* '''éclair''' La fermeture Éclair est une marque de fermeture à glissière. Cette marque s'étant imposée dans toute l'Europe on parle aussi de « chisura lampa » (même formule) en italien.
* '''frigidaire''' est une marque de réfrigérateur (on parlait initialement d<nowiki>'</nowiki>''armoire réfrigérante'' d'où ''réfrigérateur'')
* '''klaxon''' est le nom du premier fabricant de cet outil.
* '''texto''' est une marque déposée par SFR pour désigner les SMS. (c'est à dire originellement l'élément du ''Short Message Service'' que l'on a francisé en ''Service messager succinct''.)
À Marseille, entre les deux guerres mondiales on n'utilisait pas d'eau de Javel (nom de l'inventeur) mais de la pigeonne, du nom de la marque locale.
On trouve des phénomènes identiques dans toutes les langues. Ainsi, l'italien appelle « montgomery » (Du nom d'un général qui portait ce vêtement avec élégance.) ce que l'anglais nomme « duffle coat ».
== Les abréviations ==
Le fait que certains mots constituent des acronymes reste parfois conscient mais est oublié :
* « apud » [] pour « amine precursor uptake and decarboxylation » (Il s'agit de cellules de la crête neurale qui migrent chez l'embryon et jouent un rôle important dans le système neuro-endocrinien.)
* « cyborg » [1960] pour « cybernetic organism »
* « CEDEX » [1972] pour « courrier d'entreprise à distribution exceptionnelle »
* « CIDEX » [] pour « courrier individuel à distribution exceptionnelle »
* « glare » [] pour « glass laminate aluminium reinforced epoxy » ()
* « laser » [1960] pour « light amplification by stimulated emission of radiations » ()
* « maser » [1954] pour « microwave amplification by stimulated emission of radiations » ()
* « prion » [1982] pour « proteinaceus infective only particule » (particule infectieuse de nature protéique)
* « quasar » [1965] pour « quasi-stellar radio source » (radiosource quasi-stellaire)
* « radar » [1944] pour « radio detecting and ranging » ()
* « sida » [1981] pour « syndrome d'immunodéficience acquise »
* « sonar » [1970] pour « sound navigation and ranging » ()
* « snob » est l'abréviation (s. nob.) de « sine nobilitate » (non noble), mention que portaient les collèges anglais habitués à n'accueillir que les enfants de la noblesse lorsqu'ils s'ouvrirent à la bourgeoisie. Que ce fut vrai ou médisance, on disait que les enfants issus de la bourgeoisie affectaient des comportements habituels à la noblesse et cherchaient à se montrer plus nobles que les nobles.
* « S.O.S. » qui a gardé les points séparateurs est (par rétroacronymie) l'abréviation de « Save our souls » (Sauvez nos âmes). Au temps du code Morse, le ''s'' correspondant à trois brèves et le ''o'' à trois longues, l'envoi d'un S.O.S. se traduisait par la répétition sans fin de trois brèves, trois longues et trois brèves.
* « jeep » constitue l'évolution ultime de la prononciation des initiales « G.P. » pour « General Purpose » (tous usages) caractéristique essentielle voulue par les militaires commanditaires de cette voiture. Le mot est à rapprocher de « G.I. » terme affectueux pour désigner les soldats américains dont les effets portent le terme « G.I. » pour « Government Issue » (propriété de l'État).
Comme tous les mots communs, les abréviations donnent des dérivés : radarisé, snober, snobinard, apudlike
== Les onomatopées ==
Ce mot vient du latin ''onomatopoeia'', issu du grec ancien « ὀνοματοποιία ». Il s'agit de mots qui visent à imiter un son ou à suggérer la chose nommée :
* ''boum'', ''paf'', ''crac''
* ''brrr'' qui remonte au XVIII{{e|e}} siècle
* ''gazouillis''
* ''glouglou''
* ''frou frou'' qui vient de ''frifilis'', mot du XVIII{{e|e}} qui évoque le froissement des tissus
* susurrer
* vrombir
* murmure : initialement le mot désignait un bruit assourdissant.
* ''patte'' serait la traduction du bruit fait par le frottement des poils des pattes d'un animal qui court vite
* ''bat'', le bruit que l'on fait en bâillant est à l'origine du latin ''batare'' qui a donné le français « bâiller ».
* ''slogan'' vient du gaélique écossais ''sluagh-gairm'' (« cri de guerre »).
== Les mots forgés de toutes pièces ==
* '''Ordinateur''' : dans la plupart des pays, on parle de ''computer'' (= qui calcule). En France, lorsque la machine commença à être connue, on parlait ''d'ensemble électronique'' ou encore de ''calculateur électronique'' pour celles qui n'étaient pas dédiées à la gestion mais à des calculs proprement dits. Le principal constructeur de l'époque, pour ne pas dire le seul, IBM souhaita trouver un mot spécifique à sa marque et chargea un linguiste, J. Perret de cette démarche. Ce dernier, en retenant que la machine triait rapidement les données, rechercha un vieux mot de théologie "ordinateur" et le "vendit" à IBM. Il est dit dans la Bible que Dieu est le Grand Ordinateur car Il trie et assemble. La protection de la marque ayant pris fin, le mot est tombé dans le domaine public.
* Récemment les informaticiens ont à nouveau puisé dans le vocabulaire de la théologie en imaginant d'utiliser le mot ''ontologie'' pour désigner la description sémantique d'un domaine c'est à dire l'ensemble des mots du domaine et des relations qui les unissent.
* '''Bikini''' et '''monokini'''. Le créateur du premier bikini — même si sa culotte était bien plus haute et couvrante que la nôtre — savait que ce vêtement allait faire scandale, d'autant qu'aucun mannequin professionnel n'avait accepté de le présenter au public et qu'il avait dû s'adresser pour ce faire à une danseuse de spectacle nu. Tout le monde avait alors à l'esprit le petit atoll de Bikini où eut lieu la première explosion atomique expérimentale en grandeur réelle ; le créateur retint donc de nom à la fois pour la petite surface du vêtement (comme l'atoll) et l'explosion « atomique » qu'il allait créer. Lorsque la mode d'un bronzage quasi intégral fut lancée, on joua à nouveau sur le mot en appelant « monokini » un maillot composé seulement de la pièce du bas comme si le préfixe ''bi-'' de « bikini » caractérisait l'existence de deux parties (à comparer à la plaisanterie éculée : « Elle a attrapé des microbes et même des crobes entiers. »).
* '''français moyen''' date très exactement d'un discours d'un homme politique de l'entre deux guerres, Édouard Herriot, prononcé le 19 août 1924 et désigne en fait ce que les statisticiens appelleraient plutôt le français modal.
D'autres mots sans avoir été inventés ont eu une introduction dans la langue française liée à un phénomène bien identifié. Ainsi :
* '''rescapé'''. Le mot appartient à un dialecte wallon. En 1906, la France connut une des plus grandes tragédies industrielles, l'explosion de la mine de Courrières qui fit près de 1100 morts. Des mineurs belges étaient venus aider au sauvetage de leurs camarades français bloqués depuis plusieurs jours dans un puits à la suite d'un éboulement. Interrogés par un journaliste, ils parlèrent des « rescapés ». Ce mot fut repris par l'ensemble de la presse et introduit du jour au lendemain dans le français standard qui en généralisa vite le sens.
* '''côté cour''' et '''côté jardin'''. Cette expression des gens de théâtre est une première manière de politiquement correct (sous peine de mort). Sous l'Ancien Régime français, le théâtre royal comportait deux loges, l'une pour le roi et l'autre pour la reine. La mise en scène faisait ainsi naturellement référence au côté de la reine ou au côté du roi. Avec la Révolution française, un tel référentiel pouvait valoir un aller immédiat pour l'échafaud. Une des loges était située du côté d'une cour et l'autre du côté d'un jardin, d'où la substitution.
== Références ==
=== Sources ===
<references/>
=== Bibliographie ===
* ''TLFi, Le Trésor de la langue française informatisé'', 1971–1994 [https://www.cnrtl.fr/definition/ → consulter cet ouvrage]
* {{w|Alain Rey}}, ''Dictionnaire historique de la langue française'', Dictionnaires Le Robert, Paris, 2019
[[Catégorie:Étymologie de la langue française (livre)|Origines du vocabulaire]]
1efyk05cwuj466bpvcty27nbww3122z
682391
682390
2022-07-25T11:26:10Z
Dim Blob
109914
/* Les emprunts à l'allemand */
wikitext
text/x-wiki
{{Étymologie de la langue française/Navigation}}
== Les mots d'origine latine ==
=== Remarques préliminaires sur l'évolution de la prononciation ===
Il convient de souligner l'importance du facteur phonétique dans l'évolution des mots. Par exemple, ''oie'' vient du latin populaire ''auca'' dérivé du latin classique ''avis'' (« oiseau ») que l'on retrouve dans ''aviculture'' (« élevage des oiseaux ») ou ''grippe aviaire'' (« transmise par des oiseaux »).
Pour comprendre les évolutions phonétiques, il faut garder à l'esprit :
* Qu'elles se sont déroulées sur de nombreuses générations. En comptant qu'une génération « vaut » vingt-cinq ans, près de cinquante générations se sont succédé entre le sac de Rome en 410 et ''Le Cid'' de Pierre Corneille, où nous constatons que nous ne prononçons pas exactement comme notre grand-mère (génération G-2).
* Que jusqu'au XX{{e|e}} siècle, il n'existait ni radio ni télévision et donc aucune norme nationale « palpable » en matière de prononciation. C'est la radio qui a facilité une prononciation homogène. Pendant la Première Guerre mondiale, des agrégés d'allemand faits prisonniers furent fusillés pour avoir refusé de servir d'interprètes entre des officiers du sud et du nord de l'Allemagne qui ne se comprenaient pas très bien. Dans les années 1950 et 1960, en Angleterre, il existait des offres d'emploi exigeant des candidats qu'ils eussent l'[[wikt:accent|accent]] de la BBC (Abréviation de ''British Broadcasting Corporation'', signifiant « Corporation britannique de radiodiffusion »), la radio nationale officielle britannique.
* Que la conjonction de ces deux phénomènes fait qu'encore au XVII{{e|e}} et XVIII{{e|e}} siècles, à la Cour, le son [wa] se prononçait [wɛ] (d'où [lə rwɛ] pour « le roi », [lə bwɛ] pour « le bois ») et que l'on ne prononçait aucune lettre finale ([lə sɛr] pour « le cerf », [nuri] pour « nourrir ») alors que le peuple parisien prononçait [rwa], [bwa], [sɛr]. À la Cour comme à la ville, on roulait les ''r''. Encore à l'époque de Victor Hugo, lorsque l'on déclamait : « le bruit sourd des canons roulants vers Austerlitz », l'auditoire entendait un véritable grondement.
* Que jusque dans les années 1950, la sonorisation était rare et imparfaite, ce qui imposait de parler en articulant, en découpant bien les syllabes sans « manger » les finales rétablies en partie au début du XIX{{e}} siècle. Imaginez un cours sans micro dans un amphithéâtre de la Sorbonne, un sermon sans micro à Notre-Dame de Paris, une plaidoirie sans micro dans la grande salle d'audience d'un tribunal aujourd'hui classé monument historique, un discours dans l'hémicycle du Sénat. Des générations de professeurs, de prêtres, d'avocats ou d'hommes politiques ont pourtant dû le faire.
Pour le commun des mortels, se faire entendre dans une foire où tout le monde criait ne devait pas être facile, pas plus que dans la salle de garde d'un château (Essayez par exemple au Palais des Papes à Avignon un jour d'affluence : elle correspond à la salle d'accueil).
* Qu'il y a toujours eu des modes qui laissent des traces. Au XVI{{e|e}} siècle, il était de bon ton de prononcer [z] le ''r'' compris entre deux voyelles. « Paris » se prononçait [pazi], et « oratoire » [ozatwar] d'où les noms de ville en ''-Ozoir'' ou ''-Osoir'' lorsque la commune comptait une chapelle. Sous Napoléon I<sup>er</sup>, et peut-être parce que Joséphine de Beauharnais éprouvait des difficultés à les prononcer, il devient à la mode d'élider les ''r'' d'où les ''inc'oyables'' et les ''mé'veilleuses''. Entre les deux, les Précieuses — qui étaient loin d'être nécessairement ridicules — ont fait la chasse à tous les gestes disgracieux ; on leur doit les mousses inventées par leurs cuisiniers à qui elles avaient demandé des plats qui n'exigeassent pas des mouvements musculaires trop marqués lors de la mastication. Cette volonté a sûrement exercé une influence sur leur prononciation.
* Que, plus généralement, les sons des langues indo-européennes s'articulent en un système qui permet de distinguer des labiales, des dentales, des palatales et que le passage de l'une à l'autre est assez simple ce qui explique, par exemple, qu'au ''qu'' latin corresponde ''v'' ou ''f'' dans les langues plus nordiques comme « quatre » (français) / « quattro » (italien) et « vier » (allemand), « voor » (flamand) et « four » (anglais) ou encore « qui » (français) / « chi » (italien) et « who » (anglais) / « wer » (allemand) ; de même, on trouve une correspondance entre le [d] et le [t] (« dent » au Sud contre « tooth » (même sens) au Nord, « dies » (« jour ») au Sud contre « Tag » (même sens) au Nord).
=== Les doublets ===
Au fil du temps, les mots latins ont évolué phonétiquement et sémantiquement en français. Par exemple, ''captivum'' a donné ''chétif'' avec le sens que nous lui connaissons, un captif étant souvent chétif du fait des mauvaises conditions de sa détention.
Lorsque, à partir du XIV{{e|e}} siècle, on se mit à traduire beaucoup de textes latins en français parce que le latin commençait à [[w:langue morte|disparaître]], alors même que le contenu des textes latins conquérait l'intérêt des lecteurs français, on traduisit ''captivum'' par ''captif'' pour désigner le prisonnier en tant que tel. On dit ainsi que ''captif'' et ''chétif'' sont des [[w:Doublet lexical|doublets]]. D'une façon générale, les mots de formation populaire se référent au concret et les mots de formation savante sont plus abstraits ; mais il existe des exceptions.
Exemples :
* ''ancêtre'' (milieu du XI{{e|e}} siècle) ~ ''antécesseur'' (XIV{{e|e}} siècle) ← ''antecessor''
* ''arracher'' (XII{{e|e}} siècle) ~ ''éradiquer'' (XIV{{e|e}} siècle) ← ''eradicare''
* ''Auvray'' ({{e|e}} siècle) ~ ''Alfred'' ({{e|e}} siècle) ← ''Alv(e)redus''
* ''banquier'' (XII{{e|e}} siècle) ~ ''bancaire'' (XIX{{e|e}} siècle) ← ''bancarius''
* ''benêt'' (XVI{{e|e}} siècle) ~ ''béni'' ({{e|e}} siècle) ← ''benedictus''
* ''béton'' (XII{{e|e}} siècle) ~ ''bitume'' (XII{{e|e}} siècle) ← ''bitumen''
* ''biche'' (XII{{e|e}} siècle) ~ ''bête'' (XII{{e|e}} siècle) ← ''bestia''
* ''Benoît'' ({{e|e}} siècle) ~ ''Bénédict'' ({{e|e}} siècle) ← ''Benedictus''
* ''carré'' (XII{{e|e}} siècle) ~ ''quadrat'' (XVII{{e|e}} siècle, via l'[[italien]] ''quadrato'') ← ''quadratum''
* ''chaîne'' (XII{{e|e}} siècle) ~ ''catène'' (XVIII{{e|e}} siècle) ← ''catena''
* ''chaire'' (XII{{e|e}} siècle) ~ ''cathèdre'' (XIII{{e|e}} siècle) ← ''cathedra'' — N.B. : On a en réalité affaire à un triplet lexical, puisque le mot ''chaise'' n'est lui-même qu'une variante dialectale de ''chaire''.
* ''chance'' (XII{{e}} siècle) ~ ''cadence'' (XVI{{e}} siècle, via l'[[italien]] ''cadenza'') ← ''cadentia''
* ''chanoine'' (XII{{e|e}} siècle) ~ ''canonique'' (XIII{{e|e}} siècle) ← ''canonicus''
* ''chape'' (XI{{e|e}} siècle) ~ ''cape'' (XVII{{e|e}} siècle) ← ''cappa''
* ''chasser'' (fin du XII{{e}} siècle) ~ ''capter'' (XV{{e|e}} siècle) ← ''captare'' — N.B. : ''Captare'' s'est vraisemblablement altéré en ''captiare'' très tôt en bas-latin avant de donner ''chacier'' en ancien français.
* ''chaume'' (fin du XII{{e|e}} siècle) ~ ''calame'' (XVI{{e|e}} siècle) ← ''calamus''
* ''cheptel'' (XII{{e|e}} siècle) ~ ''capital'' (XIII{{e|e}} siècle) ← ''capitalis''
* ''chétif'' (XI{{e|e}} siècle) ~ ''captif'' (XV{{e|e}} siècle) ← ''captivus''
* ''chose'' (IV{{e}} siècle) ~ ''cause'' (milieu du XII{{e|e}} siècle) ← ''causa''
* ''colère'' (XIII{{e}} siècle) ~ ''choléra'' (XVI{{e|e}} siècle) ← ''cholera'' — N.B. ''Cholera'' est devenu ''colera'' en bas latin.
* ''concierge'' (XII{{e|e}} siècle) ~ ''conserve'' (XIV{{e|e}} siècle) ← ''conservus''
* ''confiance'' (XIII{{e}} siècle) ~ ''confidence'' (XIV{{e|e}} siècle) ← ''confidentia''
* ''copain'' (XVIII{{e|e}} siècle) ~ ''compagnon'' (XII{{e|e}} siècle) ← ''companio''
* ''couple'' (XII{{e}} siècle) ~ ''copule'' (XV{{e|e}} siècle) ← ''copula''
* ''cré{{--}}tin'' (XVIII{{e}} siècle) ~ ''chrétien'' (IX{{e|e}} siècle) ← ''christianus''
* ''déchéance'' (XII{{e}} siècle) ~ ''décadence'' (XVI{{e|e}} siècle) ← ''decadentia''
* ''dépit'' (XII{{e|e}} siècle) ~ ''despect'' ({{e|e}} siècle) ← ''despectus''
* ''dévoué'' ({{e|e}} siècle) ~ ''dévot'' (fin du XII{{e|e}} siècle) ← ''devotus''
* ''employer'' (début du XII{{e}} siècle) ~ ''impliquer'' (XIV{{e|e}} siècle) ← ''implicare''
* ''enchantement'' (XII{{e}} siècle) ~ ''incantation'' (XIII{{e}} siècle) ← ''incantatio''
* ''enchanteur'' / ''enchanteresse'' (XII{{e|e}} siècle) ~ ''incantateur'' / ''incantatrice'' (XV{{e|e}} siècle) ← ''incantator'' / ''incantatrix''
* ''entier (XI{{e|e}} siècle) ~ ''intègre'' ({{e|e}} siècle) ← ''integer''
* ''exploiter'' (début du XII{{e|e}} siècle) ~ ''expliciter'' (XIX{{e|e}} siècle) ← ''explicitare'' — N.B. : L'ancien français ''espleitier'' / ''esploitier'' a été refait ''exploiter'' au XVI{{e|e}} siècle.
* ''écluse'' (XI{{e}} siècle) ~ ''exclue'' (XIII{{e|e}} siècle) ← ''exclusa'', participe passé féminin du verbe ''excludere''
* ''écolier'' (XIII{{e}} siècle) ~ ''scolaire'' (XIX{{e|e}} siècle) ← ''scholaris''
* ''écouter'' (X{{e}} siècle) ~ ''ausculter'' (XVI{{e|e}} siècle) ← ''auscultare''
* ''écrit'' (XII{{e}} siècle) ~ ''script'' (XX{{e|e}} siècle) ← ''scriptum''
* ''étroit'' (XII{{e|e}} siècle) ~ ''strict'' (XVIII{{e|e}} siècle) ← ''strictus''
* ''éveux'' ({{e|e}} siècle) ~ ''aqueux'' (XVI{{e|e}} siècle) ← ''aquosus''
* ''évêché'' (X{{e|e}} siècle) ~ ''épiscopat'' (XVII{{e}} siècle) ← ''episcopatus''
* ''évier'' (XIII{{e|e}} siècle) ~ ''aquarium'' (XIX{{e}} siècle) ← ''aquarium''
* ''Edwige'' ({{e}} siècle) ~ ''Havoise'' ({{e}} siècle) ← ''Hedvigis''
* ''façon'' (XII{{e|e}} siècle) ~ ''faction'' (XIV{{e|e}} siècle) ← ''factio''
* ''faix'' (XII{{e|e}} siècle) ~ ''fasce'' (1<sup>re</sup> moitié du XII{{e|e}} siècle) ← ''fascis''
* ''fantôme'' (XII{{e|e}} siècle) ~ ''fantasme'' (XIII{{e|e}} siècle) ← ''phantasma''
* ''ferme'' (XII{{e|e}} siècle) ~ ''firme'' (XIX{{e|e}} siècle) ← ''firma''
* ''féal'' (XII{{e|e}} siècle) ~ ''fidèle'' (X{{e|e}} siècle, réintroduit au XVI{{e}} siècle) ← ''fidelis''
* ''fétiche'' (XVII{{e|e}} siècle) ~ ''factice'' (XVI{{e|e}} siècle) ← ''facticius''
* ''forge'' (XII{{e|e}} siècle) ~ ''fabrique'' (XIV{{e}} siècle) ← ''fabrica''
* ''frêle'' (XI{{e|e}} siècle) ~ ''fragile'' (XIV{{e}} siècle) ← ''fragilis''
* ''fuir'' (IX{{e|e}} siècle) ~ ''fuguer'' (XX{{e}} siècle) ← ''fugere'' — N.B. : ''Fugere'' a d'abord changé de conjugaison en bas latin (''fugire'') avant d'aboutir à « fuir ».
* ''gaine'' (XIII{{e|e}} siècle) ~ ''vagin'' (XVII{{e|e}} siècle) ← ''vagina'' — N.B. : ''Vagina'' donnera aussi, via l'espagnol ''vainilla'', le terme « vanille ». Ce dernier désigne à l'origine la ''petite'' gousse du vanillier, d'où le suffixe diminutif ''-illa'' (''-ille'').
* ''grêle'' (XII{{e|e}} siècle) ~ ''gracile'' (XVI{{e|e}} siècle) ← ''gracilis''
* ''Geoffroy'' ({{e|e}} siècle) ~ ''Godefroy'' ({{e|e}} siècle) ← ''Godefridus''
* ''Gilles'' ({{e|e}} siècle) ~ ''Égide'' ({{e|e}} siècle) ← ''Aegidius''
* ''hôtel'' (XI{{e|e}} siècle) ~ ''hôpital'' (XII{{e|e}} siècle) ← ''hospitalia''
* ''luette'' (fin du XIII{{e|e}} siècle) ~ ''uvule'' (XIII{{e|e}} siècle) ← ''uvula''
* ''Louis'' ({{e|e}} siècle) ~ ''Ludovic'' ({{e}} siècle) ← ''Ludovicus''
* ''mâcher'' (XII{{e|e}} siècle) ~ ''mastiquer'' (XVI{{e|e}} siècle) ← ''masticare''
* ''ménestrel'' (XI{{e|e}} siècle) ~ ''ministériel'' (XVI{{e|e}} siècle) ← ''ministerialis''
* ''métier'' (XI{{e|e}} siècle) ~ ''ministère'' (XIII{{e|e}} siècle) ← ''ministerium''
* ''moutier'' (XI{{e|e}} siècle) ~ ''monastère'' (XIII{{e|e}} siècle) ← ''monasterium''
* ''moyen'' (XIII{{e|e}} siècle) ~ ''médian'' (XVI{{e}} siècle) ← ''medianus''
* ''mûr'' (XII{{e|e}} siècle) ~ ''mature'' (XX{{e|e}} siècle, anglicisme) ← ''maturus''
* ''Maud'' ({{e|e}} siècle) ~ ''Mathilde'' ({{e|e}} siècle) ← ''Mathilda''
* ''nourrisson'' (XII{{e|e}} siècle) ~ ''nutrition'' (XIV{{e|e}} siècle) ← ''nutritio''
* ''Noël'' (XII{{e|e}} siècle) ~ ''natal'' (XVI{{e|e}} siècle) ← ''natalis''
* ''œuvre'' (XII{{e|e}} siècle) ~ ''opéra'' (XVII{{e|e}} siècle, via l'[[italien]] ''opera'', de même sens) ← ''opera'', pluriel d<nowiki>'</nowiki>''opus''
* ''orfraie'' (XIV{{e|e}} siècle) ~ ''ossifrage'' (XVI{{e|e}} siècle) ← ''ossifraga''
* ''oreiller'' (XII{{e|e}} siècle) ~ ''auriculaire'' (XVI{{e|e}} siècle) ← ''auricularis''
* ''orteil'' (XII{{e|e}} siècle) ~ ''article'' (XII{{e|e}} siècle) ← ''articulus''
* ''paladin'' (XVI{{e|e}} siècle, via l'italien ''paladino'', XIII{{e}} siècle) ~ ''palatin'' (XIII{{e|e}} siècle) ← ''palatinus''
* ''parvis'' (XIII{{e|e}} siècle) ~ ''paradis'' (fin du X{{e|e}} siècle) ← ''paradisus''
* ''parole'' (XI{{e|e}} siècle) ~ ''parabole'' (XIII{{e|e}} siècle) ← ''parabola''
* ''pèlerin'' (XI{{e|e}} siècle) ~ ''pérégrin'' (1<sup>re</sup> moitié du XII{{e|e}} siècle) ← ''peregrinus''
* ''pitié'' (XI{{e|e}} siècle) ~ ''piété'' (fin du X{{e|e}} siècle) ← ''pietas''
* ''poison'' (XII{{e|e}} siècle) ~ ''potion'' (XVI{{e|e}} siècle) ← ''potio''
* ''Péronnelle'' ({{e|e}} siècle) ~ ''Pétronille'' ({{e|e}} siècle) ← '' Petronilla''
* ''raison'' (X{{e}} siècle) ~ ''ration'' (XIII{{e|e}} siècle) ← ''ratio''
* ''renard'' ({{e|e}} siècle) ~ ''Renart'' ({{e|e}} siècle) ← ''Renartus''
* ''répit'' (XII{{e|e}} siècle) ~ ''respect'' (XIII{{e|e}} siècle) ← ''respectus''
* ''rouer'' (XII{{e|e}} siècle) ~ ''rôder'' (XV{{e|e}} siècle via l'ancien occitan ''rodar'', « vagabonder ») ← ''rotare''
* ''royal'' (IX{{e}} siècle) ~ ''régalien'' (XVII{{e|e}} siècle) ← ''regalis''
* ''Renaud'' ({{e|e}} siècle) ~ ''Réginald'' ({{e|e}} siècle) ← ''Reginaldus''
* ''sanglier'' (fin du XI{{e|e}} siècle) ~ ''singulier'' (fin du XIII{{e|e}} siècle) ← ''singularis'' — N.B. : ''Sanglier'' est en réalité tiré de l'expression ''porc sanglier'', c'est-à-dire ''cochon solitaire''.
* ''sauveur'' ({{e|e}} siècle) ~ ''sauveteur'' ({{e|e}} siècle) ← ''salvator''
* ''seing'' (XII{{e|e}} siècle) ~ ''signe'' (2<sup>de</sup> moitié du X{{e|e}} siècle) ← ''signum''
* ''serment'' (IX{{e|e}} siècle) ~ ''sacrement'' (XII{{e|e}} siècle) ← ''sacramentum''
* ''taverne'' (XII{{e|e}} siècle) ~ ''tabernacle'' (XIV{{e|e}} siècle) ← ''taberna'' — N.B. : ''Tabernacle'' vient de ''tabernaculum'', diminutif de ''taberna''.
* ''tâter'' (XII{{e|e}} siècle) ~ ''taxer'' (XIII{{e|e}} siècle) ← ''taxare''
* ''thiois'' ({{e|e}} siècle) ~ ''tudesque'' (XII{{e|e}} siècle) ← ''theodiscus''
* ''traiteur'' (XVII{{e|e}} siècle) ~ ''tracteur'' (XVIII{{e}} siècle) ← ''tractor''
* ''Thierry'' ({{e|e}} siècle) ~ ''Théodoric'' ({{e|e}} siècle) ← ''Theodoricus''
* ''Tiphaine'' ({{e|e}} siècle) ~ ''Théophanie'' ({{e|e}} siècle) ← ''Theophania''
* ''veiller'' (XII{{e|e}} siècle) ~ ''vigiler'' ({{e|e}} siècle) ← ''vigilare''
* ''verge'' (XII{{e|e}} siècle) ~ ''vergue'' (XII{{e|e}} siècle) ← ''virga''
* ''vergogne'' (XIII{{e|e}} siècle) ~ ''vérécondie'' (XVI{{e|e}} siècle) ← ''verecundia''
* ''vouivre'' (XII{{e|e}} siècle) ~ ''vipère'' (XIII{{e|e}} siècle) ← ''vipera''
Il existe également des doublets constitués de deux termes populaires. C'est par exemple le cas de :
* ''chaînon'' (XII{{e|e}} siècle) et ''chignon'' (fin du XII{{e|e}} siècle) qui proviennent chacun du bas latin ''catenion''.
* ''chaire'' (début du XII{{e|e}} siècle) et ''chaise'' (début du XV{{e|e}} siècle) qui proviennent chacun du latin ''cathedra''
* ''gourde'' (XIII{{e|e}} siècle) et ''courge'' (XIV{{e|e}} siècle) qui proviennent chacun du latin classique ''cucurbita''.
'''Note :''' Les datations correspondent à la première attestation écrite d'un mot, mais ne sont pas forcément représentatives de sa première utilisation orale.
=== Les fusions ===
On notera aussi les fusions dans lesquelles deux mots fusionnent en un seul :
* '''affaire''' (initialement ce qu'il y a ''à faire'').
* '''alarme''' (initialement ''all'arme'', « aux armes »). L'italien actuel a conservé la forme originelle ''all'arme''.
* '''antan''' (initialement *''ant(e) anu'' en latin vulgaire, du syntagme latin ''ante annum'' « l'année dernière »).
* '''aujourd'hui''' (composé de ''au jour de'' et de ''hui'', du latin ''hodie'', (« en ce jour »), il signifie donc « au jour présent »). De ce fait, ''au jour d'aujourd'hui'' est un splendide pléonasme.
* '''bonhomme''' (initialement un ''bon homme'', c'est-à-dire un brave homme, un homme cultivé).
* '''gendarmes''' (initialement ''gens d'armes'').
* '''malgré''' (initialement ''mal gré'', « de mauvais gré »).
* '''naguère''' (initialement il ''n'y a guère'' de temps).
* '''parce que''' (initialement ''par ce'' que ce mot, etc.).
* '''voilà''' (initialement ''vois là'').
== Les emprunts ==
'''Note :''' les astérisques (*) indiquent une forme reconstruite, c'est-à-dire non attestée à l'écrit mais supposée par plusieurs autres formes. C'est par exemple le cas de l'{{w|indo-européen commun}}, qui est une langue hypothétique (puisque non attestée à l'écrit) dont découlent, entres autres, les langues indo-iraniennes, les langues celtiques, germaniques, helléniques, italiques, etc.
=== Les emprunts au francique ===
Les mercenaires et travailleurs ruraux avaient déjà introduit quelques termes dès les années 250 après J.-C.<ref name="Larousse"></ref>, mais ce sont surtout les {{w|Invasions barbares|Grandes invasions}} qui ont introduit le vocabulaire de la guerre et du droit salique<ref name="Larousse"></ref>, très différent du droit romain. Par la suite, les vainqueurs ont adopté la langue de l'ex-Empire romain comme les Romains avaient eux-mêmes adopté la civilisation des Grecs, qu'ils avaient dominés militairement (L'élite romaine parlait le grec ancien ; lorsqu'il fut poignardé, Jules César s'exprima en grec ancien en reconnaissant Brutus parmi les conspirateurs ; il ne dit pas : « ''Tu quoque mi fili'' » mais « Καὶ σύ τέκνον » (kaí sú téknon). Parmi les mots d'origine francique, citons :
* '''bordel''' qui désignait une grosse planche. Comment est-on passé du sens de « planche » à celui de « désordre » ? À partir de ces planches, on pouvait construire de pauvres maisons rudimentaires et ce fut le premier sens (le composé à partir du composant). Cette cabane de planches en « bord'eau » ou « bord'elle » (la mer, la rivière) servant de « guinguette », etc.
:: Avec le temps, ces maisons rudimentaires n'offrirent plus le confort minimal que les gens attendaient d'un foyer et seules les plus pauvres continuaient à abriter des prostituées. Le mot se spécialisa dans le sens de « maison de passe », « maison de tolérance », et autres locutions employées jusqu'alors.
:: En latin, la maison de prostitution est appelée « lupanar ». Ce nom dérive du mot « lupa » (louve) qui désigne métaphoriquement une prostituée. L'image de la « louve » prenant soin de Romulus et Rémus ne doit donc pas être interprétée selon le sens premier du terme.
:: Les clients de ces établissements se livrant à des débordements en tout genre, le mot en vint à désigner l'état de désordre qui en résultait.
:: En anglais, la formule correspondante est « what a mess ». « mess » vient du latin « mensa », désignant la table. Le mess des officiers est l'endroit où il y a des tables pour manger. La fraternité militaire donnant parfois lieu à des excès de beuverie, le mess se trouve alors dans un état qui sert de référence en matière de désordre. Le même mot latin donne aussi « manséatique » qui désigne des montagnes aplanies comme une table (par exemple le massif ibérique).
:: En italien, la formule correspondante est « che casino » où ''casino'' a le même sens qu'en français, mais y est perçu comme un lieu de débordement et surtout très bruyant.
* '''chambellan''' de *''kamerling''.
* '''danser''' de *''dintjan'', ou de *''dansôn'' (« tirer », « traîner »).
* '''échanson''' de *''skankjo'' (même sens).
* '''épier''' de *''spehôn'' (« observer avec attention »).
* '''fauteuil''' de *''faldistôl'' (« chaise pliable »).
* '''frapper''', peut-être de *''hrappan'' (« arracher »).
* '''garou''' de *''werwolf'' (« homme-loup ») (« garou » signifiant déjà « homme-loup », il était erroné d'ajouter « loup » à ce terme).
* '''gâcher''' de *''waskôn'' (« laver »).
* '''gâteau''' de *''wastil'' (« nourriture »).
* '''grès''' de *''greot'' (« gravier, sable »).
* '''grêler''' de *''grisilôn'', de même sens.
* '''gris''' de *''grîs'', (néerlandais : ''grijs'') de même sens ; de ce mot dérive ''grisette'', « étoffe commune de teinte grise » puis par métonymie « jeune fille d'humble condition ».
* '''guerre''' : du mot francique *''werra'' (« querelle ») qui donne ''war'' et ''Wehr'' respectivement en anglais et allemand modernes. En latin, la guerre se disait ''bellum'' que l'on retrouve dans ''belliqueux''. ''Beau'' se dit ''pulcher'' en latin classique, mais une forme populaire, ''bellus'', se développa, générant une confusion entre ''bellus'' (« beau ») et ''bellum'' (« guerre ») qui favorisa l'adoption du mot francique au IX{{e}} siècle.
* '''Guillaume''' de *''Willahelm'' (« volonté de protection »).
* '''haïr''' de *''hatjan'', que l'on retrouve en néerlandais en tant que ''haten'', dans l'anglais ''to hate'', l'allemand ''hassen''. Le terme francique est issu d'une racine indo-européenne *''keh<sub>₂</sub>d-''<ref>Guus Kroonen, ''Etymological Dictionary of Proto-Germanic''</ref>.
* '''hargne''' de *''harmjam'' (« insulter »).
* '''haubert''' (cotte de maille) de *''halsberg'' (proprement « ce qui protège le cou »), composé de *''hals'' (« cou ») et *''bergan'' (« mettre en sûreté, protéger »). En allemand moderne, on retrouve ''Hals'' pour le cou, mais non en anglais où ''neck'' vient d'un radical *''hnakkô''. En néerlandais, on les retrouve tous les deux : ''hals'' et ''nek''.
* '''heaume''' de *''helm'' (« casque ») d'où l'allemand ''Helm'', l'anglais ''helm''.
* '''honnir''' de *''haunjan'' (« insulter »). On le retrouve dans ''honen'' (« bafouer ») en néerlandais, ou dans ''höhnen'' (« bafouer ») en allemand.
* '''honte''' de *''haunita''. Le latin disait ''pudor'', qui a donné le français ''pudeur''. Cf. ''honnir''.
* '''houx''' de *''hulis'' (« houx »). Ce radical a donné ''hulis'', ''huls'' en ancien haut allemand, ''huls'' en moyen néerlandais, ''hulst'' en néerlandais.
* '''laid''' de *''laiþ'' (« désagréable », « contrariant », « rebutant »). En néerlandais, on retrouve ''leed'' pour « désagréable », mais aussi ''lelijk'' pour « laid ». On le retrouve aussi dans l'allemand ''leid'' et ''Leid''
* '''loge''' de *''laubja'' (« hutte de feuillage »), qui donne l'allemand ''Laube''.
* '''maçon''' de *''makjo'', lui-même dérivé de *''makôn'' (« faire »). On retrouve en néerlandais le verbe ''maken'' (« faire », « construire »), en anglais ''to make'', en allemand ''machen''.
* '''malle''' de *''malha'' (« sacoche »), d'où le moyen néerlandais ''male'' (« sac de voyage », « coffre »), le néerlandais ''maal'' (« sac », « sacoche », « coffre »).
* '''marais''' de *''marisk''. En moyen néerlandais, on retrouve ''mersch'', ''maersch'' (« pré », « terrain marrécageux »). En néerlandais moderne, ''moeras'' (« marais, marécage »). L'anglais ''marsh'' et l'allemand ''Marsch'' sont également issus de la racine.
* '''maréchal''' de *''marhskalk'' (« [[wikt:palefrenier|palefrenier]] »).
* '''moue''' de *''mauwa'' (même sens), source du moyen néerlandais ''mouwe''.
* '''rang''' de *''hring'' (« anneau », « cercle »). De ce terme sont issus ''ring'' (« anneau ») en néerlandais et en anglais, ''Ring'' en allemand.
* '''riche''' de *''riki'' (« puissant »), que l'on retrouve dans le vieil anglais ''rīce'' (d'où l'anglais moderne ''rich''), le moyen néerlandais ''rijcke'', ''rijck'' (d'où le néerlandais moderne ''rijk''), l'ancien haut allemand ''rîchi'', ''rîche'' (d'où l'allemand ''reich''), etc. En ancien français, le mot a d'abord signifié « puissant » avant d'acquérir le sens moderne.
* '''renard''' de *''Reginhart'' ; a remplacé « goupil » dans le vocabulaire courant suite au succès du ''{{w|Roman de Renart}}''.
* '''sénéchal''' de *''siniskalk'' (« serviteur doyen »).
* '''trêve''' de *''treuwa'' (« contrat », « convention »). En néerlandais, on le retrouve dans ''trouw'' (« fidèle »), ''Treue'' en allemand (« fidélité »).
* '''trotter''' de *''trottôn'' (« courir »).
=== Les emprunts au moyen néerlandais ===
Le moyen néerlandais a beaucoup apporté à la langue française, notamment — mais non exclusivement — dans le vocabulaire maritime<ref name="Larousse"></ref>. Cependant, celui-ci a diminué au XVII{{e}} siècle, laissant place à l'anglais<ref name="Larousse"></ref>. Parmi les mots empruntés, citons :
* '''bâbord''' de ''bakboord'', composé de ''bak'' (« dos ») et de ''boord'' (« bord »). À l'époque, le gouvernail était constitué d'un {{w|aviron de gouverne}} fixé à l'arrière droit (tribord), le barreur trouvait ainsi le dos au côté gauche (bâbord)<ref name="Robert">{{w|Alain Rey}}, ''Dictionnaire historique de la langue française'', Dictionnaires Le Robert, Paris, 1992</ref>. '''Tribord''' vient, lui, de ''stierboord'', une variante de ''stuurboord'' composé de ''stuur'' (« gouvernail »), et de ''boord'', littéralement « côté du gouvernail », puisqu'il se trouvait du côté droit<ref>« tribord », dans ''TLFi, Le Trésor de la langue française informatisé'', 1971–1994 [https://www.cnrtl.fr/etymologie/tribord → consulter cet ouvrage]</ref>.
* '''bière''' est soit emprunté au moyen haut allemand ''bier'', soit au moyen néerlandais ''bier''.
* '''botte''' (Au sens de « assemblage de plusieurs choses liées ensemble ») vient de ''bote'' (« touffe de lin »), rattaché au verbe ''boten'' (« frapper »).
* '''bouquin''' d'un diminutif de ''boec'' (« livre »), apparenté à ''book'' en anglais et ''Buch'' en allemand. Compte tenu du fait que les formes attestées (''boecskijn'', ''boekelkij'') rendent difficilement compte du français ''bouquin'', on a supposé une forme non attestée *''boeckijn''.
* '''brique''' de ''bricke'', ''brike''. À l'origine, il y a la racine francique *''brëkan'' (« casser », « briser ») que l'on retrouve dans le néerlandais ''breken'' (« casser »), l'anglais ''to break'' (« casser »), l'allemand ''brechen'' (« briser »). '''Brioche''' est dérivé de ''brier'' (forme normande de ''broyer'', au sens de « pétrir la pâte ») avec le suffixe ''-oche''. '''Broyer''' est issu du francique *''brëkan'', et signifie à l'origine « réduire en morceaux, en poudre, en pâte ». Au XIII{{e}} siècle, ''brique'' avait en français le sens de « petit morceau », « miette »<ref name="Robert"></ref> ; passé le XVI{{e|e}} siècle, ce sens a disparu, sauf dans une expression populaire qui a survécu jusqu'à la fin du XIX{{e}} siècle : « bouffer des briques » (« n'avoir à manger que des miettes, c'est-à-dire rien »), où l'idée de dureté et de caractère indigeste de l'aliment comparable à de la brique de construction s'ajoute à la notion de pénurie. La '''brique à pont''', c'est une pierre de grès fin utilisée par les marins pour '''briquer''' leur navire, d'où le sens familier de ''briquer'' « frotter dynamiquement, nettoyer »<ref name="Robert"></ref>.
* '''digue''' de ''dijc'', d'où la forme moderne ''dijk''.
* '''drogue''' (« substance psychotrope ») vient peut-être de ''droge'' (« produits séchés », « drogue »), substantivation de ''droge vate'' (« tonneaux secs »).
* '''étape''' de ''stapel'' (« entrepôt »).
* '''mannequin''' (« figurine ») de ''mannekijn'' (« petit homme »). Le sens de « panier » est emprunté au moyen néerlandais ''mannekijn'' (« petit panier »), diminutif de ''manne'' (« panier »).
* '''pamplemousse''' est emprunté au néerlandais moderne ''pompelmoes'' (avec ''moes'' prononcé \mus\), dont l'étymologie est discutée : soit composé de ''pompel'' (« gros ») (ou de ''pompoen'', « citrouille ») et de ''limoes'' (« citron »), soit lui-même emprunté au tamoul பம்பரமாசு (pamparamāsu) (« [[wikt:bigarade|bigarade]] »). À l'origine, ''pamplemousse'' désigne ''{{w|Citrus maxima}}'', mais s'applique aujourd'hui souvent à ''{{w|Citrus paradisi}}''.
{| class="wikitable"
|+ '''Appellations des deux fruits en France et dans quelques pays francophones'''
!
! {{nobr|''Citrus maxima''}}
! {{nobr|''Citrus'' ''paradisi''}}
|-
! colspan="3" | français, usage en botanique et horticulture
|-
!français
|'''pamplemousse'''
|pomélo
|--
! colspan="3" | français, usage commercial et courant
|-
!
|[[image:Citrus grandis - Honey White.jpg|70px]]
|[[image:Citrus paradisi (Grapefruit, pink) white bg.jpg|70px]]
|-
!Belgique
|pomelo
|'''pamplemousse'''
|-
!Canada
|'''pamplemousse'''
|pomélo <small>(ou pomelo)</small>, grapefruit <small>(anglicisme)</small> ou '''pamplemousse'''
|-
!France
|'''pamplemousse'''
|'''pamplemousse''', pomélo <small>''(Moins courant)''</small>
|-
!Suisse
|pomélo
|grapefruit ou '''pamplemousse'''
|-
|}
Le néerlandais a également fourni des mots à d'autres langues. Par exemple, dans le cas de l'anglais :
* '''cookie''' vient de ''koekje'', diminutif de ''koek'' (« gâteau »)<ref>« cookie », dans ''Merriam-Webster'', 2022 [https://www.merriam-webster.com/dictionary/cookie#related-phrases → consulter cet ouvrage]</ref>.
* '''Santa Claus''' (Le surnom états-unien du [[wikt:père Noël|père Noël]].) vient de ''Sinterklaas'' (désignant [[w:Nicolas de Myre|saint Nicolas]]), lui-même altération de ''Sint Nikolaas''<ref>« Santa Claus », dans ''Merriam-Webster'', 2022 [https://www.merriam-webster.com/dictionary/Santa%20Claus → consulter cet ouvrage]</ref>.
=== Les emprunts à l'arabe ===
Même après l'effondrement de l'Empire romain, l'Occident n'a jamais cessé d'entretenir des relations entre, d'une part, Byzance et, d'autre part, les pays d'Afrique du Nord et du Proche-Orient, essentiellement à partir de la Provence, du Languedoc et de l'Italie<ref name="Larousse"></ref>. Les Croisades ont accentué ces contacts<ref name="Larousse"></ref>. Inversement, la conquête de la péninsule Ibérique par les Arabes n'a pas laissé de traces majeures dans le reste de l'Europe, le franchissement des Pyrénées étant, somme toute, plus difficile que la traversée de la Méditerranée. Parmi les emprunts à l'arabe, citons :
* '''adobe''' : de ألطوب (ʾāṭ-ṭwb) (« brique séchée au Soleil »). Le terme est arrivé en français au XIX{{e|e}} siècle, par le biais de l'espagnol, attesté dès le XII{{e}} siècle. [1868]
* '''alambic''' : de الإنبيق (āl-anbyq) formé de ال (āl) (« le », « la ») et du grec ancien ἄμϐιξ (ámbix) (« vase »), de même sens, peut-être via le latin médiéval des alchimistes. {{w|Albert Dauzat|Dauzat}} a proposé un intermédiaire espagnol ''alambique'', mais celui-ci est impossible car l'espagnol n'est attesté que depuis 1444. Le mot arabe a aussi donné l'italien ''lambisco'', le portugais ''alambique''. [1265]
* '''alcali''' : de القلي (āl-qily) (« soude (plante) »), via le latin médiéval ''alkali''. [1363]
* '''alchimie''' : de الكيمياء (āl-kymyāʾ) (« science des quantités »). Le terme est arrivé en français au XIII{{e|e}} siècle, par l'intermédiaire du [[latin]] médiéval ''alchimia''. L'arabe viendrait du grec ancien χυμεία (khumeía) (« mélange »), lui-même de χυμός (khumós) (« jus »), ou d'un mot copte signifiant « noir », désignant aussi l'Égypte. Les mots ''alchimie'' et ''chimie'' sont restés synonymes jusqu'à l'apparition de la [[chimie]] moderne à la fin du XVIII{{e|e}} siècle <ref name="Robert"></ref>. [1275]
* '''alcool''' : de الكحل (āl-kuḥl) (« distillat », « poudre »), par l'espagnol ''alcohol''. [1586]
* '''alcôve''' : de القبة (āl-qubba) (« petite pièce »), par le biais de l'espagnol ''alcoba''. [1646]
* '''algèbre''' : de الجبر (āl-ǧabr) (« réduction » au sens où nous disons que le problème se ramène / se réduit à un système à deux équations), via le latin médiéval ''algebra''. [fin du XIV{{e}} siècle]
* '''algorithme''' : du nom du mathématicien perse [[w:Al-Khwârizmî|Al-Khwârizmî]], par l'intermédiaire de l'ancien espagnol ''algorismo''. La forme actuelle est calquée sur le latin médiéval ''algorithmus'', altération influencé par ''arithmetica''. [1230]
* '''amiral''' : de أميرالعلي (ʾāmyr āl-ʿalī) (« grand chef »). [1100]
* '''avarie''' : de عَوَارِيَّة (ʿawāriyya), dérivé de عور (ʿawar) (« défaut »), par le génois ''avaria''. [1200]
* '''aya''' : de آية (ʾāya) (« verset »)
* '''azur''' : de لازورد (lāzaward) (« lapis-lazuli ») [1080]
* '''Abdallah''' : de عبد الله (ʿAbdullāh) (« serviteur de Dieu »)
* '''Abdellatif''' : de عبد اللطيف (ʿAbdullāṭyf) (« serviteur de l'Aimable »)
* '''Aladin''' : de علاء الدين (ʿAlāʾad-dyn) (« noblesse de foi »)
* '''Allah''' : de الله (ʾAllāh) (« Dieu »)
* '''Al-Qaïda''' : de القاعدة (āl-Qāʿyda) (« la Base ») [XX{{e|e}} siècle]
* '''brêle''' : de بغل (beġel) (« mulet »)
* '''cafard''' : de « كافر » (kāfir) (« hypocrite », « faux dévot »)
* '''café''' : de « قهوة » (qahwah)
* '''calife''' : de « خليفة » (ḫalyfah) (« successeur [du Prophète] »)
* '''camphre''' : de « كافور » (kāfwr) issu du sanskrit « कर्पूरम् » (karpūram).
* '''candi''' : initialement dit ''condi'', par l'intermédiaire de l'italien, emprunté à l'arabe « قندي » (qandy) (« confit ») [1256]
* '''chahada''' : de « شهادة » (šahādat) (« témoignage de foi »)
* '''charia''' : de « شريعة » (šaryʿah) (« chemin pour respecter la loi [de Dieu] »)
* '''cheh''' : de « صح » (ṣaḥ) (« »)
* '''cheikh''' : de « شيخ » (šayḫ) (« maître », « vieillard », « sage »)
* '''cheykha''' : de « شيخة » (šayḫa) (« »)
* '''chéchia''' : de « شاشية » (šašyah) (« »)
* '''chérif''' : de « شريف » (šaryf) (« »)
* '''Coran''' : de « القران » (āl-Qurān) (« la Récitation »)
* '''dawa''' : de « دعوة » (daʿwa) (« appel »)
* '''djihad''' : de « جهاد » (ǧihād) (« effort »)
* '''djinn''' : de « جن » (ǧinn) (« génie » au sens d'« être merveilleux »)
* '''estragon''' : de « طرخون » (ṭarḫwn)
* '''élixir''' : de « إكسير » (āl-ʾiksyr) (« la [[wikt:pierre philosophale|pierre philosophale]] ») formé de « ال » (āl) (« le », « la ») et du grec ancien « ξηρίον » (xêríon) (« poudre siccative à mettre sur les blessures »)
* '''éfrit''' : de « عفريت » (ʿfryt)
* '''émir''' : de « أمير » (ʾāmyr) (« commandant », « prince »)
* '''fanfaron''' : de « فرفار » (farfār) (« volage », « inconstant », « bavard »)
* '''fez''' : de « فأس » (fās) (« »)
* '''fissa''' : de « في ساعة » (fy sāʿah) (« dans l'instant », « sur l'heure »)
* '''fondouk''' : de « فندق » (funduq) (« hôtel »)
* '''Fatima''' : de « فاطمة » (Fāṭima) (« jeune chamelle sevrée »)
* '''gazelle''' : de « غزال » (ġazāl) (« antilope ») [fin du XII{{e}} siècle]
* '''goudron''' : de « قطران » (qaṭrān) (« asphalte »)
* '''goule''' (au sens de « créature monstrueuse ») : de « غول » (ġwl) (« démon »). Le nom du criminel [[w:Ra's al Ghul|Ra's al Ghul]] vient de « رأس الغول » (Rāʾs āl-Ḡwl) (« Tête de démon »).
* '''gourbi''' : de « غوربي » (ġwrby) (« »)
* '''gwer''' : de « غور » (ġwr) (« »), diminutif de « غوري » (Ġawry) (« Ligurien »)
* '''hadith''' : de « حديث » (ḥadyṯ) (« parole du Prophète »)
* '''hajj''' : de « حج » (ḥaǧ) (« pèlerinage »)
* '''halal''' : de « حلال » (ḥalāl) (« licite »)
* '''hamdoullah''' : de « الحمد لله » (āl-ḥamdullāh) (« louange à Dieu »)
* '''haram''' : de « حرام » (ḥarām) (« illicite »)
* '''hasard''' : de « الزهر » (az-zahr) (« dé », « jeu de dés »), nommé d'après « زهر » (zahr) (« fleur ») car la face gagnante du dé portait une fleur
* '''inch'Allah''' : de « ان شاء الله » (in šāʾ ʾAllāh) (« si Allah le veut »)
* '''Iblis''' : de « إبليس » (Iblīs) (« Celui qui n'a plus d'espoir [de se repentir] »)
* '''Jafar''' : de « جعفر » (Ǧaʿfar)
* '''Jaouad''' : de « جواد » (Ǧawād)
* '''Jasmine''' : de « ياسمين » (Yāsmyn)
* '''keffieh''' : de « كوفية » (kwfīya) (« »)
* '''khey''' : de « أخي » (ʾaḫī) (« frère »)
* '''maboul''' : de « مهبول » (mahbwl) (« fou », « débile ») [XIX{{e|e}} siècle]
* '''machallah''' : de « ماشاء الله » (māšāʾallāh) (« ce que Dieu veut »)
* '''masser''' (au sens de « pétrir avec les mains ») : de « مس » (mas) (« palper », « toucher ») [XVIII{{e|e}} siècle]
* '''matelas''' : de « مطرح » (maṭraḥ) (« tapis », « lieu où l'on jette quelque chose ») [XVI{{e|e}} siècle]
* '''mesquin''' : de « مسكين » (miskyn) (« pauvre »)
* '''miramolin''' : de « أمير المؤمنين » (ʾāmyr āl-mwʾminyn) (« commandeur des croyants »)
* '''momie''' : de « مومياء » (mwmyāʾ) (« corps embaumé »)
* '''mounâfik''' : de : « منافق » (munāfiq) (« hypocrite »)
* '''Machrek''' : de « المشرق » (āl-Mašriq) (« le Levant »)
* '''Maghreb''' : de « المغرب » (āl-Maġrib) (« le Couchant »)
* '''Mahomet''' : de « محمد » (Muḥammad) (« digne de louanges »)
* '''Moustapha''' : de « مصطفى » (Muṣṭafaā) (« l'Élu »)
* '''nifâk''' : de « نفاق » (nifāq) (« hypocrisie »)
* '''niquer''' : de « نك » (nik) (« faire l'amour ») [XIX{{e|e}} siècle]
* '''nuque''' : de « نخاع » (nuḫāʿ) (« partie dorsale du cou ») [XIV{{e|e}} siècle]
* '''Omar''' : de « عمر » (ʿOmar) (« »)
* '''papegai''' (ancien nom français du [[wikt:perroquet|perroquet]]) : de « ببغاء » (babaġāʾ) (« »)
* '''ramdam''' : de « رمضان » (Ramaḍān) (« mois de jeûne »)
* '''roumi''' : de « رومي » (Rwmy) (« Romain »)
* '''salat''' : de « صلاة » (ṣalāt) (« ensemble de cinq prières »)
* '''salep''' : de « ثعلب » (ṯaʿlab) (« renard ») abréviation de « خصى الثعلب » (ḫuṣān aṯ-ṯaʿlab) (« testicules de renard ») Le nom complet fut choisi en raison de la forme des bulbes de cette plante.
* '''saoum''' : de « صوم » (ṣawm) (« jeûne »)
* '''starfallah''' : de « أستغفر الله » (ʾastaḡfirullāh) (« Que Dieu me pardonne »)
* '''soubhanallah''' : de « سبحان الله » (subḥān allāh) (« louez Dieu »)
* '''souk''' : de « سوق » (sūq) (« marché »)
* '''sourate''' : de « سورة » (swrah) (« chapitre »)
* '''sucre''' : de « سكر » (sukar) issu du sanskrit « शर्करा » (śarkarā).
* '''sultan''' : de « سلطان » (sulṭān) (« pouvoir », « autorité »)
* '''Saïd''' : de « سعيد » (Saʿyd) (« heureux »)
* '''Salîm''' : de « سليم » (Salym) (« le Saint », « le Parfait »)
* '''Shaytân''' : de « شيطان » (Šayṭān) (« l'Adversaire »)
* '''talc''' : de « تلك » (talk)
* '''tarbouche''' : de « طربوش » (ṭarbwš) (« »)
* '''toubib''' : de « طبيب » (ṭabyb) (« médecin ») [1617]
* '''wallah''' : de « والله » (wallāh) (« par Dieu »)
* '''wesh''' : de « واش » (wāš) (« quoi »)
* '''Wahid''' : de « واحد » (Wāḥid) (« l'Unique »)
* '''zakât''' : de « زكاة » (zakāt) (« purification »)
* '''zinzolin''' : de « جنجلان » (ğunğulān) (« semence de sésame »)
* '''zob''' : de « زب » (zubb) (« pénis »)
Beaucoup de mots empruntés à l'arabe commencent par ''al'' ou ''a'' car, en arabe, ''al'' est l'article défini qui a été accolé au substantif lors de l'emprunt. (Comme si un enfant qui maîtrisait encore mal le français disait ''le lane'' pour ''l'âne''.)
Un cas intéressant est l'emprunt du mot « صفر » (ṣifr) qui signifie « vide » et a été transcrit à la fois par « chiffre » et par « zéro » (la notation arabe des chiffres utilisant un point pour le zéro).
=== Les emprunts à l'italien ===
Les royales épouses et les nobles dames venues d'Italie au XVI{{e|e}} siècle et au début du suivant ont apporté la civilisation du Quattrocento dans leurs bagages : vocabulaire des cours ducales et princières et du commerce qui avait permis les développements économiques lombard et toscan. Bref, quelque 8000 mots à l'époque, dont environ 10% sont utilisés encore aujourd'hui. Sur les 2000 à 8000 italianismes que comptait la langue française, seulement 700 environ ont survécu. Citons :
* '''accort''' : de ''accorto'' (« clairvoyant », « adroit »)
* '''amouracher''' : de ''amoracciare'' (« »)
* '''assassin''' : de ''assassino'' (« meurtrier »)
* '''avoir martel''' (terme aujourd'hui disparu) : être jaloux(se)
* '''bambin''' : de ''bambino'' (« bébé », « enfant »)
* '''bamboche''' : de ''bamboccio'' (« poupard », « bébé joufflu »)
* '''banque''' : de ''banca''. La banque est un banc ou plutôt une petite table sur laquelle on pose l'argent à changer, ce qui constituait l'activité première des banques. En cas de faillite (d'une racine signifiant « tomber » que l'on retrouve dans « défaillir ») du banquier, la corporation lui interdisait symboliquement de continuer son activité en lui cassant sa table. (D'où l'italien « bancarotta », qui a donné le français « banqueroute ».)
* '''bataillon''' : de ''battaglione''
* '''berlingot''' : de ''berlingozzo''
* '''bombe''' : de ''bomba''
* '''birouchette''' : de ''baroccio'' (« charrette à deux roues »)
* '''brocoli''' : du pluriel de ''broccolo''
* '''burler''' (terme aujourd'hui disparu) : se moquer
* '''brusque''' : de ''brusco'' (« âpre », « aigre »)
* '''cabriole''' : de ''capriola'' (« saut de cabri »)
* '''caprice''' : de ''capriccio'' (« frisson »)
* '''carrière''' : de ''carriera'' (« chemin de chars »)
* '''carrosse''' : de ''carrozza''
* '''carrousel''' : de ''carosello''
* '''carton''' : de ''cartone''
* '''cartouche''' : de ''cartuccia''
* '''charlatan''' : de ''ciarlatano''
* '''citrouille''' : de ''citruolo''
* '''colonel''' : de ''colonello''
* '''cortège''' : de ''corteggio''
* '''courtisan(e)''' : de ''cortigiano(a)''
* '''courtiser''' : de ''corteggiare''
* '''couci-couci''' : de ''così così'' (« ainsi ainsi »)
* '''désastre''' : de ''disastro'' (« mauvaise étoile »)
* '''discote''' (terme aujourd'hui disparu) : de ''discotto'' (« éloigné »)
* '''escadre''' : de ''squadra''
* '''escadron''' : de ''squadrone''
* '''escarpe''' (terme aujourd'hui disparu) : de ''scarpa'' (« chaussure »)
* '''escarpin''' : de ''scarpino''
* '''escroc''' : de ''scrocco''
* '''espadon''' : de ''spadone'' (« grande épée »)
* '''-esque''' : de ''-esco''
* '''estafette''' : de ''staffetta'' (« courrier à cheval »)
* '''estivallet''' (terme aujourd'hui disparu) : de '''' (« bottine »)
* '''fantassin''' : de ''fantaccino''
* '''fantoche''' : de ''fantoccio'' (« marionnette »)
* '''filigrane''' : de ''filigrana''
* '''frasque''' : de ''frasca'' (« soudain écart de conduite »)
* '''fresque''' : de ''fresco'' (« frais »)
* '''ganache''' : de ''ganascia'' (« mâchoire »)
* '''gonze''' : de ''gonzo'' (« idiot »)
* '''hippogriffe''' : de ''ippogrifo''
* '''imbattre''' (terme aujourd'hui disparu) : de ''imbrattare''
* '''intrigue''' : de ''intrigo''
* '''jalousie''' (au sens de « treillis de bois ou de fer permettant d'observer sans être vu ») : de ''gelosia''
* '''lasagne''' : du pluriel de ''lasagna''.
* '''le plus de temps''' : de ''il più del tempo''
* '''leste''' : de ''lesto'' (« adroit, agile »)
* '''manège''' : de ''maneggio''
* '''masque''' : de ''maschera''
* '''page''' (au sens de « serviteur d'un aristocrate ») : de ''paggio''
* '''paillasse''' (au sens de « bouffon ») : de ''pagliaccio'' (« bateleur », « clown », « pitre »)
* '''pécore''' : de ''pecora'' (« brebis »)
* '''pédant''' : de ''pedante''
* '''pianelle''' (terme aujourd'hui disparu) : de ''pianella'' (« chaussure de daim »)
* '''pizza'''
* '''pizzaïolo''' : de ''pizzaiolo''
* '''poltron''' : de ''poltrone'' (« paresseux »)
* '''porcelaine''' : de ''porcellana''
* '''salami''' : du pluriel de ''salame''
* '''sbire''' : de ''sbirro''
* '''sigisbée''' : de ''cicisbeo'' (« galant », « dameret »)
* '''spadassin''' : de ''spadaccino'' (« bretteur »)
* '''spaghetti''' : du pluriel de ''spaghetto''.
* '''spurquesse''' (terme aujourd'hui disparu) : de ''sporchezza'' (« saleté »)
* '''supercherie''' : de ''soperchieria''
* '''taffetas''' : de ''taffetà''
* '''trop mieux''' : de ''troppo meglio''
* '''trop plus''' : de ''troppo più''
* '''voltiger''' : de ''volteggiare'' (« voleter »)
* '''zibeline''' : de ''zibellino''
L'essentiel du vocabulaire français lié à la musique est emprunté à l'italien. Citons :
* '''allégro''' = joyeux
* '''andante''' = simple, habituel (mot à mot : qui marche [à pieds])
* '''adagio''' = lentement (Si vous circulez en véhicule sur les routes d'Italie, vous constaterez que ce mot apparaît fréquemment à l'entrée des parkings souterrains ou aux abords des écoles.)
* '''scherzo''' = plaisanterie
* '''ténor''' = de « tenore » qui désigne le « contenu essentiel » ; formule comparable aux expressions françaises « teneur de la loi » ou « teneur en oxygène ». Le ténor est le chanteur qui assume l'essentiel de l'opéra.
À la période romantique s'ajouteront des mots allemands comme « Lied » (« chant »).
=== Les emprunts au russe ===
Vers la fin du {{XIXe siècle}}, la popularité des romans russes, traduits en français, apportent beaucoup de nouveaux mots (''steppe'', ''cosaque'', ''toundra'', etc.)<ref name="Larousse">{{W|Jean Dubois (linguiste)|Jean Dubois}}, {{W|Henri Mitterand}}, {{W|Albert Dauzat}}, ''Dictionnaire étymologique et historique du français'', {{W|Éditions Larousse}}, 2007</ref>. À leur tour, la {{w|révolution russe}} et le développement du socialisme introduisent nombre de nouveaux termes en français (''kolkhoze'', ''bolchévique'', ''koulak'', ''soviet'', etc.)<ref name="Larousse"></ref>. Parmi les nombreux emprunts, citons :
* '''bogatyr''' : de « богатырь » (bogatyr’) (« héros »).
* '''combinat''' : de « комбинат » (kombinat).
* '''cosmonaute''' : de « космонавт » (kosmonavt).
* '''datcha''' : de « дача » (datcha).
* '''drojki''' : de « дрожки » (drojki).
* '''goulag''' : lexicalisation de « ГУЛАГ » (GULÁG), acronyme de « Главное Управление Лагерей » (Glávnyj Upravlěniě Láger') (« Direction Principale des Camps »).
* '''icône''' : de « икона » (ikona) (« image religieuse »).
* '''isba''' : de « изба » (izba).
* '''jaleïka''' : de « жалейка » (zhaléika).
* '''kopeck''' : de « копе́йка » (kopéjka).
* '''lezguinka''' : « лезгинка » (lezginka).
* '''mammouth''' : de « мамант » (mamant), variante désuète de « мамонт » (mamont).
* '''mazout''' : de « мазут » (mazout), qui viendrait de l'arabe « مَخْزول » (makhzoul) (« résidu »).
* '''morse''' : de « морж » (morj).
* '''moujik''' : de « мужик » (muzhik), diminutif de « муж » (muzh) (« homme »).
* '''niet''' : de « нет » (niet) (« non »).
* '''novitchok''' : de « новичок » (novitchok) (« novice »).
* '''oblast''' : de « область » (oblast').
* '''pérestroïka''' : de « перестройка » (perestroika).
* '''podzol''' : de « подзол » (podzol).
* '''rouble''' : de « рубль » (rubl').
* '''sarafane''' : de « сарафан » (sarafan).
* '''taïga''' : de « тайга » (taiga).
* '''télègue''' : de « телега » (telega).
* '''tsar''' : de « царь » (tsar’), lui-même du vieux slave « цѣсарь » (cěsarĭ), emprunté au latin « Caesar » via le grec ancien « Καῖσαρ » (Kaîsar), source aussi de l'allemand « Kaiser » (d'où ''kaiser'' en français).
* '''ukase''' : de « указ » (ukaz).
* '''vodka''' : de « водка » (vodka), diminutif de « вода » (voda) (« eau ») avec le suffixe « -ка » (-ka).
* '''yourte''' : de « юрта » (júrta).
=== Les emprunts à l'allemand ===
Les emprunts à l'allemand sont souvent limités à des vocabulaires spéciaux, notamment celui de la guerre<ref name="Larousse></ref>. Ils ont été apportés par les mercenaires allemands et suisses des XVI{{e}} et XVII{{e}} siècles, et, dans une moindre mesure, par l'{{w|Occupation de la France par l'Allemagne de 1870 à 1873|occupation allemande de 1870 à 1873}} et l'{{w|Occupation de la France par l'Allemagne pendant la Seconde Guerre mondiale|occupation de 1940 à 1943}}<ref name="Larousse></ref> :
* '''accordéon''' : de ''Akkordeon'', mot forgé en 1829 par {{w|Cyrill Demian}}, inventeur de l'instrument.
* '''aspirine''' : de ''Aspirin''.
* '''aux fines herbes''' (« au revoir ») : c'est une déformation de « auf Wiedersehen ».
* '''blitzkrieg''' : de ''Blitzkrieg'' (« guerre éclair »), composé de ''Blitz'' (« éclair ») et de ''Krieg'' (« guerre »).
* '''blockhaus''' : de ''Blockhaus''
* '''bunker''' : de ''Bunker''
* '''cobalt''' : emprunt à l'allemand ''Kobalt'', de ''Kobold'', nom d'un lutin malicieux.
* '''devise''' : au sens financier, probablement de ''Devise''
* '''écologie''' : de ''Ökologie'', terme forgé par {{w|Ernst Haeckel}} en 1866.
* '''ersatz''' (mot à mot ''qui se tient à la place de'').
* '''feldwebel''' : de l'allemand ''Feldwebel'', même sens.
* '''flic''' est dérivé de « Fliege » (« mouche », d'après le sens argotique « espion »), ou de « Flick » (« garçon, jeune homme »).
* '''fritz''' : du prénom allemand ''Fritz'', diminutif de ''Friedrich''.
* '''Gestapo''' : de l'allemand, ellipse de '''''Ge'''heime '''Sta'''ats'''po'''lizei'' (« police secrète d’État »).
* '''heimatlos''' : emprunt à l'allemand ''heimatlos'' (« apatride »).
* '''homosexuel''' : probablement de ''homosexual'', composé de ''homo-'' et de ''sexual''.
* '''képi''' : de ''Käppi''.
* '''lansquenet''' : de ''Landsknecht'' (« fantassin »).
* '''loustic''' est la francisation de ''[[wikt:lustig|lustig]]'' (« joyeux »). Dans les troupes allemandes, il y avait un bouffon que l'on appelait « Lustig » (« le Joyeux »).
* '''nazi''' : de ''Nazi'', contraction de '''''Na'''tionalso'''zi'''alist''.
* '''obus''' : de ''Haubitze'' (« obusier »), lui-même emprunté au tchèque ''houfnice'' (« catapulte »).
* '''putsch''' : de ''Putsch''.
* '''se faire appeler Arthur''' (« se faire gronder ») : dans cette locution, « Arthur » est une déformation de « acht Uhr » signifiant « huit heures » ; pendant la [[w:Seconde Guerre mondiale|Seconde Guerre mondiale]], en France occupée, le [[wikt:couvre-feu|couvre-feu]] était à huit heures du soir. Les patrouilles allemandes avaient donc pour habitude de prévenir les retardataires en leur indiquant leur montre et en leur disant « acht Uhr! ».
* '''thalweg''' : de ''Thalweg'', composé de ''Thal'' (« vallée ») et de ''Weg'' (« chemin »).
* '''Wehrmacht''' : de ''Wehrmacht''.
=== Les emprunts aux langues américaines indigènes ===
Tous les produits exotiques découverts aux « Indes occidentales » comme l'on disait alors ont été importés, le plus souvent via l'Espagne ou le Portugal avec leur nom d'origine plus ou moins bien compris et déformé. Ainsi :
* '''avocat''' et '''hamac''' des Caraïbes
* '''cacahuète'''
* '''chocolat'''
* '''topinambour''' qui en même temps qu'il désignait le tubercule comestible avait aussi le sens de « personne de caractère ombrageux », caractère que l'on attribuait à la tribu Topinambour d'où ont été exportées les premières de ces plantes.
Cela explique que ces mots soient peu ou prou identiques dans toutes les langues européennes d'aujourd'hui. On notera le cas de l'espagnol qui appelle « platanas », les bananes. Lorsque les premiers Conquistadores rapportèrent des bananes à Séville, les badauds leur demandèrent combien il en poussait « là-bas ». « Autant que de platanes à Séville » fut la réponse qui parut par trop exagérée (bien qu'elle fut vraie) et conduisit à appeler le fruit « platana » à Séville puis dans toute l'Espagne.
Indépendamment de ces importations, espagnol et portugais ont laissé quelques mots apportés par les mercenaires et liés à la vie militaire tels « adjudant » ou « camarade ».
L<nowiki>'</nowiki>'''adjudant''' est celui qui aide (Du verbe ''adjutare'', « aider ») un officier (un aide de camp) comme l'adjuvant est un additif qui renforce (qui aide) les qualités d'un remède ou d'un produit industriel comme le béton.
Le '''camarade''' est celui avec qui l'on partage sa chambre (« camera » d'où la « camera obscura » (chambre noire) qui aboutit plus simplement à la caméra [de cinéma]). Le camarade est le compagnon de chambrée, le '''compagnon''' étant celui avec (cum) qui l'on partage le pain (panis).
Du portugais l'on peut aussi retenir :
* '''pintade''' qui est l'abrégé de « galina pintada » (poule peinte)
* '''sombrer''' qui vient — via un verbe français « soussoubrer » — d'un verbe portugais « soçobrar » signifiant « aller sous l'eau ».
=== Les emprunts à l'anglais ===
S'ils sont aujourd'hui importants, surtout à travers l'américain, il n'en fut pas ainsi pendant longtemps ne serait-ce que parce que les familles anglaises parlaient français et que la première grammaire française fut rédigée en anglais pour permettre aux féodaux autochtones d'acquérir la langue d'expression de leurs souverains.
Les premiers emprunts à l'anglais apparaissent au XVIII{{e|e}} siècle sous la double influence du libéralisme politique qui se développe en Angleterre et définit les notions et les mots de « parlementaire » ou de « comité » et de l'expansion pré-industrielle comme de l'hégémonie maritime qui succède à celle des pays du Sud de l'Europe d'où « rail », et « tunnel ».
=== Les emprunts aux autres langues ===
Les autres langues ont moins apporté, en dehors de mots désignant des institutions ou des produits locaux (comme les boyards, le caviar). Citons :
Le vieux norrois avec :
* '''garer''' : de « varask » (« être sur ses gardes »).
* '''quille''' (terme de marine), emprunté au vieux norrois « kilir », pluriel de « kjǫlr ».
* '''saga''', signifiant « récit mythologique ou historique » ; le mot est à rapprocher de l'anglais « to say » (« dire ») et de l'allemand « sagen » (même sens).
* '''vague''' est issu de « vágr », apparenté à l'anglais « wave ».
Le japonais avec :
* '''emoji''' : de « 絵文字 » (emoji).
* '''judo''', de « 柔道 » (jūdō), composé de « 柔 » (ju) (« souplesse ») et « 道 » (do) (« voie »), littéralement « voie de la souplesse ».
* '''kakemono''' emprunté au japonais « 掛物 » (kakemono).
* '''manga''' tiré de « 漫画 », lui-même composé de « 漫然 » (manzen) (« sans intention ») et « 画 » (ga) (« dessin »).
* '''zen''' : emprunt au japonais « 禅 » (zen), issu du chinois « 禪 » (chán), lui-même abréviation de « 禪那 » (chánnà), du sanskrit « ध्यान » (dhyāna) (« méditation »).
Le turc avec :
* '''babouche''', de « papuç » (« chaussure »).
* '''derviche''', emprunté au turc « derviş », lui-même emprunt au persan « درويش » (derwiš) (« mendiant, pauvre »).
* '''kebab''', tiré de « kebap ».
L'occitan avec :
* '''aïoli''' : de « alhòli ».
* '''bosquet''', issu de « bosquet », diminutif de « bòsc » (bois) avec le suffixe « -et ».
* '''garrigue''', emprunté à l'occitan « garriga », de l'ancien occitan « garric » (« chêne kermès »).
* '''malfrat''', probablement issu de « maufaras », « malfaras » (« malfaiteur »).
* '''muscat'''.
* '''péguer''', mot utilisé en Occitanie signifiant « coller », est issu de l'occitan « pegar » (même sens).
* '''pétanque''', de l'occitan « petanca ».
=== Le fond gaulois ===
La littérature gauloise était essentiellement composée de poésies épiques et transmise exclusivement par voie orale. C'est pourquoi s'il reste encore de nombreuses traces du gaulois dans les noms de lieux, cette langue n'a laissé — essentiellement à travers le latin — qu'une quarantaine de mots :
* '''alouette'''
* '''berceau'''
* '''bordigue''', cabane avec des étagères pour garder le poisson au bord de la mer
* les '''braies''', les « pantalons » de l'Antiquité, d'où viennent les mots « braguette » et « débraillé ».
* '''bruyère'''. Le mot a été, par ailleurs confondu avec le mot latin « ruscus » qui signifiait « houx ». Un terrain à bruyères était appelé « bruscia » (qui signifiait « taillis », « buisson ») puis « brousse » (et « broussaille ») mais aussi « brosse » d'où les premières brosses qui n'étaient pas faites pour se coiffer mais pour laver le linge ou le sol et donc fabriquées à partir de végétaux très durs et acérés. « brosse » et « brousse » se spécialisèrent par la suite mais il reste des traces de cette synonymie en français moderne : « brosser » lorsque l'on parle d'un animal qui se faufile dans les taillis (ex : En brossant, le lièvre évita le chasseur.). Par analogie, on appelle aussi « brosse », la rangée de poils que l'on trouve au bout des pattes ou antennes de certains insectes et qui leur permettent, par exemple, de se situer dans l'espace tout en servant à la pollinisation.
* '''cervoise''', bière d’orge ou de blé sans houblon.
* '''charrue''' qui désigne à l'origine un char gaulois puis un char agricole puis finit par se limiter à un instrument muni de roues et d'un soc.
*'''chêne''' qui est une fusion du gaulois latinisé ''casanus'' et du mot bas latin ''fresne''
* '''glaner'''
* '''sillon''' d'une racine signifiant ''amasser de la terre''
* probablement '''tamis''' avec le même sens.
* '''taisson''' qui est l'ancien nom du blaireau.
* '''talus''', de ''talo'' qui désigne le front puis, par analogie avec la pente du front, un terrain en pente dans le langage des mineurs
=== L'emprunt par composition lexicale ===
Une forme particulière d'emprunt est la composition lexicale à partir de racines grecques et latines, contrairement à l'emprunt proprement dit où un mot étranger courant est introduit dans la langue d'accueil. Initié dès le XVI{{e|e}} siècle, le procédé a été particulièrement utilisé de 1750 à 1950 (pour avoir des chiffres ronds) dans tous les domaines de la vie scientifique et technique. En principe les deux racines doivent être ou grecques ou latines mais l'on rencontre des mots mixtes.
Les spécialités médicales en sont un bon exemple ; à partir de « -logie » (de « λόγος », l'étude) on construit :
* « andrologie » [] de « ἀνήρ », l'homme en grec ancien.
* « anthropologie » [] de « ἄνθρωπος », l'être humain en grec ancien.
* « cardiologie » [1797] de « καρδία », le cœur en grec ancien.
* « coprologie » [] de « κόπρος », l'excrément en grec ancien.
* « dermatologie » [1836] de « δέρμα », la peau en grec ancien. Le mot latin « pellis » désigne initialement la peau de bête tannée ; appliquer ce terme à la peau humaine a dû être quelque peu grossier à l'origine, comme aujourd'hui parler de la « gueule » de quelqu'un.
* « gynécologie » [] de « γυνή », la femme en grec ancien.
* « hématologie » [] de « αἷμα », le sang en grec ancien.
* « œnologie » [] de « οἶνος », le vin en grec ancien.
* « oncologie » [1970] de « ὄγκος », la tumeur en grec ancien ; les tumeurs constituent un amas en imagerie médicale comme à la palpation
* « ophtalmologie » [1753] de « ὀφθαλμός », l'œil en grec ancien
* « proctologie » [1970] de « πρωκτός », l'anus en grec ancien
* « scatologie » [] de « σκῶρ », l'excrément en grec ancien.
* « urologie » [] de « οὖρον », l'urine en grec ancien
De la même façon, on construit :
* « saurien » [1800] (de « σαῦρος » (« lézard »)) reptile à écailles
* « dinosaure » [1845] (de « δεινός » (« terrible ») et « σαῦρος » (« lézard »)
* « ichtyosaure » [1824] (de « ἰχθύς » (« poisson ») et « σαῦρος » (« lézard »)
* « lycoperdon » [] (de « λύκος » (« loup ») et « πέρδομαι » (« flatuler »)
* « callipyge » [] (de « κάλλος » (« beauté ») et « πυγή » (« fesse »)
ou encore, en vrac :
* « alopécie » [{{e}} siècle] qui désigne la chute des cheveux comparée à celle des poils du renard (« ἀλώπηξ ») se produisant chaque année.
* « dromadaire » [XII{{e}} siècle] qui est le coureur (« δρομάς ») du désert
* « éthologie » [1856] l'étude des mœurs (« ἦθος »)
* « hippopotame » [1265] qui est le cheval (« ἵππος ») du fleuve (« πόταμος »)
* « hippodrome » [1534] qui est la course (« δρόμος ») du cheval (« ἵππος »)
* « pétrole » [XIII{{e}} siècle] de « πετρέλαιον »
* « rhinocéros » [1288] qui a une corne (« κέρας ») sur le nez (« ῥίς »)
Certains mots furent composés autrement :
* « chauve-souris » vient du bas latin ''calvas sorices'' (pluriel), altération sous l'influence de ''calvus'' (« chauve »), du bas latin ''cawa sorix'', formé de ''cawa'' (« chouette ») et ''sorix'' (« souris »), signifiant littéralement « chouette-souris ». Le petit de ce mammifère volant s'appelle le « chauve-souriceau » (« chauve-souricelle » au féminin). Le nom anglais de cet animal est « bat », ce qui insipira Bill Finger et Bob Kane pour la création de [[w:Batman|Batman]].
* « soutien-gorge » [1904] dérive de ''soutien'' et de ''gorge''. Dans ce mot, ''gorge'' signifie métaphoriquement « poitrine » ou « sein ».
== Les noms propres (personnes, villes, personnages de roman) devenus noms communs ==
Le plus connu est '''Poubelle''' du nom du préfet de police de Paris, qui imposa, en 1884, de placer les déchets dans un récipient et non de les déposer en vrac sur la chaussée et institua leur collecte régulière mais l'on peut également citer :
* le père '''Clément''' qui fut le premier à obtenir des clémentines dans un orphelinat d'Oran en 1902 par greffe d'un hybride d'oranger et de mandarinier sur un pied de mandarinier.
* John Loudon '''MacAdam''' qui utilisa un revêtement qui venait d'être mis au point pour solidariser les routes et les rendre plus confortables.
* En 1950, après avoir assisté à une grande exposition du peintre Vittore '''Carpaccio''', le chef Giuseppe Cipriani inventa une recette de viande de bœuf crue à laquelle il donna le nom de famille de l'artiste.
* '''Casanova''' est le nom de famille d'un Italien qui écrivit de célèbres mémoires érotiques (et non « pornographiques » ; bien qu'« érotisme » et « pornographie » viennent tous deux du [[grec ancien]], les sens respectifs de ces deux mots sont très différents.) Aujourd'hui, on appelle « casanova » un homme désirant ardemment séduire de nombreuses femmes.
* '''Doberman''' est le nom de famille d'un gardien de fourrière d'une petite ville allemande qui, chargé d'exterminer les chiens errants, réussit à les croiser de façon à obtenir une race de chiens de garde et en sauva ainsi quelques-uns d'une mort prématurée
* John '''Duns''' Scot (1266-1308) est un théologien et philosophe écossais. Devenu « dunce » en anglais, son nom pris le sens du mot français « cancre » désignant un écolier paresseux. Dans les écoles anglo-américaines, on coiffait autrefois les mauvais élèves de chapeaux coniques portant le mot « ᴅᴜɴᴄᴇ ». L'anglais « dunce cap » correspond métaphoriquement au français « [[wikt:bonnet d’âne|bonnet d'âne]] ».
* '''Guillaume''' est l'imprimeur qui introduisit les guillemets (appelés initialement « guillaumets ») dans l'imprimerie ; dans ce secteur, un autre Guillaume, Massiquot (1797-1870) laisse son nom sous une forme orthographique simplifiée (massicot) au dispositif qui permet de couper les feuilles.
* Louis '''Pasteur''' dont le nom se retrouve dans la plupart des langues dans des termes comme « pasteuriser » ou « pasteurisation »
* François '''Barrême''', mathématicien (1640-1703) auteur d'un des premiers manuels pratiques de comptabilité
* Partisane de la réforme vestimentaire, l'employée des postes Amelia '''Bloomer''' fit la promotion de [[wikt:culotte|culottes]] bouffantes ; avec le temps, ces sous-vêtements prirent le nom de leur promotrice.
* Devenu aveugle très jeune, Louis '''Braille''' improvisa un système d'écriture en relief facilement lisible du bout des doigts.
* Carlo '''Tonti''' qui conçu les tontines (dans une tontine, un emprunteur offre 100 euros par an pour rémunérer un capital initial de 10 000 euros par exemple. Au fur et à mesure que les prêteurs meurent la rémunération annuelle qui reste constante à 100 euros est répartie sur les seuls survivants ; ce procède fut très utilisé par les rois de France du milieu du XVII{{e}} siècle aux abords de la Révolution française puis par les premières institutions mutualistes)
* '''Figaro'''. Personnage de [[w:Pierre-Augustin Caron de Beaumarchais|Pierre-Augustin Caron de Beaumarchais]], il est le barbier du Comte Almaviva ; « aller chez le figaro » signifie « aller chez le barbier/coiffeur ». Dans la deuxième pièce de la trilogie lui étant consacrée, il dit à la scène 3 de l'acte V : « Sans la liberté de blâmer, il n'est point d'éloge flatteur. » Depuis sa fondation le 15 janvier 1826, le journal quotidien ''[[w:Le Figaro|Le Figaro]]'' met cette réplique en exergue comme étant sa devise.
* '''Frangipane'''. Marquis italien, Frangipani mis au point en 1558 un parfum pour les gants ; ledit parfum connut rapidement du succès pour accommoder les pâtisseries.
* '''Fuller'''. Eugène Fuller est l'architecte qui dessina les plans de la géode. Les nano-particules ont une structure qui rappelle une géode. Pour honorer Fuller on eut l'idée de donner son nom à la structure.
* '''Bougainvilliers''', navigateur qui ramena la plante. De même, camélia (initialement écrit Camellia) à qui Linné (qui nomma nombre de plantes de façon raisonnée) donna ce nom en souvenir du père jésuite qui l'avait ramené du Japon : Camellus
* '''Oignon''' était le responsable du protocole de Louis XIV et il exigeait des Grands qu'ils fussent rangés. Par la suite, la référence à ce royal ordonnancement fut oubliée et l'image d'oignons rangés sur un marché se substitua à l'originale.
* '''Calepin'''. En 1502, Ambrogio Calepino publia un dictionnaire de latin. Le mot « calepin » désigna d'abord un dictionnaire (latin ou non) puis évolua vers le sens de recueil de notes.
* '''Sandwich''' est le nom d'un comte anglais (1718-1792) qui, joueur infatigable, demanda qu'on lui servît son repas entre deux tranches de pain pour ne pas quitter le salon de jeu.
* '''grégorien''' : Pape de 590 à 604, Grégoire XIII fixa définitivement les textes rituels et plaça la messe à la première place des cérémonies du culte, sur le plan artistique. Il fit établir une sélection de chants épurés destinés à toutes les fêtes de l'année (l'antiphonaire) et fonda une école de musique destinée à diffuser une nouvelle interprétation mélodique. Il réforma également le calendrier julien.
* '''Lalune''' était un général dont les bourdes étaient nombreuses d'où l'expression ''bête comme la lune''
* À l'inverse, Jean '''Colin-Maillard''', aveuglé par le sang d'une blessure infligée par l'ennemi se saisit d'un maillard (« marteau » — à comparer avec « maillet » —) et frappant plus ou moins au hasard massacra nombre de ses adversaires ; d'où le jeu de colin-maillard.
* '''Hooley''' était un Irlandais qui rançonnait les paysans en faisant montre d'une extrême violence vis à vis de ceux qui ne se soumettaient pas à ses exactions d'où les « hooligans » des stades.
* Étienne de '''Silhouette''' était contrôleur général des Finances au XVIII{{e}} siècle. Son nom est resté dans la langue soit en raison des nombreuses caricatures que l'on fit de lui soit du fait de ses passages rapides aux affaires qui ne permettaient que de l'y apercevoir.
* '''dulcinée''' désigne poétiquement une femme inspirant une passion romanesque. Cet emploi provient du nom d'un personnage de ''[[w:Don Quichotte|L'Ingénieux Hidalgo Don Quichotte de la Manche]]'', l'œuvre la plus connue de [[w:Miguel de Cervantes|Miguel de Cervantes]] (1547-1616).
* '''Paparazzo''' est le nom d'un photographe apparaissant dans le film ''[[w:La Dolce Vita|La Dolce Vita]]'' (1960). Aujourd'hui, on appelle « paparazzo » un photographe ayant comme domaine de prédilection la vie privée des célébrités.
Dans le genre « grunge » on trouve ''isabelle'' et ''bourdaloue''.
* '''isabelle''' est la couleur de la robe d'un cheval ou du pelage d'un chat qui associe jaune pâle, rouge et noir. La légende veut qu'une noble dame prénommée Isabelle ait fait vœu de ne pas changer sa chemise entre le départ de son époux pour la guerre et son retour. Il existe deux variantes : Isabelle la Catholique lorsque le roi soutint le siège de Grenade (1491) qui dura un an et l'archi-duchesse Isabelle, petite fille de Catherine de Médicis et de Henri II lorsque son époux — Albert — partit pour Ostende et revient en triomphateur après que la ville ait cessé de lui résister pendant trois ans. D'où la couleur de la chemise au retour du bien-aimé. Il semble cependant aux philologues modernes que le mot est tout simplement l'emprunt du mot ''hiza'' (lion) à l'arabe à cause de la couleur du pelage de ce fauve.
* '''Bourdaloue''' (ce n'est plus légende mais réalité) était un prédicateur de Notre-Dame de Paris à l'éloquence fort prisée des dames de la bourgeoisie parisienne. Rhétoricien accompli, il captivait son public pendant plusieurs heures et certaines dames eurent l'idée de s'équiper d'un petit vase très discret leur permettant de satisfaire leurs besoins naturels sans quitter leur place (à l'époque les robes étaient assez larges)
* Dans l<nowiki>'</nowiki>''Orlando innamorato'', Matteo Maria Boiardo raconte que le roi circassien '''Sacripante''' fit preuve d'une bravoure et d'une force extraordinaires pour porter secours à la dame de ses pensées sans qu'on le payât en retour. Francisé en ''sacripant'', le nom de ce personnage désigna d'abord un bravache (Au même titre que « matamore » et « rodomont ».), puis un mauvais sujet et une personne dont la compagnie est peu recommandable. Aujourd'hui, il s'emploie affectueusement pour désigner un individu espiègle ou malicieux (En particulier les petits garçons, au même titre que « chenapan », « coquin » et « garnement »).
Coté paillettes, au contraire, le '''strass''' fut inventé par un joailler parisien : Georges Frederic Strass (1770-1773)
Pour ce qui est des villes citons :
* '''angora''' : Initialement on ne parlait pas d'un chat angora mais d'un chat d'Angora, ancien nom de la ville d'Ankara en Turquie
* '''bougie'''. Cire fine de Bougie, ville située dans l'Algérie actuelle, prisée dès le XIV{{e}} siècle car elle ne produisait pas trop de fumée pour un bon éclairage.
* '''corbillard'''. Dès le XVI{{e}} siècle, on appelait « corbeillard » le coche d'eau — peint en noir — qui assurait une navette entre Paris et Corbeil. Le mot pris son sens actuel au XVIII{{e}} siècle. Les bateaux-mouches ont une origine identique : une navette entre Lyon et le quartier de La Mouche.
* '''cordonnier'''. Étymologiquement, c'est celui qui travaille le cuir à la façon des Cordouans (habitants de Cordoue en Espagne) ou, plus probablement, le cuir en provenance de cette ville.
* '''cravate'''. C'est à l'origine le large ruban que les soldats du Royal Croate étaient autorisés à porter par Louis XIV. « Croate » se prononça rapidement « cravate ».
* '''faïence'''. Ce type de poterie fut imaginé dans le région italienne de Faenza (une cinquantaine de kilomètres au sud-est de Bologne).
* '''jeans'''. Vers 1850, Levi-Strauss fabrique des pantalons avec de la toile servant à bâcher les chariots dont il renforce les coutures avec des rivets. Cependant une dizaine d'années plus tard il trouve encore plus résistant : un tissu de coton fabriqué à Nîmes depuis la fin du XVI{{e}} siècle, teint en bleu avec de l'indigo. Ce tissu de Nîmes deviendra ''denim'' d'abord prononcé ''denime''. Comme Nîmes n'est pas un port, c'est de Gênes que le tissu prend la mer pour les États-Unis d'où sa seconde appellation de ''tissu bleu de Gênes'' devenu ''blue-jeans'' puis simplement ''jeans''.
*'''sardine'''. Originellement il s'agit d'un poisson pêché en Sardaigne.
Sans dériver de noms de personnes, des noms communs sont issus de noms de personnages de roman ou de noms commerciaux :
* Le ''Roman de Renart'' fut aussi célèbre au Moyen Âge que les aventures d'Harry Potter de nos jours. Il met en scène un goupil (c'est à dire en ancien français un renard) nommé « Renart » (Du francique ''Reginhart'', signifiant « le fort en conseil ») qui berne Ysengrin le loup, Noble le lion ou encore Tibert le chat. Ce récit eut tellement de succès que le nom de son personnage principal se substitua au mot « goupil », issu du latin « vulpes ». En 1973, Walt Disney Pictures s'inspira de cette œuvre pour ''[[w:Robin des Bois (film, 1973)|Robin des Bois]]''. En 1985, ce roman fut adapté assez librement et « modernisé » dans une série d'animation française intitulée ''[[w:Moi Renart|Moi Renart]]''. En 1919, l'écrivain américain [[w:Johnston McCulley|Johnston McCulley]] publie ''[[w:Le Fléau de Capistrano|Le Fléau de Capistrano]]'' un récit dont le héros a choisi de lutter contre l'injustice en cachant sa véritable identité sous le nom espagnol du renard. (« zorro » Pour désigner le justicier homonyme, les hispanophones disent et écrivent « El Zorro ».)
* La '''syphilis''' (une maladie sexuellement transmissible) doit son nom au berger Syphilus des ''Métamorphoses'' d'Ovide, un des auteurs latins les plus lus au Moyen Âge. (Qui connut d'ailleurs une « renaissance ovidienne ».) Le plus original est que cette maladie, importée du Nouveau Monde, n'existait pas à l'époque antique. C'est un traducteur de Vérone, Girolamo Fracastoro, qui ajouta cet épisode à son modèle en 1530, époque où cette maladie faisait aussi peur que le sida aujourd'hui ; car, les Européens n'ayant jamais été au contact de l'agent infectieux, ils étaient nombreux à en mourir. Selon les endroits, on donnait différents surnoms à la syphilis : « mal italien » (pour les Français), « mal français » (pour les Italiens, les Espagnols, les Russes, les Allemands, les Anglais et les Polonais), « mal espagnol » (pour les Portugais et les Néerlandais), « mal anglais » (pour les Écossais), « rash de Canton » / « ulcère chinois » (pour les Japonais).
Nicolas '''Chauvin''', personnage d'un vaudeville de 1831 (''La Cocarde tricolore'') représentait un soldat de l'Empire un peu bébête au patriotisme quelque peu excessif.
* '''éclair''' La fermeture Éclair est une marque de fermeture à glissière. Cette marque s'étant imposée dans toute l'Europe on parle aussi de « chisura lampa » (même formule) en italien.
* '''frigidaire''' est une marque de réfrigérateur (on parlait initialement d<nowiki>'</nowiki>''armoire réfrigérante'' d'où ''réfrigérateur'')
* '''klaxon''' est le nom du premier fabricant de cet outil.
* '''texto''' est une marque déposée par SFR pour désigner les SMS. (c'est à dire originellement l'élément du ''Short Message Service'' que l'on a francisé en ''Service messager succinct''.)
À Marseille, entre les deux guerres mondiales on n'utilisait pas d'eau de Javel (nom de l'inventeur) mais de la pigeonne, du nom de la marque locale.
On trouve des phénomènes identiques dans toutes les langues. Ainsi, l'italien appelle « montgomery » (Du nom d'un général qui portait ce vêtement avec élégance.) ce que l'anglais nomme « duffle coat ».
== Les abréviations ==
Le fait que certains mots constituent des acronymes reste parfois conscient mais est oublié :
* « apud » [] pour « amine precursor uptake and decarboxylation » (Il s'agit de cellules de la crête neurale qui migrent chez l'embryon et jouent un rôle important dans le système neuro-endocrinien.)
* « cyborg » [1960] pour « cybernetic organism »
* « CEDEX » [1972] pour « courrier d'entreprise à distribution exceptionnelle »
* « CIDEX » [] pour « courrier individuel à distribution exceptionnelle »
* « glare » [] pour « glass laminate aluminium reinforced epoxy » ()
* « laser » [1960] pour « light amplification by stimulated emission of radiations » ()
* « maser » [1954] pour « microwave amplification by stimulated emission of radiations » ()
* « prion » [1982] pour « proteinaceus infective only particule » (particule infectieuse de nature protéique)
* « quasar » [1965] pour « quasi-stellar radio source » (radiosource quasi-stellaire)
* « radar » [1944] pour « radio detecting and ranging » ()
* « sida » [1981] pour « syndrome d'immunodéficience acquise »
* « sonar » [1970] pour « sound navigation and ranging » ()
* « snob » est l'abréviation (s. nob.) de « sine nobilitate » (non noble), mention que portaient les collèges anglais habitués à n'accueillir que les enfants de la noblesse lorsqu'ils s'ouvrirent à la bourgeoisie. Que ce fut vrai ou médisance, on disait que les enfants issus de la bourgeoisie affectaient des comportements habituels à la noblesse et cherchaient à se montrer plus nobles que les nobles.
* « S.O.S. » qui a gardé les points séparateurs est (par rétroacronymie) l'abréviation de « Save our souls » (Sauvez nos âmes). Au temps du code Morse, le ''s'' correspondant à trois brèves et le ''o'' à trois longues, l'envoi d'un S.O.S. se traduisait par la répétition sans fin de trois brèves, trois longues et trois brèves.
* « jeep » constitue l'évolution ultime de la prononciation des initiales « G.P. » pour « General Purpose » (tous usages) caractéristique essentielle voulue par les militaires commanditaires de cette voiture. Le mot est à rapprocher de « G.I. » terme affectueux pour désigner les soldats américains dont les effets portent le terme « G.I. » pour « Government Issue » (propriété de l'État).
Comme tous les mots communs, les abréviations donnent des dérivés : radarisé, snober, snobinard, apudlike
== Les onomatopées ==
Ce mot vient du latin ''onomatopoeia'', issu du grec ancien « ὀνοματοποιία ». Il s'agit de mots qui visent à imiter un son ou à suggérer la chose nommée :
* ''boum'', ''paf'', ''crac''
* ''brrr'' qui remonte au XVIII{{e|e}} siècle
* ''gazouillis''
* ''glouglou''
* ''frou frou'' qui vient de ''frifilis'', mot du XVIII{{e|e}} qui évoque le froissement des tissus
* susurrer
* vrombir
* murmure : initialement le mot désignait un bruit assourdissant.
* ''patte'' serait la traduction du bruit fait par le frottement des poils des pattes d'un animal qui court vite
* ''bat'', le bruit que l'on fait en bâillant est à l'origine du latin ''batare'' qui a donné le français « bâiller ».
* ''slogan'' vient du gaélique écossais ''sluagh-gairm'' (« cri de guerre »).
== Les mots forgés de toutes pièces ==
* '''Ordinateur''' : dans la plupart des pays, on parle de ''computer'' (= qui calcule). En France, lorsque la machine commença à être connue, on parlait ''d'ensemble électronique'' ou encore de ''calculateur électronique'' pour celles qui n'étaient pas dédiées à la gestion mais à des calculs proprement dits. Le principal constructeur de l'époque, pour ne pas dire le seul, IBM souhaita trouver un mot spécifique à sa marque et chargea un linguiste, J. Perret de cette démarche. Ce dernier, en retenant que la machine triait rapidement les données, rechercha un vieux mot de théologie "ordinateur" et le "vendit" à IBM. Il est dit dans la Bible que Dieu est le Grand Ordinateur car Il trie et assemble. La protection de la marque ayant pris fin, le mot est tombé dans le domaine public.
* Récemment les informaticiens ont à nouveau puisé dans le vocabulaire de la théologie en imaginant d'utiliser le mot ''ontologie'' pour désigner la description sémantique d'un domaine c'est à dire l'ensemble des mots du domaine et des relations qui les unissent.
* '''Bikini''' et '''monokini'''. Le créateur du premier bikini — même si sa culotte était bien plus haute et couvrante que la nôtre — savait que ce vêtement allait faire scandale, d'autant qu'aucun mannequin professionnel n'avait accepté de le présenter au public et qu'il avait dû s'adresser pour ce faire à une danseuse de spectacle nu. Tout le monde avait alors à l'esprit le petit atoll de Bikini où eut lieu la première explosion atomique expérimentale en grandeur réelle ; le créateur retint donc de nom à la fois pour la petite surface du vêtement (comme l'atoll) et l'explosion « atomique » qu'il allait créer. Lorsque la mode d'un bronzage quasi intégral fut lancée, on joua à nouveau sur le mot en appelant « monokini » un maillot composé seulement de la pièce du bas comme si le préfixe ''bi-'' de « bikini » caractérisait l'existence de deux parties (à comparer à la plaisanterie éculée : « Elle a attrapé des microbes et même des crobes entiers. »).
* '''français moyen''' date très exactement d'un discours d'un homme politique de l'entre deux guerres, Édouard Herriot, prononcé le 19 août 1924 et désigne en fait ce que les statisticiens appelleraient plutôt le français modal.
D'autres mots sans avoir été inventés ont eu une introduction dans la langue française liée à un phénomène bien identifié. Ainsi :
* '''rescapé'''. Le mot appartient à un dialecte wallon. En 1906, la France connut une des plus grandes tragédies industrielles, l'explosion de la mine de Courrières qui fit près de 1100 morts. Des mineurs belges étaient venus aider au sauvetage de leurs camarades français bloqués depuis plusieurs jours dans un puits à la suite d'un éboulement. Interrogés par un journaliste, ils parlèrent des « rescapés ». Ce mot fut repris par l'ensemble de la presse et introduit du jour au lendemain dans le français standard qui en généralisa vite le sens.
* '''côté cour''' et '''côté jardin'''. Cette expression des gens de théâtre est une première manière de politiquement correct (sous peine de mort). Sous l'Ancien Régime français, le théâtre royal comportait deux loges, l'une pour le roi et l'autre pour la reine. La mise en scène faisait ainsi naturellement référence au côté de la reine ou au côté du roi. Avec la Révolution française, un tel référentiel pouvait valoir un aller immédiat pour l'échafaud. Une des loges était située du côté d'une cour et l'autre du côté d'un jardin, d'où la substitution.
== Références ==
=== Sources ===
<references/>
=== Bibliographie ===
* ''TLFi, Le Trésor de la langue française informatisé'', 1971–1994 [https://www.cnrtl.fr/definition/ → consulter cet ouvrage]
* {{w|Alain Rey}}, ''Dictionnaire historique de la langue française'', Dictionnaires Le Robert, Paris, 2019
[[Catégorie:Étymologie de la langue française (livre)|Origines du vocabulaire]]
2qdauldpv3j3lty0k1jy8breydomw2n
Discussion:Accueil
1
56846
682355
680590
2022-07-25T00:32:32Z
Redha.fortine.gta
110645
/* Le réchauffement climatique */ nouvelle section
wikitext
text/x-wiki
{{Avertissement|Cette page est réservée aux discussions au sujet de la page d'[[Accueil]]. Les discussions sur le projet Wikilivres en général ont lieux sur [[Wikilivres:Le Bistro|Le Bistro]]}}
{{RemarqueIndex|Pour la maintenance, voir [[Wikilivres:Maintenance/Page d'accueil|Maintenance de la page d'accueil]].}}
*[[Discuter:Accueil/Archive 1|Archive ==>mars 2009]]
*[[Discuter:Accueil/Archive 2|Archive ==>mai 2013]]
== Chiffres ==
Pourquoi ne publie-t-on pas comme sur les autres wikis une indication de l'importance du site, avec quelque chose comme :
; {{PAGESINCATEGORY:Livres par titre}} livres sur {{NUMBEROFARTICLES}} pages
? [[Utilisateur:JackPotte|JackPotte]] ([[Discussion utilisateur:JackPotte|<font color="#FF6600">$</font>♠]]) 16 août 2013 à 22:21 (CEST)
:Je pense qu'il s'agit d'afficher des stats sur la page d'accueil, comme sur celle de Wikipedia tout en haut à droite ou dans le bistro du jour. Pourquoi pas? ''Liebe Grüße'', [[Utilisateur:Perditax|Perditax]] ([[Discussion utilisateur:Perditax|d]]) 19 septembre 2013 à 13:45 (CEST)
:: Pour ! [[Utilisateur:Jean-Jacques MILAN|Jean-Jacques MILAN]] ([[Discussion utilisateur:Jean-Jacques MILAN|discussion]]) 22 septembre 2013 à 13:51 (CEST)
== Auteur ???? ==
Et si on cherche livres d'un auteur specifique ?
???
:Les auteurs de Wikilivres qui le souhaitent peuvent publier leur bibliographie sur leur profil. Quant aux auteurs célèbres, ils sont sur [[s:|Wikisource]]. [[Utilisateur:JackPotte|JackPotte]] ([[Discussion utilisateur:JackPotte|<font color="#FF6600">$</font>♠]]) 18 juillet 2015 à 16:56 (CEST)
== Version mobile ==
Bonjour,
Je pense que ce serait une bonne idée de mettre le lien de la version mobile de Wikibooks pour que celui qui utilise un téléphone ou une tablette ne soit pas perdu et ne cherche pas n'importe où comment avoir un affichage correct.
Merci, [[Utilisateur:Aabbccddeeffabcdef|Aabbccddeeffabcdef]] ([[Discussion utilisateur:Aabbccddeeffabcdef|discussion]]) 19 décembre 2018 à 15:39 (CET).
:Les navigateurs des téléphones basculent automatiquement dessus par défaut. [[Utilisateur:JackPotte|JackPotte]] ([[Discussion utilisateur:JackPotte|<span style="color:#FF6600">$</span>♠]]) 19 décembre 2018 à 23:54 (CET)
== Rénovation ==
Bonjour,
Selon le projet [[w:fr:Projet:Charte graphique|Charte graphique]] de Wikipédia, pourrait-t-on rénover la page d'accueil avec les modèles [[Modèle:Boîte colorée|Boîte colorée]] et [[Modèle:Barre colorée|Barre colorée]].
Merci & Cordialement, [[Utilisateur:Aabbccddeeffabcdef|Aabbccddeeffabcdef]] ([[Discussion utilisateur:Aabbccddeeffabcdef|discussion]]), le [[Utilisateur:Aabbccddeeffabcdef|Aabbccddeeffabcdef]] ([[Discussion utilisateur:Aabbccddeeffabcdef|discussion]]) 13 mars 2019 à 17:38 (CET).
:Les rendus des versions desktop et mobile me semblent corrects aujourd'hui, donc je ne souhaiterais pas toucher à quelque chose qui fonctionne. [[Utilisateur:JackPotte|JackPotte]] ([[Discussion utilisateur:JackPotte|<span style="color:#FF6600">$</span>♠]]) 13 mars 2019 à 20:52 (CET)
== Faute d'orthographe sur [[Ict@innovation: Free your IT Business in Africa/2-1]] ==
Il y a une faute d'orthographe sur [[Ict@innovation: Free your IT Business in Africa/2-1]], mais dès que je veux modifier cette page, je suis redirigé vers la page d'accueil. J'ai corrigé d'innombrables pages sur wikipedia et les autres wiki cousins, mais là : impossible.
Je veux juste remplacer "été crée" par "été créé".
[[Utilisateur:Romanc19s|Romanc19s]] ([[Discussion utilisateur:Romanc19s|discussion]]) 4 mars 2021 à 19:03 (CET)
:Salut Romanc19s
:Effectivement, il y a un script qui bloque la création et la modification des pages ayant un nom bizarre.
:La page ne peut avoir été créée que par un bot (javascript ignoré) ou un administrateur.
:J'ai effectué la correction. Mais on peut remettre en cause la pertinence de la présence d'une telle page.
:-- ◄ [[Utilisateur:DavidL|'''D'''avid '''L''']] • [[Discussion Utilisateur:DavidL|discuter]] ► 4 mars 2021 à 19:49 (CET)
== Le réchauffement climatique ==
Le football il a changé [[Utilisateur:Redha.fortine.gta|Redha.fortine.gta]] ([[Discussion utilisateur:Redha.fortine.gta|discussion]]) 25 juillet 2022 à 02:32 (CEST)
tiyigxrvxhj8yg6zshz4lebroz4vi1q
682356
682355
2022-07-25T00:33:35Z
Redha.fortine.gta
110645
wikitext
text/x-wiki
{{Avertissement|Cette page est réservée aux discussions au sujet de la page d'[[Accueil]]. Les discussions sur le projet Wikilivres en général ont lieux sur [[Wikilivres:Le Bistro|Le Bistro]]}}
{{RemarqueIndex|Pour la maintenance, voir [[Wikilivres:Maintenance/Page d'accueil|Maintenance de la page d'accueil]].}}
*[[Discuter:Accueil/Archive 1|Archive ==>mars 2009]]
*[[Discuter:Accueil/Archive 2|Archive ==>mai 2013]]
== Chiffres ==
Pourquoi ne publie-t-on pas comme sur les autres wikis une indication de l'importance du site, avec quelque chose comme :
; {{PAGESINCATEGORY:Livres par titre}} livres sur {{NUMBEROFARTICLES}} pages
? [[Utilisateur:JackPotte|JackPotte]] ([[Discussion utilisateur:JackPotte|<font color="#FF6600">$</font>♠]]) 16 août 2013 à 22:21 (CEST)
:Je pense qu'il s'agit d'afficher des stats sur la page d'accueil, comme sur celle de Wikipedia tout en haut à droite ou dans le bistro du jour. Pourquoi pas? ''Liebe Grüße'', [[Utilisateur:Perditax|Perditax]] ([[Discussion utilisateur:Perditax|d]]) 19 septembre 2013 à 13:45 (CEST)
:: Pour ! [[Utilisateur:Jean-Jacques MILAN|Jean-Jacques MILAN]] ([[Discussion utilisateur:Jean-Jacques MILAN|discussion]]) 22 septembre 2013 à 13:51 (CEST)
== Auteur ???? ==
Et si on cherche livres d'un auteur specifique ?
???
:Les auteurs de Wikilivres qui le souhaitent peuvent publier leur bibliographie sur leur profil. Quant aux auteurs célèbres, ils sont sur [[s:|Wikisource]]. [[Utilisateur:JackPotte|JackPotte]] ([[Discussion utilisateur:JackPotte|<font color="#FF6600">$</font>♠]]) 18 juillet 2015 à 16:56 (CEST)
== Version mobile ==
Bonjour,
Je pense que ce serait une bonne idée de mettre le lien de la version mobile de Wikibooks pour que celui qui utilise un téléphone ou une tablette ne soit pas perdu et ne cherche pas n'importe où comment avoir un affichage correct.
Merci, [[Utilisateur:Aabbccddeeffabcdef|Aabbccddeeffabcdef]] ([[Discussion utilisateur:Aabbccddeeffabcdef|discussion]]) 19 décembre 2018 à 15:39 (CET).
:Les navigateurs des téléphones basculent automatiquement dessus par défaut. [[Utilisateur:JackPotte|JackPotte]] ([[Discussion utilisateur:JackPotte|<span style="color:#FF6600">$</span>♠]]) 19 décembre 2018 à 23:54 (CET)
== Rénovation ==
Bonjour,
Selon le projet [[w:fr:Projet:Charte graphique|Charte graphique]] de Wikipédia, pourrait-t-on rénover la page d'accueil avec les modèles [[Modèle:Boîte colorée|Boîte colorée]] et [[Modèle:Barre colorée|Barre colorée]].
Merci & Cordialement, [[Utilisateur:Aabbccddeeffabcdef|Aabbccddeeffabcdef]] ([[Discussion utilisateur:Aabbccddeeffabcdef|discussion]]), le [[Utilisateur:Aabbccddeeffabcdef|Aabbccddeeffabcdef]] ([[Discussion utilisateur:Aabbccddeeffabcdef|discussion]]) 13 mars 2019 à 17:38 (CET).
:Les rendus des versions desktop et mobile me semblent corrects aujourd'hui, donc je ne souhaiterais pas toucher à quelque chose qui fonctionne. [[Utilisateur:JackPotte|JackPotte]] ([[Discussion utilisateur:JackPotte|<span style="color:#FF6600">$</span>♠]]) 13 mars 2019 à 20:52 (CET)
== Faute d'orthographe sur [[Ict@innovation: Free your IT Business in Africa/2-1]] ==
Il y a une faute d'orthographe sur [[Ict@innovation: Free your IT Business in Africa/2-1]], mais dès que je veux modifier cette page, je suis redirigé vers la page d'accueil. J'ai corrigé d'innombrables pages sur wikipedia et les autres wiki cousins, mais là : impossible.
Je veux juste remplacer "été crée" par "été créé".
[[Utilisateur:Romanc19s|Romanc19s]] ([[Discussion utilisateur:Romanc19s|discussion]]) 4 mars 2021 à 19:03 (CET)
:Salut Romanc19s
:Effectivement, il y a un script qui bloque la création et la modification des pages ayant un nom bizarre.
:La page ne peut avoir été créée que par un bot (javascript ignoré) ou un administrateur.
:J'ai effectué la correction. Mais on peut remettre en cause la pertinence de la présence d'une telle page.
:-- ◄ [[Utilisateur:DavidL|'''D'''avid '''L''']] • [[Discussion Utilisateur:DavidL|discuter]] ► 4 mars 2021 à 19:49 (CET)
== Le réchauffement climatique ==
Le football il a changé [[Utilisateur:Redha.fortine.gta|Redha.fortine.gta]] ([[Discussion utilisateur:Redha.fortine.gta|discussion]]) 25 juillet 2022 à 02:32 (CEST)
J'aimerais parler du fait que les gens habate des arbres alors qu'on en a besoin pour vivre 😖 [[Utilisateur:Redha.fortine.gta|Redha.fortine.gta]] ([[Discussion utilisateur:Redha.fortine.gta|discussion]]) 25 juillet 2022 à 02:33 (CEST)
5jy6dm0wqmzce5f2613py9xle214z4b
682357
682356
2022-07-25T00:35:36Z
Redha.fortine.gta
110645
wikitext
text/x-wiki
{{Avertissement|Cette page est réservée aux discussions au sujet de la page d'[[Accueil]]. Les discussions sur le projet Wikilivres en général ont lieux sur [[Wikilivres:Le Bistro|Le Bistro]]}}
{{RemarqueIndex|Pour la maintenance, voir [[Wikilivres:Maintenance/Page d'accueil|Maintenance de la page d'accueil]].}}
*[[Discuter:Accueil/Archive 1|Archive ==>mars 2009]]
*[[Discuter:Accueil/Archive 2|Archive ==>mai 2013]]
== Chiffres ==
Pourquoi ne publie-t-on pas comme sur les autres wikis une indication de l'importance du site, avec quelque chose comme :
; {{PAGESINCATEGORY:Livres par titre}} livres sur {{NUMBEROFARTICLES}} pages
? [[Utilisateur:JackPotte|JackPotte]] ([[Discussion utilisateur:JackPotte|<font color="#FF6600">$</font>♠]]) 16 août 2013 à 22:21 (CEST)
:Je pense qu'il s'agit d'afficher des stats sur la page d'accueil, comme sur celle de Wikipedia tout en haut à droite ou dans le bistro du jour. Pourquoi pas? ''Liebe Grüße'', [[Utilisateur:Perditax|Perditax]] ([[Discussion utilisateur:Perditax|d]]) 19 septembre 2013 à 13:45 (CEST)
:: Pour ! [[Utilisateur:Jean-Jacques MILAN|Jean-Jacques MILAN]] ([[Discussion utilisateur:Jean-Jacques MILAN|discussion]]) 22 septembre 2013 à 13:51 (CEST)
== Auteur ???? ==
Et si on cherche livres d'un auteur specifique ?
???
:Les auteurs de Wikilivres qui le souhaitent peuvent publier leur bibliographie sur leur profil. Quant aux auteurs célèbres, ils sont sur [[s:|Wikisource]]. [[Utilisateur:JackPotte|JackPotte]] ([[Discussion utilisateur:JackPotte|<font color="#FF6600">$</font>♠]]) 18 juillet 2015 à 16:56 (CEST)
== Version mobile ==
Bonjour,
Je pense que ce serait une bonne idée de mettre le lien de la version mobile de Wikibooks pour que celui qui utilise un téléphone ou une tablette ne soit pas perdu et ne cherche pas n'importe où comment avoir un affichage correct.
Merci, [[Utilisateur:Aabbccddeeffabcdef|Aabbccddeeffabcdef]] ([[Discussion utilisateur:Aabbccddeeffabcdef|discussion]]) 19 décembre 2018 à 15:39 (CET).
:Les navigateurs des téléphones basculent automatiquement dessus par défaut. [[Utilisateur:JackPotte|JackPotte]] ([[Discussion utilisateur:JackPotte|<span style="color:#FF6600">$</span>♠]]) 19 décembre 2018 à 23:54 (CET)
Bonjour moi je suis sur mobile et je n'ai aucun problème alors voilà je pense qu'il on du changer ce sisteme bref bonne nuit 🌃 [[Utilisateur:Redha.fortine.gta|Redha.fortine.gta]] ([[Discussion utilisateur:Redha.fortine.gta|discussion]]) 25 juillet 2022 à 02:35 (CEST)
== Rénovation ==
Bonjour,
Selon le projet [[w:fr:Projet:Charte graphique|Charte graphique]] de Wikipédia, pourrait-t-on rénover la page d'accueil avec les modèles [[Modèle:Boîte colorée|Boîte colorée]] et [[Modèle:Barre colorée|Barre colorée]].
Merci & Cordialement, [[Utilisateur:Aabbccddeeffabcdef|Aabbccddeeffabcdef]] ([[Discussion utilisateur:Aabbccddeeffabcdef|discussion]]), le [[Utilisateur:Aabbccddeeffabcdef|Aabbccddeeffabcdef]] ([[Discussion utilisateur:Aabbccddeeffabcdef|discussion]]) 13 mars 2019 à 17:38 (CET).
:Les rendus des versions desktop et mobile me semblent corrects aujourd'hui, donc je ne souhaiterais pas toucher à quelque chose qui fonctionne. [[Utilisateur:JackPotte|JackPotte]] ([[Discussion utilisateur:JackPotte|<span style="color:#FF6600">$</span>♠]]) 13 mars 2019 à 20:52 (CET)
== Faute d'orthographe sur [[Ict@innovation: Free your IT Business in Africa/2-1]] ==
Il y a une faute d'orthographe sur [[Ict@innovation: Free your IT Business in Africa/2-1]], mais dès que je veux modifier cette page, je suis redirigé vers la page d'accueil. J'ai corrigé d'innombrables pages sur wikipedia et les autres wiki cousins, mais là : impossible.
Je veux juste remplacer "été crée" par "été créé".
[[Utilisateur:Romanc19s|Romanc19s]] ([[Discussion utilisateur:Romanc19s|discussion]]) 4 mars 2021 à 19:03 (CET)
:Salut Romanc19s
:Effectivement, il y a un script qui bloque la création et la modification des pages ayant un nom bizarre.
:La page ne peut avoir été créée que par un bot (javascript ignoré) ou un administrateur.
:J'ai effectué la correction. Mais on peut remettre en cause la pertinence de la présence d'une telle page.
:-- ◄ [[Utilisateur:DavidL|'''D'''avid '''L''']] • [[Discussion Utilisateur:DavidL|discuter]] ► 4 mars 2021 à 19:49 (CET)
== Le réchauffement climatique ==
Le football il a changé [[Utilisateur:Redha.fortine.gta|Redha.fortine.gta]] ([[Discussion utilisateur:Redha.fortine.gta|discussion]]) 25 juillet 2022 à 02:32 (CEST)
J'aimerais parler du fait que les gens habate des arbres alors qu'on en a besoin pour vivre 😖 [[Utilisateur:Redha.fortine.gta|Redha.fortine.gta]] ([[Discussion utilisateur:Redha.fortine.gta|discussion]]) 25 juillet 2022 à 02:33 (CEST)
b9b2qpczy6qxljh580zo84sc5qgjyr4
Goélette Cardabela/Après/La navigation
0
57167
682379
679246
2022-07-25T11:00:34Z
DavidL
1746
[[Spécial:LintErrors/html5-misnesting]] Balise <cite> se ferme automatiquement après la 1ère ligne
wikitext
text/x-wiki
<!--{{en travaux}}-->
{{#ifeq:{{SUBPAGENAME}}|La navigation|
<div class="noprint">{{Orange|Prévisualisez la [[Goélette_Cardabela/Après/La navigation/Version imprimable|'''Version imprimable''']]}}<br /></div>|
__NOTOC__}}
== Généralités ==
=== Ouvrages indispensables ===
: '''Ouvrages du SHOM en téléchargement :''' ''7 ouvrages essentiels gratuits.''
: http://www.shom.fr/les-services-en-ligne/ouvrages-en-telechargement
: '''Documents papier :'''
: Ces documents ne sont plus obligatoires, ils occupaient une place énorme dans les petits navires.
: Il peut être utile d'avoir des ''documents papier'' lorsque les connexions Internet ne sont pas possibles ou trop chers.
: '''Documents électroniques :'''
: Tous '''les ouvrages''' sont téléchargeables sur ordinateur ou tablette.
: '''Les cartes marines''' sont parfois intégrées aux logiciels tels que ''Mediterranean'' et ''Europe'' pour iPhone, ou ''Europe HD'' pour iPad. Les cartes ne sont pas intégrées à d'autres logiciels tels que ''iNax'' ou ''OpenCPN''.
=== Avis urgents aux navigateurs ===
Ces documents sont à consulter au départ de toute navigation littorale ou hauturière.
* En méditerranée :
: http://www.premar-mediterranee.gouv.fr/avis-urgents-aux-navigateurs.html
* En atlantique
: http://www.premar-atlantique.gouv.fr/avis-urgents-aux-navigateurs.html
=== Abordages ===
Cette page fait référence à la '''sécurité''' et aux '''abordages en mer'''.<br/>
Règlement international pour prévenir les abordages en mer (RIPAM). Ouvrages 2A et 2B (Téléchargements SHOM)
==== Temps limite de sécurité ====
De quel temps peut-on disposer entre deux observations ? <br />
<div class="noprint"><small>''Déroulez la boîte ci dessous, ou allez directement aux conclusions.''</small></div>
{{boîte déroulante/début|titre=''Le temps limite de sécurité.''}}
===== Vitesse et déplacements =====
<u>Pour se fixer les idées :</u>
Un navire dont la vitesse est de 36 km/h (19,44 nœuds) avance de 10 mètres par seconde.<br/>
Il parcourra 600 mètres (un tiers de mille nautique) en 60 secondes, ou se déplacera de un mille nautique en 3 minutes.
Un navire dont la vitesse est de 7 nœuds est de 10 * 7 /19,44 = 3,6 mètres par seconde.<br/>
Il parcourra 216 mètres en 60 secondes. Il lui faudra 8,6 minutes pour parcourir 1 mille nautique.
===== La vision et l'œil =====
[http://www.snof.org/encyclopedie/acuite-visuelle L'acuité visuelle] de l’œil est de l’ordre de 0,5 seconde d'arc. (valeur officielle pour une vue de 10/10ème)<br/>
(5 * PI)/(180 * 60) = 0,00145 qui est aussi la tangente d'arc jusqu'au 5ème chiffre après la virgule.
Pour se fixer les idées, cela correspond à un objet de 1,4 mètre de côté noir sur blanc situé à 1000 mètres, pour une vision normale de 10/10ème.
Une embarcation de 1,4 mètre de large et de haut est invisible à plus de 1/2 mille nautique d'un observateur.<br/>
''Il en serait de même pour une embarcation de 2,8 mètres de large sur 2,8 mètres de haut à 1 mille nautique.''
La tête d'un homme immergé, une bouée de 14 cm de diamètre, sont invisibles à plus de 100 mètres !
===== La hauteur d'observation =====
La terre est ronde. [http://fr.wikipedia.org/wiki/Horizon_%28physique%29 l'horizon] est masqué au-delà d'une certaine distance.
*Formule permettant de déterminer la limite de visibilité en fonction de la hauteur d'un observateur:<br/>
D = ((2*6378500)<sup>1/2</sup>/1852) * h<sup>1/2</sup> = '''1,93 h<sup>1/2</sup>''' en milles nautiques.
''Par exemple : pour un observateur situé à 4 mètres au dessus du niveau de la mer, l'horizon lui est caché au-delà de 4 milles nautiques. Il ne peut pas voir un objet de petite taille, même lumineux comme les feux de route d'un petit bateau.''
*Pour un radar la formule est '''D = 2,2 h<sup>1/2</sup>'''
''Pour exemple : La limite de visibilité est de 6,6 milles nautiques pour un radar situé à 9 mètres au-dessus du niveau de la mer.''<br/>
''Un <u>réflecteur</u> radar situé à moins de 9 mètres au-dessus du niveau de la mer est invisible, par le radar de l'exemple, au delà de 13,2 milles nautiques, quelle que soit la puissance d'émission et la qualité de réception de ce radar.''
{{boîte déroulante/fin}}
===== Conclusions =====
[[File:Collision in the Bay of Fos.gif|thumb|Particularité d'un abordage en baie de Fos (animation). Goélette Cardabela abordée par un bateau de pêche promenade.]]
'''Une petite vedette rapide invisible à 1/2 mille nautique fonçant à 40 nœuds (20 mètres/seconde) est à votre étrave en moins d'une minute après que vous l'aurez aperçue.'''
Si vous disposez d'un radar à 9 mètres au dessus du niveau de la mer et que vous avez la chance que le bolide ci-dessus ait un bon réflecteur, monté comme il faut ''(vertical pour les réflecteurs à tubes)'', vous aurez la chance de l'apercevoir dès que son approche avoisinera les 6 milles nautiques ; vous disposerez de 9 minutes avant un risque d'abordage.
'''[[:wikipedia:fr:Radar|<u>Avec un RADAR</u>]] situé 9 mètres au dessus du niveau de la mer, le temps limite de sécurité est de 5 minutes au voisinage des côtes et au voisinage des trajets de navires à grande vitesse (NGV).'''
'''<u>En observation visuelle</u> le temps limite de sécurité est inférieur à 30 secondes. Vous ne pouvez donc pas quitter la vigie sans être remplacé. 30 secondes est juste le temps qu'il faut pour jeter un coup d’œil à l'arrière ou appuyer sur un bouton dans la cabine de pilotage.'''
Heureusement tous les navires ne vont pas si vite en dehors des NGV, cependant, en Méditerranée. '''le temps d'inattention ne doit <u>jamais</u> être inférieur à 10 minutes en haute mer'''<br/>''Il est rare que les petits bolides quittent la côte. Les grands navires sont équipés de bons répondeurs et réflecteurs.''
Notez que la plupart des grands navires ont une vitesse de l'ordre de 20 nœuds ! Agrandissez l'image d'''Exemple de trafic en baie de FOS'' pour vous rendre compte de l'intensité du trafic en Méditerranée qui, sur cette copie d'écran, est relativement fluide ce 11 août 2012.
==== Que faire en cas d'abordage ====
http://www.affaires-maritimes.mediterranee.equipement.gouv.fr/IMG/pdf/sauvetage_remorquage_assistance_cle6fee34.pdf '''Votre sécurité en mer''' (Document officiel)
'''Bien mémoriser l'événement !'''
<!-- Déplacer vers Sécurité ...
===== Anecdotes sur la sécurité =====
[[File:ICS_Oscar.svg|thumb|Le pavillon Oscar indique "man overboard" (homme à la mer).]]
'''<u>À la [http://fr.wiktionary.org/wiki/vigie '''vigie'''] pas question d'aller aux toilettes.</u>'''
Les [http://en.wikipedia.org/wiki/Man_overboard '''hommes à la mer'''] se retrouvent, noyés ou non, la braguette ouverte. <br/>L'homme de vigie ne peut pas s'absenter de son poste. <br/>La coutume veut que l'on urine par dessus bord; on se tient d'une main à un hauban ou au balcon ; la moindre vague fait passer l'équipier par dessus bord !<br/>C'est vrai [http://www.leparisien.fr/sports/corse-la-navigatrice-florence-arthaud-echappe-a-la-noyade-30-10-2011-1693492.php pour les filles aussi.] '': Dans un entretien par téléphone avec BFM-TV, elle (la navigatrice Florence Arthaud) a expliqué à la mi-journée avoir eu "très peur". «Vers 23h15, j'étais en train de me préparer à faire pipi depuis mon "balcon" (partie avant du bateau, NDLR) et je suis tombée à l'eau.''
En cas de mauvais temps mieux vaut uriner dans ses bottes plutôt que de tomber à la mer.
-->
===== La mémoire =====
[[Fichier:Abordage Fos Trajets.jpg|thumb|Photographier, filmer tout en enregistrant une trace]]
* '''La mémoire humaine''' est en perpétuel renouvellement. Les connexions se modifient et les souvenirs s'estompent. Votre souvenir d'aujourd'hui n'est pas la réalité d'hier.<br/>''Référence : https://fr.wikipedia.org/wiki/Mémoire_(psychologie)''<br />
Pour bien mémoriser un événement il est nécessaire de l'écrire, de le photographier, et de l'enregistrer sur un support préservé du temps.
* '''La mémoire informatique''' :
Pensez à enregistrer votre '''Voyage''' sur votre ordinateur. <br/>Sur l''''iPhone''' ou l''''Ipad''' vous pouvez enregistrer une trace avec '''Navionics''' ou '''Europe HD''' ou [http://itunes.apple.com/fr/app/inavx-marine-navigation/id286616280?mt=8 '''iNavX'''].
* '''La photographie''' :
Avec '''Europe''' pour iPhone ou '''Europe HD''' pour iPad, vous pouvez photographier et filmer les événements depuis l'icône en superposition de la carte.
Si vous possédez les deux appareils (iPhone et iPad) utilisez l'iPad à poste fixe et prenez les photos avec une 2ème trace de navigation avec l'iPhone. <br/>''Pourquoi ? Nous avons constaté que les données des GPS peuvent être un peu différentes d'un appareil à un autre, surtout si on se déplace sur le bateau. Il est alors difficile de faire concorder la trace de l'iPad avec les données GPS des photos.''
===== Les papiers =====
Vous devez être en possession de :
*Votre '''Acte de francisation et titre de navigation''' ou l'équivalent étranger.
*Votre '''Attestation d'assurance''' à jour avec le nom de l'assureur, son adresses, son numéro téléphone, fax etc.
*Bien que pas obligatoire, votre '''Permis de conduire en mer les navires de plaisance à moteur''' si vous conduisez ce type d'embarcation.
*'''Suite à un évènement de mer, il appartient à tout navigateur de rédiger un rapport de mer et de le faire viser auprès d'un ''greffe du tribunal de commerce du premier lieu d'arrivée (de débarquement)'', ou, selon les anciennes conventions encore en vigueur en 2012: auprès du service des Affaires Maritimes (ddtm-dml selon les nouvelles dénominations). Ce rapport est indispensable pour toutes démarches ultérieures (assurance, expertise, actions contentieuses...).'''
<br/>
{{boîte déroulante/début|titre=''Rapport de mer, CROSS, Affaires Maritimes, greffes, assurances, distinctions juridiques''}}
===== Le CROSS les AFFAIRES MARITIMES et Les greffes des tribunaux de commerce =====
====== Le rapport de mer ======
:'''Le rapport de mer doit être adressé au greffe du tribunal de commerce du premier lieu de débarquement dans les 48 heures pour être valide. Ou ''à défaut'' aux '''[http://fr.wikipedia.org/wiki/Affaires_maritimes Affaires Maritimes]''' bien que le tribunal maritime n'existe plus.'''<br/>'''Le rapport de mer doit normalement être fait sur place, chez le greffe ou aux Affaires Maritimes.''' <br/>Il peut éventuellement être déposé dans la boîte aux lettres du greffe ou des Affaires Maritimes. En cas d'impossibilité : envoyez une lettre recommandée avec avis de réception si vous ne pouvez vraiment pas faire autrement. <br/>Évitez le courrier électronique qui n'a pas de valeur. <br/><u>'''Votre rapport de mer doit être tamponné pour être valide, '''</u> alors pensez à joindre une enveloppe timbrée si vous ne faites pas la déclaration sur place.
::Le [http://fr.wikipedia.org/wiki/Centre_r%C3%A9gional_op%C3%A9rationnel_de_surveillance_et_de_sauvetage '''CROSS'''] ne remplace pas les greffes ni les Affaires Maritimes pour les déclarations de "'''Rapport de mer'''" qui font référence en cas de procédure, cependant les renseignement du CROSS peuvent être utiles même s'ils ne font pas référence.
::Les '''Affaires Maritimes''', sont maintenant appelées [http://fr.wikipedia.org/wiki/Directions_d%C3%A9partementales_des_territoires_et_de_la_mer ddtm] - [http://lannuaire.service-public.fr/services_locaux/languedoc-roussillon/herault/dml-34301-02.html dml] <small>('''Direction départementale des Territoires''' - '''Délégation à la Mer et au Littoral''')</small>
::<small>La [[http://www.affaires-maritimes.mediterranee.equipement.gouv.fr/ '''Direction Inter-Régionale de la mer méditerranée'''] est encore en réorganisation cet été 2012</small>
:<big>'''Conseils :'''</big>
<blockquote>
*Le personnel du '''CROSS''' est très compétent. Vos interlocuteurs vous donneront la marche à suivre et pourront vous suivre par VHF ou par téléphone jusqu'à bon port. La '''SNSM''' pourra éventuellement être sollicitée pour vous secourir si vous n'avez pas d'autre secours possible sur place.
*'''Soyez le premier à appeler le CROSS''' pendant que votre futur adversaire est présent. Cela évitera les malentendus et mensonges. Les équipiers sont encore là pour donner leur version.
*'''Faites votre <u>Rapport de mer</u> dans les 48 heures.
<!--aux Affaires Maritimes''' [http://lannuaire.service-public.fr/services_locaux/languedoc-roussillon/herault/dml-34301-01.html "ddtm-dml"] à la Délégation, ou par ou par écrit avec Lettre Recommandée et Accusé de Réception si vous ne pouvez pas vous déplacer.
:ddtm-dml BP 472 - 16 rue Hoche - 34207 SETE CEDEX
:Courrier électronique : ddtm-dml [ à ] herault.gouv.fr-->
</blockquote>
====== Les greffes sur Montpellier ======
C'est un peu le bazar .... On ne sait pas vraiment à qui s'adresser.
http://www.greffes.com/fr/rechercher-un-greffe/infos/languedoc-roussillon/montpellier/
http://www.greffes.com/index.php
===== Les assureurs =====
Entendons par '''''assureur''''', l'agent qui vous assure et gère votre dossier, et non la compagnie.
Il est évidemment nécessaire d'avertir votre assureur dès que possible.
Essayez de donner une explication claire de l’événement. Après un accident on est souvent choqué et la déclaration n'est pas toujours facile. Faites vous aider par vos équipiers.
Méfiez vous de la tentation de mensonge pour éviter la sur-prime d'assurance.
[http://www.generali.fr/cote-pratique/guide/guide-biens/plaisance-sinistre/ Recommandations GENERALI]<br/>
[http://www.samap-amaf.com/conduite-a-tenir-en-cas-de-sinistre---23-44--27.html Recommandations SAMAP]
===== Distinction juridique =====
La [http://www.ffsa.fr/sites/jcms/fn_50090/l-assurance-corps-de-navires?cc=fn_11253 distinction juridique]
entre l' abordage et le heurt mérite d'être soulignée. <cite>La responsabilité du fait d'un abordage est une responsabilité fondée sur la faute commise : la réparation des dommages et des préjudices causés au tiers lésé n'est due que dans la mesure et dans la proportion de la faute prouvée du navire assuré, alors que le heurt causé par le navire contre un bien ou une installation engage de plein droit sa responsabilité, sans que la victime ait à établir la preuve d'une faute.</cite>
{{boîte déroulante/fin}}
{{Nouvelle page imprimée}}
== Armer et désarmer un navire ==
Viktitionaire : <cite>Équiper un bâtiment, le pourvoir de tous les objets nécessaires pour le mettre en état de prendre la mer, qu’il s’agisse d’un bâtiment de guerre, de commerce ou de loisir.</cite>
La délivrance des lettres de marque et le droit de course avec commission, c'est-à-dire après avoir reçu du roi l'autorisation d’armer des navires et de courir sus aux étrangers dont on avait à se plaindre, devinrent bientôt très profitables aux armateurs malouins et à leurs confrères des autres ports. — (Étienne Dupont, Le vieux Saint-Malo : Les Corsaires chez eux, Édouard Champion, 1929, p.47)
* Il vous faut donc un droit de naviguer. (Francisation par exemple)
* Il est nécessaire de dresser la liste de tout le matériel et toutes ressources nécessaires à embarquer pour un voyage déterminé.
* Il est inutile d'en pré-dresser une liste qui serait sûrement incomplète.
{{Nouvelle page imprimée}}
== Naviguer ==
* Règles de navigation pour prévenir les abordages en mer (RIPAM)
=== Veilles de nuit, quarts ===
: '''Où trouver les documents''', les instruments et le matériel de sécurité ?
==== Veille traditionnelle par tranches de 4 heures ====
:; Prévoir dans un document ou sur le livre de bord les points importants de la navigation:
:* Visibilité de nuit, prévoir des jumelles, des lampes torche, homme à la mer, etc.
:* Fonctionnement des feux (feux de route, feux de mât, feux de hune, éclairage du pont)
:* Contrôles (tous les appareils de contrôle et le pilote automatique.)
:* Liste et coordonnées des bouées et entrées de ports
==== Veille aux instruments ====
:La veille aux instruments ne dispense pas de la veille traditionnelle, c'est une aide supplémentaire.
:* RADAR
:* Sondeur
=== Amarrages ===
Avec l'été nous sommes appelés à naviguer hors de notre zone habituelle. Or les amarrages peuvent être très différents d'un lieu à un autre. En Méditerranée il est habituel de s'amarrer sur pendilles sauf dans la baie d'Aigues-Mortes où les ports sont équipés de poteaux. Dans le port de Frioul il faut attraper une bouée et reculer à quai...
==== Les pendilles ====
La pendille est ce cordage lié à une chaîne, elle même reliée à une chaîne mère. Cette pendille sert à éloigner le bateau du quai et pose un problème si on n'a jamais été confronté à cet amarrage.
- On s'amarre d'abord à l'arrière, cul à quai avec un seul cordage si on est collé à un autre bateau, en prenant soin d'amarrer au quai le côté collé au bateau. On met alors le moteur en marche avant, en douceur ; ceci a pour effet de coller les deux bateaux et on a alors tout son temps pour attraper la pendille, la passer à l'avant et l'amarrer à l'étrave. <br/>Il suffit ensuite de mettre le moteur en marche arrière pour ajuster la distance avec le quai. On s'occupe ensuite de l'autre amarre arrière pour ajuster le centrage. Si l'amarrage est trop mou, on donne un peu de mou aux amarres arrières en on souque sur la pendille.<br/>- S'il n'y a pas de bateau à côté il faut amarrer l'arrière avec deux cordages de même longueur, puis on s'occupe de la pendille.
Pour quitter l'amarrage on procède à l'envers ; désamarrer le côté opposé au bateau auquel on est collé (s'il y a lieu), enclencher l'inverseur en marche avant, désamarrer la pendille et vérifier qu'elle ne risque par de se prendre dans l'hélice ou la quille, retourner tranquillement à l'arrière, mettre l'inverseur au point mort ; récupérer la ou les amarres arrière et quitter les lieux tranquillement.
==== Les bouées ====
[[Fichier:Amarrage sur bouée.JPG|thumb|450px|left|Amarrage incorrect sur bouée. L'amarre rague dans l'anneau et peut se rompre.<br/>
Amarrer d'un seul côté ou amarrer sur deux bouées.]]
*Les bouées sont équipées de gros anneaux dans lesquels on passe une amarre. C'est l'équivalent d'une pendille, sauf que l'on ne peut pas agir du quai, il faut impérativement passer l'amarre en reculant...
*Il faut en général disposer d'un long cordage (30 mètres). À défaut ce peut être un cordage plus court prolongé d'un cordage destiné à amener le gros cordage au bateau.
*'''Conseil : Seul à bord''' il est difficile de s'occuper de la manœuvre en marche arrière et de passer le cordage dans l'anneau ; une aide de la capitainerie peut être nécessaire. (Mieux vaut donc arriver de jour...)
- '''Deux à bord''', l’équipier s'occupe de passer le cordage dans l'anneau tandis que le skipper s'occupe de la manœuvre et de l'amarrage arrière.
Tout se passe alors comme avec la pendille ; il faut mettre le moteur en marche avant et souquer sur l'amarre d'étrave, etc.
Pour quitter l'amarrage, comme avec la pendille on enclenche l'inverseur en marche avant ; on récupère l'amarre d'étrave ; puis on récupère rapidement les amarres arrières, inverseur au point mort.
<gallery>
Fichier:Bouée d'amarrage.JPG|Bouée du port de Frioul
Fichier:Gaffe spéciale.JPG|Gaffe spéciale pour passer les cordages derrière un obstacle ou dans un anneau de bouée.
</gallery>
==== Sur pieux ====
L'amarrage sur pieux est courant dans les ports du Languedoc Roussillon. Les pieux sont reliés au quai ou au ponton par des cordages.
* '''Avant d'entrer dans la place''' il faut relever les défenses latérale car elles risquent de bloquer le recul, voire d'arracher leurs fixations. Il faut cependant conserver ces défenses prêtes à être mises en place dès que le passage des pieux est passé. <br />Les amarres avant et arrières doivent être en place et fixées au bateau.
: '''Placer le bateau''', poupe ''le cul'' face aux deux pieux, gouvernail droit et fixe.
* '''Entrer dans la place avec un propulseur d'étrave''' :
: Après avoir enclenché la marche arrière, sans accélérer la rotation de l'hélice, on dirige le recul par des actions brèves sur le propulseur d'étrave. Une rotation trop rapide de l'hélice provoque un changement de direction de la poupe vers tribord, vers bâbord pour les hélices qui tournent à gauche. Il faut tenir compte de cet effet d'hélice en cas de vent fort latéral ou arrière qui nécessitent une rotation d'hélice plus rapide, c'est une question d'expérience, il faut parfois s'y reprendre à plusieurs reprises.
* '''Entrer dans la place sans propulsion d'étrave''' :
: Par temps calme on agit sur le gouvernail dès que le bateau a de l'erre. Si il faut augmenter la rotation de l'hélice le bateau va reculer de travers. Sur un dériveur on peut remédier à cet effet en baissant la dérive relevables ou les dérives latérales.
* '''Dans la place''', l'équipier met les défenses en place et les amarre d'étrave sur les pieux. {{rouge|Rappel : ''Les amarres arrières et avant ont été préalablement fixées au bateau''}}. Le skipper s'occupe de la propulsion en maintenant le bateau à proximité au quai ou au ponton pendant que l'équipier passe les amarres arrières sur les fixations prévues du quai ou du ponton. L'équipier remonte sur le bateau est procède d'abord au réglage des amarres arrières, ensuite, la propulsion en marche avant au ralenti on procède au réglage des amarres d'étrave.<br />À défaut d'équipier il y a un risque d'endommager la plage arrière. Pour éviter ce risque il faut remonter la plage arrière quand c'est possible et placer une très grosse défense à l'arrière. Il est parfois possible de s’amarrer provisoirement au bateau voisin avec l'accord de son skipper.
==== À couple ====
:'''Dans tous les cas éviter l'amarrage à couple.'''
:{{Rouge|<big>Il faut avoir une autorisation pour s'amarrer à un bateau ou à un ponton d'embarquement. <br />Demander l'autorisation d'amarrage au skipper ou au propriétaire du ponton ou du bateau. <br />Sans autorisation il ne faut pas s'amarrer !</big>}}
:Il y a malheureusement trop souvent des '''amarrages pirates''' pendant l'été, la plupart du temps au ponton à carburant. Les navigateurs novices n'ont souvent pas conscience des dégâts qu'ils peuvent causer à leur propre bateau et aux bateaux voisins; arrachement des listons et des points d'amarrage. De plus, c'est souvent une invitation à d'autres bateaux de s'amarrer en troisième, quatrième position, et plus parfois.
:On peut '''exceptionnellement''' s'amarrer à un bateau ou à un ponton en cas de détresse et pour un temps court. Il est tout de même recommandé de demander l'autorisation pour un amarrage bref et il est recommander de laisser un équipage à bord. '''Éviter la dispersion de l'équipage dans la ville !'''
:Il peut arriver que l'on s'amarre au bateau d'un ami pour partager un moment convivial. '''Au mouillage''' éviter les amarrages multiples et compliqués. Si la houle ou les vagues surviennent il faut se désamarrer facilement. Il est toujours possible de rendre visite à un bateau voisin avec l'annexe.
=== Mouillages ===
==== Anti-roulis de fortune ====
[[Image:Anti-roulis-1.jpg|thumb|L'ancre flottante est amarrée à une drisse]]
[[Image:Anti-roulis-2.jpg|thumb|La drisse est débordée pour augmenter l'amortissement]]
'''Il nous arrive de mouiller notre ancre et une légère houle vient gâcher notre plaisir.'''
L'idée est de profiter au mieux de ces instants de bonheur avec notre famille, nos amis, et de leur éviter les désagréments.
L'exemple proposé convient bien aux voiliers. <br/>''Pour les bateaux à moteur il existe des systèmes que l'on fixe aux bordés.''
===== Technique =====
:Il est impératif que l'extrémité de l'ancre flottante soit pesante. Un bout de chaîne convient parfaitement. Il est difficile de proposer un poids car il dépend de la taille de l'ancre flottante.
: L'ancre flottante est souvent équipée d'un croisillon qui maintient l'ouverture à la plongée. On l'amarre à une drisse débordée par un tangon.
===== Mettre le système en place =====
; Il faut évidemment
# faire passer la drisse dans l'extrémité du tangon,
# fixer le tangon au mât
===== Réglages =====
# L'ancre flottante doit être placée un peu en dessous du niveau de la mer afin que l'énergie soit dépensée par l'écoulement de l'eau à l'extrémité de l'ancre.
# Ajuster le poids à l'extrémité de l'ancre flottante Ce poids dépend du volume d'eau déplacé. Avec notre petite ancre nous utilisons environ 8 kg de chaîne.
# Ajuster la longueur et la position du tangon pour obtenir le meilleur effet. Sur l'image le tangon est placé sur le mât avant, il fait 4 mètres de long et il peut être allongé jusqu'à 6 mètres.
===== Récupérer le système =====
: Si la mer se fâche ce système doit être démonté rapidement car il peut être difficile de le récupérer si on ne peut pas compter sur l'équipage du moment. Il faut prévoir cette situation et avoir les manœuvres en tête pour être efficace en cas d'urgence.
===== Sécurité =====
; Il y a des risques d'abordage, surtout la nuit.
# {{rouge|Disposer une boule noire en bout de tangon}}, de même dimension que la boule de mouillage.
# {{rouge|Équiper le bout du tangon avec un flash automatique}} qui se met en marche si vous comptez rester au mouillage la nuit tombante.
==== Le quadrillage du mouillage ====
Ce quadrillage est utile lorsque le bateau est au mouillage avec des dangers à proximité. Il consiste à situer le bateau grâce au GPS.
:Ce quadrillage consiste à tracer des coordonnées en longitude et latitude, en centièmes ou millièmes de minutes.
::La largeur des colonnes « Longitude » dépend de la latitude. La largeur des colonnes = hauteur des lignes * cosinus de la latitude.
::En méditerranée on se contente de quadrillages de 4 carreaux pour un centième de degré de la latitude et 3 carreaux pour un centième de degré de la longitude. 4 carreaux représentent alors 18,5 mètres et 12 carreaux représentent 55 mètres qui est aussi la longueur habituelle des mouillages de nos bateaux.
:On se reporte au livre de bord avec les coordonnées habituelles:
::Numéro du repère | Heure | Latitude | Longitude | Force du vent et direction | Rafales de vent et direction | Commentaire.
::On place des points ou des croix aux coordonnées correspondantes du quadrillage.
::Représenter les dangers ou les limites de sécurité sur ce même quadrillage.
[[File:Navigation 2002-Baie de Stagnolu.png|thumb|450px|centre|Position du bateau au point N°24 du mouillage de Stagnolu (Corse)]]
[[File:Quadrillage du mouillage de Stagnolu.jpg|thumb|450px|center|Les points montrent la position du bateau dans un quadrillage en longitude et latitude. Les chiffres sont les millièmes des minutes des positions. Par exemple 383 pour 41° 37,383 ' N. La méthode est utile lorsque la position du bateau est critique avec des obstacles tout autour. Nous avons mis cette méthode au point au point pour éviter que le mouillage se prenne dans des épaves.]]
==== Ancrage ====
On lira avec intérêt l'article bien plus développé sur wikipédia [[w:Ancre (mouillage)|Ancre (mouillage)]]
:{{rouge|Il faut se souvenir qu'il n'y a pas de bon ancrage. Sous entendu : ''ancrage temporaire''.}}
:;Technique banale: Repérer les lieux sur les cartes marines, la direction du vent, les courants, la hauteur du fond.
# '''Choisir le lieu'''. À l'abri du vent, de la houle, des vagues, parfois choisir le type de fond, éviter de déraciner les posidonies.
# '''Immobiliser le bateau''' et repérer la position GPS. S'il est impossible d'immobiliser le bateau, se placer face au vent ou au courant, un peu au devant de la position choisie.
# '''Larguer l'ancre à toucher le fond''', laisser ''culer'' le bateau ou mettre le moteur au ralenti en marche arrière. Larguer de la chaîne, au moins cinq fois la hauteur du fond. Vérifier que l'ancre est bien ''crochée''.
===== Les ancres =====
Dans les conversations, tout le monde prétend avoir la meilleure ancre, cela n'existe pas, malgré toutes les démonstrations des vendeurs. Certaines ancres crochent mieux que d'autres, les ancres plates crochent bien dans le sable et la boue, elles n'aiment pas les rochers. Les « socs de charrue », les CQR et copies, crochent bien dans la boue et sont préférables aux ancres plates dans les rochers. Un ami avait dit <cite>C'est moins pire.</cite>
: '''''Tout ce que l'on demande à une ancre c'est de tenir le bout de la chaîne qui, elle, doit être collée au fond.'''''
===== Les chaînes d'ancres =====
« ''Un bateau tient bien au mouillage grâce au poids de sa chaîne d'ancre'' » dit-on. On peut préférer 100 m de chaîne de 10 mm ou 55 m de chaîne de 12 mm, tout est question d'appréciation et de la capacité du guindeau.
: Un '''mouillage par 5m de fond''' et 25 m de chaîne de 12 mm est un minimum pour un bateau de 15 tonnes. Si on a de la place autour du mouillage il est quand même préférable de larguer plus de chaîne, voire toute la chaîne (52 m) si le vent doit forcir. Un tel mouillage, est courant, de très bonne qualité si on est à l'abri des vagues et à condition que l'ancre soit bien ''crochée''.
: Un '''mouillage par 10 m de fond''' nécessite de larguer 50 m de chaîne. Un tel mouillage sera plus souple en cas de houle ou de vagues, mais sera moins sûr si le vent doit ''forcir''.
;:Comportement à la mer: [[Fichier:Élément de chaînette.svg|thumb|400x400px|Élément de chaîne ]]
''Références : https://fr.wikipedia.org/wiki/Cha%C3%AEnette#Calcul_m.C3.A9canique''
La chaîne est fixée au bateau d'un côté et est posée au fond de l'eau de l'autre côté, elle est soumise à une tension uniforme <math>T</math> sur toute sa longueur. L'angle <math>\alpha</math> de plongée de la chaîne donne une idée de la force de retenue du bateau. <math>\alpha = 0</math> en absence de tension.
le bateau est retenu par une force horizontale <math>H = T \cos \alpha</math> et par le poids de la chaine <math>V = T \sin \alpha</math>.
En tout point de la chaîne suspendue, la chaîne a une composante horizontale constante et une force verticale qui dépend du point de mesure et de la longueur de chaîne depuis la position initiale <math>s-s_0</math> où elle touche de sol, et de son poids linéaire dans l'eau <math>w</math>.
<math>T \sin \alpha = w(s-s_0)\,</math>
En tout point de la chaîne suspendue
<math>T^2 = H^2 + w^2 (s-s_0)^2\,</math>
; Exemples
Le poids linéaire d'une chaîne de 12 mm est de 3,24 kg/m hors d'eau, son poids est ramené à 2,83 kg/m dans l'eau.
On aura une force de retenue égale à 28 kgf pour 10 mètres de chaîne mouillée suspendue entre le bateau et le fond de mer, avec une chaîne plongeant avec un angle de 45°.
:; Cela correspond à quoi en hauteur d'eau ?: Grâce à la tension constante <math>T</math> en intensité et en direction on peut calculer la longueur de chaîne <math>s</math> jusqu'à la position de l'élément de chaîne de coordonnées <math>x</math> et <math>y</math>, où <math>x</math> et <math>y</math> sont la distance horizontale et la hauteur par rapport au point de contact <math>s_0</math> de la chaîne avec le fond. On peut alors calculer la longueur de chaîne entre cette origine et l'élément de chaîne.
::<math>y - y_0 = \frac {H} {w} \cosh \frac {w} {H} (x-x_0)\,</math>
::Dans l'exemple <math>\frac {H} {w} = 10</math> on peut tracer {{bleu|''en bleu''}} l'allure que doit avoir la chaîne d'ancre.
::La longueur de chaîne correspondante au calcul précédent :<math>s - s_0 = \frac {H} {w} \sinh \frac {w} {H} (x-x_0)\,</math>
{{clr}}
{{Nouvelle page imprimée}}
;Évaluation graphique :
[[File:Chaîne d'ancre avec une force de retenue égale à 10 fois le poids de 1 mètres de chaîne.png|thumb|left|640px|Comportement d'un mouillage avec une chaîne d'ancre et une force de retenue égale au poids de 10 mètres de chaîne.]] Commentaire du tableau : Pour une même tenue dans les conditions énoncées on peut conclure que la chaîne d'ancre se trouve par 5 mètres de fond et que la longueur de chaîne suspendue est de 11 mètres. (Pour de la chaîne de 12 mm cela représente une force de retenue de 28 kgf)
:Remarques : Pour une même force de retenue avec un mouillage par 10 m de fond le bateau se trouverait 3 mètres plus loin et la chaîne suspendue serait de 17 mètres.
:Corollaire : Pour la même force de retenue définie ci-dessus, le mouillage peut accepter une marée haute de plus de 5 mètres si le mouillage a tété effectué à marée basse.
{{clr}}
{{Nouvelle page imprimée}}
; Lorsque la force du vent va doubler: toujours pour 5 mètres de fond, la quantité de chaîne suspendue sera de 21 mètres. (Pour de la chaîne de 12 mm cela représente une force de retenue de 112 kgf)
[[File:Chaîne d'ancre avec une force de retenue égale à 40 fois le poids de 1 mètres de chaîne.png|thumb|left|640px|Comportement d'un mouillage avec une chaîne d'ancre et une force de retenue égale au poids de 40 mètres de chaîne.]]
:Remarque : Un mouillage par 10 mètres de fond soulèverait bien plus de chaîne sans avoir une meilleure tenue.
:Conséquence : On n'a pas intérêt à mouiller par fond profond quand ce n'est pas nécessaire.
{{clr}}
===== Les cordages plombés =====
Le cordage est plombé sur les premiers mètres et il est suivi par du cordage simple. On peut les utiliser pour des mouillages très temporaires avec une petite ancre (plate pour le sable) ou un grappin (pour les rochers). En général il vaut mieux mouiller par petit fond et larguer un maximum de cordage.
===== Les orins =====
Éviter les bouées d'orins en surface. Il y aura toujours quelqu'un qui voudra tirer dessus et un bateau de passage risque de décrocher l'ancre. La bouée d'orin doit rester sous l'eau et la profondeur est à l'appréciation du capitaine. On ne doit jamais ramener la bouée d'orin à l'étrave du bateau car il y a le risque d'entourer le cordage de l'orin autour de la chaîne d'ancre, mieux vaut remonter l'ancre par son orin quand c'est possible, sinon demander à un équipier de remonter l'orin plus en arrière du bateau au fur et à mesure de la remontée de l'ancre.
==== Comportement à la houle ====
Selon que la houle vient de face ou de travers, si elle est longue ou courte, si elle est haute ou non, le comportement du bateau sera différent.
L'étrave du bateau sera soulevé avec sa chaîne d'ancre et va tirer le bateau vers l'avant. Selon les graphes ci dessus, dans les conditions que nous avons défini, avec une houle de 5 mètres le bateau sera tiré puis lâché avec un déplacement théorique estimé de 4 mètres.
:'''Lorsque la houle a une composante de travers''' on peut être tenté de mouiller une petite ancre, ou une ancre fortune, à l'arrière ou sur le côté pour maintenir le bateau face à la houle et limiter le roulis. Ce n'est pas toujours une bonne idée mais on évite ainsi bien des désagréments. Exceptionnellement cela est possible mais l'ancre de fortune peut être difficile à récupérer. Dans de cas on largue ce mouillage avec une bouée pour le récupérer après avoir remonté l'ancre principale. Frapper un orin ramené au bateau sur cette ancre n'est pas une bonne idée car l'ancre risque de décrocher, de plus, le mouillage peut être perdu.
==== Comportement à la vague ====
Le bateau va prendre des « coups de bélier ». Selon la position du bateau par rapport à la vague la situation sera encore plus inconfortable qu'avec la houle de travers.
L'assaut de la vague va pousser le bateau.
Si la vague vient de face, c'est la position la moins inconfortable qui permet de « voir venir ». Dans ces cas il est préférable de disposer d'un mouillage très long pour adoucir les effets d'aller et venues du bateau. Un mouillage très long peut vouloir dire « avec un supplément de cordage », ou un mouillage avec une très longue chaîne d'ancre. (100 m de chaîne de 10 mm plutôt que 55 m de chaîne de 12 mm).
Inutile de préciser qu'une rallonge de mouillage ne peut pas être improvisée, il faut prévoir l'action dès que la météo annonce le mauvais temps. Si il y a un abri ou un port, mieux vaut s'y rendre sans attendre.
[[Catégorie:Goélette Cardabela (livre)|{{SUBPAGENAME}}]]
63i6vmdg8wp6piq4bmuelwlkd0da4p9
Mkd (Extracteur de documents)/Livre imprimable
0
57290
682383
680634
2022-07-25T11:04:27Z
DavidL
1746
[[Spécial:LintErrors/html5-misnesting]] Balise <span> se ferme automatiquement après la 1ère ligne
wikitext
text/x-wiki
__NOEDITSECTION__
__NOTOC__
<div style="text-align: center;">
<br />
<br />
<br />
<br />
<span style="font-size:38px;font-weight:bold;">Mkd (Extracteur de documents)</span>
<span style="font-size:12px;">https://fr.wikibooks.org/wiki/Mkd(Extracteur_de_documents) </span>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
[[File:Husky puzzle book.svg|144px]]<br />
</div>
{{Nouvelle page imprimée}}
<br />
<br />
<br />
<br />
{{Notice de version imprimable
|titre=Mkd (Extracteur de documents)
|lien=Mkd_(Extracteur_de_documents)/Livre_imprimable
|nbpages= 58 (format paysage)
|date=2016-08-25}}
{{Couverture de version imprimable
|titre=mkd, commande UNIX<br><small>Extracteur de documents</small>
|auteurs=<!--Centre d'électronique et de microélectronique de Montpellier<br-->Éditeurs européens de logiciels libres
}}
{{Nouvelle page imprimée}}
= Introduction =
mkd est une commande Unix / Linux utilisée dans les fichiers de commandes et dans les Makefile pour maintenir à jour la documentation logicielle.
Des versions sont disponibles pour MASM / MS-DOS et pour Visual studio / MS-Windows.
Très simple et très pratique d'utilisation, mkd peut être proposé aux les travaux pratiques de l'informatique pour l'étude du ''cycle en V''.
= Sommaire =
<!--{{:Mkd_(Extracteur_de_documents)/Sommaire}}-->
<pre>
Cette version imprimable comprend les chapitres suivants :
LA COMMANDE ET LES EXERCICES (Version imprimable) (Version pdf) 08/2016
Première partie : DESCRIPTION
La commande mkd
Deuxième partie : EXERCICES
Introduction aux exercices
Comprendre les options
Comprendre les fichiers de projets
MAINTENANCES, MISES À JOUR, ÉVOLUTIONS
Troisième partie : INTERNATIONALISATIONS
Internationalisation des manuels
Internationalisation des messages
Quatrième partie : CODER, TESTER, INTEGRER, DOCUMENTER
Ajouter des modules
Cinquième partie : CONSTRUCTION D'UN PAQUET DEBIAN
Exercice de Construction d'un Paquet 'debian' pour la maintenance logicielle
Dépôt parrainé debian-ubuntu du paquet original mkd-131215
Mkd (Extracteur de documents)/Dépôt parrainé du paquet ''original'' mkd-131215/Mise à jour de paquets
Sixième partie : CONSTRUCTION D'UN PAQUET RED-HAT
Paquets 'RPM' Red Hat Package Manager
NOTES ET ANNEXES
1.mkd-Manuel (fr)
2.mkddocu-Manuel (fr)
3.Compilations de wiki-livres
4.QR pour pages imprimées
5.Notes Icônes des fichiers et applications héritées
6.Licences
</pre>
{{Nouvelle page imprimée}}
<div style="text-align: center;">
<br />
<br />
<br />
<br />
<span style="font-size:38px;font-weight:bold;">Mkd (Extracteur de documents)</span>
Première partie :
LA COMMANDE MKD
</div>
{{Nouvelle page imprimée}}
= La commande mkd =
{{:Mkd_(Extracteur_de_documents)/La commande mkd}}
<!--
-->
{{Nouvelle page imprimée}}
<div style="text-align: center;">
<br />
<br />
<br />
<br />
<span style="font-size:38px;font-weight:bold;">Mkd (Extracteur de documents)</span>
Deuxième partie :
EXERCICES
</div>
{{Nouvelle page imprimée}}
= Exercices =
{{:Mkd_(Extracteur_de_documents)/Exercices}}
{{Nouvelle page imprimée}}
= Comprendre les options de la commande mkd =
{{:Mkd_(Extracteur_de_documents)/Comprendre_les_options}}
{{Nouvelle page imprimée}}
= Comprendre les fichiers de projets pour mkd =
{{:Mkd_(Extracteur_de_documents)/Comprendre_les_fichiers_de_projets}}
{{Nouvelle page imprimée}}
<div style="text-align: center;">
<br />
<br />
<br />
<br />
<span style="font-size:38px;font-weight:bold;">Mkd (Extracteur de documents)</span>
<span style="font-size:24px;font-weight:bold;">MAINTENANCES, MISES À JOUR, ÉVOLUTIONS</span>
<span style="font-size:38px;font-weight:bold;">Troisième partie :</span>
INTERNATIONALISATIONS
<span style="font-size:24px;font-weight:bold;">MANUELS ET MESSAGES</span>
</div>
{{Nouvelle page imprimée}}
= Internationalisation des manuels =
{{:Mkd_(Extracteur_de_documents)/Internationalisation_des_manuels}}
{{Nouvelle page imprimée}}
= Internationalisation des messages =
{{:Mkd_(Extracteur_de_documents)/Internationalisation_des_messages}}
{{Nouvelle page imprimée}}
<div style="text-align: center;">
<br />
<br />
<br />
<br />
<span style="font-size:38px;font-weight:bold;">Mkd (Extracteur de documents)</span>
<span style="font-size:24px;font-weight:bold;">MAINTENANCES, MISES À JOUR, ÉVOLUTIONS</span>
<span style="font-size:38px;font-weight:bold;">Quatrième partie :</span>
CODER
TESTER
INTÉGRER
DOCUMENTER
<span style="font-size:24px;font-weight:bold;">Exemple de programme pour le cycle en V</span>
</div>
= Ajouter des modules =
{{:Mkd_(Extracteur_de_documents)/Ajouter_des_modules}}
{{Nouvelle page imprimée}}
{{Nouvelle page imprimée}}
<div style="text-align: center;">
<br />
<br />
<br />
<br />
<span style="font-size:38px;font-weight:bold;">Mkd (Extracteur de documents)</span>
<span style="font-size:24px;font-weight:bold;">MAINTENANCES, MISES À JOUR, ÉVOLUTIONS</span>
<span style="font-size:38px;font-weight:bold;">Cinquième partie :</span>
CONSTRUCTION D'UN PAQUET DEBIAN
<span style="font-size:24px;font-weight:bold;">Exercice de Construction d'un Paquet 'debian'</span>
Dépôt parrainé debian-ubuntu du paquet original mkd-131215
</div>
= Exercice de Construction d'un Paquet 'debian' pour la maintenance logicielle =
{{:Mkd_(Extracteur_de_documents)/Paquet 'debian' pour la maintenance logicielle}}
{{Nouvelle page imprimée}}
= Exemple de dépôt parrainé debian-ubuntu du paquet original mkd-131215 =
{{:Mkd (Extracteur de documents)/Dépôt parrainé du paquet ''original'' mkd-131215}}
{{Nouvelle page imprimée}}
{{:Mkd (Extracteur de documents)/Dépôt parrainé du paquet ''original'' mkd-131215/Mise à jour de paquets}}
{{Nouvelle page imprimée}}
= Codes QR des téléchargements =
{{:Mkd_(Extracteur_de_documents)/QR_pour_pages_imprimées}}
{{Nouvelle page imprimée}}
= NOTES ET ANNEXES =
== Notes ==
Notes Icônes des fichiers et applications héritées
{{:Mkd_(Extracteur_de_documents)/Notes}}
== ANNEXES ET LIENS ==
1.mkd-Manuel (fr)
: https://fr.wikibooks.org/wiki/Mkd_(Extracteur_de_documents)/mkd-Manuel_(fr)
2.mkddocu-Manuel (fr)
: https://fr.wikibooks.org/wiki/Mkd_(Extracteur_de_documents)/mkddocu-Manuel_(fr)
3.Compilations de wiki-livres
: https://fr.wikibooks.org/wiki/Mkd_(Extracteur_de_documents)/Compilations
6.Licences
: https://fr.wikibooks.org/wiki/Mkd_(Extracteur_de_documents)/Licences
<!--
{{Nouvelle page imprimée}}
= Licence de documentation libre GNU =
{{:Licence de documentation libre GNU}}
-->
9oibmfnuzpjdc6ra1qjmp8jg2heswem
Module:Version imprimable
828
58423
682325
670036
2022-07-24T13:01:37Z
DavidL
1746
Scribunto
text/plain
-- Ce script crée la version imprimable d'un livre en affichant le contenu des pages de son sommaire
debug = true
OnlySubpages = true
local p = {}
-- Les templates sont bien cachés ici : [[commons:Data:I18n/Module:Printable version.tab]]
ModuleTnt = require('Module:TNT')
Error = ModuleTnt.format('I18n/Module:Printable version', 'error_invalid_toc')
Beginning1 = ModuleTnt.format('I18n/Module:Printable version', 'header_notice')
Beginning2 = ModuleTnt.format('I18n/Module:Printable version', 'header_cover')
Break = ModuleTnt.format('I18n/Module:Printable version', 'page_break')
Ending1 = ModuleTnt.format('I18n/Module:Printable version', 'footer_license')
Ending2 = ModuleTnt.format('I18n/Module:Printable version', 'footer2')
templateLeft = ModuleTnt.format('I18n/Module:Printable version', 'template_left')
templateRight = ModuleTnt.format('I18n/Module:Printable version', 'template_right')
TOC = ModuleTnt.format('I18n/Module:Printable version', 'TOC')
sep = ModuleTnt.format('I18n/Module:Printable version', 'subpage_separator')
function p._escapePattern(pattern)
return mw.ustring.gsub(pattern, "([%(%)%.%%%+%-%*%?%[%^%$%]])", "%%%1");
end
function p.displays_book(frame)
if not debug then Error = '' end
if frame == nil then return '' end
if frame.args == nil then return '' end
if frame.args[1] == nil then return '' end
local BookName = frame.args[1]
if (BookName ~= nil and mw.text.trim(BookName) ~= '') then
title = mw.title.new(BookName)
if frame.args[2] ~= nil and frame.args[2] ~= '' then
BookName = frame.args[2]
else
if mw.ustring.find(BookName, sep .. TOC, 1, true) ~= nil then BookName = mw.ustring.gsub(BookName, "^(.*)" .. sep .. TOC .. "$", "%1") end
end
if frame.args[3] ~= nil then OnlySubpages = false end
else
return Error
end
if (title == nil or title == '') then return Error end
text = title.getContent(title)
if (text == nil or text == '') then return Error end
-- Book subpages titles normalization to absolute names
local lines_ = mw.text.split(text, "\n")
local fullPageName
local PrintVersion = {}
for i,v in ipairs(lines_) do
if mw.text.trim(v) ~= '' then
fullPageName = p.getFullPageName(BookName, v)
if fullPageName ~= nil then
ChapterTitle = mw.title.new(fullPageName)
if (ChapterTitle ~= nil and ChapterTitle.exists) then
PageName = p.getSubpageName(BookName, fullPageName)
if (PageName ~= nil and PageName ~= '') then
if Break ~= "" then table.insert(PrintVersion, frame:expandTemplate{title = Break}) end
table.insert(PrintVersion, '\n<div style="clear:both;page-break-before:always;"></div>\n=' .. PageName .. '=\n')
end
table.insert(PrintVersion, frame:expandTemplate{ title = ':' .. fullPageName } .. '\n\n')
else
if debug then table.insert(PrintVersion, '<span class="error">Missing subpage "' .. fullPageName .. '" on line "' .. v .. '" for the book:</span> ' .. BookName .. '\n\n') end
end
end
end
end
Templates1 = ""
if Beginning1 ~= "" then Templates1 = Templates1 .. frame:expandTemplate{title = Beginning1} .. '\n' end
if Beginning2 ~= "" then Templates1 = Templates1 .. frame:expandTemplate{title = Beginning2} .. '\n' end
Templates2 = ""
if Ending1 ~= "" then Templates2 = Templates2 .. frame:expandTemplate{title = Ending1} .. '\n' end
if Ending2 ~= "" then Templates2 = Templates2 .. frame:expandTemplate{title = Ending2} .. '\n' end
return Templates1 .. table.concat(PrintVersion, "\r\n") .. Templates2
end
function p.extract_fullPageName(frame)
if frame == nil then return '' end
if frame.args == nil then return '' end
if frame.args[1] == nil then return '' end
if frame.args[2] == nil then return '' end
return p.getFullPageName(frame.args[1], frame.args[2])
end
function p.getFullPageName(BookName, chapter)
if (BookName ~= nil and mw.text.trim(BookName) ~= '') or (chapter ~= nil and mw.text.trim(chapter) ~= '') then
BookName = mw.text.trim(BookName)
chapter = mw.text.trim(chapter)
BookName = mw.ustring.gsub(BookName, "_", " ")
chapter = mw.ustring.gsub(chapter, "_", " ")
else
if debug then chapter = '<span class="error">Incorrect book or chapter name</span>' else chapter = '' end
end
chapter = mw.ustring.gsub(chapter, "{{BOOKNAME}}", BookName)
chapter = mw.ustring.gsub(chapter, "{{[Mm]odulo%|([^}]+)}}", "[[%1]]")
chapter = mw.ustring.gsub(chapter, " *%| *[0-9]*.*{{[Cc]%|([^}]+)%|[0-9]}}", "[[" .. BookName .. sep .. "%1]]")
chapter = mw.ustring.gsub(chapter, " *%| *[0-9]*.*{{[Cc]%|([^}]+)}}", "[[" .. BookName .. sep .. "%1]]")
chapter = mw.ustring.gsub(chapter, " *%[%[Image:[^%]]+%]%]", "")
chapter = mw.ustring.gsub(chapter, "{{[^}]*}}", "")
chapter = mw.ustring.gsub(chapter, "^[%#%*:; ]*", "")
chapter = mw.ustring.gsub(chapter, "%[%[%.%.?/", "[[" .. BookName .. sep)
chapter = mw.ustring.gsub(chapter, "%[%[/", "[[" .. BookName .. sep)
chapter = mw.ustring.gsub(chapter, "%/%]%]", "]]")
chapter = mw.ustring.gsub(chapter, "%/$", "")
if mw.ustring.find(chapter, "%[%[") ~= nil then
-- Pages titles extraction from the TOC
if mw.ustring.find(chapter, "%|") == nil or (mw.ustring.find(chapter, "%]") ~= nil and mw.ustring.find(chapter, "%|") > mw.ustring.find(chapter, "%]")) then
Ending = "%]"
else
if mw.ustring.find(chapter, "%/%|") == nil or mw.ustring.find(chapter, "%/%|") > mw.ustring.find(chapter, "%|") then
Ending = "%|"
else
Ending = "%/%|"
end
end
chapter = mw.text.split(chapter, Ending)[1] -- extraction of the line beginning
--chapter = mw.text.split(chapter, "%[%[")[2]
chapter = mw.ustring.gsub(chapter, "[^%[]*%[%[(.*)", "%1") -- brackets and pipes removal
if chapter == BookName or chapter == BookName .. sep or mw.ustring.find(chapter, "%#") ~= nil then
if debug then chapter = '<span class="error">Chapter = ' .. chapter .. ' => book name or another subpage name</span> with Ending = ' .. Ending else chapter = '' end
else
if OnlySubpages then
-- Book subpages only (and ignoring the other links like "see also")
if mw.ustring.find(chapter, BookName .. sep, 1, true) == nil then
if debug then chapter = "<span class=\"error\">No book subpage into the internal link:</span> '" .. chapter .. "' doesn't include '" .. BookName .. sep .. "'" else chapter = '' end
end
end
end
else
if debug then chapter = "<span class=\"error\">No internal link</span> for: " .. chapter .. "\n" else chapter = '' end
end
return chapter
end
function p.getSubpageName(bookName, fullPageName)
k, v = mw.ustring.gsub(fullPageName, '^' .. p._escapePattern(bookName .. sep), '')
return k
end
function p.extract_subpageName(frame)
if frame == nil then return '' end
if frame.args == nil then return '' end
if frame.args[1] == nil then return '' end
if frame.args[2] == nil then return '' end
return p.getSubpageName(frame.args[1], frame.args[2])
end
function p.displays_footer(frame)
if not debug then Error = '' end
if frame == nil then return "" end
if frame.args == nil then return "" end
if frame.args[1] == nil then return "" end
local footer = {}
local BookName = frame.args[1]
if (BookName ~= nil and mw.text.trim(BookName) ~= "") then
title = mw.title.new(BookName)
if mw.ustring.find(BookName, sep .. TOC, 1, true) ~= nil then BookName = mw.ustring.gsub(BookName, "^(.*)" .. sep .. TOC .. "$", "%1") end
else
return Error
end
local currentPageName
if frame.args[2] ~= nil and frame.args[2] ~= '' then
currentPageName = frame.args[2]
else
currentPageName = p.getSubpageName(BookName, mw.title.getCurrentTitle().fullText)
end
if (currentPageName ~= nil and mw.text.trim(currentPageName) ~= "") then
currentPageName = mw.text.trim(currentPageName)
else
return Error
end
if debug then table.insert(footer, " currentPageName = " .. currentPageName .. "\n") end
if (title == nil or title == "") then return Error end
text = title.getContent(title)
if (text == nil or text == "") then return Error end
if frame.args[3] ~= nil and frame.args[3] ~= '' then
if frame.args[3] == 'programming' then
if debug then table.insert(footer, " skin=programming\n\n") end
templateLeft = '{| style="width:100%; border:solid 1px #71c837; background:#c6e9af; color:#2d5016;" class="navlinks noprint"\n| style="text-align:left; width:33%; font-size:90%;" class="navprevious" |[[Image:Navigation_Left_Arrow.svg|18px|link=printf|alt=]] [[printf]]\n'
templateRight = '| style="text-align:center; width:34%;" class="navtitle" | [['..mw.title.getCurrentTitle().rootText..']]<br><b>'..mw.title.getCurrentTitle().subpageText..'</b>\n| style="text-align:right; width:33%; font-size:90%;" class="navnext" | [[printf]] [[Image:Navigation_Right_Arrow.svg|18px|link=printf|alt=]]\n|}'
end
end
-- Book subpages titles normalization to absolute names
local lines_ = mw.text.split(text, "\n")
local previousChapter = ""
local found = false
local fullPageName
local homepage = false
local subpageName
local rawFullPageName
if (currentPageName == BookName) then
if debug then table.insert(footer, " homepage\n") end
homepage = true
end
for i, v in ipairs(lines_) do
rawFullPageName = mw.text.trim(v)
if rawFullPageName ~= '' then
fullPageName = p.getFullPageName(BookName, rawFullPageName)
if debug then
if mw.ustring.find(fullPageName, "<span class=\"error\">No internal link</span>") ~= nil then
fullPageName = nil
else
table.insert(footer, " research into: " .. rawFullPageName .. "\n")
table.insert(footer, " extraction of: " .. fullPageName .. "\n")
end
end
if fullPageName ~= nil then
if mw.ustring.find(fullPageName, BookName .. sep, 1, true) == nil then
if debug then table.insert(footer, " replacement of " .. fullPageName .. " by " .. BookName .. sep .. fullPageName .. "\n") end
fullPageName = BookName .. sep .. fullPageName
end
ChapterTitle = mw.title.new(fullPageName)
if (ChapterTitle ~= nil and ChapterTitle.exists) then
subpageName = p.getSubpageName(BookName, fullPageName)
if debug then table.insert(footer, " cut subpage: " .. subpageName .. "\n") end
if (subpageName ~= nil and subpageName ~= "") then
if found == true or homepage == true then
if debug then table.insert(footer, "<span class=\"error\">Previous & next chapter insertion</span>\n") end
if homepage == false then
if previousChapter == "" then
theTemplateLeft, nb = mw.ustring.gsub(templateLeft, "printf", BookName .. "|" .. TOC)
else
theTemplateLeft, nb = mw.ustring.gsub(templateLeft, "printf", BookName .. sep .. previousChapter .. "|" .. previousChapter)
end
table.insert(footer, theTemplateLeft)
end
theTemplateRight, nb = mw.ustring.gsub(templateRight, "printf", BookName .. sep .. subpageName .. "|" .. subpageName)
table.insert(footer, theTemplateRight)
break
elseif subpageName == currentPageName then
if debug then table.insert(footer, "<span class=\"error\">Page</span> '" .. currentPageName .. "' found\n\n") end
found = true
elseif fullPageName ~= "" then
if debug then table.insert(footer, " " .. subpageName .. " is different from " .. currentPageName .. "\n") end
previousChapter = subpageName
else
if debug then table.insert(footer, "<span class=\"error\">The current page</span> '" .. subpageName .. "' is not '" .. currentPageName .. "'") end
end
end
else
if debug then table.insert(footer, "<span class=\"error\">The page</span> '" .. fullPageName .. "' doesn't exist, for '" .. currentPageName .. "'\n\n") end
end
end
end
end
if found == true and table.getn(footer) == 0 then
if debug then table.insert(footer, "<span class=\"error\">No next chapter</span>\n") end
theTemplateLeft, nb = mw.ustring.gsub(templateLeft, "printf", BookName .. sep .. previousChapter .. "|" .. previousChapter)
table.insert(footer, theTemplateLeft)
theTemplateRight, nb = mw.ustring.gsub(templateRight, "printf", BookName .. "|" .. TOC)
table.insert(footer, theTemplateRight)
end
return table.concat(footer, "")
end
return p
1ic4rrm3evpr45m1tmpbvjuopan5x7b
682326
682325
2022-07-24T13:19:43Z
JackPotte
5426
Réparation de chaque page du livre PHP dont la version imprimable sature : le mode debug crash leurs sommaires
Scribunto
text/plain
-- Ce script crée la version imprimable d'un livre en affichant le contenu des pages de son sommaire
debug = false
OnlySubpages = true
local p = {}
-- Les templates sont bien cachés ici : [[commons:Data:I18n/Module:Printable version.tab]]
ModuleTnt = require('Module:TNT')
Error = ModuleTnt.format('I18n/Module:Printable version', 'error_invalid_toc')
Beginning1 = ModuleTnt.format('I18n/Module:Printable version', 'header_notice')
Beginning2 = ModuleTnt.format('I18n/Module:Printable version', 'header_cover')
Break = ModuleTnt.format('I18n/Module:Printable version', 'page_break')
Ending1 = ModuleTnt.format('I18n/Module:Printable version', 'footer_license')
Ending2 = ModuleTnt.format('I18n/Module:Printable version', 'footer2')
templateLeft = ModuleTnt.format('I18n/Module:Printable version', 'template_left')
templateRight = ModuleTnt.format('I18n/Module:Printable version', 'template_right')
TOC = ModuleTnt.format('I18n/Module:Printable version', 'TOC')
sep = ModuleTnt.format('I18n/Module:Printable version', 'subpage_separator')
function p._escapePattern(pattern)
return mw.ustring.gsub(pattern, "([%(%)%.%%%+%-%*%?%[%^%$%]])", "%%%1");
end
function p.displays_book(frame)
if not debug then Error = '' end
if frame == nil then return '' end
if frame.args == nil then return '' end
if frame.args[1] == nil then return '' end
local BookName = frame.args[1]
if (BookName ~= nil and mw.text.trim(BookName) ~= '') then
title = mw.title.new(BookName)
if frame.args[2] ~= nil and frame.args[2] ~= '' then
BookName = frame.args[2]
else
if mw.ustring.find(BookName, sep .. TOC, 1, true) ~= nil then BookName = mw.ustring.gsub(BookName, "^(.*)" .. sep .. TOC .. "$", "%1") end
end
if frame.args[3] ~= nil then OnlySubpages = false end
else
return Error
end
if (title == nil or title == '') then return Error end
text = title.getContent(title)
if (text == nil or text == '') then return Error end
-- Book subpages titles normalization to absolute names
local lines_ = mw.text.split(text, "\n")
local fullPageName
local PrintVersion = {}
for i,v in ipairs(lines_) do
if mw.text.trim(v) ~= '' then
fullPageName = p.getFullPageName(BookName, v)
if fullPageName ~= nil then
ChapterTitle = mw.title.new(fullPageName)
if (ChapterTitle ~= nil and ChapterTitle.exists) then
PageName = p.getSubpageName(BookName, fullPageName)
if (PageName ~= nil and PageName ~= '') then
if Break ~= "" then table.insert(PrintVersion, frame:expandTemplate{title = Break}) end
table.insert(PrintVersion, '\n<div style="clear:both;page-break-before:always;"></div>\n=' .. PageName .. '=\n')
end
table.insert(PrintVersion, frame:expandTemplate{ title = ':' .. fullPageName } .. '\n\n')
else
if debug then table.insert(PrintVersion, '<span class="error">Missing subpage "' .. fullPageName .. '" on line "' .. v .. '" for the book:</span> ' .. BookName .. '\n\n') end
end
end
end
end
Templates1 = ""
if Beginning1 ~= "" then Templates1 = Templates1 .. frame:expandTemplate{title = Beginning1} .. '\n' end
if Beginning2 ~= "" then Templates1 = Templates1 .. frame:expandTemplate{title = Beginning2} .. '\n' end
Templates2 = ""
if Ending1 ~= "" then Templates2 = Templates2 .. frame:expandTemplate{title = Ending1} .. '\n' end
if Ending2 ~= "" then Templates2 = Templates2 .. frame:expandTemplate{title = Ending2} .. '\n' end
return Templates1 .. table.concat(PrintVersion, "\r\n") .. Templates2
end
function p.extract_fullPageName(frame)
if frame == nil then return '' end
if frame.args == nil then return '' end
if frame.args[1] == nil then return '' end
if frame.args[2] == nil then return '' end
return p.getFullPageName(frame.args[1], frame.args[2])
end
function p.getFullPageName(BookName, chapter)
if (BookName ~= nil and mw.text.trim(BookName) ~= '') or (chapter ~= nil and mw.text.trim(chapter) ~= '') then
BookName = mw.text.trim(BookName)
chapter = mw.text.trim(chapter)
BookName = mw.ustring.gsub(BookName, "_", " ")
chapter = mw.ustring.gsub(chapter, "_", " ")
else
if debug then chapter = '<span class="error">Incorrect book or chapter name</span>' else chapter = '' end
end
chapter = mw.ustring.gsub(chapter, "{{BOOKNAME}}", BookName)
chapter = mw.ustring.gsub(chapter, "{{[Mm]odulo%|([^}]+)}}", "[[%1]]")
chapter = mw.ustring.gsub(chapter, " *%| *[0-9]*.*{{[Cc]%|([^}]+)%|[0-9]}}", "[[" .. BookName .. sep .. "%1]]")
chapter = mw.ustring.gsub(chapter, " *%| *[0-9]*.*{{[Cc]%|([^}]+)}}", "[[" .. BookName .. sep .. "%1]]")
chapter = mw.ustring.gsub(chapter, " *%[%[Image:[^%]]+%]%]", "")
chapter = mw.ustring.gsub(chapter, "{{[^}]*}}", "")
chapter = mw.ustring.gsub(chapter, "^[%#%*:; ]*", "")
chapter = mw.ustring.gsub(chapter, "%[%[%.%.?/", "[[" .. BookName .. sep)
chapter = mw.ustring.gsub(chapter, "%[%[/", "[[" .. BookName .. sep)
chapter = mw.ustring.gsub(chapter, "%/%]%]", "]]")
chapter = mw.ustring.gsub(chapter, "%/$", "")
if mw.ustring.find(chapter, "%[%[") ~= nil then
-- Pages titles extraction from the TOC
if mw.ustring.find(chapter, "%|") == nil or (mw.ustring.find(chapter, "%]") ~= nil and mw.ustring.find(chapter, "%|") > mw.ustring.find(chapter, "%]")) then
Ending = "%]"
else
if mw.ustring.find(chapter, "%/%|") == nil or mw.ustring.find(chapter, "%/%|") > mw.ustring.find(chapter, "%|") then
Ending = "%|"
else
Ending = "%/%|"
end
end
chapter = mw.text.split(chapter, Ending)[1] -- extraction of the line beginning
--chapter = mw.text.split(chapter, "%[%[")[2]
chapter = mw.ustring.gsub(chapter, "[^%[]*%[%[(.*)", "%1") -- brackets and pipes removal
if chapter == BookName or chapter == BookName .. sep or mw.ustring.find(chapter, "%#") ~= nil then
if debug then chapter = '<span class="error">Chapter = ' .. chapter .. ' => book name or another subpage name</span> with Ending = ' .. Ending else chapter = '' end
else
if OnlySubpages then
-- Book subpages only (and ignoring the other links like "see also")
if mw.ustring.find(chapter, BookName .. sep, 1, true) == nil then
if debug then chapter = "<span class=\"error\">No book subpage into the internal link:</span> '" .. chapter .. "' doesn't include '" .. BookName .. sep .. "'" else chapter = '' end
end
end
end
else
if debug then chapter = "<span class=\"error\">No internal link</span> for: " .. chapter .. "\n" else chapter = '' end
end
return chapter
end
function p.getSubpageName(bookName, fullPageName)
k, v = mw.ustring.gsub(fullPageName, '^' .. p._escapePattern(bookName .. sep), '')
return k
end
function p.extract_subpageName(frame)
if frame == nil then return '' end
if frame.args == nil then return '' end
if frame.args[1] == nil then return '' end
if frame.args[2] == nil then return '' end
return p.getSubpageName(frame.args[1], frame.args[2])
end
function p.displays_footer(frame)
if not debug then Error = '' end
if frame == nil then return "" end
if frame.args == nil then return "" end
if frame.args[1] == nil then return "" end
local footer = {}
local BookName = frame.args[1]
if (BookName ~= nil and mw.text.trim(BookName) ~= "") then
title = mw.title.new(BookName)
if mw.ustring.find(BookName, sep .. TOC, 1, true) ~= nil then BookName = mw.ustring.gsub(BookName, "^(.*)" .. sep .. TOC .. "$", "%1") end
else
return Error
end
local currentPageName
if frame.args[2] ~= nil and frame.args[2] ~= '' then
currentPageName = frame.args[2]
else
currentPageName = p.getSubpageName(BookName, mw.title.getCurrentTitle().fullText)
end
if (currentPageName ~= nil and mw.text.trim(currentPageName) ~= "") then
currentPageName = mw.text.trim(currentPageName)
else
return Error
end
if debug then table.insert(footer, " currentPageName = " .. currentPageName .. "\n") end
if (title == nil or title == "") then return Error end
text = title.getContent(title)
if (text == nil or text == "") then return Error end
if frame.args[3] ~= nil and frame.args[3] ~= '' then
if frame.args[3] == 'programming' then
if debug then table.insert(footer, " skin=programming\n\n") end
templateLeft = '{| style="width:100%; border:solid 1px #71c837; background:#c6e9af; color:#2d5016;" class="navlinks noprint"\n| style="text-align:left; width:33%; font-size:90%;" class="navprevious" |[[Image:Navigation_Left_Arrow.svg|18px|link=printf|alt=]] [[printf]]\n'
templateRight = '| style="text-align:center; width:34%;" class="navtitle" | [['..mw.title.getCurrentTitle().rootText..']]<br><b>'..mw.title.getCurrentTitle().subpageText..'</b>\n| style="text-align:right; width:33%; font-size:90%;" class="navnext" | [[printf]] [[Image:Navigation_Right_Arrow.svg|18px|link=printf|alt=]]\n|}'
end
end
-- Book subpages titles normalization to absolute names
local lines_ = mw.text.split(text, "\n")
local previousChapter = ""
local found = false
local fullPageName
local homepage = false
local subpageName
local rawFullPageName
if (currentPageName == BookName) then
if debug then table.insert(footer, " homepage\n") end
homepage = true
end
for i, v in ipairs(lines_) do
rawFullPageName = mw.text.trim(v)
if rawFullPageName ~= '' then
fullPageName = p.getFullPageName(BookName, rawFullPageName)
if debug then
if mw.ustring.find(fullPageName, "<span class=\"error\">No internal link</span>") ~= nil then
fullPageName = nil
else
table.insert(footer, " research into: " .. rawFullPageName .. "\n")
table.insert(footer, " extraction of: " .. fullPageName .. "\n")
end
end
if fullPageName ~= nil then
if mw.ustring.find(fullPageName, BookName .. sep, 1, true) == nil then
if debug then table.insert(footer, " replacement of " .. fullPageName .. " by " .. BookName .. sep .. fullPageName .. "\n") end
fullPageName = BookName .. sep .. fullPageName
end
ChapterTitle = mw.title.new(fullPageName)
if (ChapterTitle ~= nil and ChapterTitle.exists) then
subpageName = p.getSubpageName(BookName, fullPageName)
if debug then table.insert(footer, " cut subpage: " .. subpageName .. "\n") end
if (subpageName ~= nil and subpageName ~= "") then
if found == true or homepage == true then
if debug then table.insert(footer, "<span class=\"error\">Previous & next chapter insertion</span>\n") end
if homepage == false then
if previousChapter == "" then
theTemplateLeft, nb = mw.ustring.gsub(templateLeft, "printf", BookName .. "|" .. TOC)
else
theTemplateLeft, nb = mw.ustring.gsub(templateLeft, "printf", BookName .. sep .. previousChapter .. "|" .. previousChapter)
end
table.insert(footer, theTemplateLeft)
end
theTemplateRight, nb = mw.ustring.gsub(templateRight, "printf", BookName .. sep .. subpageName .. "|" .. subpageName)
table.insert(footer, theTemplateRight)
break
elseif subpageName == currentPageName then
if debug then table.insert(footer, "<span class=\"error\">Page</span> '" .. currentPageName .. "' found\n\n") end
found = true
elseif fullPageName ~= "" then
if debug then table.insert(footer, " " .. subpageName .. " is different from " .. currentPageName .. "\n") end
previousChapter = subpageName
else
if debug then table.insert(footer, "<span class=\"error\">The current page</span> '" .. subpageName .. "' is not '" .. currentPageName .. "'") end
end
end
else
if debug then table.insert(footer, "<span class=\"error\">The page</span> '" .. fullPageName .. "' doesn't exist, for '" .. currentPageName .. "'\n\n") end
end
end
end
end
if found == true and table.getn(footer) == 0 then
if debug then table.insert(footer, "<span class=\"error\">No next chapter</span>\n") end
theTemplateLeft, nb = mw.ustring.gsub(templateLeft, "printf", BookName .. sep .. previousChapter .. "|" .. previousChapter)
table.insert(footer, theTemplateLeft)
theTemplateRight, nb = mw.ustring.gsub(templateRight, "printf", BookName .. "|" .. TOC)
table.insert(footer, theTemplateRight)
end
return table.concat(footer, "")
end
return p
9ok25jc2b9lzs7wau3ks0elnve35xa7
Utilisateur:Goelette Cardabela/Bac à sable/Notions de corrosion de carène
2
59605
682381
632604
2022-07-25T11:02:35Z
DavidL
1746
[[Spécial:LintErrors/html5-misnesting]] Balise <cite> se ferme automatiquement après la 1ère ligne
wikitext
text/x-wiki
{{En travaux}}
{{avertissement|Cette page n'a pas pour but de donner des solutions contre la corrosion des carènes de bateau mais de susciter une réflexion pour trouver les solutions.}}
'''
:* Les coque métalliques sont particulièrement exposées à la corrosion.
:* Les coques en matériaux isolants sont exposées à la corrosion par les pièces métalliques fixées à la coque telles que : vannes, mèches métalliques, visseries, etc.'''
== Constitution des métaux ==
Un métal est un agglomérat de molécules ''défini comme un matériau dont la cohésion des atomes est assurée par la liaison métallique : tous les atomes de l'objet mettent un ou plusieurs électrons en commun.''<ref>https://fr.wikipedia.org/wiki/Métal#Définition</ref>
Les molécules qui constituent le métal sont en agitation permanente, ils s'entrechoquent à l'état solide et les électrons qui les lient sont d'autant plus agités que la température est élevée.
== Comparaison ergodique ==
Pour bien comprendre la suite, il faut un peu d'imagination<ref>https://fr.wikipedia.org/wiki/Hypothèse_ergodique</ref>.
<!--La surface extérieure d'un objet métallique est une frontière que l'on pourrait comparer à une marmite remplie d'un liquide et que l'on porte à une température de plus en plus élevée. Le liquide bout, des gouttes s'échappent de la marmite et retombent dedans, sauf s'il y a du vent.<br />On peut imaginer que le liquide saute de façon plus ou moins haute selon sa nature.-->
Les atomes des métaux ont des couches électroniques éloignées de leur noyau dont les électrons se détachent par l'agitation thermique et peuvent circuler à l'intérieur du métal. On les appelle [[w:Électron#Conductivité_électrique|''électrons libres'' ou ''électons de valence'']], ils ne contribuent pas à la liaison entre atomes du métal.
Pour un métal on peut considérer que, sous l'effet de l'agitation thermique, des électrons peuvent s'échapper du métal et y retomber après avoir induit un champ électrostatique local. ... sauf si ces électrons sont entraînés pas un champ électrique extérieur comme au voisinage des coques de bateaux ... ou qu'il soit capté par un [[w:ion|''ion'']] de passage ...
: Ce qui se passe localement pour un électron se reproduit statistiquement sur l'ensemble de la surface du métal. Ceci engendre une ''différence de potentiel'' (ddp) entre le milieu extérieur et le métal. <br />Le champ électrique s'exprime en volt par mètre. La ddp d'un métal isolé en milieu marin est connue pour chaque métal, ainsi la ddp pour le zinc est de l'ordre de 1030 millivolts pour une température de la mer autour de 20°C. ''Ainsi le champ électrique de retour de l'électron vers le métal est connu :1030 millivolt par mètre et caractérise le métal zinc en milieu marin. Cependant les tableau de référence sont toujours exprimés en ''volt'' ou ''millivolt''
: Lorsque le métal est électriquement isolé la dégradation est minimisée. Il suffit en général d'isoler le métal par de la peinture pour réduire considérablement la corrosion.
:Lorsque le métal est relié à une tresse de masse ...
== Valeurs de potentiel d'arrachement des électrons ==
On a fixé arbitrairement le potentiel chimique standard des protons en solution comme étant nul à toute température<ref>https://fr.wikipedia.org/wiki/Électrode_standard_à_hydrogène</ref>.
En référence à cette valeur, la liste des potentiels standard a été établie pour de très nombreux matériaux<ref>https://fr.wikipedia.org/wiki/Liste_de_potentiels_standard</ref>.
Ces potentiels ont des valeurs relatives selon la façon dont on les considère; par exemple :
La valeur relative du potentiel d'oxydoréduction du zinc est de -0,76 volts/proton alors que l'on considère qu'elle est de -1,030 volts/aliages inoxydables, en corrosion galvanique (cas d'une coque immergée)<ref>http://www.cdcorrosion.com/mode_corrosion/corrosion_image/galvanique_1_zoom.gif</ref>.
Toutes ces valeurs sont à évaluer avec précaution car elles peuvent changer, voire s'inverser<ref>http://www.cdcorrosion.com/mode_corrosion/corrosion_galvanique.htm</ref>
== Microcourants ==
Une coque immergée est entourée de pas mal de choses en plus des animaux et végétaux qui y adhèrent. il y a des électrons qui ont échappé aux métaux, des ions avec des particules recomposées avec le milieu ambiant. Il suffit qu'un champ électrique passe par là pour déstabiliser tout ce milieu.
# Une coque, à l'ancre ne devrait pas être corrodée par autre chose que les échanges ioniques entre les différents matériaux. La corrosion est alors minimisée.
# Une coque au port ou au voisinage industriel est soumise aux champs électriques. ''En particulier il faut dire que les anodes en zinc fixées aux palplanches protègent les palplanches, pas les bateaux !''
== Quelques indications sur la corrosion galvanique ==
Selon l'article de l'ANPEI<ref>http://www.anpei.org/spip.php?article2367</ref>
<cite>Pour lutter contre la corrosion galvanique, il suffit d’abaisser le potentiel électrique des métaux à protéger par rapport à leur potentiel naturel. Et ce, tant en eau de mer qu’en eau douce. Ceci est réalisé, sur les petites unités, à l’aide d’anodes sacrificielles la plupart du temps en zinc, dont le potentiel naturel est de -1030 mV. De fait, il y a circulation d’un courant d’oxydation significatif dès que la différence de potentiel entre deux métaux excède 200 mV.</cite>
Ainsi, un ensemble composé d’une hélice en bronze (potentiel -280 mV), située à l’extrémité d’un arbre en inox (potentiel -550 mV), relié à un moteur en acier (potentiel -650 mV) sera protégé par une simple anode en zinc pendant un laps de temps donné si :
# elle fonctionne correctement
# elle est placée au bon endroit
# elle est de taille suffisante.
L’anode zinc permet ainsi de transformer tous les autres métaux en cathode et d’inverser la perte de matière qui résulte de l’activité électrique.
Le potentiel des équipements immergés d’une coque polyester doit être mesuré entre -1000 mV et -750 mV pour que la protection soit acquise. Pour une coque acier, ces mesures deviennent -1050 mV et -800 mV.
{{rouge|En dessous, (c’est à dire vers le 0 mV), il y aura sur-protection (avec conséquences), au delà, sous-protection (également avec conséquences, mais beaucoup plus néfastes).}}
Encore faut-il que la coque ne soit pas reliée à la terre du quai .... La terre de la prise secteur au quai ne doit servir qu'aux seuls appareils qui y sont connectés.
== Mesure du puits de potentiel d'une coque ==
Elle se fait tous simplement avec un galvanomètre capable de mesurer des tensions inférieures à 2 volts. Une électrode de référence en métal de faible potentiel (argent, or, etc. qui trempe dans le bain ambiant ; mer, canal, étang, etc.) et chaque masse métallique susceptible de subir l'attaque galvanique. Il peut être intéressant de déplacer l'anode de référence le long de la coque.
=== Expérience ===
Selon Volta, un élément de pile est constitué par un "sandwich", un premier métal (une électrode), une solution aqueuse (eau salée), un autre métal différent du premier (deuxième électrode).
Vous pouvez faire un test entre une électrode en zinc et une électrode en cuivre, argent, or, ou avec d'autres métaux :
; Dans un verre rempli d'eau salée :
# Plonger une lame de zinc et une lame de cuivre, éviter qu'elles entrent en contact.
# Un multimètre ordinaire permet de constater qu'il existe une différence de potentiel voisine de 1 V entre les deux lames.
# Notez le sens de la différence de potentiel, + ou - (en volt).
# Faites varier la distance entre les deux électrodes.
Si l'on utilise une lame d'argent au lieu de cuivre, la tension est proche de 1,5 V.
Notez que la solution transporte les ions et que le cuivre, qui relie les deux électrodes par le voltmètre, transporte les électrons.
;Inter-connectez les deux métaux par une résistance électrique :
: Observez l'action sur chaque électrode après quelques heures.
La réaction (l'oxydation du zinc) est plus ou moins rapide selon la valeur de la résistance électrique.
== Notes Références ==
;Notes :
Notez cet excellent article qui propose aussi des solutions : [http://seme.cer.free.fr/plaisance/electrolyse-coques.php '''L'électrolyse des coques métalliques''']
;Références
<references />
[[Catégorie:Goélette Cardabela (Bac à sable)]]
5lf3out2rrhg8zaqs6rkwtrsgu0baar
Discussion utilisateur:Goelette Cardabela/Bac à sable/Notions de corrosion de carène
3
59611
682380
562890
2022-07-25T11:02:07Z
DavidL
1746
[[Spécial:LintErrors/html5-misnesting]] Balise <cite> se ferme automatiquement après la 1ère ligne
wikitext
text/x-wiki
<div style="text-align: center;"><span style="font-size:20px;">Discussion sur le sujet : '''Notions de corrosion de carène'''</span></div>
== Conseils ==
# Cliquez sur '''[modifier le wikitexte]''' de la dernière section.
# Indiquez votre sujet == mon sujet ==
# Après deux retour chariot, ajoutez votre texte.
# Indiquez votre texte
## nom ou pseudo si vous n'êtes pas inscrit sur Wikibooks
## Signez votre texte <nowiki>~~~~</nowiki> si vous êtes un wikipédien connecté.
--[[Utilisateur:Goelette Cardabela|Cardabela]] ([[Discussion utilisateur:Goelette Cardabela|discussion]]) 6 novembre 2014 à 11:44 (CET)
== Le petit + à côté de wikitexte ==
Action du petit + : Ajoute automatiquement une section à cette page.
--[[Utilisateur:Goelette Cardabela|Cardabela]] ([[Discussion utilisateur:Goelette Cardabela|discussion]]) 6 novembre 2014 à 14:11 (CET)
== But des discussions ==
Ce texte, à ce jour, est mis en discussion en vue d'être publié dans le bulletin de l'APPGM de 2015
Merci de participer.
--[[Utilisateur:Goelette Cardabela|Cardabela]] ([[Discussion utilisateur:Goelette Cardabela|discussion]]) 6 novembre 2014 à 11:58 (CET)
== L'avis de Laurent Guerin ==
;Ce sympathique avis m'a été donné par courrier électronique. Je ne résiste pas à vous en faire part.
<cite>c'est lisible quand à être compréhensible il faut déjà être initié...</cite>
j'aime bien l'histoire de l'électron qui s'échappe de la marmite
des conseils très pragamatiques pourraient compléter utilement cet article
je vais quand même relire attentivement ce texte pour mourir moins con et trouver un remède efficace à appliquer à ma danseuse aluminée; ah la salope elle fricote avec les palplanches du quai il me semble
Bravo et merci jean paul
--[[Utilisateur:Goelette Cardabela|Cardabela]] ([[Discussion utilisateur:Goelette Cardabela|discussion]]) 6 novembre 2014 à 12:04 (CET)
----
: Oui c'est bien ça, elle fricote ! Mais pas seulement. Ton bateau est dans une zone où les courants ''(le mot est bien bien choisi)'' de toutes sortes sont quasi permanents. Pour ta coque en aluminium, ce n'est pas ce qu'il y a de mieux !
: --[[Utilisateur:Goelette Cardabela|Cardabela]] ([[Discussion utilisateur:Goelette Cardabela|discussion]]) 6 novembre 2014 à 14:43 (CET)
nk40g5aywrcojinpsmnatwtgu5carp5
Discussion module:Version imprimable
829
60493
682328
670060
2022-07-24T13:38:11Z
DavidL
1746
wikitext
text/x-wiki
== Autre discussion à propos de ce module ==
{{Phabricator|105754}}
* {{WP|Discussion_Projet:Scribunto#Afficher_une_cinquantaine_d'articles_dans_une_seule_page}} (apparemment résolu avant le 14/07/2015)
== Tests unitaires ==
* [[Modèle:Bas de page/tests]]
* [[Modèle:Imprimable/tests]]
* [[Discussion module:Version imprimable/préproduction]]
== à faire ==
# Automatiser la navigation depuis les sous-sous-pages et apostrophes dans <nowiki>{{BASEPAGENAME}}</nowiki> : [[:en:Template talk:Nav]].
# Permettre une image de couverture incrustée en paramètre ? ''image = frame.args[2]'' (cf. [[Oracle]]).
# Ajouter plus de skins, comme [[:en:Module:Chapter navigation]].
# Gérer plus de formats des sommaires
## Sommaires dans des tables HTML (ou wiki) :
### [[:en:One-to-One Laptop Schools/Print version]]
### [[:en:Module_talk:Table_of_contents]]
### [[:en:The_Devonshire_Manuscript/Print_version]]
## [[:en:Puppy Linux]]
## Sommaires dans plusieurs modèles : [[:en:First Aid]].
# Faire marcher [[:it:Utente:JackPotte/Piè di pagina]].
# Fusionner ou remplacer [[:de:Vorlage:AutoNavigation]].
# Déployer sur plus de wikis (ex : pour [[:pt:PostgreSQL Prático]]).
# Gérer la saturation d'inclusion : ''Template include size is too large. Some templates will not be included.'' (ex : [[:en:Java Programming/Print version]])
# Gérer la saturation de calcul Lua : ''Erreur Lua : too many expensive function calls.'' (ex : [[Programmation PHP/Version imprimable]])
== Mode debug ==
J'ai activé le mode debug pour corriger le module qui ne produit que des erreurs sur [[BiblioTIC_:_l'informatique_et_l'Internet_au_service_des_bibliothèques/Version_imprimable]].
Exemple :
Missing subpage "No book subpage into the internal link: 'BiblioTIC : l'informatique et l'Internet au service des bibliothèques/Le matériel informatique des bibliothèques publiques' doesn't include 'BiblioTIC : l'informatique et l'Internet au service des bibliothèques/'" on line "# Le matériel informatique des bibliothèques publiques" for the book: BiblioTIC : l'informatique et l'Internet au service des bibliothèques
-- ◄ [[Utilisateur:DavidL|'''D'''avid '''L''']] • [[Discussion Utilisateur:DavidL|discuter]] ► 24 juillet 2022 à 15:38 (CEST)
k09ft9l1e58gsbs9ggbgwt27cn1quup
682329
682328
2022-07-24T16:52:58Z
JackPotte
5426
/* Mode debug */
wikitext
text/x-wiki
== Autre discussion à propos de ce module ==
{{Phabricator|105754}}
* {{WP|Discussion_Projet:Scribunto#Afficher_une_cinquantaine_d'articles_dans_une_seule_page}} (apparemment résolu avant le 14/07/2015)
== Tests unitaires ==
* [[Modèle:Bas de page/tests]]
* [[Modèle:Imprimable/tests]]
* [[Discussion module:Version imprimable/préproduction]]
== à faire ==
# Automatiser la navigation depuis les sous-sous-pages et apostrophes dans <nowiki>{{BASEPAGENAME}}</nowiki> : [[:en:Template talk:Nav]].
# Permettre une image de couverture incrustée en paramètre ? ''image = frame.args[2]'' (cf. [[Oracle]]).
# Ajouter plus de skins, comme [[:en:Module:Chapter navigation]].
# Gérer plus de formats des sommaires
## Sommaires dans des tables HTML (ou wiki) :
### [[:en:One-to-One Laptop Schools/Print version]]
### [[:en:Module_talk:Table_of_contents]]
### [[:en:The_Devonshire_Manuscript/Print_version]]
## [[:en:Puppy Linux]]
## Sommaires dans plusieurs modèles : [[:en:First Aid]].
# Faire marcher [[:it:Utente:JackPotte/Piè di pagina]].
# Fusionner ou remplacer [[:de:Vorlage:AutoNavigation]].
# Déployer sur plus de wikis (ex : pour [[:pt:PostgreSQL Prático]]).
# Gérer la saturation d'inclusion : ''Template include size is too large. Some templates will not be included.'' (ex : [[:en:Java Programming/Print version]])
# Gérer la saturation de calcul Lua : ''Erreur Lua : too many expensive function calls.'' (ex : [[Programmation PHP/Version imprimable]])
== Mode debug ==
J'ai activé le mode debug pour corriger le module qui ne produit que des erreurs sur [[BiblioTIC_:_l'informatique_et_l'Internet_au_service_des_bibliothèques/Version_imprimable]].
Exemple :
Missing subpage "No book subpage into the internal link: 'BiblioTIC : l'informatique et l'Internet au service des bibliothèques/Le matériel informatique des bibliothèques publiques' doesn't include 'BiblioTIC : l'informatique et l'Internet au service des bibliothèques/'" on line "# Le matériel informatique des bibliothèques publiques" for the book: BiblioTIC : l'informatique et l'Internet au service des bibliothèques
-- ◄ [[Utilisateur:DavidL|'''D'''avid '''L''']] • [[Discussion Utilisateur:DavidL|discuter]] ► 24 juillet 2022 à 15:38 (CEST)
:Bonjour, on ne peut pas versionner ce mode dans le module de prod car quand il y a un warning minime, ça ajoute des pages d'erreur avant chaque page du livre (ex : [[PHP]]). Normalement il faut tester avec {{M|Imprimable/préproduction}} qui appelle [[Module:Version imprimable/préproduction]]. [[Utilisateur:JackPotte|JackPotte]] ([[Discussion utilisateur:JackPotte|<span style="color:#FF6600">$</span>♠]]) 24 juillet 2022 à 18:52 (CEST)
4laz3qkaxdkgdpb5jf1ca75pnwmz99c
Construction navale/Calcul des espars
0
65650
682378
680722
2022-07-25T10:58:53Z
DavidL
1746
Suppression <span> sans effets ou limités à la première ligne
wikitext
text/x-wiki
<div class="noprint">
<!--{{En travaux}}-->
<center>{{Vignette d'une couverture d'un wikilivre
|éditeur=<small>Goélette Cardabela</small>
|titre=Calcul des espars
|sous-titre=<small><small>Dans la construction navale</small></small>
|image de couverture=Le Belem par petit vent.jpg
|couleur de couverture=#88EEEE
|couleur du texte=white
}}
<small><small>Couverture du livre compilé</small></small></center>
{{orange|Le [[Construction_navale/Calcul_des_espars|Contenu]] est configuré pour être imprimé en livret A5 à l'échelle d'impression de 120% et marges de 15 mm.}}<br />
{{orange|Les [[Goélette_Cardabela/Calcul_des_espars/Version imprimable|Version imprimable]] et [[Goélette_Cardabela/Calcul_des_espars/Version collection|Version collection]] sont configurée pour être imprimées en livret A5 à l'échelle d'impression de 120% et marges de 15 mm.}}<br />
{{orange|La [[Goélette_Cardabela/Calcul_des_espars/Couverture|Couverture complète du livret « Calcul_des_espars »]] doit être imprimée séparément à l'échelle 120% et marges de 15 mm.}}
{{orange|Cet article est inclus dans la ''[[Goélette Cardabela/Collection des livrets techniques de la goélette Cardabela/Version imprimable|Collection des livrets techniques de la goélette Cardabela]]''}}</center>
</div>
__TOC__
<!--
{{Title page
|title=Le calcul des espars
|subtitle=dans la construction navale
|editor=Goélette Cardabela
}}
{{Nouvelle page imprimée}}
{{Nouvelle page imprimée}}
-->
== Introduction - Définition de l'« ''espar'' » ==
<p style="font-family:serif; font-size:1.1em">
[[File:Wikipedia's W.svg|20px|Wikipedia's W]]ikipedia : « Sur un [[w:bateau|bateau]], un '''espar''' (mot étymologiquement apparenté à l'allemand ''Spiere'' et à l'anglais ''spar'', qui ont la même signification) est un élément de [[w:gréement|gréement]] long et rigide, originellement en bois, et ayant un rôle technique à jouer dans la propulsion (à voile) et les manœuvres.<br/>Entrent dans la catégorie des espars les [[w:mât|mâts]], [[w:bôme|bômes]], [[w:vergue|vergues]], [[w:bout-dehors|bouts-dehors]], [[w:queue de malet|queues de malet]], [[w:livarde|livardes]], [[w:wishbone|wishbones]]. On peut aussi y associer les éléments mobiles tels que [[w:Aviron (rame)|avirons]], [[w:Barre (bateau)|barres]], [[w:tangons|tangons]], etc. » </p>
[[File:Cardabela Plan du haubannage 01.png|400px|center|Cardabela Plan du haubanage 01]]
<center>1 daN ≅ 1 kg<sub>f</sub></center>
<center>Calcul du gréement de la goélette Cardabela.</center>
{{Clr}}
{{Nouvelle page imprimée}}
== Unités de mesure ==
''' <big>Remarques concernant l'expression des unités de mesures dans ce chapitre</big> '''
<span style="font-family:serif; font-size:1.1em"> Nous utilisons le [[w:Système_CGS|'''système d'unités CGS''']]<ref>''https://fr.wikipedia.org/wiki/Système_CGS''</ref> plus proche de notre perception qu'avec les unités du ''Système international'' '''SI'''.</span>
Nous utilisons cependant l'expression '''kg<sub>f</sub>''' du [[w:Kilogramme-force|'''Kilogramme-force''']]<ref>''https://fr.wikipedia.org/wiki/Kilogramme-force''</ref> qui est une ancienne expression de la force, indépendante du ''Système de mesures CGS'' et du [[w:Système_international_d'unités|''Système international d'unités'']]<ref>''https://fr.wikipedia.org/wiki/Système_international_d'unités''</ref>. Le <code>'''kg<sub>f</sub>'''</code> est à la fois une unité de force et de poids : le <code>'''kg<sub>p</sub>'''</code> ou encore le <code>'''kg'''</code> que tout le monde connaît en faisant ses courses.<br />On devrait utiliser le <code>'''dyne'''</code> comme unité de force, mais qui ? a une notion réaliste de cette mesure ?''
Les formules mathématiques sont en [[LaTeX]]<ref>Livre détaillé : ''https://fr.wikibooks.org/wiki/LaTeX''</ref>, le rendu des expressions à l'écran est différent du rendu imprimé. Nous avons essayé de minimiser cet effet.
<references />
<!--
{{Nouvelle page imprimée}}
--><!--
{{Nouvelle page imprimée}}
<big><big> '''Sommaire''' </big></big>
<div style="font-size:85%;">
<pre>
1 Les mâts (p1)
1.1 Généralités sur les mâts
1.2 Calcul de résistance des mâts à la compression (p2)
1.2.1 Exemple de calcul pour des mâts ronds pleins en mélèze
1.2.1.1 Calcul pour un mât en mélèze de 10 cm de diamètre
1.2.1.2 Corollaire pour un mât en mélèze de 20 cm de diamètre
1.2.2 Exemple pour un mât creux en aluminium (p3)
1.2.2.1 Calcul pour un mât de 5,4 kg par mètre
1.2.3 Conclusions
1.3 Calcul de la résistance des mâts au flambage (p4)
1.3.1 Formule générale à la rupture
1.3.1.1 Charge critique au flambage (p5)
1.3.1.1.1 Charge critique pour les espars guidés aux extrémités
(Exemples pour le bois et l'aluminium)
1.3.1.2 Charge pratique de résistance au flambage (p6)
1.3.2 Exemple de calcul pour un mât plein en mélèze
1.3.3 Exemple de calcul pour un mât rond creux en aluminium (p7)
1.3.4 Exemple de calcul pour un mât elliptique creux en aluminium (p9)
1.4 Notes et références
2 Les épontilles (p10)
2.1 Calcul des épontilles de sections rectangulaires
2.2 Notes et références
3 Les beauprés (11)
3.1 Calcul de beauprés de sections rectangulaires
3.2 Comment effectuer ce calcul de compression du beaupré ?
3.3 Exemple pratique
3.3.1 Quelle doit être la section du beaupré en bois ?
3.3.2 Résistance au travail de compression
3.3.3 Charge limite au flambage
3.3.4 Conclusion
3.4 Notes et références
4 Liens (p13)
</pre>
</div>
{{Nouvelle page imprimée}}
-->
{{Nouvelle page imprimée}}
== Les mâts ==
=== Généralités sur les mâts ===
<!--{{Début rendu LaTeX}}-->
{{Début cadre|fond=#ffddbf20}}
*Les mâts en aluminium sont souvent plus légers que les câbles en acier inoxydable qui les maintiennent.
*Les mâts en bois plein sont très lourds.
*Les mâts en bois peuvent être creux en bois contrecollé ou lamellé-collé de formes variables. Ces mâts restent lourds lorsque l'on veut une résistance importante à la compression et au flambage.
*La section, ''ou le poids linéaire'', des mâts détermine leur '''résistance à la compression'''<ref>https://fr.wikipedia.org/wiki/Essai_de_compression</ref>. C'est la contrainte maximale admissible par un matériau soumis à une charge d’écrasement<ref>http://www.instron.fr/fr-fr/our-company/library/glossary/c/compressive-strength</ref>.
*Le profil d'un mât, rond ou elliptique, détermine sa '''résistance au flambage'''<ref>https://fr.wikipedia.org/wiki/Flambage</ref> longitudinal et latéral. Le flambage est également appelé le flambement. Lorsqu'une structure est compressée dans le sens de la longueur, elle a tendance à fléchir perpendiculairement à l'axe de la force appliquée, en raison d'un phénomène d'instabilité élastique.
**Le petit diamètre, plus sensible au flambage, supporte les barres de flèches latérales.
**Lorsqu'il est nécessaire de maintenir le mât au flambage dans sa section longitudinale, on adopte parfois un étai de trinquette avec des bastaques largables ou non.
*La longueur du mât : Le mât est approximativement égal ou plus grand que la longueur de coque du voilier. Selon le type de bateau; croisière hauturière, plaisance pour l'été, voilier pour la course, cette longueur va être adaptée. Le mât sera plus long pour chercher le vent en hauteur, donc pour la course, il sera plus court pour faciliter la manipulation des voiles par un équipage très réduit. En ce début de ce {{XXIe siècle}} les mâts à enrouleurs sont devenus plus populaires et facilitent les manœuvres, on va très probablement voir apparaître des mâts plus longs.
''Lien intéressant :'' Méthodes de fabrication des mâts en aluminium et carbone sur le site nauticaltrek.com<ref>https://nauticaltrek.com/trucs-et-astuces/construction/mat-aluminium-carbone/comment-page-1/#comment-12174]</ref>.
<references />
{{Fin rendu LaTeX}}
{{Nouvelle page imprimée}}
=== Calcul de résistance des mâts à la compression ===
<!--{{Début rendu LaTeX}}-->
{{Début cadre|fond=#ffddbf20}}
<cite>Pour un '''même matériau''', la résistance à la compression ne dépend que du poids linéaire du mât. En effet le poids linéaire est le produit d'une '''section''' par une longueur et une densité. Le poids linéaire ne dépend que de la section.</cite>
==== Exemple de calcul pour des mâts ronds pleins en mélèze ====
Caractéristiques du mélèze :
''' Poids sec :''' 600 kg le mètre cube ou '''0,6 kg le dm<sup>3</sup>'''
''' Résistance à la compression :''' 53 MPa (Méga-Pascal), ou '''530 kg<sub>f</sub>/cm²'''
===== Calcul pour un mât en mélèze de 10 cm de diamètre =====
La résistance de travail à la compression pour le bois devrait être égale au cinquième de la résistance à la rupture; '''on adopte ici 100 kg<sub>f</sub> par cm²''' pour tenir compte des défauts, de la fatigue des matériaux<ref>https://fr.wikipedia.org/wiki/Fatigue_(matériau)</ref>, et du coefficient de sécurité<ref>https://fr.wikipedia.org/wiki/Coefficient_de_sécurité</ref>.
''' Surface de compression :''' (3,14 x 10 x 10) / 4 = '''78,5 cm²'''
''' Résistance au travail :''' 78,5 x 100 = '''7 850 kg<sub>f</sub>'''
''' Poids :''' (78,5 / 1 000) x 0,6 = '''4,71 kg par mètre'''
<small>''Remarque : Section * densité / longueur => 78,5 * 0,6 = 47,1 grammes-poids par cm ou 4,71 kg / mètre''</small>
'''Pourquoi prendre pour exemple un diamètre de 10 cm ?''' <br />Il suffit d'élever au carré le rapport des diamètres pour évaluer un autre mât !
Exemple : Pour un mât de 20 cm de diamètre, il suffit d'élever au carré le rapport 20/10, soit quatre fois la valeur des résultats précédents.
===== Corollaire pour un mât en mélèze de 20 cm de diamètre =====
''' Résistance au travail :''' 7 850 x 4 = '''31 400 kg<sub>f</sub>'''
''' Poids :''' 4,71 x 4 = '''18,84 kg par mètre'''
On imagine le poids des premiers mâts du voilier [[w:Bernard_Moitessier#Joshua|Joshua]] de Bernard Moitessier : avec <cite>des poteaux télégraphiques comme mâts et des câbles EDF en gréement dormant</cite><ref>https://fr.wikipedia.org/wiki/Bernard_Moitessier#Joshua Mâts en bois plein de Joshua voilier de B Moitessier dans sa première version.</ref><br />
Avec un tel mât planté au travers du pont, à ''vue de nez'' il ne sera pas nécessaire de l'étayer avec des barres de flèche et des câbles lourds en acier galvanisé.
==== Exemple pour un mât creux en aluminium ====
Caractéristiques de l'aluminium :
''' Résistance de rupture à la compression de l'aluminium :''' 60 kg/mm² ou '''6 000 kg/cm²'''
''' ⇒ Résistance au travail avec un coefficient de sécurité de 3 : 2 000 kg/cm²'''
''' Poids de l'aluminium pour 1 décimètre-cube (densité) :''' 2,7 kg/dm<sup>3</sup>
===== Calcul pour un mât de 5,4 kg par mètre =====
''' Poids du mât pour 1 dm : 0,54 kg'''
''' Surface à la compression d'une section transversale du mât :''' 0,54/2,7 = 0,2 dm² ou '''20 cm²'''
''' Résistance au travail à la compression :''' 20 x 2 000 = '''40 000 kg<sub>f</sub>'''
Pour un mât cylindrique de 20 cm de diamètre moyen ou un mât ovale de 22 x 18 cm :
''' Circonférence du tube :''' 3,14 x 20 = '''62,8 cm'''
''' Épaisseur du tube :''' 20 / 62,8 = '''0,32 cm'''
==== Conclusion ====
Les longs mâts en bois pleins sont très lourds, ils sont à proscrire car ils rendent le voilier instable.
Les mâts en bois creux seront défavorisés par rapport aux mâts en aluminium car la résistance au travail à la compression, qui est déterminant dans les calculs des mats, est de 100 kg<sub>f</sub> par cm² contre 2 000 kg<sub>f</sub> par cm² pour l'aluminium. <br />Le poids linéaire du bois est environ trois fois plus léger que l'aluminium. Pour un mât en bois creux : Afin d'obtenir la même résistance à la compression que pour un mât en aluminium il faudrait concevoir un mâts d'un poids linéaire d'environ {{Formatnum:2000}}/300 = 6,6 fois plus important. Pour l'équivalent d'un mât en aluminium de 5,4 kg par mètre il faudrait un mât en bois de 5,4 * 6,66 = 35 kg par mètre.
'''L'aluminium a bien l'avantage sur le bois !'''
{{Fin rendu LaTeX}}
{{Nouvelle page imprimée}}
=== Calcul de la résistance des mâts au flambage ===
<!--{{Début rendu LaTeX}}-->
{{Début cadre|fond=#ffddbf20}}
Ce sont les formes qui offrent une résistance au flambage. Un mât en bois plein est résistant mais il est très lourd. Pour alléger le poids du mât tout en garantissant sa résistance à la compression on utilise des matériaux légers, en général l'aluminium d'un prix acceptable, avec une section elliptique avec un côté large, là où l'on ne peut pas facilement disposer de raidisseur et un côté moins large où l'on peut fixer des raidisseurs (Barres de flèche et haubans)
Plus le matériau est dur plus il résistera au flambage.
==== Formule générale à la rupture ====
Selon l'article [[w:Flambage|Flambage]]<ref>https://fr.wikipedia.org/wiki/Flambage</ref> sur Wikipédia :
<math>F=\frac{\pi^2 E I}{l_k^2}</math>
où, dans le système international d'unités,
<math>E</math> est le [[w:module d'Young|module d'Young]]<ref>https://fr.wikipedia.org/wiki/Module_de_Young</ref> du matériau ; 70 GPa (Giga Pascal) pour l'aluminium, entre 10 et 13 GPa pour le bois.
<math>I</math> est le [[w:moment quadratique|moment quadratique]]<ref>https://fr.wikipedia.org/wiki/Moment_quadratique</ref> de la poutre, en m<sup>4</sup><br />
<math>l_k</math> est la longueur de flambement de la poutre, en mètre.
<cite>Cette charge critique est évidemment limitée par la résistance en section de la poutre (en dessous d'un certain élancement, la rupture par compression est atteinte avant l'apparition du flambage). Dans le cas réel, la rupture par flambage est atteinte encore plus précocement en raison notamment des imperfections de production et de mise en œuvre (voir ci-dessous).</cite>
===== Charge critique au flambage =====
<!--Avec la formule transposée dans le système CGS pour une meilleure compréhension, je l'espère, de nos calculs :-->
Selon le Müller<ref>Formulaire technique de mécanique générale de Jacques MÜLLER {{ISBN|2853140016}}</ref>, bible des ingénieurs d'autrefois :
<small> <math> Pr = k\frac{\pi^2 E I}{l^2}</math> </small>
avec : l en cm, E en kg/cm², I en cm<sup>4</sup> et Pr en Kg<sub>f</sub>
''Avec cette formule transposée dans le système CGS, comme on les trouvait avant les dernières directives sur les unités de mesure<ref>https://fr.wikipedia.org/wiki/Unité_de_mesure#Unités_hors_du_Système_international_d'unités</ref>.
k = 1 pour les extrémités guidées. (Cas des mâts posés sur le pont)
k = 0,25 pour une extrémité encastrée et l'autre extrémité mobile.
k = 2 pour une extrémité encastrée et l'autre extrémité guidée. (Cas de Joshua première version)
k = 4 pour les deux extrémités encastrées.
====== Charge critique pour les espars guidés aux extrémités (Exemples pour le bois et l'aluminium) ======
Rappels :
k = 1,
Pour le bois E = 11 GPa ou 110 000 Kg/cm²
Charge critique au flambage pour les espars en bois (formule bâtarde) :
''' Pr = 110 I / L²''' avec I en cm<sup>4</sup>, {{rouge|L en mètre}}, E = 11·10<sup>4</sup> kg/cm².
Charge critique au flambage pour les espars en aluminium (formule bâtarde) :
''' Pr = 700 I / L²''' avec I en cm<sup>4</sup>, {{rouge|L en mètre}}, E = 70·10<sup>4</sup> Kg/cm².
===== Charge pratique de résistance au flambage =====
Éléments de calcul des moments quadratiques de la section S pour un espar rond creux :
[[Image:MQtube.jpg|120px|right|thumb| Section annulaire]]
<small><math> I_x= \frac {\pi \cdot (D^4-d^4)}{64}</math> moment quadratique par rapport à l'axe des x.<br />
<math> I_y= \frac {\pi \cdot (D^4-d^4)}{64}</math> moment quadratique par rapport à l'axe des y. <br />
<math> I_S= \frac {\pi \cdot (D^4-d^4)}{32}</math></small> avec D et d en cm
{{clr}}
Pour évaluer la résistance au [[#Exemple de calcul pour un mât elliptique creux en aluminium|flambage d'un mât elliptique]] on prend <math>I = 2 \cdot I_x</math> ou <math> I = 2 \cdot I_y</math>
Dans cette même page : <br />[[#Exemple_de_calcul_pour_un_m%C3%A2t_elliptique_creux_en_aluminium]]
{{Nouvelle page imprimée}}
Charge pratique au flambage :
''' Pp = Pr / n'''
'' n est un coefficient de sécurité.''
n = 5 pour les métaux homogènes.
n = 8 pour la fonte.
n = 7 pour le bois.
Résumé, pour les espars en aluminium :
'''Charge pratique pour les espars en aluminium, mâts, barres de flèches, tangons. (Formule bâtarde)'''
''' Pp = 140 I / L²'''
Coefficient de sécurité = 5; Pp en kg<sub>f</sub>, I en cm<sup>4</sup>, {{rouge|L en mètre}}.
==== Exemple de calcul pour un mât plein en mélèze ====
Diamètre : 20 cm, longueur : 15 mètres; encastré dans la coque sur 2 mètres.
Rappels :
k = 2 pour une extrémité encastrée et l'autre extrémité guidée. (Cas de Joshua première version)
<small><math>I = \pi/32 \cdot (D^4 - d^4)</math></small> avec D et d en cm
I = (3,14 / 32) * 20 * 20 * 20 * 20 => 15 708 cm<sup>4</sup>
<small><math>Pr = 110 \ I / L^2</math></small>
Charge critique :
''' pr =''' 110 * 15 708 / (13 * 13) = '''10 224 Kg<sub>f</sub>'''
Charge pratique pour un mât rond plein en mélèze de diamètre 20 cm et d'une longueur de 13 mètres<br />
''hors encastrement, au dessus du pont, sans barre de flèche''
''' Pp = '''10 224 / 7 = '''1 460 Kg<sub>f</sub>'''
{{RemarqueIndex|<small>Avec un étayage à mi-hauteur on aurait une charge pratique quatre fois plus importante, de l'ordre de 5 842 Kg<sub>f</sub>. Ceci est à comparer à la résistance au travail calculé dans la section précédente : 31 400 Kg<sub>f</sub> :</small><br />
[[#Corollaire_pour_un_mât_en_mélèze_de_20_cm_de_diamètre]]}}
==== Exemple de calcul pour un mât rond creux en aluminium ====
On reprend l' exemple pour un mât de 13 mètres en aluminium, posé sur le pont; 5,4 kg par mètre; diamètre 20 cm; épaisseur 3,2 mm.
Rappels :
'' k = 1 pour les extrémités guidées.''
I = π/32 (D<sup>4</sup> - d<sup>4</sup>)avec D, diamètre extérieur; et d = D - 2e
I = 3,14 / 32 * (20<sup>4</sup> - 19,36<sup>4</sup>) = 1 916 cm⁴
Pr = 700 I / L² avec I<sub>0</sub> en cm<sup>4</sup>; L = 13 m; E = 7 000 kg/m².
'''Pr =''' 700 * 1 916 / 169 = '''7 936 kg<sub>f</sub>'''
Charge pratique pour un mât en aluminium de diamètre 20 cm; d'une épaisseur de 3,2 mm; de longueur 13 mètres; guidé aux extrémités.
'''Pp =''' 7 936 / 5 = '''1 587 Kg<sub>f</sub>'''
''Avec un étayage à mi-hauteur on aurait une charge pratique quatre fois plus importante, de l'ordre de 6 349 Kg<sub>f</sub><br />
''Avec deux barres de flèches : 14 286 Kg<sub>f</sub>
{{RemarqueIndex|Ceci est à comparer à la ''Résistance au travail à la compression'' calculé dans la section précédente ; 40 00O Kg<sub>f</sub>:<br />[[#Calcul_pour_un_mât_de_5,4_kg_par_mètre]]}}
==== Exemple de calcul pour un mât elliptique creux en aluminium ====
L'inertie quadratique moyenne par rapport à un point extérieur aura la même valeur pour le mât elliptique creux et le mât rond creux. Du fait de son écrasement les valeurs de l'inertie quadratique selon les axes x et y sera différent.
Rappel de la définition sur wikipedia :
[[Image:MQdéfinition.jpg|175px|right|thumb| Schéma ]]
[[w:Moment_quadratique#Définition_générale]] :
<div style="font-size:85%;">
'' Moment quadratique de la section <math>S</math> par rapport à l’axe <math>O\vec x </math> :<br /> <math>I_x = \int_{S}y^2\, \mathrm ds = \iint_{S}y^2\, \mathrm dx\mathrm dy</math>''
'' Moment quadratique de la section <math>S</math> par rapport à l’axe <math>O\vec y </math> :<br /> <math>I_y= \int_{S}x^2\, \mathrm ds = \iint_{S}x^2\, \mathrm dx\mathrm dy</math>
'' Moment quadratique (polaire) de <math>S</math> par rapport au point <math>O</math> :<br /> <math>I_O= \int_{S}r^2\, \mathrm ds = \iint_{S}r^2\, \mathrm dx\mathrm dy</math>''
'''Remarques :'''<br />
On a <math> I_G = I_x + I_y</math> puisque <math> r^2=x^2+y^2</math> ([[w:Théorème de Pythagore|Théorème de Pythagore]]).
''Il découle de ces définitions que plus les éléments de la section sont situés loin de l'axe, plus le moment quadratique sera important.''
</div>
'''Définitions :'''<br />
Avec les mêmes caractéristiques que le mât rond creux mais ovalisé à 22 cm x 18 cm
<div style="font-size:85%;">
Grand diamètre gd = 22;
Petit diamètre pd = 18;
Diamètre moyen <small><math>D = \frac {gd + pd} {2}</math></small> est égal au diamètre moyen du mât rond creux
<small><math>I_G = Igd + Ipd</math></small>
</div>
Inertie quadratique :
<div style="font-size:85%;">
Inertie quadratique selon l'axe de grand diamètre :
<math>Igd = I_G \cdot \frac {gd} {2 \cdot D}</math>
Inertie quadratique selon l'axe de petit diamètre :
<math>Ipd = I_G \cdot \frac {pd} {2 \cdot D}</math>
</div>
La partie la plus sensible au flambage est le petit diamètre :
'''Pour l'évaluation du flambage à la compression on prend I = 2·Ipd'''
'''Charge limite pour le flambage :'''<br />
Inertie quadratique avec D = (gd + pd) / 2, gd = 22 cm, pd = 18 cm, e = 0,32 cm, d = D - 2·e en cm
<small> <math>I_G = \pi/32 \cdot (D^4 - d^4)</math></small>
I<sub>G</sub> = 3,14 / 32 * (20<sup>4</sup> - 19,36<sup>4</sup>) = 1 916
I = 2·Ipd = 2·I<sub>G</sub> * pd / 2·D
'''I =''' <s>2</s> * 1 916 * 18 / (<s>2</s> * 20) = 1 916 * 18 / 20 = '''1 724 cm⁴'''
'''Charge limite avec trois étages guidés à 4 m, 8 m et 13 m'''
Pr = 700·I / L²
Pour la plus grande longueur guidée de 4 mètres : '''L² = 16'''
'''Pr =''' 700 * 1 724 / 16 = '''83 825 Kg<sub>f</sub>'''
'''Charge pratique pour un mât elliptique en aluminium de 22x18 cm, d'une épaisseur de 3,2 mm, de longueur 13 mètres, guidé par deux barres de flèches à 4 et 8 mètres.'''
''' Pp =''' 83 825 / 5 = '''16 765 Kg<sub>f</sub>'''
==== Conclusion ====
Dans la conclusion du chapitre précédent sur la résistance des mâts à la compression :<br />
<small><cite>... Pour l'équivalent d'un mât en aluminium de 5,4 kg par mètre il faudrait un mât en bois de 5,4 * 6,66 = 35 kg par mètre.<br />'''L'aluminium a bien l'avantage sur le bois !'''</cite></small>
Pour le flambage : Si le mât creux en bois n'est pas conditionné par une évaluation de sa résistance à la compression comme ci-dessus, '''on détermine sa section en fonction de la charge estimée''', sa section peut être rectangulaire ou ronde. On agit sur les dimensions de la section '''puis on évalue les risques de flambage selon les longueurs libres guidées ou non par des barres de flèches et les étais.''' On corrige les dimensions de la section sans changer sa surface de compression jusqu'à obtenir satisfaction. Il faudra sûrement trouver des compromis !
Le mât en bois n'est pas à proscrire. Sur un ''Voilier ancien'', un ''Vieux Gréement'', un mât en aluminium n'est pas de mise.
=== Notes et références ===
<references/>
{{Fin rendu LaTeX}}
{{Nouvelle page imprimée}}
== Les épontilles ==
=== Calcul des épontilles de sections rectangulaires ===
<!--{{Début rendu LaTeX|bleu}}-->
{{début cadre|vert|fond=#bfddff20}}
[[Image:MQrectangle.jpg|180px|right|thumb|<center>Section rectangulaire</center>]]
Les épontilles sont des poutres ou des tubes disposés verticalement pour supporter les mâts des bateaux, elles évitent un écrasement du pont.
; Compression pour les épontilles en bois de sections rectangulaires :
Section S = b * h b et h en cm S en cm²
Charge pratique à la compression :
<math> Pp = 100 * S </math><br /> pour un coefficient de sécurité de 5
; Flambage :
<math> I_x= \frac {b \cdot h^3}{12}</math> <br />
<math> I_y= \frac {h \cdot b^3}{12}</math> <br />
<math> I_G= \frac {b \cdot h}{12} \cdot (b^2+h^2) </math>
Pour le calcul des épontilles on utilise généralement <math> I = 2 \cdot I_y </math> en cm⁴
{{clr}}
; Charge limite :
k = 4 pour deux extrémités pseudo encastrées (maintien par le plancher ou par les aménagements)<br />
<math>Pr = k \cdot 110 \ I / L^2</math> avec I<sub>0</sub> en cm<sup>4</sup>; {{rouge|L en mètre}}, et E = 110000 kg/cm² (11GPa)
'''Charge pratique pour le bois Pp = Pr / 7''' <br />''Rappel : Pr / 5 pour l'aluminium''
;Exemple pour une épontille en kotibé de 4 x 20 cm et 2 m de hauteur :
'''Pr =''' 4 x 110 x 2 x 20 x 4³ / 12 x 2² = '''23 466 kg'''
'''Pp =''' 23 466/7 = '''3 352 kg'''
{{Fin rendu LaTeX}}
{{Nouvelle page imprimée}}
== Les beauprés ==
=== Calcul de beauprés de sections rectangulaires ===
<!--{{Début rendu LaTeX|vert}}-->
{{début cadre|rouge|fond=#ddbfff20|}}
<!--div class="noprint">{{En cours}}</div-->
[[File:Ship-bowsprit.png|thumb|180px|1 : Bout-dehors ou bâton de foc volant<br />2 : Beaupré<br />3 : Étai de trinquette<br />4 : Étai de foc ou de génois<br />8 : Amure de foc volant<br />13 : Sous-barbe]]
[[File:Cardabela Beaupré.jpg|thumb|180px|Goélette Cardabela<br /><center>Beaupré en bois peint et<br />bout-dehors en aluminium</center>]]
Le mât de beaupré ou beaupré se trouve à la proue d'un navire, fortement incliné vers l'avant.
Il est destiné à avancer le centre de voilure, il supporte les étais avant du mât le plus à l'avant (généralement le mât de misaine), Il est souvent prolongé par un bout-dehors.
La compression du beaupré dépend de l'effort supporté par l'étai de foc. L'effort est repris par la sous-barbe.
=== Comment effectuer ce calcul de compression du beaupré ? ===
On peut l'évaluer en connaissant la résistance du câble de sous-barbe, de l'angle α qu'il fait avec le beaupré, et de l'ange β que fait l'étai de foc avec ce même beaupré.<br />Par exemple avec une sous-barbe en câble d'acier inoxydable de 12 mm et un angle α de 30°, de '''charge maximale d'utilisation {{formatnum:1654}} kg<sub>f</sub>''' et une rupture à {{formatnum:8270}} kg<sub>f</sub>
Pour effectuer ce calcul on peut utiliser des vecteurs sur une feuille de papier millimétré ou calculer le couple qui s’exerce sur l'extrémité du beaupré de longueur L :<br />
La force du couple qui tire le beaupré vers le haut est égal au produit de la projection de la force de traction du hauban <math>\vec Fh</math> perpendiculairement au beaupré par la longueur du beaupré : <math>Fh \cdot \sin \beta \cdot L</math><br />
La force du couple qui tire le beaupré vers le bas est égal au produit de la projection de la force de traction de la sous barbe <math>Fs</math> perpendiculairement au beaupré par la longueur du beaupré : <math>Fs \cdot \sin \alpha \cdot L</Math> où <math>Fs</math> est la résistance du câble de sous-barbe.
'''On connaît cette force <math>Fs</math> maximale d'utilisation du câble : {{formatnum:1654}} kg<sub>f</sub>'''
La force du couple qui tire vers le haut doit être égale à la force du couple qui tire vers le bas.<br />
La force qui s'exerce sur le beaupré est la somme des projections vectorielles des deux forces <math> \vec {Fh}\ et\ \vec {Fs}</math> sur le beaupré :
<math>Fh \cdot \sin \beta \cdot L = Fs \cdot \sin \alpha \cdot L</math>
<math>Fh = Fs \frac{\sin \alpha}{\sin \beta}</math> (pour <math>\sin \beta</math> ≠ 0)
Compression sur le beaupré :
<math>Fh \cdot \cos{\beta} + Fs \cdot \cos{\alpha}</math>
<math>Fs \frac{\sin \alpha}{\sin \beta} \cdot {\cos \beta} + Fs \cdot \cos{\alpha}</math> ⇔ <math>Fs \cdot ( \coth {\beta} \cdot \sin \alpha + \cos {\alpha})</math>
<math>\coth {\beta}</math> n'est autre que le rapport de la distance qui sépare le pied du mât au point d'amure par la hauteur du mât, qui sont les points d'attaches du hauban.
=== Exemple pratique ===
Calculer l'effort de compression et la résistance au flambage du beaupré avec un mât de 13,5 m, une distance du point d'amure au pied du mât de 6 m, un angle <math>\alpha</math> de 30°, une sous-babe ''inox'' de diamètre 12 : <small><math>\sin {\alpha} = 0,5\ et \cos {\alpha} = 0,866</math></small>
'''Compression pratique = '''{{formatnum:1654}} * (6/13,5 * 0,5 + 0,866) = '''{{formatnum:1799}} kg<sub>f</sub>'''
==== Quelle doit être la section du beaupré en bois ? ====
La charge à adopter est de 100 kg par cm² pour un bois de bonne qualité tel que le Kotibé<ref>https://fr.wiktionary.org/wiki/kotibé</ref> droit de fil avec un coefficient de sécurité de 5.
==== Résistance au travail de compression ====
'''Résistance au travail de compression :''' Pp = 100 *S = '''{{formatnum:1800}} kg'''
'''Section minimale :''' {{formatnum:1800}} / 100 = '''18 cm²'''
Le beaupré est une pièce importante sur un petit voilier, il y a des risques de chocs et de poussées latérales. On préfère utiliser un bois plus adapté à ces risques. En multipliant la section par 10 on doit pouvoir supporter une collision {{formatnum:18000}} kg. <br />La section adoptée pour la goélette Cardabela a été de 10 x 12 cm pour {{formatnum:12000}} kg<sub>f</sub> (60 tonnes à la rupture).
==== Charge limite au flambage ====
Comme pour l'épontille au chapitre précédent, on prend I = 2 I<sub>y</sub>
'''I =''' 2 * 12 * 10³ / 12 = '''{{formatnum:2000}} cm⁴'''
k = 1 pour les espars en bois guidés aux extrémités.
Pr = k * 110 I / L² (L= 2,52 m)
Pp = Pr /7
'''Pr = '''110 * {{formatnum:2000}} / 2,52² = '''{{formatnum:34643}} kg<sub>f</sub>'''
'''Pp =''' Pr/7 = {{formatnum:34643}} / 7 = '''{{formatnum:4949}} kg<sub>f</sub>'''
==== Conclusion ====
Un beaupré de section 10 x 12 cm est très largement suffisant pour assurer sa fonction, et est capable de supporter certains inconvénients comme les collisions et les chocs latéraux.<ref>http://appgm.asso.free.fr/wiki/index.php/Abordages/Péripéties_d'un_abordage</ref>
=== Notes et références ===
<references/>
{{Fin rendu LaTeX}}
== Liens ==
* {{wp|Construction navale}}
* {{wp|Goélette Cardabela}}
{{Nouvelle page imprimée}}
<!--
{{Début cadre|bleu|titre="titre du cadre"|width=50%|fond=#ffddbf20}}
Test du modèle cadre
{{Fin cadre}}
-->
{{AutoCat}}
g82fkhg8utohbetnvo291fgzqdw4zd3
Fonctionnement d'un ordinateur/Les architectures à parallélisme de données
0
65960
682362
679048
2022-07-25T09:40:16Z
2A01:CB00:B35:5B00:A742:1D97:3D6D:A3C
D'après la doc SSE2 ajoute 144 instructions à SSE, les 70 instructions de SSE ne sont pas comprises dans SSE2
wikitext
text/x-wiki
[[File:SIMD2.svg|vignette|Parallélisme de données au niveau de l'unité de calcul. Celle-ci contient plusieurs circuits indépendants qui appliquent la même opération sur des données différentes.]]
Nous allons maintenant aborder le parallélisme de données, qui consiste à traiter des données différentes en parallèle. De nombreuses situations s'y prêtent relativement bien : traitement d'image, manipulation de sons, vidéo, rendu 3d, etc. Mais pour exploiter ce parallélisme, il a fallu concevoir des processeurs adaptés.
Les premières architectures matérielles conçues pour le parallélisme de données utilisaient plusieurs processeurs qui exécutaient la même instruction, chacun sur des données différentes. On peut par exemple citer l'exemple des Thinking machines CM-1 et CM-2, qui exécutaient tous la même instruction au même cycle d'horloge sur 64000 processeurs minimalistes. Mais cette solution a de nombreux problèmes : il faut garantir la synchronisation des processeurs, garantir que tous les processeurs exécutent la même instruction (ce qui pose problème quand des branchements sont impliqués, des processeurs pouvant prendre le branchement et pas les autres). De plus, ce genre de solution ne peut être efficace et rentable que sur des grosses données, car elle nécessite des ordinateurs assez chers. N'espérez pas commander ce genre d’ordinateurs pour noël ! Ceci dit, une variante moderne de ces architectures est utilisée sur les cartes graphiques actuelles, dont nous toucherons un mot à la fin du chapitre.
Ces architectures ont depuis étés remplacées par des architectures plus simples, où on exécute une instruction sur plusieurs données en parallèle, à l'intérieur d'un processeur. Ces architectures exploitent le parallélisme de données au niveau de l'unité de calcul, celle-ci pouvant exécuter un même calcul sur des données différentes en parallèle. Si on omet quelques exceptions, on peut classer ces architectures dans trois catégories principales : les processeurs à instructions SIMD, les processeurs vectoriels, et les cartes graphiques modernes. Si les processeurs vectoriels sont assez rares de nos jours, tous les processeurs récents incorporent des instructions SIMD. Ne parlons pas des cartes graphiques récentes, qui sont des monstres de puissance de calcul parallèle !
==Les instructions SIMD==
Les processeurs modernes fournissent presque tous des '''instructions vectorielles''', aussi appelées ''instructions SIMD'', qui sont capables de traiter plusieurs éléments en parallèle. Elles travaillent sur un plusieurs nombres entiers ou flottants regroupés dans ce qu'on appelle un ''vecteur''. Une instruction vectorielle agit, comme son nom l'indique, sur un vecteur, ce qui veut dire qu'elle traite tous les entiers ou flottants du vecteur en parallèle, simultanément.
Les instructions SIMD peuvent être rassemblées en deux grands groupes : les horizontales et les verticales.
* Les ''instructions SIMD horizontales'' travaillent en parallèle sur les éléments qui sont "à la même place" dans deux vecteurs. Elles peuvent additionner ou multiplier deux vecteurs, par exemple. Pour prendre l'exemple d'une instruction d'addition vectorielle, celle-ci va additionner ensemble les données qui sont à la même place dans deux vecteurs, et placer le résultat dans un autre vecteur, à la même place.
* Les ''instructions SIMD verticales'' partent d'un vecteur et ont pour résultat un simple nombre. Elles peuvent calculer la somme ou le produit des éléments d'un vecteur, renvoyer le nombre d’éléments nuls dans un vecteur, etc.
[[File:Instructions SIMD.png|centre|vignette|upright=2|Instructions SIMD]]
Les instructions SIMD sont difficilement utilisables dans des langages de haut niveau et c'est donc au compilateur de traduire un programme avec des instructions vectorielles. Les transformations qui permettent de traduire des morceaux de programmes en instructions vectorielles (déroulage de boucles, strip-mining) portent le nom de vectorisation.
===Les registres vectoriels===
Les processeurs SIMD contiennent des registres spécialisés pour les vecteurs. En général, tous les vecteurs ont une taille fixe, peu importe leur contenu. Cela implique que suivant la taille des données à manipuler, on pourra en placer plus ou moins dans un vecteur. Par exemple, un vecteur de 128 bits pourra contenir 4 entiers de 32 bits, 4 flottants 32 bits, ou 8 entiers de 16 bits.
[[File:Vector register.png|centre|vignette|upright=2|Contenu d'un vecteur en fonction du type de données utilisé.]]
Suivant la taille des données, et le type de celle-si, on devra effecteur des instructions différentes. Par exemple, on devra utiliser deux instructions d'addition différentes suivant qu'on manipule des flottants 64 bits ou des entiers 32 bits. De même, l'instruction pour additionner des vecteurs d'entiers de 16 bits sera différente de celle manipulant des vecteurs d'entiers de 32 bits.
Un processeur vectoriel peut incorporer des registres qui facilitent le traitement des diverses instructions. Parmi ces registres, nous aborderons ultérieurement le Vector Length Register, et le Vector Mask Register.
====Le ''Vector Length Register''====
Le '''Vector Length Register''' permet de gérer les tableaux dont la taille n'est pas un multiple d'un vecteur. Celui-ci indique combien d’éléments on doit traiter dans un vecteur. On peut ainsi dire au processeur : je veux que tu ne traites que les 40 premiers éléments présents d'un paquet. Quand on arrive à la fin d'un tableau, il suffit de configurer le ''Vector Length Register'' pour ne traiter que ce qu'il faut.
[[File:Vector length register.png|centre|vignette|upright=2|Vector length register.]]
Il facilite l'usage du '''déroulage de boucle''', une optimisation qui vise à réduire le nombre d'itérations d'une boucle en dupliquant son corps en plusieurs exemplaires. Le compilateur réplique le corps de la boucle (les instructions à répéter) en plusieurs exemplaires dans cette boucle, avant de corriger le nombre d'itérations de la boucle. Par exemple, prenons cette boucle, écrite dans le langage C :
<syntaxhighlight lang="c">
int i;
for (i = 0; i < 100; ++i)
{
a[i] = b[i] * 7 ;
}
</syntaxhighlight>
Celle-ci peut être déroulée comme suit :
<syntaxhighlight lang="c">
int i;
for (i = 0; i < 100; i+=4)
{
a[i] = b[i] * 7 ;
a[i+1] = b[i+1] * 7 ;
a[i+2] = b[i+2] * 7 ;
a[i+3] = b[i+3] * 7 ;
}
</syntaxhighlight>
Les instructions vectorielles permettent de traiter plusieurs éléments à la fois, ce qui fait que plusieurs tours de boucles peuvent être rassemblés en une seule instruction SIMD. Le déroulage de boucles permet d'exposer des situations où ce regroupement est possible. Dans notre exemple, si jamais notre processeur dispose d'une instruction de multiplication capable de traiter 4 éléments du tableau a ou b en une seule fois, la boucle déroulée peut être vectorisée assez simplement en utilisant une multiplication vectorielle (que nous noterons vec_mul).
<syntaxhighlight lang="c">
int i;
for (i = 0; i < 100; i+=4)
{
vec_a[i] = vec_mul ( vec_b[i] , 7 ) ;
}
</syntaxhighlight>
Le déroulage de boucles n'est toutefois pas une optimisation valable pour toutes les boucles. Reprenons l'exemple de la boucle vue plus haut. Si jamais le tableau à manipuler a un nombre d’éléments qui n'est pas multiple de 4, la boucle ne pourra être vectorisée, vu que la multiplication vectorielle ne peut traiter que 4 éléments à la fois. Pour ce faire, les compilateurs utilisent généralement deux boucles : une qui traite les éléments du tableau avec des instructions SIMD, et une autre qui traite les éléments restants avec des instructions non vectorielles. Cette transformation s'appelle le '''strip-mining'''.
Par exemple, si je veux parcourir un tableau de taille fixe contenant 102 éléments, je devrais avoir une boucle comme celle-ci :
<syntaxhighlight lang="c">
int i;
for (i = 0; i < 100; i+=4)
{
a[i] = b[i] * 7 ;
a[i+1] = b[i+1] * 7 ;
a[i+2] = b[i+2] * 7 ;
a[i+3] = b[i+3] * 7 ;
}
for (i = 100; i < 102; ++i)
{
a[i] = b[i] * 7 ;
}
</syntaxhighlight>
Les processeurs vectoriels utilisent le ''Vector Length Register'' pou éviter d'utiliser le strip-mining. Avec ce registre, il est possible de demander aux instructions vectorielles de ne traiter que les n premiers éléments d'un vecteur : il suffit de placer la valeur n dans le Vector Length Register. Évidemment, n doit être inférieur ou égal au nombre d’éléments maximal du vecteur. Avec ce registre, on n'a pas besoin d'une seconde boucle pour traiter les éléments restants, et une simple instruction vectorielle peut suffire.
====Le ''Vector Mask Register''====
Autre obstacle à la vectorisation : la présence de branchements conditionnels dans les boucles à vectoriser. Si une boucle contient des branchements conditionnels, elle ne peut pas être vectorisée facilement : il est impossible de zapper certains éléments d'un vecteur suivant une condition. Pour résoudre ce problème, les processeurs vectoriels utilisent un registre de masque, ou '''''Vector Mask Register'''''. Celui-ci stocke un bit pour chaque donnée présente dans le vecteur à traiter, qui indique s'il faut ignorer la donnée ou non.
[[File:Vector mask register.png|centre|vignette|upright=2|Vector mask register]]
===Les accès mémoire===
La gestion des accès mémoire est assez hétéroclite, la façon de faire étant différente selon les architectures.
* Sur certains processeurs assez anciens, les instructions vectorielles lisent et écrivent en mémoire RAM, sans passer par des registres : on parle de '''processeurs memoire-mémoire'''.
[[File:Processeur vectoriel mémoire-mémoire.png|centre|vignette|upright=2|Processeur vectoriel mémoire-mémoire.]]
* Les '''processeurs à registres vectoriels''' possèdent des registres vectoriels dédiés aux vecteurs.
[[File:Processeur vectoriel à registres vectoriels.png|centre|vignette|upright=2|Processeur vectoriel à registres vectoriels.]]
Dans le cas le plus simple, les données d'un vecteur sont contigües en mémoire et l'instruction peut utiliser le mode d''''adressage vectoriel absolu'''. Avec ce mode d'adressage, les instructions ont juste à préciser l'adresse mémoire du début du vecteur. Avec des vecteurs de 8 octets, toute instruction d'accès mémoire utilisant le mode d'adressage absolu va lire ou écrire des blocs de 8 octets. L'adresse de départ de ces blocs 'est soumise à des contraintes d'alignement sur les jeux d'instructions comme le SSE, le MMX, etc. La raison à cela est que gérer des accès non alignés en mémoire rend les circuits de lecture/écriture en mémoire plus complexes. En contrepartie, ces contraintes compliquent l'utilisation des instructions vectorielle par le compilateur.
D'autres modes d'adressage des vecteurs permettent à une instruction de charger des données dispersées en mémoire pour les rassembler dans un vecteur. On peut notamment citer l'existence d'accès mémoires en stride et en scatter-gather.
L''''accès en stride''' regroupe des données séparées par un intervalle régulier d'adresses. Ce mode d'accès a besoin de l'adresse initiale, de celle du premier élément du vecteur, et de la distance entre deux données en mémoire. Il permet aux instructions de mieux gérer les tableaux de structures, ainsi que les tableaux multi-dimensionnels. Lorsqu'on utilise de tels tableaux, il arrive assez souvent que l'on n'accède qu'à des éléments tous séparés par une même distance. Par exemple, si on fait des calculs de géométrie dans l'espace, on peut très bien ne vouloir traiter que les coordonnées sur l'axe des x, sans accès sur l'axe des y ou des z. Les instructions d'accès mémoire en enjambées gèrent de tels cas efficacement.
Les processeurs vectoriels incorporent aussi les accès en '''scatter-gather'''. Les accès en ''Scatter-Gather'' peuvent être vus comme une généralisation de l'adressage indirect à registre aux vecteurs, chaque élément du vecteur étant adressé via adressage indirect. Cet accès demande d'avoir la liste des adresses mémoires des données. Quand une instruction exécute un accès en ''Scatter'', les données présentes dans ces adresses sont rassemblées dans un vecteur, et enregistrée dans un registre vectoriel. Bien sûr, il existe aussi l’inverse pour l'écriture : c'est l'accès en ''Gather''. Cet accès sert à mieux gérer les matrices creuses, des matrices où une grande partie des éléments sont nuls et où, dans un souci d'optimisation, seuls les éléments non nuls de la matrice sont stockés en mémoire.
[[File:Cuda4.png|centre|vignette|upright=2|Adressage en scatter-gather]]
===Exemple avec les processeurs x86===
[[File:PD-20060908-SSE3-01.svg|vignette|Chronologie des extensions x86 SIMD.]]
Après avoir vu la théorie sur les instructions SIMD, il est temps de voir un exemple concret : celui des instructions SIMD des processeurs x86, présents dans nos PC. Le jeu d'instruction des PC qui fonctionnent sous Windows est appelé le x86. C'est un jeu d'instructions particulièrement ancien, apparu en 1978. Depuis, des '''extensions x86''' ont ajouté des instructions au x86 de base. On peut citer par exemple les extensions MMX, SSE, SSE2, ''3dnow!'', etc. Les premières instructions SIMD furent fournies par une extension x86 du nom de MMX, introduite par Intel en 1996 sur le processeur Pentium MMX. Le MMX a perduré durant quelques années avant d'être remplacé par les extensions SSE. La même année, AMD sorti d'expansion ''3DNow!'', qui ajoutait 21 instructions SIMD similaires à celles du MMX. Celui-ci fût suivi du ''3DNow!+'' quelques années plus tard. Le SSE fût ensuite décliné en plusieurs versions avant d'être "remplacé" par l'AVX. Une grande quantité de ces extensions x86 sont des ajouts d'instructions SIMD.
[[File:X86 extensions 2013.svg|centre|vignette|upright=1.0|Extensions du jeu d'instruction x86, 2013.]]
====L’extension MMX====
Le MMX ajoutait pas mal d'instructions SIMD assez basiques, essentiellement des instructions arithmétiques : addition, soustraction, opérations logiques, décalages, rotations, mise à zéro d'un registre, etc. La multiplication est aussi supportée, mais avec quelques petites subtilités, via l'instruction PMULLW. Les instructions MMX ne mettent pas le registre d'état à jour et ne préviennent pas en cas d'overflow ou d'underflow si ceux-ci arrivent (pour les instructions qui ne travaillent pas en arithmétique saturée).
Le MMX introduisait 8 registres vectoriels, du nom de MM0, MM1, MM2, MM3, MM4, MM5, MM6 et MM7, d'une taille de 64 bits, qui ne pouvaient contenir que des nombres entiers. Ils avaient cependant un léger défaut, qui a nui à l'adoption du MMX. Pour comprendre ce défaut, il faut savoir que les flottants sont gérés par l'extension x87, qui définit 8 registres flottants de 80 bits. Et chaque registre MMX correspondait aux 64 bits de poids faible d'un des 8 registres flottants de la x87 ! En clair : il était impossible d'utiliser en même temps l'unité de calcul flottante et l'unité MMX. En faisant ainsi, sauvegarder les registres lors d'un changement de contexte, d'une interruption, ou d'un appel de fonction était très simple : la sauvegarde des registres de la FPU x87 suffisait. Mais cela a sacrément gêné les programmeurs ou les compilateurs qui voulaient utiliser le jeu d'instruction MMX.
====L’extension SSE====
[[File:XMM registers.svg|droite|vignette|XMM registers]]
Dans les années 1999, une nouvelle extension SIMD fit son apparition sur les processeurs Intel Pentium 3 : le '''Streaming SIMD Extensions''', abrévié SSE. Ce SSE fut ensuite complété, et différentes versions virent le jour : le SSE2, SSE3, SSE4, etc. Cette extension fit apparaitre 8 nouveaux registres, les registres XMM. Sur les processeurs 64 bits, ces registres sont doublés et on en trouve donc 16. En plus de ces registres, on trouve aussi un registre d'état qui permet de contrôler le comportement des instructions SSE : celui contient des bits qui permettront de dire au processeur que les instructions doivent arrondir leurs calculs d'une certaine façon, etc. Ce registre n'est autre que le registre MXCSR. Chose étrange, seuls les 16 premiers bits de ce registre ont une utilité : les concepteurs du SSE ont surement préférés laisser un peu de marge au cas où.
La première version du SSE contenait assez peu d'instructions : seulement 70. Le SSE première version ne fournissait que des instructions pouvant manipuler des paquets contenant 4 nombres flottants de 32 bits (simple précision). Je ne vais pas toutes les lister, mais je peux quand-même dire qu'on trouve des instructions arithmétiques de base, avec pas mal d'opérations en plus : permutations, opérations arithmétiques complexes, instructions pour charger des données depuis la mémoire dans un registre. Petit détail : la multiplication est gérée plus simplement et l'on a pas besoin de s’embêter à faire mumuse avec plusieurs instructions différentes pour faire une simple multiplication comme avec le MMX.
On peut quand même signaler une chose : des instructions permettant de contrôler le cache firent leur apparition. On retrouve ainsi des instructions qui permettent d'écrire ou de lire le contenu d'un registre XMM en mémoire sans le copier dans le cache. Ces instructions permettent ainsi de garder le cache propre en évitant de copier inutilement des données dedans. On peut citer par exemple, les instructions MOVNTQ et MOVNTPS du SSE premiére version. On trouve aussi des instructions permettant de charger le contenu d'une portion de mémoire dans le cache, ce qui permet de contrôler son contenu. De telles instructions de prefetch permettent ainsi de charger à l'avance une donnée dont on aura besoin, permettant de supprimer pas mal de cache miss. Le SSE fournissait notamment les instructions PREFETCH0, PREFETCH1, PREFETCH2 et PREFETCHNTA. Autant vous dire qu'utiliser ces instructions peut donner lieu à de sacrés gains si on s'y prend correctement ! Il faut tout de même noter que le SSE n'est pas seul "jeu d'instruction" incorporant des instructions de contrôle du cache : certains jeux d'instruction POWER PC (je pense à l'Altivec) ont aussi cette particularité.
Avec le '''SSE2''', de nouvelles instructions furent ajoutés, permettant d'utiliser des nombres de 64, 16 et 8 bits dans chaque vecteur. Le SSE2 incorporait ainsi pas moins de 144 instructions différentes. Ce qui commençait à faire beaucoup.
Puis, vient le '''SSE3''', avec ses 13 instructions supplémentaires. Pas grand-chose à signaler, si ce n'est que des instructions permettant d'additionner ou de soustraire tous les éléments d'un paquet SSE ensemble, des instructions pour les nombres complexes, et plus intéressant : les deux instructions MWAIT et MONITOR qui permettent de paralléliser plus facilement des programmes.
Le '''SSE4''' fut un peu plus complexe et fut décliné lui-même en 2 versions. Le SSE4.1 introduit ainsi des opérations de calcul de moyenne, de copie conditionnelle de registre (un registre est copié dans un autre si le résultat d'une opération de comparaison précédente est vrai), de calcul de produits scalaire, de calcul du minimum ou du maximum de deux entiers, des calculs d'arrondis, et quelques autres. Avec le SSE4.2, le vice à été poussé jusqu'à incorporer des instructions de traitement de chaines de caractères.
====L’extension AVX====
[[File:AVX registers.svg|vignette|Registres AVX.]]
Avec l''''AVX''', on retrouve 16 registres d'une taille de 256 bits, nommés de YMM0 à YMM15 et dédiés aux instructions AVX. Ils sont partagés avec les registres XMM : les 128 bits de poids faible des registres YMM ne sont autres que les registres XMM. L'AVX complète le SSE et ses extensions, en rajoutant quelques instructions, et surtout en permettant de traiter des données de 256 bits.
Son principal atout face au SSE est que les instructions AVX permettent de préciser le registre de destination en plus des registres d'opérandes. Avec le SSE et le MMX, le résultat d'une instruction SIMD était écrit dans un des deux registres d'opérande manipulé par l'instruction. Il fallait sauvegarder son contenu si on en avait besoin plus tard, ce qui n'est plus nécessaire avec l'AVX.
==Les processeurs vectoriels==
Les instructions SIMD sont assez rudimentaires, et certains processeurs assez anciens allaient un peu plus loin : ces processeurs sont ce qu'on appelle des '''processeurs vectoriels'''. Ils incorporent diverses techniques que de simples instructions SIMD n'ont pas forcément. Les processeurs vectoriels ne font pas leurs calculs de la même manière que les processeurs SIMD, et n'accèdent pas à la mémoire de la même façon. Par exemple, pour permettre les accès en scatter-gather, les processeurs vectoriels sont souvent combinés à des mémoires multiports ou pipelinées. De plus, les processeurs vectoriels ne possèdent aucune mémoire cache pour les données (même s'ils ont des caches d'instruction).
===Une unité de calcul pipelinée===
[[File:Vectorsimdpipeline.png|vignette|Illustration du pipeline interne d'un processeur vectoriel.]]
La différence entre processeur vectoriel et SIMD tient dans la façon dont sont traités les vecteurs : les instructions SIMD traitent chaque élément en parallèle, alors que les processeurs vectoriels pipelinent ces calculs ! Par pipeliner, on veut dire que l’exécution de chaque instruction est découpée en plusieurs étapes indépendantes. Au lieu d'attendre la fin de l’exécution d'une opération avant de passer à la suivante, on peut commencer le traitement d'une nouvelle donnée sans avoir à attendre que l'ancienne soit terminée.
[[File:Pipeline.png|centre|vignette|upright=2|Pipeline vectoriel.]]
Pour donner un exemple, on peut donner l'exemple d'une multiplication flottante effectuée entre deux registres. Son exécution peut être décomposée en plusieurs étapes.
Par exemple, on peut avoir 3 étapes :
* une première étape E qui va additionner les exposants et gérer les diverses exceptions ;
* une étape M qui va multiplier les mantisses ;
* et enfin une étape A qui va arrondir le résultat.
L’exécution de notre opération flottante sur un vecteur donnerait donc quelque chose dans le genre, où chaque ligne correspond au traitement d'un nouvel élément dans un vecteur, dans un paquet SIMD.
[[File:Multiplication vectorielle - pipeline.png|centre|vignette|upright=2|Multiplication vectorielle - pipeline]]
Avec une unité de calcul pipelinée découpée en N étages, on peut gérer N données simultanées : autant qu'il y a d'étapes différentes. Mais ce nombre maximal de données met un certain temps avant d'être atteint. L'unité de calcul met du temps avant d'arriver à son régime de croisière. Durant ce temps, elle n'a pas commencé à traiter suffisamment d’éléments pour que toutes les étapes soient occupées. Ce temps de démarrage est strictement égal du nombre d'étapes nécessaires pour effectuer une instruction. La même chose arrive vers la fin du vecteur, quand il ne reste plus suffisamment d’éléments à traiter pour remplir toutes les étapes.
[[File:Startup and dead time vector pipeline.png|centre|vignette|upright=2|Startup and dead time vector pipeline]]
Pour amortir ces temps de démarrage et de fin, certains processeurs démarrent une nouvelle instruction sans attendre la fin de la précédente : deux instructions peuvent se chevaucher pour remplir les vides. Par contre, il peut y avoir des problèmes lorsque deux instructions qui se suivent manipulent le même vecteur. Il faut que la première instruction ait fini de manipuler un élément avant que la suivante ne veuille commencer à le modifier. Pour cela, il faut avoir des vecteurs suffisamment qui contiennent plus d’éléments qu'il n'y a d'étapes pour effectuer notre instruction.
===La technique du ''chaining''===
La technique du pipeline peut encore être améliorée dans certains cas particuliers. Imaginons que l'on ait trois paquets : A, B et C. Pour chaque énième élément de ces paquets, je souhaite effectuer le calcul <math>A_n + B_n \times C_n</math>. En théorie, il faudrait faire d'abord la multiplication, stocker le résultat temporaire de la multiplication dans un registre vectoriel, puis faire l'addition. Mais en rusant un peu, on peut utiliser le pipeline plus efficacement. Une fois que le premier élément de la multiplication du premier vecteur est connu, pourquoi ne pas démarrer l'addition immédiatement après, et continuer la multiplication en parallèle ? Après tout, les deux calculs ont lieu dans des ALUs séparés.
Pour ce faire, on doit modifier notre pipeline de façon à ce que le résultat de chaque étape d'un calcul soit réutilisable au cycle d’horloge suivant. La sortie de l'unité de multiplication doit être connectée à l'entrée de l'ALU d'addition. Un processeur implémentant le chaining a toutes ses unités de calcul reliées entre elles de cette façon : la sortie d'une unité est reliée aux entrées de toutes les autres. Il s'agit de ce qu'on appelle le '''''Vector Chaining'''''.
[[File:Vector chaining.png|centre|vignette|upright=2|Vector chaining]]
===Les unités de calcul parallèles===
Certains de nos processeurs vectoriels utilisent plusieurs ALU pour accélérer les calculs. En clair, ils sont capables de traiter les éléments d'un vecteur dans des ALU différentes. Vu que nos ALU sont pipelinées, rien n’empêche d’exécuter plusieurs instructions vectorielles différentes dans une seule ALU, chaque instruction étant à une étape différente. Mais d'ordinaire, les processeurs vectoriels comportent plusieurs ALUs spécialisées : une pour les additions, une pour la multiplication, une pour la division, etc.
==Les cartes graphiques modernes==
Les cartes graphiques modernes, programmables, sont des architectures massivement parallèles. Il faut dire que chaque triangle ou pixel d'une scène 3D peut être traité indépendamment des autres, ce qui rend le traitement 3D fortement parallèle. De fait, une carte graphique est conçue pour effectuer un maximum de calculs en parallèle, quitte à réduire la puissance pour des calculs séquentiels (ceux qu'effectue un processeur). Les cartes graphiques récentes incorporent toutes les techniques de parallélisme de donnée au niveau matériel : elles ont plusieurs processeurs, ceux-ci sont capables d’exécuter des instructions SIMD (ils ne font que cela, à vrai dire), et j'en passe. L'architecture d'une carte graphique récente est illustrée ci-dessous. On y voit la présence d'un grand nombre de processeurs/cœurs et une hiérarchie mémoire assez étagée avec des mémoires locales en complément de la mémoire vidéo principale.
[[File:NVIDIA GPU Accelerator Block Diagram.png|centre|vignette|upright=2.0|Ce schéma illustre l'architecture d'un GPU en utilisant la terminologie NVIDIA. Comme on le voit, la carte graphique contient plusieurs cœurs de processeur distincts. Chacun d'entre eux contient plusieurs unités de calcul généralistes, appelées processeurs de threads, qui s'occupent de calculs simples (en bleu). D'autres calculs plus complexes sont pris en charge par une unité de calcul spécialisée (en rouge). Ces cœurs sont alimentés en instructions par un processeur de commandes, ici appelé ''Thread Execution Control Unit'', qui répartit les différents shaders sur chaque cœur. Enfin, on voit que chaque cœur a accès à une mémoire locale dédiée, en plus d'une mémoire vidéo partagée entre tous les cœurs.]]
===Un grand nombre de processeurs multicoeurs===
Une carte graphique contient de nombreux processeurs, qui eux-mêmes contiennent plusieurs unités de calcul. Savoir combien de cœurs contient une carte graphique est cependant très compliqué, car la terminologie utilisée par les fabricants de carte graphique est particulièrement confuse. Ce qui est appelé cœur ou processeur dans leur terminologie correspond parfois à une unité de calcul, sans doute histoire de gonfler les chiffres. Dans ce qui va suivre, nous allons utiliser le terme "processeur de shaders" pour désigner les processeurs d'une carte graphique. La raison tient dans la terminologie utilisée en rendu 3D. Les '''shaders''' sont des programmes utilisés en rendu 3D, pour calculer certaines scènes 3D, et notamment pour calculer les ombres (d'où leur nom de ''shader'', pour ''shade'' - ombre). Or, ces shaders sont justement exécutés par la carte graphique, sur les processeurs de shaders. Le terme shader a depuis été élargit et désigne aujourd'hui tout programme qui s’exécute sur une carte graphique.
Notons que ces processeurs sont utilisés pour les calculs graphiques, mais l'on peut aussi les utiliser pour du calcul scientifique ou toute autre application demandant beaucoup de calculs arithmétiques en parallèle. Depuis l'apparition des technologie CUDA et assimilées, les cartes graphiques ne sont plus limitées aux calculs 3D. Si les anciennes cartes graphiques étaient limitées au rendu 3D, elle avaient techniquement des processeurs capables de faire des calculs assez variés et pouvaient être adaptées à des applications très diverses. Mais l'accès au processeurs de shaders se faisait par l'intermédiaire d'un processeur de commande, qui ne comprenait que les commandes graphiques. On pouvait envoyer des scènes 3D à la carte 3D, la faire exécuter des commandes de rendu graphique codées avec un standard bien précis, mais rien d'autre. Mais de nos jours, le processeur de commande s'est complexifié et peut accepter des commande strès diverses, pas seulement des commandes graphiques, mais aussi des commandes de calcul ou des commandes pour exécuter n'importe quel code sur la carte graphique.
===Les processeurs de shaders===
Il a existé des cartes graphiques AMD assez anciennes qui utilisaient des processeurs de type VLIW, mais ce n'est plus en odeur de sainteté de nos jours. Si on omet cette exception, les processeurs de shaders sont tous des processeurs SIMD ou des dérivés (la technique dites du SIMT est une sorte de SIMD amélioré). Notons que le jeu d'instruction SIMD utilisé pour coder les shaders a beaucoup évolué dans le temps. Les normes de Direct X et Open GL décrivent l'ensemble des opérations que la carte graphique doit pouvoir réaliser, et cet ensemble a évolué dans le temps. Les premières versions des shaders n'imposaient que quelques instructions très simples, 17 au total, toutes travaillant sur des nombres flottants. Il n'y avait même pas de branchements ou d'accès mémoire proprement dit. Mais avec le temps, l'ensemble s'est étoffé, chaque nouvelle version de Direct X ajoutant de nouvelles instructions aux précédentes.
Les shaders actuels sont capables d'effectuer des calculs sur des nombres entiers, des branchements, des accès mémoire, des registres de masque, disposent de modes d'adressages typiques des architectures SIMD et même des accès en scatter-gather des architectures vectorielles ! Notons notamment la présence de ''mask register'' et d'accès en scatter-gather typiques des processeurs vectoriels. Pour faire simple, ces processeurs de shaders sont un intermédiaire entre processeurs SIMD et processeurs vectoriels : leur jeu d'instruction est celui d'un processeur vectoriel, avec les modes d'adressages et la prédication, mais ils n'utilisent pas d'unité de calcul en pipeline et préférent utiliser des unités de calcul SIMD.
Les processeurs de shaders modernes sont de plus des processeurs multithréadés, c'est à dire conçus pour exécuter nativement plusieurs ''threads'' en parallèles, comme nous l'avons vu dans le chapitre sur les architectures multithreadées et l'''hyperthreading''. L'intérêt du multithreading sur une carte graphique tient dans la lenteur les accès mémoire. Les accès mémoire sont très lents sur une carte graphique, car les GDDR des cartes graphiques sont conçues pour avoir un débit absolument énorme mais une latence pas terrible. Après tout, il faut faire un compromis entre latence et débit, et le débit est plus important quand on manipule de très grandes quantités de donnée. Pour mitiger l’impact de la latence, les processeurs de shaders utilisent le multithreading : quand un thread attend la mémoire, le processeur en lance un autre pour combler le temps d'attente avec des calculs. Les processeurs de shaders sont capables de gérer nativement plusieurs dizaines, voire centaines de threads simultanément.
La microarchitecture des processeurs de shaders est de plus particulièrement simple. On n'y retrouve pas les fioritures des CPU modernes, tant utiles pour du calcul séquentiel : pas d’exécution dans le désordre, de renommage de registres, et autres techniques avancées. En conséquence, les unités de décodage et/ou de contrôle sont relativement simples, peu complexes. La majeure partie du processeur est dédié aux unités de calcul.
[[File:Cpu-gpu.svg|centre|vignette|upright=2.0|Comparaison entre l'architecture d'un processeur généraliste et d'un processeur de shaders.]]
===La hiérarchie mémoire d'une carte graphique===
La grande quantité de processeurs, cœurs et unités de calcul a des conséquences sur la hiérarchie mémoire, qui doit gérer un grand nombre d'accès mémoire simultanés : qui dit plein d'instructions en parallèle qui travaillent sur des données indépendantes dit aussi plein de données indépendantes à lire ou écrire ! La hiérarchie mémoire d'une carte graphique ressemble à celle-ci, si on omet les très nombreux caches spécialisés pour le rendu 3D et quelques caches généralistes qui se retrouvent un peu partout dans la hiérarchie mémoire.
[[File:Stream processor.png|centre|vignette|upright=2|Stream processor]]
A première vue, les schémas du dessus ne ressemblent à rien de connu. Et pourtant on peut déjà faire quelques remarques assez intéressantes.
====Les caches sur une carte graphique====
Déjà, en théorie, les processeurs de shaders contiennent peu de mémoires caches pour les données, comme pour les processeurs vectoriels. Il faut dire que les processeurs de shaders sont, comme les processeurs vectoriels, conçus pour manipuler des tableaux de données, qui ont une faible localité temporelle : quand on accède à une donnée dans un tableau, il est rare qu'on doive la réutiliser plus tard. Dans ces conditions, utiliser des mémoires caches est contre-productif. Au lieu de chercher à diminuer la latence avec des caches, les processeurs de shaders vont plutôt chercher à masquer cette dernière avec du multithreading matériel.
: Dans les faits, les cartes graphiques récentes disposent de plus en plus de mémoires caches pour les données, mais celles-ci ne sont pas utilisées pour le rendu 3D, mais pour les applications à hautes performance comme pour des calculs d'intelligence artificielle, les calculs scientifiques fortement parallèles et autres.
Mais attention : si les processeurs de shaders se passent souvent de mémoire cache pour les données, ils ont presque systématiquement un cache d'instructions. Après tout, si l'on doit exécuter ces instructions plusieurs fois de suite sur des données différentes, autant éviter de les charger de la mémoire à chaque fois. Pour éviter cela, les suites d'instructions à exécuter sont stockées dans une petite mémoire une bonne fois pour toutes. Il s'agit bel et bien d'une petite mémoire cache.
====Une hiérarchie de bancs de registres====
Les processeurs de flux ont plusieurs bancs de registres : des bancs de registres locaux ('''Local Register File''') directement connectés aux unités de calcul, un banc de registres global ('''Global Register File''') plus gros, lui-même relié à la mémoire. Le banc de registres global sert d'intermédiaire entre la mémoire RAM et les bancs de registres locaux. Il remplace la mémoire cache et resemble beaucoup à une mémoire de type ''local store''. Le processeur dispose d'instructions pour transférer des données entre les bancs de registres, ainsi qu'avec la mémoire. Outre son rôle d'intermédiaire, le banc de registres global sert à transférer des données entre les bancs de registres locaux, où à stocker des données globales utilisées par des Clusters d'ALU différents. Un processeur de flux possède des instructions capables de transférer des données entre le banc de registre global et la mémoire RAM, qui sont capables de faire des accès mémoires en enjambées, en ''Scatter-Gather'', etc.
[[File:Stream processor registers.png|centre|vignette|upright=2|Hiérarchie de registres d'un processeur de flux.]]
On peut se demander pourquoi utiliser plusieurs couches de registres ? Le fait est que les processeurs de flux disposent de plus d'une centaine ou d'un millier d'ALU ! Alimenter ces unités de calcul en opérandes demanderait un banc de registres énorme, lent, et qui chaufferait beaucoup trop. Pour garder un banc de registres rapide et pratique, on est obligé de limiter le nombre d'unités de calcul connectées dessus, ainsi que le nombre de registres contenus dans le banc de registres. La solution est d'utiliser une hiérarchie de registres, similaire à la hiérarchie mémoire d'un ordinateur. Cela garantit que les bancs de registres locaux sont petits et rapides, secondés par un banc de registre global d'appoint, de forte capacité, mais plus lent.
La mémoire RAM d'un processeur de flux est souvent une mémoire multibanques, comme avec les processeurs vectoriels. Elle a souvent un gros débit binaire (pour rappel, le débit binaire d'une mémoire est le nombre de bits qu'elle peut transférer en une seule seconde). Par contre, le temps d'accès est généralement assez mauvais.
<noinclude>
{{NavChapitre | book=Fonctionnement d'un ordinateur
| prev=Architectures distribuées, NUMA et COMA
| prevText=Architectures distribuées, NUMA et COMA
| next=Les architectures parallèles exotiques
| nextText=Les architectures parallèles exotiques
}}
</noinclude>
r387m9cpunwhn52cyki3my7f8oozzhz
Mkd (Extracteur de documents)/La commande mkd avec exercices
0
66870
682377
680633
2022-07-25T10:53:22Z
DavidL
1746
wikitext
text/x-wiki
<!--{{Imprimable}}-->
__NOEDITSECTION__
__NOTOC__
<div style="text-align: center;">
<br />
<br />
<br />
<br />
<span style="font-size:38px;font-weight:bold;">Mkd (Extracteur de documents)</span>
<span style="font-size:12px;">https://fr.wikibooks.org/wiki/Mkd(Extracteur_de_documents) </span>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
[[File:Husky puzzle book.svg|144px]]<br />
</div>
{{Nouvelle page imprimée}}
<br />
<br />
<br />
<br />
{{Notice de version imprimable
|titre=Mkd (Extracteur de documents)
|lien=Mkd (Extracteur de documents)/Version imprimable
|nbpages= 55 (format paysage)
|date=2016-08-25}}
{{Couverture de version imprimable
|titre=mkd, commande UNIX<br />avec exercices
|auteurs=<!--Centre d'électronique et de microélectronique de Montpellier<br-->Éditeurs européens de logiciels libres
}}
{{Nouvelle page imprimée}}
= Introduction =
* mkd est une commande Unix / Linux utilisée dans les fichiers de commande des mises à jour des logiciels, les ''Makefile''.
* Afin de maintenir la documentation à jour en même temps que la compilation d'une nouvelle version d'un logiciel: dès qu'un fichier du projet logiciel est modifié, la documentation doit être revue et mise à jour ''au sein même du fichier modifié''.
* L'utilisation de mkd n'est pas restrictive au ''Makefile''. La commande est utilisable dès qu'un texte est commenté. (Tous les fichiers de programme compilés ou interprétés, et aussi : Latex, Matlab, Postscript, Tex)
* Il existe aussi, en complément, un exécutable pour UNIX / LINUX, ''mkddocu'' qui prend en charge les commandes courantes pour la génération de la documentation logicielle. (Création du projet, génération de la documentation, ...) Lire le manuel de mkddocu qui accompagne les dernières versions de mkd.
* Très simple et très pratique d'utilisation, mkd peut être proposé aux travaux pratiques de l'informatique pour l'étude du ''cycle en V''.
* Des versions sont disponibles pour toutes les versions de MS-Windows, pour Cygwin et Mingw.
{{Nouvelle page imprimée}}
= Sommaire =
<!--{{:Mkd_(Extracteur_de_documents)/Sommaire}}-->
<pre>
Cette version imprimable comprend les chapitres suivants :
Première partie : LA COMMANDE MKD
La commande mkd
Deuxième partie : EXERCICES
Introduction aux exercices
Comprendre les options
Comprendre les fichiers de projets
Codes QR pour pages imprimées
</pre>
<pre>
Les chapitres de MAINTENANCE suivants ne sont pas inclus dans cette version imprimable :
Troisième partie : INTERNATIONALISATIONS
Internationalisation des manuels
Internationalisation des messages
Quatrième partie : CODER, TESTER, INTEGRER, DOCUMENTER
Ajouter des modules
Cinquième partie : CONSTRUCTION D'UN PAQUET DEBIAN
Exercice de Construction d'un Paquet 'debian' pour la maintenance logicielle
Dépôt parrainé debian-ubuntu du paquet original mkd-131215
Sixième partie : CONSTRUCTION D'UN PAQUET RED-HAT
Paquets 'RPM' Red Hat Package Manager
NOTES ET ANNEXES
1.mkd-Manuel (fr)
2.Compilations de wiki-livres
3.QR pour pages imprimées
4.Notes Icônes des fichiers et applications héritées
5.Licences
</pre>
{{Nouvelle page imprimée}}
<div style="text-align: center;">
<br />
<br />
<br />
<br />
<span style="font-size:38px;font-weight:bold;">Mkd (Extracteur de documents)</span>
Première partie :
LA COMMANDE MKD
</div>
{{Nouvelle page imprimée}}
= La commande mkd =
{{:Mkd_(Extracteur_de_documents)/La commande mkd}}
<!--
----------------------------------------------
{{Nouvelle page imprimée}}
= Manuel =
{{:Mkd_(Extracteur_de_documents)/mkd-Manuel_(fr)}}
{{Nouvelle page imprimée}}
<div style="text-align: center;">
<br />
<br />
<br />
<br />
<span style="font-size:38px;font-weight:bold;">Mkd (Extracteur de documents)
Troisième partie :
MAINTENANCE
INTERNATIONALISATIONS</span>
</div>
{{Nouvelle page imprimée}}
{{Nouvelle page imprimée}}
= Manuel =
{{:Mkd_(Extracteur_de_documents)/mkd-Manuel_(fr)}}
{{:Mkd_(Extracteur_de_documents)/Internationalisation_des_manuels}}
{{:Mkd_(Extracteur_de_documents)/Internationalisation_des_messages}}
----------------------------------------------
-->
{{Nouvelle page imprimée}}
<div style="text-align: center;">
<br />
<br />
<br />
<br />
<div style="font-size:38px;font-weight:bold;">Mkd (Extracteur de documents)
Deuxième partie :
EXERCICES</div>
</div>
{{Nouvelle page imprimée}}
= Exercices =
{{:Mkd_(Extracteur_de_documents)/Exercices}}
{{Nouvelle page imprimée}}
= Comprendre les options de la commande mkd =
{{:Mkd_(Extracteur_de_documents)/Comprendre_les_options}}
{{Nouvelle page imprimée}}
= Comprendre les fichiers de projets pour mkd =
{{:Mkd_(Extracteur_de_documents)/Comprendre_les_fichiers_de_projets}}
{{Nouvelle page imprimée}}
= Codes QR des téléchargements =
{{:Mkd_(Extracteur_de_documents)/QR_pour_pages_imprimées}}
<!--
{{Nouvelle page imprimée}}
= Licence de documentation libre GNU =
{{:Licence de documentation libre GNU}}
-->
q7sfsr87y4g3a7m1n799tiosieiuw66
Jeu de rôle sur table — Jouer, créer/Qu'est-ce que le jeu de rôle ?
0
67349
682376
676943
2022-07-25T10:45:33Z
DavidL
1746
Italique mal placé mettant fin prématurément au <span> causant [[Spécial:LintErrors/html5-misnesting]]
wikitext
text/x-wiki
<noinclude>{{NavTitre|book={{BASEPAGENAME}}|next=Bienveillance et contrat ludique}}</noinclude>
Vous vous demandez peut-être « qu’est-ce que le jeu de rôle ? », ou bien vous le savez, mais vous ne savez pas comment l’expliquer, le présenter à d’autres.
Les jeux de rôle sont des jeux simples à jouer, mais compliqués à expliquer. Pour paraphraser [[wikiquote:fr:Augustin d'Hippone#Les_Confessions|saint Augustin]] : {{citation|Qu’est-ce donc que le jeu de rôle ? Si personne ne me le demande, je le sais. Mais si on me le demande et que je veuille l’expliquer, je ne le sais plus.}}
{{citation bloc|1=— On fait souvent des explications du JdR à destination des débutants en s’inquiétant de ce que vont en comprendre les seules personnes à qui ce n’est pas adressé :-)<br />— C’est pour ça qu’on trouve des trucs comme “Le jeu de rôle est un loisir discursif dans lequel les participants interprètent un ou plusieurs personnages dans un espace fictif collectivement élaboré”. Inattaquable, mais horrible.|2=Jérôme « Brand » Larré et Benjamin Kouppi |3=le {{lien web|url=https://www.facebook.com/photo.php?fbid=10219040372934956&set=pb.1074187413.-2207520000..&type=3&theater |titre=3 avril 2020}} sur [[w:Facebook|Facebook]] }}
La manière la plus simple de découvrir le jeu est d’y jouer ou, à défaut, de regarder des parties filmées ''({{lang|en|actual plays}})''. Citons par exemple les chaînes [[w:YouTube|YouTube]] :
* ''Rôle’n Play'' ([[w:Black Book Éditions|Black Book Éditions]])<ref>{{lien web
| url = https://www.youtube.com/watch?v=S9Ngt8OJU1A
| titre = Rôle’n Play épisode 0 : Introduction
| site = YouTube, Rôle’n Play
| date = 2018-09-13 | consulté le = 2020-04-20
}}.</ref> ;
* ''Aventures'' (Mayar Shakeri, [[w:Bazar du Grenier|Bazar du Grenier]])<ref>{{lien web
| url = https://www.youtube.com/watch?v=jixB1pAJMqY
| titre = Aventures #0 — Tutoriel des Jeux de rôle Papier
| site = YouTube, Bazar du Grenier
| date = 2015-04-28 | consulté le = 2020-04-20
}}.</ref> ;
* ''Game of Rôles'' ([[w:FibreTigre|FibreTigre]], [[w:JVTV|JVTV]])<ref>
{{lien web
| url = https://www.youtube.com/watch?v=I1ERfTDHLUI
| titre = Game of Rôles : Le début de nos aventures ! <nowiki>|</nowiki> S01E01
| site = YouTube, JVTV
| date = 2018-02-19 | consulté le = 2020-04-20
}}.
</ref>.
Mais si vous avez besoin d’une définition, soit parce que vous devez expliquer oralement la pratique, soit pour réfléchir à ce qu’est le jeu de rôle, vous pouvez lire ce qui suit.
== Explication par analogie ==
Une première approche consiste à le comparer à d’autre jeux<ref>lire par exemple {{article
| prénom1 = Johan | nom1 = Scipion
| titre = Briefing
| périodique = Sombre
| numéro = 2 | mois = septembre | année = 2012
| éditeur = Terres Etranges | lieu = Vitry-sur-Seine
| isbn = 978-2-9552-9201-3 | issn = 2118-1411
| passage = 29–46
}}</ref> :
* c'est comme les jeux d’enfants « on dirait qu'on serait… » ; mais contrairement à ces jeux spontanés, il y a en général des règles écrites et une personne, appelée « meneur de jeu » (MJ), pour gérer les intervention des joueuses et pour poser un cadre au début (objectif de l'aventure) ;
* pour les personnes jouant à des jeux de société : le jeu de rôle est un jeu de société consistant à vivre une aventure, et dans lequel on « incarne un pion » ; il n’y a ni tablier (« plateau »), ni pion, tout se fait par le dialogue ; un joueur particulier appelé « meneur de jeu » (MJ) décrit le cadre dans lequel évoluent les personnages (le tablier de jeu) ;
* pour les personnes jouant aux jeux vidéo : c’est comme un RPG<ref>''{{lang|en|roleplaying game}}''</ref>, sauf que c’est un joueur qui remplace l’ordinateur ; au lieu d’une image sur un écran, c’est ce joueur particulier, appelé « meneur de jeu » (MJ), qui décrit ce que voient les personnages ;
* pour les personnes connaissant les livres-jeux du type « livre dont ''vous'' êtes le héros » : c’est comme un livre-jeu, sauf que c’est un joueur qui remplace le livre ; ce joueur est appelé « meneur de jeu » (MJ).
On peut aussi le comparer à d’autres médias<ref>voir par exemple :
* {{lien web | url = https://www.youtube.com/watch?t=119&v=KqDu-7DjRoc | titre = Icosaèdre #1 - Définition et Origines du JDR | site = Youtube | date = 3 septembre 2015}}, 4 min 02 s – 4 min 21 s
* {{article
| titre = Ils ont conçu un jeu de rôle fantastique
| périodique = Ouest France
| jour = 16 | mois = avril | année = 2016
| lire en ligne = http://www.ouest-france.fr/pays-de-la-loire/le-mans-72000/ils-ont-concu-un-jeu-de-role-fantastique-4170331
}}</ref> :
* les joueurs incarnent les personnages d’un roman ou d’un film et peuvent en modifier le cours par leurs actions ; les joueurs indiquent ce que font les personnages ; le cadre (décor) et les autres personnages (protagonistes, antagonistes, figurants) sont gérés par un joueur particulier appelé « meneur de jeu » (MJ) ;
* c’est un jeu à la croisée de la veillée-conte et du théâtre d’improvisation ; les joueurs incarnent chacun un personnage qui interagit avec un univers décrit par un conteur, le « meneur de jeu » (MJ) ; par le dialogue, les participants œuvrent ensemble pour créer une histoire, l’aventure que vont vivre les personnages.
Vous noterez que l’on fait référence à des « personnages vivant une aventure » et à un joueur particulier, le « meneur de jeu » (MJ). Nous nous plaçons là dans le cadre des jeux de rôle dits « classiques ». Il existe d’autres manières de jouer, mais dans un premier temps, nous retenons celle-là car c’est la plus courante.
== Explication par l’exemple ==
La manière la plus simple d’expliquer ce qu’est le jeu de rôle est d’y faire jouer. On peut faire jouer une micro-séquence de quelques minutes en proposant aux auditeurs (ou lecteurs) d’imaginer une situation et de répondre à la question : « que faites-vous ? »
{{citation bloc | Imaginons que demain vous vous endormez et vous vous réveillez dans ce qui vous semble être le Moyen Âge. Vous vous apercevez que vous êtes à Paris dans une famille protestante le soir de la Saint-Barthélémy. Vous êtes dans une famille, vous mangez avec eux. Vous entendez que ça tambourine à la porte, il y a vraiment du bruit dehors. Qu’est-ce que vous faites ?
Si vous êtes capables de vous projeter et de vous dire « qu’est-ce que je fais », vous êtes capables de faire du jeu de rôle.
[…] Qui laisserait l’enfant ouvrir la porte ? Levez la main […] Qui empêcherait l’enfant d’ouvrir la porte ?… Et qui ferait autre chose ?
À partir de ce choix qui a l’air tout simple, on va déjà créer plein d’histoires différentes.
[Une différence majeure par rapport au jeu de rôle :] dans cet exemple-là, je vous ai demandé ce que ''vous'' vous feriez. Le principe du jeu de rôle ''a priori'', c’est que ce n’est pas forcément ce que ''vous'' vous feriez mais ce qu’un personnage imaginaire ferait.
| 2 = Jérôme « Brand » Larré
| 3 = Le jeu de rôle, fils illégitime ou prolongement de la littérature de jeunesse ?<ref>{{lien web
| url = https://www.youtube.com/watch?v=f7ThjcEbe90
| titre = Le jeu de rôle, fils illégitime ou prolongement de la littérature de jeunesse ?
| auteur = Jérôme Larré
| site = YouTube
| date = 2015-04-01
}}, de 5 min 38 à 7 min 57 ; Colloque de l’UFR Lettres, Langues, Sciences humaines et des Sociétés </ref>}}
Dans l’idéal, l’exemple doit évoquer des choses aux auditeurs ou lecteurs — ici, le public doit savoir ce qu’est la [[w:Massacre de la Saint-Barthélemy|Saint-Barthélémy]] — tout en étant moralement acceptable — utiliser une actualité récente peut provoquer des réactions de rejet<ref>On parle bien ici de la présentation du jeu ; dans le cadre d’une partie avec des joueurs avertis, il est tout à fait possible d’enfreindre les codes moraux comme le font d’autres œuvres (romans, films, séries télévisées).</ref>. On peut par exemple utiliser un monde imaginaire connu et apprécié du public comme celui de ''La Guerre des étoiles/Star Wars'', du ''Seigneur des anneaux'', du ''Trône de fer/Game of Thrones'', des super-héros Marvel…
D'ailleurs, Brand propose quelques année plus tard un autre exemple :
{{citation bloc |— [Jérôme Larré] Prenez le thème de ''Blockbusters'' que vous préférez, […] les super-héros peut-être ?<br />
— [Frédéric Sigrist] Oui, parfait.<br />
— Dites-moi quel super-héros vous voulez incarner, chez [[w:Marvel Comics|Marvel]] par exemple ?<br />
— [[w:Wolverine|Wolverine]] !<br />
— Wolverine, très bien. Vous êtes Wolverine, vous êtes en train de rentrer chez vous après avoir chassé des méchants, on va faire simple pour des gens qui ne connaissent pas Marvel. Et au moment où vous rentrez chez vous, votre maison a pris feu. Qui vous appelez en premier ?<br />
— Euh… Iceman [NdT : probablement plutôt [[w:Iceberg (comics)|Iceberg]]<nowiki>]</nowiki>. Un membre de mon équipe parce que comme il est en glace, il pourra éteindre le feu plus rapidement que moi.<br />
— Alors voilà, vous avez déjà fait du jeu de rôle, en fait vous venez d'en faire. Vous vous êtes projeté à la place d'un personnage…
|2=Jérôme « Brand » Larré et Frédéric Sigrist
|3=« Donjons et dragons, deux D à jouer ! »<ref>{{lien web
| url=https://www.franceinter.fr/emissions/blockbusters/blockbusters-08-juillet-2020
| titre = Blockbusters : Donjons et dragons, deux D à jouer !
| site = [[w:France Inter|France Inter]]
| date = 2020-07-08 | consulté le = 2020-07-12
}}, de 19 min 43 à 21 min 14.</ref>.
}}
De nombreux jeux de rôle proposent, en guise d’introduction, le récit d'une partie qui permet de voir comment cela de passe autour de la table. On pourra par exemple consulter la plaquette « Le jeu de rôle, qu’est-ce que c’est ? » de la Fédération française du jeu de rôle (FFJdR)<ref>{{lien web | url = http://www.ffjdr.org/ce-devez-savoir-jeu-role/definitions-du-jeu-role/#TelechargerLaPlaquette | titre = Définitions du jeu de rôle.Télécharger la plaquette de présentation « Qu’est-ce que le jeu de rôle » | site = FFJdR | date = 2014-04-08 | consulté le = 2016-1-08}}</ref>, qui contient une bande dessinée explicative<ref>Didier Guiserix, ''Casus Belli''</ref>. Vous pouvez également lire le chapitre « Le jeu de rôle » d’''Oniros''<ref>{{ouvrage
| prénom1 = Denis | nom1 = Gerfaud
| titre = Oniros
| éditeur = Multisim
| mois = novembre | année = 1994
| isbn = 2-909934-14-4
| passage = 20–32
}}</ref>, téléchargeable gratuitement et avec le consentement de l’auteur sur le forum ''Rêves d’ailleurs'', section « Rêve de dragon »<ref>Il faut pour cela s’inscrire sur le forum : {{lien web | url = http://www.reves-d-ailleurs.eu/forum/ouvrages-disponibles-en-telechargement10/oniros-1066.html | titre = Oniros | date = 2015-06-04 | site = Rêves d’ailleurs}}</ref>.
Certain jeux proposent un aventure dont vous êtes le héros, un mini livre-jeu. C'est le cas par exemple du ''Starter Set'' de ''Donjons & Dragons'' 4<sup>e</sup> éd. (2010)<ref>{{ouvrage
| titre=Starter Set | collection=Dungeons & Dragons Essentials
| prénom1=James |nom1=Wyatt |et al.=oui
|lang=en
|éditeur=Wizards of the Coast |lien éditeur=w:Wizards of the Coast
|année=2010
|isbn=978-0-7869-5629-6
}}.</ref> ou de la ''Boîte de base'' de ''L'Appel de Cthulhu'' 7<sup>e</sup> éd. (2019)<ref>{{ouvrage
| titre = L'Appel de Cthulhu | sous-titre = boîte de base
| prénom1=Lynn | nom1=Willis | et al.=oui
| éditeur = Edge Entertainment
| année = 2019
| présentation en ligne = http://www.edgeent.fr/livres/article/lappel_de_cthulhu/lappel_de_cthulhu_boite_de_base
| consulté le=2020-07-12
}}.</ref>
== Définitions ==
=== Jeu de rôle classique ===
Voici quelques définitions, globalement équivalentes, du jeu de rôle dit « classique » :
{{citation bloc | Un jeu de rôle « classique » est un jeu de société [au cours duquel] une poignée de joueurs va se rassembler autour d’une table pour interpréter leurs personnages, dans un univers donné, et dans une intrigue développée par le [meneur de jeu]. Les seules limites du jeu de rôle sont les règles du jeu et l’imagination | | {{lien web | url = https://www.youtube.com/watch?t=119&v=KqDu-7DjRoc | titre = Icosaèdre #1 - Définition et Origines du JDR | site = Youtube | date = 3 septembre 2015}}, 4 min 02 s – 4 min 21 s}}
{{citation bloc | Des joueurs se réunissent autour d’une table pour une période de 3 h à 6 h. Ils créent des personnages qui seront les avatars à travers desquelles ils interagiront avec l’univers imaginaire décrit par le maître du jeu […]. Les participants œuvrent ensemble pour faire avancer le scénario. Le but est de nourrir son esprit d’imagination tout en partageant un bon moment. | Sacha Joubert et Florian Lafosse | Ils ont conçu un jeu de rôle fantastique<ref>{{article
| titre = Ils ont conçu un jeu de rôle fantastique
| périodique = Ouest France
| jour = 16 | mois = avril | année = 2016
| lire en ligne = http://www.ouest-france.fr/pays-de-la-loire/le-mans-72000/ils-ont-concu-un-jeu-de-role-fantastique-4170331
}}</ref>}}
{{citation bloc | Un jeu de rôle (comme ''Donjons & Dragons'') est un jeu de société coopératif combinant des aspects des éléments de jeux de plateau, de théâtre, de narration et de scénarisation. Habituellement, un joueur endosse le rôle de « meneur du jeu », et décrit des situations et événements qui se déroulent dans un monde fictif, où les autres joueurs font évoluer leur personnage en interprétant leurs réactions et en décrivant leurs actions.
C’est de là que vient l’expression « jeu de rôle » : les joueurs jouent un rôle pendant la partie, comme le font des acteurs sur scène — sauf que dans leur cas, ils sont assis autour d’une table et décrivent leurs actions au lieu d’en faire une représentation (comme un acteur le ferait).
Chaque jeu dispose de son propre système de règles, tout comme un jeu de plateau. Ces règles décident d’une grande part de ce qui se produit pendant une partie et servent de canevas à ce qui constitue le cœur du jeu de rôle : la créativité et la capacité des participants à trouver des solutions. | Martin Ralya | 10 raisons qui font que les jeux de rôles ont une influence positive sur les enfants et sur les adulte<ref>{{lien web
| titre = 10 raisons qui font que les jeux de rôles ont une influence positive sur les enfants et sur les adultes
| auteur = Martin Ralya
| url = http://ptgptb.fr/10-raisons-qui-font-que-les-jdr-ont-une-influence-positive
| date = 2009
| site = Ptgptb
}}</ref>}}
La Fédération française de jeux de rôle a adopté la définition suivante :
{{citation bloc | Le jeu de rôle est un jeu de société coopératif. Un joueur particulier, le meneur de jeu, met en scène une aventure dans un cadre imaginaire en s’aidant d’un scénario. Les autres joueurs interprètent les personnages principaux de cette aventure. Le jeu consiste en un dialogue permanent au moyen duquel les joueurs décrivent les actions de leurs personnages. Le meneur de jeu décrit à son tour les effets de ces actions, interprète les personnages secondaires et arbitre la partie en s’appuyant sur des règles. | | Définitions du jeu de rôle<ref>{{lien web
| url = http://www.ffjdr.org/ce-devez-savoir-jeu-role/definitions-du-jeu-role/
| titre = Définitions du jeu de rôle
| site = FFJdR
| date = 2006-04 | consulté le = 2016-05-11
}}</ref>}}
Enfin, citons une définition un peu plus abstraite :
{{citation bloc |un système de création d’histoire ''épisodique'' et ''participatif'', qui comprend un nombre de ''règles'' quantifiées, et qui aide un groupe de ''joueurs'' et un ''meneur de jeu'' à déterminer comment sont résolues les interactions spontanées de leurs ''personnages'' fictifs. | D. MacKay | The Fantasy Role-Playing Game<ref>« {{lang|en|''an ''episodic'' and ''participatory'' story-creation system that includes a set of quantified ''rules'' that assist a group of ''players'' and a ''gamemaster'' in determining how their fictional ''characters''’ spontaneous interactions are resolved''}} » ; {{ouvrage
| nom1 = MacKay | prénom1 = D.
| année = 2001
| titre = The Fantasy Role-Playing Game
| lieu = London | éditeur = McFarland & Company
}}</ref>}}
Les exemples les plus connus disponibles en français sont :
* pour les univers médiévaux merveilleux (ou médiévaux-fantastiques, « medfan »), c’est-à-dire avec une technologie moyenâgeuse et faisant intervenir la magie et des animaux fantastiques :
** ''Donjons & Dragons ({{lang|en|Dungeons & Dragons}})'' : premier jeu de rôle, créé en 1974, sa cinquième édition est sortie en français en 2017 chez l’éditeur Black Book Édition<ref>{{lien web
| url = http://www.black-book-editions.fr/catalogue.php?id=436
| titre = Dungeons & Dragons 5
| site = Black Book Éditions
| consulté le = 2017-06-20
}}</ref> puis chez Asmodee à partir de 2019<ref>{{lien web
| url=https://shop.novalisgames.com/2020_dd_vf/
| titre = Dungeons & Dragons : version française
| site=Novalis
| consulté le=2020-07-12
}}.</ref>,
**: des jeux sont dérivés de ce « grand ancêtre » et proposent des boîtes d’initiation : ''Pathfinder'' et ''Chroniques Oubliées Fantasy'', tous deux édités par Black Book Édition,
** ''Tunnels & Trolls'' : sorti en 1975, sa version 8 est disponible en français au format électronique et en impression à le demande chez l’éditeur Grimtooth<ref>http://tunnels-et-trolls.eu/
</ref>,
** ''RuneQuest'' : sorti en 1978, sa version 4 appelée ''RuneQuest II'' est parue en français 2010 chez l’éditeur Mongoose Publishing,
** ''Rêve de dragon'' : sorti en 1985, sa version 2 est en cours de réédition en 2017 chez l’éditeur Sciptarium<ref>{{lien web
| url = http://scriptarium.fr/reve-de-dragon/
| titre = Rêve de dragon
| site = Scriptarium
| consulté le = 2017-06-20
}}</ref>,
** ''Dragon de poche'' : sorti en 2013, sa version 2 est distribué en format électronique et en impression à la demande chez l’éditeur Chibi<ref>{{lien web
| url = http://legrumph.org/Terrier/?Chibi/Dragon-de-poche%C2%B2
| titre = Dragon de poche²
| site = Le Terrier du Grümph
| consulté le = 2017-06-20
}}</ref> ;
* pour la science-fiction « dans l’espace » :
** ''Traveller'' : créé en 1977, la sixième version est publiée en français en 2010 par Mongoose Publishing
** ''Star Wars'' : la première adaptation de cet univers date de 1987, la dernière version en date se décline en trois jeux, édités en français par Edge Entertainment depuis 2014 : ''Aux Confins de l'Empire'', ''L'Ére de la Rébellion'' et ''Force et Destinée''<ref>http://www.edgeent.com/</ref>, il existe sous forme de boîtes d'initiation,
** ''Eclipse Phase'' : créé en 2009 et publié en français depuis 2013 par Black Book Édition<ref>{{lien web
| url = http://www.black-book-editions.fr/catalogue.php?id=34
| titre = Eclipse Phase
| site = Black Book Éditions
| consulté le = 2017-06-20
}}</ref>,
* pour du cyberpunk
** ''nanoChrome²'' : il est distribué en format électronique et en impression à la demande chez l'éditeur Chibi<ref>{{lien web
| url = http://legrumph.org/Terrier/?Chibi/nanoChrome%C2%B2
| titre = nanoChrome²
| site = Le Terrier du Grümph
| consulté le = 2017-09-25
}}</ref> ;
=== Jeu de rôle en général ===
Les définitions précédentes font référence à un joueur particulier, appelé « meneur de jeu » (MJ), qui a une responsabilité particulière : celle de préparer un cadre et une intrigue pour la partie — le « scénario » —, de décrire l’univers imaginaire et de « mettre en scène » l’aventure. Il existe d’autres manières de jouer :
* le cadre du jeu, le monde imaginaire, peut être développé par tous les joueurs et non pas fixé par le seul MJ ;
* les éléments de l’intrigue peuvent eux aussi être développés par tous les joueurs ou bien être déterminés au hasard ;
* le rôle de metteur en scène peut être tournant, c’est-à-dire affecté à un joueur différent à chaque scène, ou bien il peut être distribué, c’est-à-dire que chaque joueur a la responsabilité d’une partie de la mise en scène.
Initialement vu comme « les jeux descendant de ''Donjons & Dragons'' » (jeux avec un meneur de jeu, des éléments de cadre préécrits et des règles cadrant la réussite ou l'échec des actions des personnages), le jeu de rôle est en général vu depuis les années 2010 comme un continuum, un ensemble de pratiques aux contours plus ou moins net. Ce continuum englobe des pratiques informelles ''({{lang|en|freeform}})'' comme les jeux spontanés d'enfants « on dirait que… », des jeux de société très cadrés comme ''[[w:Les Loups-garous de Thiercelieux|Les Loups-garous de Thiercelieux]]'', des jeux prenant fortement en compte la réalité autour des joueuses comme les jeux de rôle grandeur nature (ou semi-réels), des jeux sur table mais sans meneur de jeu, des jeux en solo<ref>{{lien web
| url = https://www.twitch.tv/videos/583042653?filter=all&sort=time
| titre = Introduction au jeu de rôle en solitaire
| site = CyberConv sur Twitch
| date = 2020-04-04 | consulté le = 2020-04-16
}}.</ref>{{,}}<ref>{{lien web
| url = http://www.onirarts.com/solo/
| titre = Le Petit Guide du jeu de rôle en solo
| auteur = Pierre Gavard-Colenny
| date = 2020 | consulté le = 2020-04-24
| site = OnirArts
}}</ref>…
Le jeu de rôle peut donc se définir de manière plus générale.
Romaric Briand<ref>philosophe et créateur du jeu de rôle ''Sens hexalogie'' (autoédition, 2007)</ref> propose<ref>{{harvsp|Briand|2014|p=239-282}}</ref> :
{{citation bloc | le jeu de rôle est un jeu de société dont les règles visent à l’institution d’un ''maelström'' lors de ses parties, c’est-à-dire à l’organisation d’une réflexion collective sur des situations en vue d’élaborer d’innombrables ''propositions'' au sujet du ''contenu fictionnel malléable'' de la partie. | Romaric Briand | {{lien web
| url = https://www.youtube.com/watch?v=V1EsGLNEldc
| titre = Ludinord 2015 — Conférence sur le jeu de rôle
| date = 28 mars 2015
| site = Youtube
}} }}
L’auteur entend, par :
* ''proposition'' : au sens de la [[philosophie analytique]], une proposition est un énoncé doué de sens et qui amène à imaginer une situation ;
* ''contenu fictionnel malléable'' : une fiction est une histoire imaginaire, mais qui est finie, statique, et qui est identique pour tous même si elle est ensuite interprétée par le récepteur (lecteur, auditeur, spectateur) ; dans le cas d’une partie de jeu de rôle, chaque joueur a son propre contenu en tête — parce qu’il a été inattentif et n’a donc pas tout entendu, parce qu’un énoncé ne lui évoque pas la même chose qu’à son voisin, parce qu’un sous-groupe s’est isolé pendant un instant pour construire sa propre histoire de son côté —, il y a donc autant de fictions qu’il y a de joueurs ; Romaric Briand préfère donc parler de ''contenu fictionnel'', et il est ''malléable'' puisqu’il évolue au cours de la partie et que l’on peut revenir en arrière, c’est-à-dire décider ''a posteriori'' de changer un élément qui avait été considéré comme acquis ; ce dernier point le distingue des jeux d’enfants<ref>Romaric Briand, {{lien web
| url = https://www.youtube.com/watch?v=VKvcQNLk9yA
| titre = Le Jeu de Rôle Papier, analyse des spécificités de cette famille de jeu
| site = YouTube
| date = 2014-05
}} (3 min 49-6 min 01), Stunfest (Rennes), mai 2014.</ref> ;
* ''maelström'' : le terme désigne un procédé de réflexion collective, chacun faisant des ''propositions'' pour créer un contenu accepté par tous ; lors d’une partie, les joueurs imaginent des situations qui vont amener à en créer d’autres, donc ces situations sont problématiques ; à partir d’une situation, chaque joueur va imaginer ce qui peut se passer après, ce que Romaric Briand appelle le ''brainstorm'', et le ''maelström'' est l’ensemble des ''brainstorms'' créés par une situation problématique.
== Bibliographie ==
* {{Ouvrage
| libellé = Briand 2014
| prénom1 = Romaric | nom1 = Briand
| titre = Le Maelstrom | sous-titre = articles et entretiens 2006-2014
| éditeur = autoédité
| lieu = Saint-Malo
| année = 2014
| pages totales = 302
| format =
| isbn = 978-2-9536333-6-8
| présentation en ligne = http://leblogdesens.blogspot.co.uk/2014/11/le-maelstrom-est-sorti.html
}}
== Notes ==
{{références}}
----
''[[Jeu de rôle sur table — Jouer, créer|Introduction]]'' < [[Jeu de rôle sur table — Jouer, créer|↑]] > ''[[../Bienveillance et contrat ludique/]]''
[[Catégorie:Jeu de rôle sur table — Jouer, créer (livre)|Qu'est-ce que le jeu de role]]
nv5p28s26v19xol1sojzg96budylvy3
Utilisateur:Goelette Cardabela/Lecture et impression des livres de Wikilivres/Couverture complète
2
72263
682386
606797
2022-07-25T11:07:20Z
DavidL
1746
[[Spécial:LintErrors/html5-misnesting]] div au lieu de span pour les blocs
wikitext
text/x-wiki
<div class="noprint">
{{orange| La couverture doit être imprimée sur du papier Pollen de Clairefontaine, A4, 120 gr, couleur ivoire irisé REF 24303.<br />
Les gardes blanches sont en papier Pollen, A4 120 gr, blanc, REF 4239C.<br />
La couverture est configurée pour être imprimée à l''''échelle 105%''', marges de 15 mmm. <br />
L'option d'impression du fond et des images de fond est à invalider dans les paramètres de l'imprimante pour une écriture plus sombre.<br />
Ces pages ne doivent pas être numérotées.<br />
---- |div}}
</div>
{{Couverture complète d'un livret de la goélette Cardabela
|éditeur=Goélette Cardabela
|titre=Lecture et impression des livres de Wikilivres
|sous-titre=Lecture, impression, reliure
|image de couverture=Couvrir_un_livre_relié_09.jpg
|texte de la quatrième='''Ce livret permet aux lecteurs de mieux saisir le fonctionnement de Wikilivres, ce que l'on peut en attendre à la lecture, à l'impression, et à l'édition, pour les livres déjà mis en page.'''
Pour écrire un wikilivre à la fois lisible à l'écran et imprimable, il faut que la présentation des images, la taille des caractères soient adaptées dans toutes les versions : pour écran, imprimable, PDF, compilée. Il faut jongler avec des dispositifs de compensation notamment pour les livres imprimés par en version compilée pour PediaPress''<ref>https://fr.wikipedia.org/wiki/Aide:Livres#Livres_imprimés_de_PediaPress</ref>.<br />L'écriture d'un wikilivre n'est pas présenté dans ce document. Il est recommandé de lire la page [[wikilivres]]<ref>https://fr.wikibooks.org/wiki/Wikilivres</ref>
<references />
{{Remarqueampoule|Il peut être difficile de comprendre les chapitres de ce livret si on ne dispose pas d'un microordinateur connecté à Wikilivres.}}
}}
[[Catégorie:Goélette Cardabela (livre)|{{SUBPAGENAME}}]]
e9cu10shyu1kwvjyby6sxok4v6g8asb
Mkd (Extracteur de documents)/Version imprimable/Annexe
0
73221
682385
681274
2022-07-25T11:06:30Z
DavidL
1746
[[Spécial:LintErrors/html5-misnesting]] div au lieu de span pour les blocs
wikitext
text/x-wiki
----
{{En travaux}}
<div class="noprint">{{Orange|Cette page doit permettre de créer de la sous page Annexe d'un '''''livre'''''.
Créer le fichier « Annexe » doit ''normalement'' s'effectuer avec un fichier de commandes [[w:Shell_Unix|shell]], [[w:Bourne-Again shell|bash]] pour unix et linux, [[DOS|batch]] ou [[w:Windows_PowerShell|PowerShell]] pour windows.
l'extraction des blocs /* ... */ du fichier « SCLTI » s'effectue avec le logiciel [[Mkd_(Extracteur_de_documents)]]
Les références des fichiers de commandes seront publiées après à la fin des essais au cas où le compilateur resterait en reconstruction trop longtemps.< br />
Toutefois, en cas de difficultés pour installer ces logiciels, il est possible d'arriver au même résultat par ''copier/coller''.
|div}}
{{Rouge|Éditer et copier le code de cette page et procéder à la création de la page '''''Nom_du_livre''/Annexe''' ou '''''Nom_du_livre''/Version_imprimable/Annexe'''. <br />Ne vous souciez pas du contenu prévisualisé de cette page ''Canevas_SCLTI''). <br />''Nom du livre'' doit être la page de base <nowiki>{{BASEPAGENAME}}</nowiki> du livre.<br />Si la page de base est la version imprimable ''Nom du livre'' doit faire référence à <nowiki>{{ROOTPAGENAME}}</nowiki>|div}}<br />
{{Orange|Pour faciliter le remplacement du nom des articles il est possible d'utiliser un éditeur de texte.<br />Comparez avec la page [[Goélette Cardabela/Références/Annexe|Références/Annexe]]|div}}
</div>
{{En cours}}
= Annexe =
{{Nouvelle page imprimée}}
== Sources et contributeurs des articles ==
'''''Source de cette édition : '''''<br />https://fr.wikibooks.org/wiki/Mkd_(Extracteur_de_documents)/Version_imprimable,
''Licence : ''Creative Commons Attribution-Share Alike 3.0,
''Contributeurs : ''Goelette Cardabela
'''''Sources des articles :''''' <br />
<div class="noprint">
<noinclude>{{Orange|Partie destinée à la création du fichier SCLTI. Le '''Nom du premier article''' est la première ligne, etc.<br />}}
{{#ifexist:{{ROOTPAGENAME}}/Sommaire|
{{:{{ROOTPAGENAME}}/Sommaire}}|
{{Rouge|La page {{ROOTPAGENAME}}/Sommaire n'est pas trouvée.}}
}}</noinclude></div>
; LA COMMANDE ET LES EXERCICES :
'''''Article : ''La commande mkd'''<br />
''Source : '' https://fr.wikibooks.org/wiki/Mkd_(Extracteur_de_documents)/La_commande_mkd,
''Licence : ''Creative Commons Attribution-Share Alike 3.0,
''Contributeurs : ''Goelette Cardabela,
''Page : ''6.
'''''Article : ''Introduction aux exercices'''<br />
''Source : ''https://fr.wikibooks.org/wiki/Mkd_(Extracteur_de_documents)/Introduction_aux_exercices,
''Licence : ''Creative Commons Attribution-Share Alike 3.0,
''Contributeurs : ''Goelette Cardabela,
''Page : ''17. */
'''''Article : ''Comprendre les options'''<br />
''Source : ''https://fr.wikibooks.org/wiki/Mkd_(Extracteur_de_documents)/Comprendre_les_options,
''Licence : ''Creative Commons Attribution-Share Alike 3.0,
''Contributeurs : ''Goelette Cardabela, ''Page : ''{{Vert|Numéro de page dans l'article}}.
'''''Article : ''Comprendre les fichiers de projets'''<br />
''Source : ''https://fr.wikibooks.org/wiki/Mkd_(Extracteur_de_documents)/Comprendre_les_fichiers_de_projets,
''Licence : ''Creative Commons Attribution-Share Alike 3.0,
''Contributeurs : ''Goelette Cardabela,
''Page : ''{{Vert|Numéro de page dans l'article}}.
; MAINTENANCES, MISES À JOUR, ÉVOLUTIONS :
'''''Article : ''Internationalisation des manuels'''<br />
''Source : ''https://fr.wikibooks.org/wiki/Mkd_(Extracteur_de_documents)/Internationalisation_des_manuels
''Licence : ''Creative Commons Attribution-Share Alike 3.0,
''Contributeurs : ''Goelette Cardabela,
''Page : ''{{Vert|Numéro de page dans l'article}}.
'''''Article : ''Internationalisation des messages'''<br />
''Source : ''https://fr.wikibooks.org/wiki/Mkd_(Extracteur_de_documents)/Internationalisation_des_messages
''Licence : ''Creative Commons Attribution-Share Alike 3.0,
''Contributeurs : ''Goelette Cardabela,
''Page : ''{{Vert|Numéro de page dans l'article}}.
{{Orange|La suite est à faire ...}}
{{Nouvelle page imprimée}}
== Source des images, licences et contributeurs ==
'''{{BASEPAGENAME}}/<Nom du premier article>'''<br />
''Article : ''{{canonicalurl:{{BASEPAGENAME}}/<Nom du premier article>}},<br />
/*4
''Article : ''{{Vert|Copier le lien ci-dessus.}} */
/*4
'''Image 1 : {{Vert|Titre}}''',
''Source : ''{{Vert|Lien}},
''Licence : ''{{Vert|Licence}},
''Contributeurs : ''{{Vert|Liste}},
''Page : ''{{Vert|Numéro de la page où se trouve l'image}}. */
/*4
'''Image 2 : {{Vert|Titre}}''', ''Source : ''{{Vert|Lien}}, ''Licence : ''{{Vert|Licence}}, ''Contributeurs : ''{{Vert|Liste}}, ''Page : ''{{Vert|Numéro de la page où se trouve l'image}} */
'''{{BASEPAGENAME}}/<Nom du deuxième article>'''<br />
''Article : ''{{canonicalurl:{{BASEPAGENAME}}/<Nom du deuxième article>}},<br />
/*4
''Article : ''{{Vert|Copier le lien ci-dessus.}} */
/*4
'''Image 1 : {{Vert|Titre}}''',
''Source : ''{{Vert|Lien}},
''Licence : ''{{Vert|Licence}},
''Contributeurs : ''{{Vert|Liste}},
''Page : ''{{Vert|Numéro de la page où se trouve l'image}}. */
/*4
'''Image 2 : {{Vert|Titre}}''', ''Source : ''{{Vert|Lien}}, ''Licence : ''{{Vert|Licence}}, ''Contributeurs : ''{{Vert|Liste}}, ''Page : ''{{Vert|Numéro de la page où se trouve l'image}} */
'''{{BASEPAGENAME}}/<Nom du troisième article>'''<br />
''Article : ''{{canonicalurl:{{BASEPAGENAME}}/<Nom du troisième article>}},<br />
/*4
''Article : ''{{Vert|Copier le lien ci-dessus.}} */
/*4
'''Image 1 : {{Vert|Titre}}''',
''Source : ''{{Vert|Lien}},
''Licence : ''{{Vert|Licence}},
''Contributeurs : ''{{Vert|Liste}},
''Page : ''{{Vert|Numéro de la page où se trouve l'image}}. */
/*4
'''Image 2 : {{Vert|Titre}}''', ''Source : ''{{Vert|Lien}}, ''Licence : ''{{Vert|Licence}}, ''Contributeurs : ''{{Vert|Liste}}, ''Page : ''{{Vert|Numéro de la page où se trouve l'image}} */
… etc.
{{Nouvelle page imprimée}}
== Licence ==
'''''Wiki-Livre : ''Mkd (Extracteur de documents)'''<br />
''Source : ''https://fr.wikibooks.org/wiki/Mkd_(Extracteur_de_documents),
''Licence : ''Creative Commons Attribution-Share Alike 3.0,
''Contributeurs : ''Goelette Cardabela,
{{Nouvelle page imprimée}}
= Index =
<small>''La numérotation des pages correspond à une impression sur l'imprimante PDF24PDF format portrait, fond de page (couleurs et images), échelle adaptée à la page, marges : 12,7mm.''</small>
<strong><pre>
LA COMMANDE ET LES EXERCICES (Version imprimable) (Version pdf) 08/2016
Première partie : DESCRIPTION Page 5
La commande mkd page 6
Deuxième partie : EXERCICES Page 16
Introduction aux exercices
Comprendre les options
Comprendre les fichiers de projets
MAINTENANCES, MISES À JOUR, ÉVOLUTIONS
Troisième partie : INTERNATIONALISATIONS
Internationalisation des manuels
Internationalisation des messages
Quatrième partie : CODER, TESTER, INTEGRER, DOCUMENTER
Ajouter des modules
Cinquième partie : CONSTRUCTION D'UN PAQUET DEBIAN
Exercice de Construction d'un Paquet 'debian' pour la maintenance logicielle
Dépôt parrainé debian-ubuntu du paquet original mkd-131215
Mkd (Extracteur de documents)/Dépôt parrainé du paquet ''original'' mkd-131215/Mise à jour de paquets
Sixième partie : CONSTRUCTION D'UN PAQUET RED-HAT
Paquets 'RPM' Red Hat Package Manager
NOTES ET ANNEXES
Notes
Icônes des fichiers et applications héritées
Annexes
mkd-Manuel (fr)
mkddocu-Manuel (fr)
Compilations de wiki-livres
QR pour pages imprimées
Licences
</pre></strong>
{{AutoCat}}
7uvffi88yfkucg553rheouaopqj4l9w
Programmation PHP/Cache
0
73601
682327
682119
2022-07-24T13:22:23Z
JackPotte
5426
/* APCu */
wikitext
text/x-wiki
<noinclude>{{PHP}}</noinclude>
La {{w|mémoire cache}} stocke des données calculées afin de pouvoir y ré-accéder sans les recalculer, donc plus rapidement.
== Classification ==
Il existe plusieurs systèmes de cache en PHP pour accélérer l'exécution du code rappelé<ref>http://www.php-cache.com/en/latest/</ref> :
{| class="wikitable sortable"
! Nom !! Données stockées !! Flush
|-
| Cache d'instance || Objet PHP. Ex :<syntaxhighlight lang=php>
if (null === $x) {
$x = 1;
}</syntaxhighlight> || Relancer le script (ex : rafraichir la page Web).
|-
| Cache de session || Objet PHP<ref>https://www.php.net/manual/fr/session.security.php</ref> || Vider les cookies du navigateur.
|-
| {{w|List_of_PHP_accelerators#Zend_Opcache_.28ex._Zend_Optimizer.2B.29|lang=en|OPcache}} || {{wt|opcode|Opcode}}<ref>https://www.php.net/manual/fr/intro.opcache.php</ref> || opcache_reset();
|-
| {{w|Alternative PHP Cache|APCu}} || Variables utilisateurs dans la RAM<ref>https://www.php.net/manual/fr/intro.apcu.php</ref> || apcu_clear_cache();
|-
| Cache du navigateur || Rendering || CTRL + F5
|-
| {{w|Edge Side Includes|ESI}} || Partie de pages Web || Dépend du {{w|Réseau de diffusion de contenu|CDN}} ou {{w|proxy}} utilisé
|-
| Cache de framework || Configuration, traductions || Exemple de [[Programmation PHP/Symfony|Symfony]] : <code>php bin/console cache:clear</code> vide les fichiers temporaires de var/cache.
|-
| Proxy || Page web entière || Exemples, voir {{w|Varnish}}, {{w|HAProxy|lang=en}}
|-
| Base de données {{w|NoSQL}} || Paire clé-valeur || Voir les pages [[Programmation PHP/Memcached|Memcached]] et [[Programmation PHP/Redis|Redis]] ci-après.
|-
| Cache d'{{wt|ORM}} || Annotations, requêtes SQL ou leurs résultats || Exemple de [[Programmation PHP/Doctrine|Doctrine]] :
<syntaxhighlight lang=shell>
php bin/console doctrine:cache:clear-metadata
php bin/console doctrine:cache:clear-query
php bin/console doctrine:cache:clear-result
</syntaxhighlight>
ou :
<syntaxhighlight lang=shell>
bin/console cache:pool:clear doctrine.query_cache_pool doctrine.result_cache_pool doctrine.system_cache_pool
</syntaxhighlight>
ou en PHP :
<syntaxhighlight lang=php>
$qb = $entityManager->createQuery();
$cacheDriver = $qb->getResultCacheDriver();
$cacheDriver->delete('ma_cle_de_cache');
</syntaxhighlight>
|-
| Chain cache || Tout || Utiliser les flushs de chaque cache inclus dans la chaine.
|}
Les dépendances des caches gérés en PHP se doivent de respecter la norme PSR6<ref>https://www.php-fig.org/psr/psr-6/</ref>, c'est-à-dire de fournir les méthodes de manipulation du cache suivantes :
* hasItem
* getItem
* deleteItem
* clear
* save
Normalement chaque item a une durée de rétention (lifetime) avant renouvellement, ce qui évite de chercher à tout invalider régulièrement. Voici les opérations sur les items :
* getKey
* get (valeur)
* isHit (est utilisable)
* set (valeur)
* expiresAt
* expiresAfter
== Installation ==
=== OPcache ===
Dans Docker :
<syntaxhighlight lang=bash>
RUN docker-php-ext-install opcache
</syntaxhighlight>
=== APCu ===
<syntaxhighlight lang=bash>
RUN pecl install apcu \
&& docker-php-ext-enable apcu --ini-name 10-docker-php-ext-apcu.ini \
&& docker-php-ext-enable apc --ini-name 20-docker-php-ext-apc.ini \
&& docker-php-ext-enable apc --ini-name 20-docker-php-ext-apc.ini
</syntaxhighlight>
{{remarque|Sur PHP < 8.0, ajouter après la première ligne : <code>&& pecl install apcu_bc \</code>}}
== Références ==
{{Références}}
l0mffiwj3atrvn76l53xbmx0o2ffo8k
Hélices de navires à déplacement/Version imprimable/Annexe et index
0
73671
682388
624639
2022-07-25T11:07:45Z
DavidL
1746
[[Spécial:LintErrors/html5-misnesting]] div au lieu de span pour les blocs
wikitext
text/x-wiki
<noinclude>
<div class="noprint">
----
<!--{{En travaux}}--> </div>
<div class="noprint">
;Hélices_de_navires_à_déplacement/Version_imprimable/Annexe_et_index : Version mise à jour le 30/11/2019
{{Orange|Cette page doit permettre de créer ou mettre à jour de les sous-pages « Annexe » et « Index » d'un '''''wiki-livre'''''.<br>
Créer le fichier « Annexe » peut s'effectuer avec un fichier de commandes [[w:Shell_Unix|shell]], [[w:Bourne-Again shell|bash]] pour unix et linux, [[DOS|batch]] ou [[w:Windows_PowerShell|PowerShell]] pour windows.
l'extraction des blocs /* ... */ du fichier « SCLTI » s'effectue avec le logiciel [[Mkd_(Extracteur_de_documents)]], toutefois, en cas de difficultés pour installer ces logiciels, il est possible d'arriver au même résultat par des ''copier/coller''.
|div}}</div>
<div class="noprint">
# Éditer et copier en mémoire le code de cette page {{bleu|(cliquer sur Modifier le wikicode)}}
# Procéder à la création de la page {{FULLPAGENAME}}/Annexe_et_index.<br />{{bleu|« {{FULLPAGENAME}} » doit être la page de base du livre.}}
# Coller la copie mémorisée dans la page « {{FULLPAGENAME}}/Annexe_et_index » créée.
{{Orange|Pour faciliter le remplacement du nom des articles il est possible d'utiliser un éditeur de texte et de procéder par ''copier/coller''.<br />Comparez avec la page [[Goélette Cardabela/Références/Annexe|Références/Annexe]]}}
</div>
</noinclude>
= Annexe =
== Références ==
<references />
<!--noinclude>{{Orange|<br />Partie réservée à l'extracteur de documents.<br />}}
/*1
{{Vert|Prévisualiser, copier les références ci-dessus, les coller ici (remplacer ce texte vert).}}*/</noinclude-->
{{Nouvelle page imprimée}}
== Sources et contributeurs de l'article ==
<div style="font-size:12px;line-height:18px;">
'''''Source de cette édition :'''''<br /></div><div style="font-size:8px;line-height:8px;">https://fr.wikibooks.org/Hélices_de_navires_à_déplacement/Version_imprimable, Date d'édition : 2019-11-24-16:27 (GMT)</div>
<noinclude>
<div style="font-size:12px;line-height:18px;">'''''Sources des articles :''''' <br />
<div style="font-size:8px;line-height:8px;">
Rappels
Comprendre
Feuille de calculs
Examen des résultats
Résultats à des vitesses caractéristiques
Graphiques des puissances aux vitesses caractéristiques
Graphiques des forces aux vitesses caractéristiques
Expérimentation en mer
Commentaires sur l'expérimentation et prospectives
Conclusions
Télécharger les feuilles de calculs
Compilations wikilivres
</div>
</noinclude>
<div style="font-size:8px;line-height:8px;">
'''''Article : ''Rappels''', ''Source : ''https://fr.wikibooks.org/wiki/Hélices_de_navires_à_déplacement/Rappels, ''Licence : ''Creative Commons Attribution-Share Alike 4.0, ''Contributeurs : ''Goelette Cardabela, JackPotte. ''Page : ''
'''''Article : ''Comprendre''', ''Source : ''https://fr.wikibooks.org/wiki/Hélices_de_navires_à_déplacement/Comprendre, ''Licence : ''Creative Commons Attribution-Share Alike 4.0, ''Contributeurs : ''Goelette Cardabela, JackPotte. ''Page : ''
'''''Article : ''Feuille de calculs''', ''Source : ''https://fr.wikibooks.org/wiki/Hélices_de_navires_à_déplacement/Feuille_de_calculs, ''Licence : ''Creative Commons Attribution-Share Alike 4.0, ''Contributeurs : ''Goelette Cardabela, JackPotte. ''Page : ''
'''''Article : ''Examen des résultats''', ''Source : ''https://fr.wikibooks.org/wiki/Hélices_de_navires_à_déplacement/Examen_des_résultats, ''Licence : ''Creative Commons Attribution-Share Alike 4.0, ''Contributeurs : ''Goelette Cardabela, JackPotte. ''Page : ''
'''''Article : ''Résultats à des vitesses caractéristiques''', ''Source : ''https://fr.wikibooks.org/wiki/Hélices_de_navires_à_déplacement/Résultats_à_des_vitesses_caractéristiques, ''Licence : ''Creative Commons Attribution-Share Alike 4.0, ''Contributeurs : ''Goelette Cardabela, JackPotte. ''Page : ''
'''''Article : ''Graphiques des puissances aux vitesses caractéristiques''', ''Source : ''https://fr.wikibooks.org/wiki/Hélices_de_navires_à_déplacement/Graphiques_des_puissances_aux_vitesses_caractéristiques, ''Licence : ''Creative Commons Attribution-Share Alike 4.0, ''Contributeurs : ''Goelette Cardabela, JackPotte. ''Page : ''
'''''Article : ''Graphiques des forces aux vitesses caractéristiques''', ''Source : ''https://fr.wikibooks.org/wiki/Hélices_de_navires_à_déplacement/Graphiques_des_forces_aux_vitesses_caractéristiques, ''Licence : ''Creative Commons Attribution-Share Alike 4.0, ''Contributeurs : ''Goelette Cardabela, Ggal, JackPotte. ''Page : ''
'''''Article : ''Expérimentation en mer''', ''Source : ''https://fr.wikibooks.org/wiki/Hélices_de_navires_à_déplacement/Expérimentation_en_mer, ''Licence : ''Creative Commons Attribution-Share Alike 4.0, ''Contributeurs : ''Goelette Cardabela, JackPotte. ''Page : ''
'''''Article : ''Commentaires sur l'expérimentation et prospectives''', ''Source : ''https://fr.wikibooks.org/wiki/Hélices_de_navires_à_déplacement/Commentaires_sur_l'expérimentation_et_prospectives, ''Licence : ''Creative Commons Attribution-Share Alike 4.0, ''Contributeurs : ''Goelette Cardabela, JackPotte. ''Page : ''
'''''Article : ''Conclusions''', ''Source : ''https://fr.wikibooks.org/wiki/Hélices_de_navires_à_déplacement/Conclusions, ''Licence : ''Creative Commons Attribution-Share Alike 4.0, ''Contributeurs : ''Goelette Cardabela, JackPotte. ''Page : ''
'''''Article : ''Télécharger les feuilles de calculs''', ''Source : ''https://fr.wikibooks.org/wiki/Hélices_de_navires_à_déplacement/Télécharger_les_feuilles_de_calculs, ''Licence : ''Creative Commons Attribution-Share Alike 4.0, ''Contributeurs : ''Goelette Cardabela, JackPotte. ''Page : ''
'''''Article : ''Compilations wikilivres''', ''Source : ''https://fr.wikibooks.org/wiki/Hélices_de_navires_à_déplacement/Compilations wikilivres, ''Licence : ''Creative Commons Attribution-Share Alike 4.0, ''Contributeurs : ''Goelette Cardabela, JackPotte. ''Page : ''
</div>
{{Nouvelle page imprimée}}
== Source des images, licences et contributeurs ==
<div style="font-size:8px;line-height:8px;">
; '''''Article : ''Couverture'''
: '''''Image : ''Hélice de navire à déplacement.JPG''', ''Source : ''https://commons.wikimedia.org/wiki/File:Hélice_de_navire_à_déplacement.JPG, ''Licence : ''Jean Paul LOUYOT [CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0)], ''Contributeurs : ''Goelette Cardabela. ''Page : ''
; '''''Article : ''Rappels'''
:'''''Abaque : ''Helice-moteur.jpg''', ''Source : ''https://commons.wikimedia.org/wiki/File:Helice-moteur.jpg, ''Licence : ''Goelette Cardabela [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], ''Page : ''
;'''''Article : ''Comprendre'''
:'''''Figure : ''Hélice-moteur-Resistance-f(S)-0.jpg''', ''Source : ''https://commons.wikimedia.org/wiki/File:H%C3%A9lice-moteur-Resistance-f(S)-0.jpg, ''Crédit à l’auteur : ''Goelette Cardabela [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], ''Page : ''
;'''''Article : ''Feuille de calculs'''
:'''''Tableau 1 : ''Hélice-moteur-Pas&Diamètre-0.png''', ''Source : ''https://commons.wikimedia.org/wiki/File:H%C3%A9lice-moteur-Pas%26Diam%C3%A8tre-0.png, ''Crédit à l’auteur : ''Goelette Cardabela [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], ''Page : ''
:'''''Tableau 2 : ''Hélice-moteur-Pas&Diamètre-1.png''', ''Source : ''https://commons.wikimedia.org/wiki/File:H%C3%A9lice-moteur-Pas%26Diam%C3%A8tre-1.png, ''Crédit à l’auteur : ''Goelette Cardabela [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], ''Page : ''
:'''''Tableau 3 : ''Hélice-moteur-Pas&Diamètre-2.png''', ''Source : ''https://commons.wikimedia.org/wiki/File:H%C3%A9lice-moteur-Pas%26Diam%C3%A8tre-1.png, ''Crédit à l’auteur : ''Goelette Cardabela [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], ''Page : ''
;'''''Article : ''Examen des résultats'''
:'''''Tableau 4 : ''Th-helice-application2.gif''', ''Source : ''https://upload.wikimedia.org/wikipedia/commons/6/6e/Th-helice-application2.gif, ''Crédit à l’auteur : ''Goelette Cardabela [CC BY-SA 2.5 (https://creativecommons.org/licenses/by-sa/2.5)], ''Page : ''
;'''''Article : ''Résultats à des vitesses caractéristiques'''
:'''''Tableau 1 : ''Helice-application-VOLVO-D2-75-Estimation des efforts-DataV000.png''', ''Source : ''https://commons.wikimedia.org/wiki/File:Helice-application-VOLVO-D2-75-Estimation_des_efforts-DataV000.png, ''Crédit à l’auteur : ''Goelette Cardabela [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], ''Page : ''{{Vert|Numéro de la page où se trouve l'image}} */
:'''''Tableau 2 : ''Helice-application-VOLVO-D2-75-Estimation des efforts-DataV642.png''', ''Source : ''https://commons.wikimedia.org/wiki/File:Helice-application-VOLVO-D2-75-Estimation_des_efforts-DataV642.png, ''Crédit à l’auteur : ''Goelette Cardabela [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], ''Page : ''
:'''''Image 1 :''Wake.avon.gorge.arp.750pix.jpg''', ''Source : ''https://commons.wikimedia.org/wiki/File:Wake.avon.gorge.arp.750pix.jpg, ''Crédit à l’auteur : ''Arpingstone [Public domain], ''Page : ''
:'''''Tableau 3 : Helice-application-VOLVO-D2-75-Estimation des efforts-DataV722.png, ''Source : ''https://upload.wikimedia.org/wikipedia/commons/a/a6/Helice-application-VOLVO-D2-75-Estimation_des_efforts-DataV722.png, ''Crédit à l’auteur : ''Goelette Cardabela [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], ''Page : ''
:'''''Vidéo 1: Effet_bulbe_etrave.ogv.jpg''', ''Source :''https://upload.wikimedia.org/wikipedia/commons/thumb/f/fd/Effet_bulbe_etrave.ogv/450px--Effet_bulbe_etrave.ogv.jpg, ''Page : ''
:'''''Tableau 4 : ''Helice-application-VOLVO-D2-75-Estimation des efforts-DataV800.png''', ''Source : ''https://upload.wikimedia.org/wikipedia/commons/6/66/Helice-application-VOLVO-D2-75-Estimation_des_efforts-DataV800.png, ''Crédit à l’auteur : ''Goelette Cardabela [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], ''Page : ''
:'''''Image 2 :''Arunspeed.jpg''', ''Source : ''https://commons.wikimedia.org/wiki/File:Arunspeed.jpg, ''Crédit à l’auteur : ''User:Spongie88, Photo by Scott Snowling [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0/)], ''Page : ''
;'''''Article : ''Graphiques des puissances aux vitesses caractéristiques'''
:'''''Graphique 1 :''Helice-application-VOLVO-D2-75-Estimation des efforts-GrapheP-V000.png''', ''Source : ''https://commons.wikimedia.org/wiki/File:Helice-application-VOLVO-D2-75-Estimation_des_efforts-GrapheP-V000.png, ''Crédit à l’auteur : ''Goelette Cardabela [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], ''Page : ''
:'''''Graphique 2 :''Helice-application-VOLVO-D2-75-Estimation des efforts-GrapheP-V642.png''', ''Source : ''https://commons.wikimedia.org/wiki/File:Helice-application-VOLVO-D2-75-Estimation_des_efforts-GrapheP-V642.png, ''Crédit à l’auteur : ''Goelette Cardabela [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], ''Page : ''
:'''''Graphique 3 :''Helice-application-VOLVO-D2-75-Estimation des efforts-GrapheP-V722.png''', ''Source : ''https://commons.wikimedia.org/wiki/File:Helice-application-VOLVO-D2-75-Estimation_des_efforts-GrapheP-V722.png, ''Crédit à l’auteur : ''Goelette Cardabela [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], ''Page : ''
:'''''Graphique 4 :''Helice-application-VOLVO-D2-75-Estimation des efforts-GrapheP-V800.png''', ''Source : ''https://commons.wikimedia.org/wiki/File:Helice-application-VOLVO-D2-75-Estimation_des_efforts-GrapheP-V800.png, ''Crédit à l’auteur : ''Goelette Cardabela [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], ''Page : ''
;'''''Article : ''Graphiques des forces aux vitesses caractéristiques'''
:'''''Graphique 1 :''Helice-application-VOLVO-D2-75-Estimation des efforts-GrapheF-V000.png''', ''Source : ''https://commons.wikimedia.org/wiki/File:Helice-application-VOLVO-D2-75-Estimation_des_efforts-GrapheF-V000.png, ''Crédit à l’auteur : ''Goelette Cardabela [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], ''Page : ''
:'''''Image : ''Dynamomètre avec palan démultiplicateur.jpg''', ''Source : ''https://commons.wikimedia.org/wiki/File:Dynamom%C3%A8tre_avec_palan_d%C3%A9multiplicateur.jpg, ''Crédit à l’auteur : ''Goelette Cardabela [CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0)], ''Page : ''
:'''''Graphique 2 :''Helice-application-VOLVO-D2-75-Estimation des efforts-GrapheF-V642.png''', ''Source : ''https://commons.wikimedia.org/wiki/File:Helice-application-VOLVO-D2-75-Estimation_des_efforts-GrapheF-V642.png, ''Crédit à l’auteur : ''Goelette Cardabela [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], ''Page : ''
:'''''Graphique 3 :''Helice-application-VOLVO-D2-75-Estimation des efforts-GrapheF-V722.png''', ''Source : ''https://commons.wikimedia.org/wiki/File:Helice-application-VOLVO-D2-75-Estimation_des_efforts-GrapheF-V722.png, ''Crédit à l’auteur : ''Goelette Cardabela [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], ''Page : ''
:'''''Graphique 4 :''Helice-application-VOLVO-D2-75-Estimation des efforts-GrapheF-V800.png''', ''Source : ''https://commons.wikimedia.org/wiki/File:Helice-application-VOLVO-D2-75-Estimation_des_efforts-GrapheF-V800.png, ''Crédit à l’auteur : ''Goelette Cardabela [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], ''Page : ''
;'''''Article : ''Commentaires sur l'expérimentation et prospectives'''
:'''''Graphique 1 :''Helice-application-VOLVO-D2-75-PdeR.png''', ''Source : ''https://commons.wikimedia.org/wiki/File:Helice-application-VOLVO-D2-75-PdeR.png, ''Crédit à l’auteur : ''Goelette Cardabela [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], ''Page : ''
:'''''Graphique 2 :''Helice-application-VOLVO-D2-75-ConsoMn.png''', ''Source : ''https://commons.wikimedia.org/wiki/File:Helice-application-VOLVO-D2-75-ConsoMn.png, ''Crédit à l’auteur : ''Goelette Cardabela [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], ''Page : ''
;'''''Article : ''Conclusions'''
:'''''Tableau 1 :''Hélice-moteur-Pas&Diamètre-0.png''', ''Source : ''https://commons.wikimedia.org/wiki/File:H%C3%A9lice-moteur-Pas%26Diam%C3%A8tre-0.png, ''Crédit à l’auteur : ''Goelette Cardabela [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], ''Page : ''
:'''''Tableau 2 :''Th-helice-application1.gif''', ''Source : ''https://commons.wikimedia.org/wiki/File:Th-helice-application1.gif, ''Crédit à l’auteur : ''Goelette Cardabela [CC BY-SA 2.5 (https://creativecommons.org/licenses/by-sa/2.5)], ''Page : ''
:'''''Tableau 3 :''Helice-application-VOLVO-D2-75-Estimation des efforts-DataV642.png''', ''Source : ''https://commons.wikimedia.org/wiki/File:Helice-application-VOLVO-D2-75-Estimation_des_efforts-DataV642.png, ''Crédit à l’auteur : ''Goelette Cardabela [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], ''Page : ''
</div>
{{Nouvelle page imprimée}}
= Licences =
<div style="font-size:12px;line-height:12px;">
;'''''Article : ''Hélices de navires à déplacement'''
:''Source : ''https://fr.wikibooks.org/wiki/Hélices_de_navires_à_déplacement, ''Licence :''Creative Commons Attribution-Share Alike 4.0 : http://creativecommons.org/licenses/by-sa/4.0/, ''Contributeurs : ''Goelette Cardabela, JackPotte.
;'''''Article : ''Hélices de navires à déplacement/Version imprimable'''
:''Source : ''https://fr.wikibooks.org/wiki/Hélices_de_navires_à_déplacement/Version_imprimable, ''Licence :''Creative Commons Attribution-Share Alike 4.0 : http://creativecommons.org/licenses/by-sa/4.0/, ''Contributeurs : ''Goelette Cardabela.
</div>
{{Nouvelle page imprimée}}
{{Nouvelle page imprimée}}
= Index =
== Index des sections ==
'''<pre>
1 Sommaire
2 Rappels
2.1 Caractéristiques des hélices marines
2.2 Formules utilisées dans nos feuilles calculs
3 Comprendre
4 Feuille de calculs
4.1 Examen du fichier original
4.2 Cases à remplir ou à modifier et résultats intermédiaires
4.3 Ajustement des données et résultat final
5 Examen des résultats
6 Résultats à des vitesses caractéristiques
7 Graphiques des puissances aux vitesses caractéristiques
8 Graphiques des forces aux vitesses caractéristiques
9 Expérimentation en mer
10 Commentaires sur l'expérimentation et prospectives
11 Conclusions
11.1 Retour d'expérience
12 Télécharger les feuilles de calculs
12.1 Site d'origine
12.2 À défaut
12.3 QR pour téléchargements optiques
13 Annexe
13.1 Références
13.2 Sources et contributeurs de l'article
13.3 Source des images, licences et contributeurs
14 Licence
15 Index
15.1 Index des sections
15.2 Index des articles
15.3 Index lexical
</pre>'''
{{Nouvelle page imprimée}}
== Index des articles ==
'''<pre>
Rappels
Comprendre
Feuille de calculs
Examen des résultats
Résultats à des vitesses caractéristiques
Graphiques des puissances aux vitesses caractéristiques
Graphiques des forces aux vitesses caractéristiques
Expérimentation en mer
Commentaires sur l'expérimentation et prospectives
Conclusions
Télécharger les feuilles de calculs
Compilations wikilivres
</pre>'''
{{Nouvelle page imprimée}}
== Index lexical ==
<div class="noprint">{{Orange|Documentation : <br />[[Goélette_Cardabela/Références#Automatiser_l'indexation_avec_OpenOffice]]}}</div>
{{AutoCat}} [[Catégorie:SCLTI]]<!-- Copier jusque là ! -->
<!-- Ne pas recopier les catégories qui suivent, dans les pages de référencement. -->
<noinclude>[[Catégorie:Extension de fichier]]</noinclude>
fv4ssmfxyz35ibrwab7w4r5yswlfaui
Discussion Wikilivres:Le Bistro/2022
5
77782
682361
682154
2022-07-25T09:33:49Z
MediaWiki message delivery
36013
/* Nouvelles de la Stratégie et de la Gouvernance du Mouvement – Numéro 7 */ nouvelle section
wikitext
text/x-wiki
Cette page est réservée aux '''informations techniques sur MediaWiki'''.
Pour discuter, ajouter un sujet ici : [[Wikilivres:Le Bistro/2022]].
----
== Wiki Loves Folklore is back! ==
<div lang="en" dir="ltr" class="mw-content-ltr">
{{int:please-translate}}
[[File:Wiki Loves Folklore Logo.svg|right|150px|frameless]]
You are humbly invited to participate in the '''[[:c:Commons:Wiki Loves Folklore 2022|Wiki Loves Folklore 2022]]''' an international photography contest organized on Wikimedia Commons to document folklore and intangible cultural heritage from different regions, including, folk creative activities and many more. It is held every year from the '''1st till the 28th''' of February.
You can help in enriching the folklore documentation on Commons from your region by taking photos, audios, videos, and [https://commons.wikimedia.org/w/index.php?title=Special:UploadWizard&campaign=wlf_2022 submitting] them in this commons contest.
You can also [[:c:Commons:Wiki Loves Folklore 2022/Organize|organize a local contest]] in your country and support us in translating the [[:c:Commons:Wiki Loves Folklore 2022/Translations|project pages]] to help us spread the word in your native language.
Feel free to contact us on our [[:c:Commons talk:Wiki Loves Folklore 2022|project Talk page]] if you need any assistance.
'''Kind regards,'''
'''Wiki loves Folklore International Team'''
--[[Utilisateur:MediaWiki message delivery|MediaWiki message delivery]] ([[Discussion utilisateur:MediaWiki message delivery|discussion]]) 9 janvier 2022 à 14:15 (CET)
</div>
<!-- Message envoyé par User:Tiven2240@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=User:Tiven2240/wlf&oldid=22560402 -->
== Consultation des souhaits de la communauté pour 2022 ==
[[File:Community Wishlist Survey Lamp.svg|right|200px]]
La '''[[m:Special:MyLanguage/Community Wishlist Survey 2022|consultation des souhaits de la communauté pour 2022]]''' a débuté !
Cette consultation est le processus par lequel les communautés décident sur quoi l’équipe [[m:Special:MyLanguage/Community Tech|Technologies communautaires]] doit travailler durant l’année qui suit. Nous encourageons tout le monde à soumettre des propositions avant le '''23 janvier''', ou à commenter les propositions des autres pour les améliorer.
Les communautés voteront pour les propositions entre le 28 janvier et le 11 février.
L’équipe Technologies communautaires se concentre sur les outils pour les contributeurs expérimentés de Wikimédia. Vous pouvez écrire vos propositions dans n’importe quelle langue, nous les traduirons pour vous. Merci, nous avons hâte de les recevoir ! [[User:SGrabarczuk (WMF)|SGrabarczuk (WMF)]] ([[User talk:SGrabarczuk (WMF)|talk]]) 10 janvier 2022 à 19:23 (CET)
<!-- Message envoyé par User:SGrabarczuk (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=User:SGrabarczuk_(WMF)/sandbox/MM/Francophones&oldid=20689614 -->
== [[m:Special:MyLanguage/Tech/News/2022/02|Tech News: 2022-02]] ==
<section begin="technews-2022-W02"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/02|D’autres traductions]] sont disponibles.
'''Changements récents'''
* [[File:Octicons-tools.svg|15px|link=|Sujet technique]] Une variable <bdi lang="zxx" dir="ltr"><code>oauth_consumer</code></bdi> a été ajoutée à [[mw:Special:MyLanguage/AbuseFilter|AbuseFilter]] pour permettre d'identifier les modifications effectuées par des outils spécifiques. [https://phabricator.wikimedia.org/T298281]
* [[File:Octicons-tools.svg|15px|link=|Sujet technique]] Les gadgets sont [[mw:Special:MyLanguage/ResourceLoader/Migration_guide_(users)#Package_Gadgets|maintenant capables d'inclure directement des pages JSON]]. Cela signifie que certains gadgets peuvent maintenant être configurés par les administrateurs sans avoir besoin de la autorisation d'un administrateur d'interface, comme le gadget Geonotice. [https://phabricator.wikimedia.org/T198758]
* [[File:Octicons-tools.svg|15px|link=|Sujet technique]] Les gadgets [[mw:Extension:Gadgets#Options|peuvent désormais spécifier les actions de page]] pour lesquelles ils seront utilisables. Par exemple, <bdi lang="zxx" dir="ltr"><code>|actions=edit,history</code></bdi> chargera un gadget uniquement pendant la modification d’une page ou la consultation de son historique. [https://phabricator.wikimedia.org/T63007]
* [[File:Octicons-tools.svg|15px|link=|Sujet technique]] Les gadgets peuvent désormais être chargés avec le paramètre d'URL <bdi lang="zxx" dir="ltr"><code>withgadget</code></bdi>. Ceci peut être utilisé pour remplacer [[mw:Special:MyLanguage/Snippets/Load JS and CSS by URL|un morceau de code]] qui ressemble généralement à <bdi lang="zxx" dir="ltr"><code>withJS</code></bdi> ou <bdi lang="zxx" dir="ltr"><code>withCSS</code></bdi>. [https://phabricator.wikimedia.org/T29766]
* [[File:Octicons-tools.svg|15px|link=|Sujet technique]] Sur les wikis où [[mw:Special:MyLanguage/Growth/Communities/How to configure the mentors' list|le système de mentorat est activé]], vous pouvez désormais utiliser l'API Action pour obtenir la liste des mentorés d'un [[mw:Special:MyLanguage/Growth/Mentor_dashboard|mentor]]. [https://phabricator.wikimedia.org/T291966]
* Le titre de la page d’accueil peut désormais être configuré en utilisant <span class="mw-content-ltr" lang="en" dir="ltr">[[MediaWiki:Mainpage-title-loggedin]]</span> pour les utilisateurs connectés et <span class="mw-content-ltr" lang="en" dir="ltr">[[MediaWiki:Mainpage-title]]</span> pour les utilisateurs non connectés. Tout CSS qui était utilisé pour masquer le titre devrait être supprimé. [https://meta.wikimedia.org/wiki/Special:MyLanguage/Small_wiki_toolkits/Starter_kit/Main_page_customization#hide-heading] [https://phabricator.wikimedia.org/T298715]
* Quatre pages spéciales (et leurs équivalents API) ont désormais un temps d'exécution maximal de 30 secondes pour les requêtes à la base de données. Ces pages spéciales sont : Modifications récentes, Liste de suivi, Contributions et Journal. Ce changement contribuera à améliorer les performances et la stabilité du site. Vous pouvez lire [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/IPJNO75HYAQWIGTHI5LJHTDVLVOC4LJP/ plus de détails sur ce changement], y compris quelques solutions potentielles si cela affecte vos activités. [https://phabricator.wikimedia.org/T297708]
* L'[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Features/Sticky Header|entête figé]] a été déployé pour 50 % des utilisateurs connectés sur [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Frequently asked questions#pilot-wikis|plus de 10 wikis]]. Cela fait partie des [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|Améliorations pour ordinateur]]. Voir [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Participate|comment prendre part au projet]].
'''Changements à venir cette semaine'''
* [[File:Octicons-sync.svg|12px|link=|Sujet récurrent]] La [[mw:MediaWiki 1.38/wmf.17|nouvelle version]] de MediaWiki sera installée sur les wikis de test et sur MediaWiki.org à partir du {{#time:j xg|2022-01-11|fr}}. Elle sera installée sur tous les wikis hormis la majorité des Wikipédias le {{#time:j xg|2022-01-12|fr}} et enfin sur toutes les Wikipédias restantes le {{#time:j xg|2022-01-13|fr}} ([[mw:MediaWiki 1.38/Roadmap|calendrier]]).
'''Événements'''
* [[m:Special:MyLanguage/Community Wishlist Survey 2022|La consultation des souhaits de la communauté pour 2022]] commence. Tous les contributeurs des projets Wikimédia peuvent proposer des outils et des améliorations de la plateforme. La phase de proposition se déroule du {{#time:j xg|2022-01-10|fr}} 18:00 UTC au {{#time:j xg|2022-01-23|fr}} 18:00 UTC. [[m:Special:MyLanguage/Community_Wishlist_Survey/FAQ|En savoir plus]].
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/02|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W02"/>
11 janvier 2022 à 02:23 (CET)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22562156 -->
== L'appel à commentaires sur les élections du Conseil d'administration est maintenant ouvert ==
<section begin="announcement-content" />:''[[m:Special:MyLanguage/Wikimedia Foundation Board of Trustees/Call for feedback: Board of Trustees elections/Call for Feedback about the Board of Trustees elections is now open/Short|Ce message est disponible dans d'autres langues sur Meta-wiki.]]''
:''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation Board of Trustees/Call for feedback: Board of Trustees elections/Call for Feedback about the Board of Trustees elections is now open/Short|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation Board of Trustees/Call for feedback: Board of Trustees elections/Call for Feedback about the Board of Trustees elections is now open/Short}}&language=&action=page&filter= {{int:please-translate}}]</div>''
Élections du conseil d'administration : l'appel à commentaires est maintenant ouvert et se terminera le 7 février 2022.
Avec cet appel à commentaires, l'équipe Stratégie et Gouvernance du Mouvement adopte une approche différente. Cette approche intègre le retour d'informations de 2021 de la communauté. Au lieu de présenter des propositions, l'appel s'articule autour des questions-clés du Conseil d'administration. Les questions-clés sont issues des retours sur l'élection 2021 du conseil d'administration. L'intention est d'inspirer une conversation collective et le développement de propositions collaboratives sur ces questions-clés.
[[m:Special:MyLanguage/Wikimedia Foundation Board of Trustees/Call for feedback: Board of Trustees elections|Participez à la conversation.]]
Bien à vous,
L'équipe Stratégie et Gouvernance du Mouvement<section end="announcement-content" />
[[User:MPossoupe (WMF)|MPossoupe (WMF)]] 13 janvier 2022 à 04:23 (CET)
<!-- Message envoyé par User:Xeno (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery/fr&oldid=22506356 -->
== [[m:Special:MyLanguage/Tech/News/2022/03|Tech News: 2022-03]] ==
<section begin="technews-2022-W03"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/03|D’autres traductions]] sont disponibles.
'''Changements récents'''
* Dans [[mw:Special:MyLanguage/Extension:WikiEditor|WikiEditor]] (l’éditeur 2010 de wikicode), les contributeurs seront désormais avertis s’ils insèrent un lien vers une page d’homonymie. Si vous cliquez sur « {{int:Disambiguator-review-link}} » dans l’avertissement, il vous sera demandé de corriger le lien vers une page plus spécifique. [[m:Community Wishlist Survey 2021/Warn when linking to disambiguation pages#Jan 12, 2021: Turning on the changes for all Wikis|En savoir plus]] sur la réalisation de ce souhait issue de la consultation des souhaits de la communauté pour 2021.
* Vous pouvez [[mw:Special:MyLanguage/Help:DiscussionTools#subscribe|vous abonner automatiquement à toutes les discussions]] auxquelles vous participez à l’aide des [[mw:Special:MyLanguage/Talk pages project/Feature summary|Outils de discussion]]. Vous serez [[mw:Special:MyLanguage/Notifications|notifiés]] quand un autre contributeur répondra. Cette fonctionnalité est disponible sur presque tous les wikis : dans [[Special:Preferences#mw-prefsection-editing-discussion|vos préférences]], activez « {{int:discussiontools-preference-autotopicsub}} ». [https://phabricator.wikimedia.org/T263819]
* Quand il est demandé de créer une nouvelle page ou une nouvelle section de page de discussion, les champs de saisie peuvent être [[mw:Special:MyLanguage/Manual:Creating_pages_with_preloaded_text|pré-remplis (''<span lang=en>preloaded</span>'')]]. Cette fonctionnalité est maintenant limitée aux pages de wikicode, afin que les utilisateurs ne soient pas manipulés pour réaliser des modifications malveillantes. Une discussion a lieu pour déterminer [[phab:T297725|si cette fonctionnalité doit être réactivée pour certains types de contenu]].
'''Changements à venir cette semaine'''
* [[File:Octicons-sync.svg|12px|link=|Sujet récurrent]] La [[mw:MediaWiki 1.38/wmf.18|nouvelle version]] de MediaWiki sera installée sur les wikis de test et sur MediaWiki.org à partir du {{#time:j xg|2022-01-18|fr}}. Elle sera installée sur tous les wikis hormis la majorité des Wikipédias le {{#time:j xg|2022-01-19|fr}} et enfin sur toutes les Wikipédias restantes le {{#time:j xg|2022-01-20|fr}} ([[mw:MediaWiki 1.38/Roadmap|calendrier]]).
'''Évènements'''
* La [[m:Special:MyLanguage/Community Wishlist Survey 2022|consultation des souhaits de la communauté pour 2022]] continue. Tous les contributeurs des projets Wikimédia peuvent proposer des outils et des améliorations de la plateforme. La phase de proposition se déroule du {{#time:j xg|2022-01-10|fr}} 18:00 UTC au {{#time:j xg|2022-01-23|fr}} 18:00 UTC. [[m:Special:MyLanguage/Community_Wishlist_Survey/FAQ|En savoir plus]].
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/03|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W03"/>
17 janvier 2022 à 20:55 (CET)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22620285 -->
== Discutez avec l’équipe Technologies communautaires ==
[[File:Community Wishlist Survey Lamp.svg|150px|right]]
{{int:Hello}}
Nous, l’équipe travaillant sur la [[m:Special:MyLanguage/Community Wishlist Survey|consultation des souhaits de la communauté]] (CWS), aimerions vous inviter à une réunion en ligne avec nous. Celle-ci aura lieu le [https://www.timeanddate.com/worldclock/fixedtime.html?iso=20220119T1800 '''{{#time:j xg|2022-01-19}} ({{#time:l|2022-01-19}}) à {{#time:H:i e|18:00|fr|1}}'''] sur Zoom et durera une heure. Cet outil externe n’est pas soumis à [[foundation:Privacy_policy/fr|la politique de confidentialité de Wikimedia]]. [https://wikimedia.zoom.us/j/85804347114 '''Cliquez ici pour Participer'''].
'''Ordre du jour'''
* Amenez le premier jet de votre proposition et discutez de vos questions sur la façon de l’améliorer avec un membre de l’équipe Technologies communautaires.
'''Format'''
La rencontre ne sera pas enregistrée ni diffusée en flux. Des notes anonymes seront prises et publiées sur Meta-Wiki. La présentation (tous les points à l’ordre du jour à l’exception des questions et réponses) sera donnée en anglais.
Nous pouvons répondre aux questions posées en français, anglais, polonais, espagnol et allemand. Si vous voulez poser une question en avance, vous pouvez l’écrire [[m:Talk:Community Wishlist Survey|sur la page de discussion de la consultation des souhaits de la communauté]] ou l’envoyer à sgrabarczuk@wikimedia.org.
Cette réunion sera animée par [[m:Special:MyLanguage/User:NRodriguez (WMF)|Natalia Rodriguez]] (la chef de l’équipe [[m:Special:MyLanguage/Community Tech|Technologies communautaires]]).
'''Lien d'invitation'''
* [https://wikimedia.zoom.us/j/85804347114 S’inscrire en ligne]
* ID de la réunion : <span dir=ltr>85804347114</span>
* [https://wikimedia.zoom.us/u/keu6UeRT0T Numéros de téléphone locaux]
Nous espérons vous voir ! [[User:SGrabarczuk (WMF)|SGrabarczuk (WMF)]] ([[User talk:SGrabarczuk (WMF)|talk]]) 18 janvier 2022 à 02:02 (CET)
<!-- Message envoyé par User:SGrabarczuk (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=User:SGrabarczuk_(WMF)/sandbox/MM/Francophones&oldid=20689614 -->
== Subscribe to the This Month in Education newsletter - learn from others and share your stories ==
<div lang="en" dir="ltr" class="mw-content-ltr">
Dear community members,
Greetings from the EWOC Newsletter team and the education team at Wikimedia Foundation. We are very excited to share that we on tenth years of Education Newsletter ([[m:Education/News|This Month in Education]]) invite you to join us by [[m:Global message delivery/Targets/This Month in Education|subscribing to the newsletter on your talk page]] or by [[m:Education/News/Newsroom|sharing your activities in the upcoming newsletters]]. The Wikimedia Education newsletter is a monthly newsletter that collects articles written by community members using Wikimedia projects in education around the world, and it is published by the EWOC Newsletter team in collaboration with the Education team. These stories can bring you new ideas to try, valuable insights about the success and challenges of our community members in running education programs in their context.
If your affiliate/language project is developing its own education initiatives, please remember to take advantage of this newsletter to publish your stories with the wider movement that shares your passion for education. You can submit newsletter articles in your own language or submit bilingual articles for the education newsletter. For the month of January the deadline to submit articles is on the 20th January. We look forward to reading your stories.
Older versions of this newsletter can be found in the [[outreach:Education/Newsletter/Archives|complete archive]].
More information about the newsletter can be found at [[m:Education/News/Publication Guidelines|Education/Newsletter/About]].
For more information, please contact spatnaik{{@}}wikimedia.org.
------
<div style="text-align: center;"><div style="margin-top:10px; font-size:90%; padding-left:5px; font-family:Georgia, Palatino, Palatino Linotype, Times, Times New Roman, serif;">[[m:Education/Newsletter/About|About ''This Month in Education'']] · [[m:Global message delivery/Targets/This Month in Education|Subscribe/Unsubscribe]] · [[m:MassMessage|Global message delivery]] · For the team: [[User:ZI Jony|<span style="color:#8B0000">'''ZI Jony'''</span>]] [[User talk:ZI Jony|<sup><span style="color:Green"><i>(Talk)</i></span></sup>]], {{<includeonly>subst:</includeonly>#time:l G:i, d F Y|}} (UTC)</div></div>
</div>
<!-- Message envoyé par User:ZI Jony@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=User:ZI_Jony/MassMessage/Awareness_of_Education_Newsletter/List_of_Village_Pumps&oldid=21244129 -->
== [[m:Special:MyLanguage/Tech/News/2022/04|Tech News: 2022-04]] ==
<section begin="technews-2022-W04"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/04|D’autres traductions]] sont disponibles.
'''Changements à venir cette semaine'''
* [[File:Octicons-sync.svg|12px|link=|Sujet récurrent]] La [[mw:MediaWiki 1.38/wmf.19|nouvelle version]] de MediaWiki sera installée sur les wikis de test et sur MediaWiki.org à partir du {{#time:j xg|2022-01-25|fr}}. Elle sera installée sur tous les wikis hormis la majorité des Wikipédias le {{#time:j xg|2022-01-26|fr}} et enfin sur toutes les Wikipédias restantes le {{#time:j xg|2022-01-27|fr}} ([[mw:MediaWiki 1.38/Roadmap|calendrier]]).
* Les langages suivants peuvent maintenant être utilisés avec [[mw:Special:MyLanguage/Extension:SyntaxHighlight|la coloration syntaxique]] : BDD, Elpi, LilyPond, Maxima, Rita, Savi, Sed, Sophia, Spice, .SRCINFO.
* Vous pouvez désormais accéder à votre liste de suivi en dehors du menu utilisateur dans la [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|nouvelle apparence de Vector]]. Le lien vers la liste de suivi apparaît à côté des icônes de notification si vous êtes au sommet de la page. [https://phabricator.wikimedia.org/T289619]
'''Évènements'''
* Vous pouvez voir les résultats de la [[m:Special:MyLanguage/Coolest Tool Award|Cérémonie des outils les plus cools 2021]] et en savoir plus sur les 14 outils qui ont été sélectionnés cette année.
* Vous pouvez [[m:Special:MyLanguage/Community_Wishlist_Survey/Help_us|traduire, promouvoir]], ou commenter [[m:Special:MyLanguage/Community Wishlist Survey 2022/Proposals|les propositions]] de la consultation des souhaits de la communauté. Le vote commencera le {{#time:j xg|2022-01-28|fr}}.
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/04|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W04"/>
24 janvier 2022 à 22:38 (CET)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22644148 -->
== Nouvelles de la Stratégie et de la Gouvernance du Mouvement – Numéro 5 ==
<section begin="ucoc-newsletter"/>
:''<div class="plainlinks">[[m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/5/Global message|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Movement Strategy and Governance/Newsletter/5/Global message}}&language=&action=page&filter= {{int:please-translate}}]</div>''
<span style="font-size:200%;">'''Nouvelles de la Stratégie et de la Gouvernance du Mouvement'''</span><br>
<span style="font-size:120%; color:#404040;">'''Numéro 5 - janvier 2022'''</span><span style="font-size:120%; float:right;">[[m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/5|'''Lire le bulletin complet''']]</span>
----
Bienvenue au cinquième numéro des Nouvelles de la Stratégie et de la Gouvernance du Mouvement (anciennement connues sous le nom de Nouvelles du Code de Conduite Universel) ! Ce bulletin d'information révisé diffuse des nouvelles et des événements pertinents concernant la Charte du Mouvement, le Code de Conduite Universel, les subventions pour la mise en œuvre de la Stratégie du Mouvement, les élections du Conseil d'administration et d'autres sujets relatifs à la Stratégie et la Gouvernance du Mouvement.
Cette lettre d'information sera distribuée tous les 3 mois, tandis que des mises à jour plus fréquentes seront également envoyées aux abonné.es toutes les semaines ou toutes les 2 semaines. N'oubliez pas de vous abonner [[:m:Special:MyLanguage/Global message delivery/Targets/MSG Newsletter Subscription|ici]] si vous souhaitez recevoir ces mises à jour.
<div style="margin-top:3px; padding:10px 10px 10px 20px; background:#fffff; border:2px solid #808080; border-radius:4px; font-size:100%;">
*'''Appel à commentaires sur les élections du conseil d'administration ''' - Nous vous invitons à donner votre avis sur la prochaine élection du conseil d'administration de la WMF. Cet appel à commentaires a été mis en ligne le 10 janvier 2022 et se terminera le 16 février 2022. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/5#Call for Feedback about the Board elections|continuer la lecture]])
*'''Ratification du Code de Conduite Universel''' - En 2021, la WMF a demandé aux communautés comment faire appliquer le Code de Conduite Universel. Le projet révisé des directives d'application devrait être prêt pour le vote des communautés en mars. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/5#Universal Code of Conduct Ratification|continuer la lecture]])
*'''Subventions pour la mise en œuvre de la stratégie du mouvement''' - Alors que nous continuons à étudier plusieurs propositions intéressantes, nous encourageons et accueillons plus de propositions et d'idées qui ciblent une initiative spécifique des recommandations de la stratégie du mouvement. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/5#Movement Strategy Implementation Grants|continuer la lecture]])
*'''La nouvelle orientation du bulletin d'information''' - Alors que le bulletin d'information de l'UCoC devient le bulletin d'information du MSG, rejoignez l'équipe de facilitation pour envisager et décider des nouvelles orientations de ce bulletin d'information. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/5#The New Direction for the Newsletter|continue la lecture]])
*''' Blogs Diff''' - Consultez les publications les plus récentes sur la Stratégie et la Gouvernance du Mouvement sur le blog Wikimedia Diff. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/5#Diff Blogs|continuer la lecture]])</div><section end="ucoc-newsletter"/>
[[User:MPossoupe (WMF)|MPossoupe (WMF)]] 29 janvier 2022 à 02:46 (CET)
<!-- Message envoyé par User:Xeno (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery/fr&oldid=22703208 -->
:'''5 jours''' pour copier le même message que sur wikipédia !
:[[w:Wikipédia:Le Bistro/24 janvier 2022#Des nouvelles de la Stratégie et de la Gouvernance du Mouvement]]
:Il faudrait établir un code de conduite de la fondation envers les autres projets wiki.
:-- ◄ [[Utilisateur:DavidL|'''D'''avid '''L''']] • [[Discussion Utilisateur:DavidL|discuter]] ► 29 janvier 2022 à 10:37 (CET)
::Bonjour @[[Utilisateur:DavidL|DavidL]],
::Merci pour votre retour. Désolé pour ce retard dans la communication. Nous ferons mieux les prochaines fois.
::Bien à vous
::[[Utilisateur:MPossoupe (WMF)|MPossoupe (WMF)]] ([[Discussion utilisateur:MPossoupe (WMF)|discussion]]) 14 février 2022 à 10:58 (CET)
== [[m:Special:MyLanguage/Tech/News/2022/05|Tech News: 2022-05]] ==
<section begin="technews-2022-W05"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/05|D’autres traductions]] sont disponibles.
'''Changements récents'''
* [[File:Octicons-tools.svg|15px|link=|alt=|Sujet technique]] Si un gadget devrait prendre en charge le nouveau paramètre d’URL <bdi lang="zxx" dir="ltr"><code>?withgadget</code></bdi> [[m:Special:MyLanguage/Tech/News/2022/02|annoncé]] il y a 3 semaines, alors il doit désormais aussi spécifier <bdi lang="zxx" dir="ltr"><code>supportsUrlLoad</code></bdi> dans la définition du gadget ([[mw:Special:MyLanguage/Extension:Gadgets#supportsUrlLoad|documentation]]). [https://phabricator.wikimedia.org/T29766]
'''Changements à venir cette semaine'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] La [[mw:MediaWiki 1.38/wmf.20|nouvelle version]] de MediaWiki sera installée sur les wikis de test et sur MediaWiki.org à partir du {{#time:j xg|2022-02-01|fr}}. Elle sera installée sur tous les wikis hormis la majorité des Wikipédias le {{#time:j xg|2022-02-02|fr}} et enfin sur toutes les Wikipédias restantes le {{#time:j xg|2022-02-03|fr}} ([[mw:MediaWiki 1.38/Roadmap|calendrier]]).
'''Futurs changements'''
* Un changement [[m:Special:MyLanguage/Tech/News/2021/16|annoncé]] l’an passé a été repoussé. Il est maintenant prêt à être mis en place :
** Le nom technique du groupe utilisateur <code>oversight</code> va être renommé en <code>suppress</code>, pour des [[phab:T109327|raisons techniques]]. Cela ne changera pas la manière dont ces contributeurs sont appelés sur votre wiki. Cela devrait arriver dans trois semaines. Vous pouvez ajouter un commentaire [[phab:T112147|sur Phabricator]] si vous avez des objections. Comme d’habitude, ces noms peuvent être traduits sur Translatewiki.net ([[phab:T112147|des liens directs sont disponibles]]) ou par les administrateurs sur votre wiki.
'''Évènements'''
* Vous pourrez voter pour les propositions de la [[m:Special:MyLanguage/Community Wishlist Survey 2022|Consultation des souhaits de la communauté]] entre le 28 janvier et le 11 février. La consultation détermine ce sur quoi [[m:Special:MyLanguage/Community Tech|l’équipe Technologies communautaires]] travaillera.
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/05|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W05"/>
31 janvier 2022 à 18:42 (CET)
<!-- Message envoyé par User:Johan (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22721804 -->
== [[m:Special:MyLanguage/Tech/News/2022/06|Tech News: 2022-06]] ==
<section begin="technews-2022-W06"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/06|D’autres traductions]] sont disponibles.
'''Changements récents'''
* La Wikipédia anglaise a récemment mis en place un gadget pour le mode sombre. Vous pouvez l'activer ici, ou demander l'aide d'un [[m:Special:MyLanguage/Interface administrators|administrateur d'interface]] pour le configurer sur votre wiki ([[w:en:Wikipedia:Dark mode (gadget)|instructions et capture d'écran]]).
* Le décompte des catégories est parfois erroné. Ils seront désormais entièrement recomptés au début de chaque mois. [https://phabricator.wikimedia.org/T299823]
'''Problèmes'''
* Un changement de code la semaine dernière pour corriger un bug avec [[mw:Special:MyLanguage/Manual:Live preview|Live Preview]] peut avoir causé des problèmes avec certains gadgets locaux et scripts utilisateurs. Tout code ayant un comportement spécifique au skin pour <bdi lang="zxx" dir="ltr"><code>vector</code></bdi> doit être mis à jour pour vérifier également <bdi lang="zxx" dir="ltr"><code>vector-2022</code></bdi>. [[phab:T300987|Un extrait de code, une recherche globale et un exemple sont disponibles]].
'''Changements à venir cette semaine'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] La [[mw:MediaWiki 1.38/wmf.21|nouvelle version]] de MediaWiki sera installée sur les wikis de test et sur MediaWiki.org à partir du {{#time:j xg|2022-02-08|fr}}. Elle sera installée sur tous les wikis hormis la majorité des Wikipédias le {{#time:j xg|2022-02-09|fr}} et enfin sur toutes les Wikipédias restantes le {{#time:j xg|2022-02-10|fr}} ([[mw:MediaWiki 1.38/Roadmap|calendrier]]).
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/06|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W06"/>
7 février 2022 à 22:15 (CET)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22765948 -->
== Groupe de travail sur le développement du leadership : vos commentaires sont les bienvenus ==
<section begin="announcement-content" />:''[[m:Special:MyLanguage/Leadership Development Task Force/Call for Feedback Announcement|Ce message est disponible dans d'autres langues sur Meta-wiki.]]''
:''<div class="plainlinks">[[m:Special:MyLanguage/Leadership Development Task Force/Call for Feedback Announcement|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Leadership Development Task Force/Call for Feedback Announcement}}&language=&action=page&filter= {{int:please-translate}}]</div>''
L'équipe "Développement Communautaire" de la Wikimedia Foundation soutient la création d'un groupe de travail globale, porté par la communauté, pour le développement du Leadership.
L'équipe est à la recherche de commentaires sur les responsabilités du groupe de travail sur le développement du leadership. Cette page Meta contient la proposition d'un [[m:Special:MyLanguage/Leadership Development Task Force|Groupe de travail sur le développement du leadership]] et la manière dont [[m:Special:MyLanguage/Leadership Development Task Force/Participate|vous pouvez aider.]] Les commentaires sur la proposition sont recueillis du 7 au 25 février 2022.<section end="announcement-content" />
[[User:MPossoupe (WMF)|MPossoupe (WMF)]] 9 février 2022 à 03:46 (CET)
<!-- Message envoyé par User:Xeno (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery/fr&oldid=22796832 -->
== [[m:Special:MyLanguage/Tech/News/2022/07|Tech News: 2022-07]] ==
<section begin="technews-2022-W07"/><div class="plainlinks">
<div lang="en" dir="ltr" class="mw-content-ltr">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2022/07|Translations]] are available.
</div>
'''<span lang="en" dir="ltr" class="mw-content-ltr">Recent changes</span>'''
* <span lang="en" dir="ltr" class="mw-content-ltr">[[mw:Special:MyLanguage/Manual:Purge|Purging]] a category page with fewer than 5,000 members will now recount it completely. This will allow editors to fix incorrect counts when it is wrong.</span> [https://phabricator.wikimedia.org/T85696]
'''<span lang="en" dir="ltr" class="mw-content-ltr">Changes later this week</span>'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] <span lang="en" dir="ltr" class="mw-content-ltr">The [[mw:MediaWiki 1.38/wmf.22|new version]] of MediaWiki will be on test wikis and MediaWiki.org from {{#time:j xg|2022-02-15|en}}. It will be on non-Wikipedia wikis and some Wikipedias from {{#time:j xg|2022-02-16|en}}. It will be on all wikis from {{#time:j xg|2022-02-17|en}} ([[mw:MediaWiki 1.38/Roadmap|calendar]]).</span>
* [[File:Octicons-tools.svg|15px|link=|Sujet technique]] <span lang="en" dir="ltr" class="mw-content-ltr">In the [[mw:Special:MyLanguage/Extension:AbuseFilter|AbuseFilter]] extension, the <code dir=ltr>rmspecials()</code> function has been updated so that it does not remove the "space" character. Wikis are advised to wrap all the uses of <code dir=ltr>rmspecials()</code> with <code dir=ltr>rmwhitespace()</code> wherever necessary to keep filters' behavior unchanged. You can use the search function on [[Special:AbuseFilter]] to locate its usage.</span> [https://phabricator.wikimedia.org/T263024]
<div lang="en" dir="ltr" class="mw-content-ltr">
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2022/07|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div>
</div><section end="technews-2022-W07"/>
14 février 2022 à 20:18 (CET)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22821788 -->
== [[m:Special:MyLanguage/Tech/News/2022/08|Tech News: 2022-08]] ==
<section begin="technews-2022-W08"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/08|D’autres traductions]] sont disponibles.
'''Modifications récentes'''
* [[Special:Nuke|Special:Nuke]] fournira désormais les motifs de suppression standard (modifiables sur <bdi lang="en" dir="ltr">[[MediaWiki:Deletereason-dropdown]]</bdi>) à utiliser lors de la suppression massive de pages. C'était [[m:Community Wishlist Survey 2022/Admins and patrollers/Mass-delete to offer drop-down of standard reasons, or templated reasons.|une demande soumise lors de la consultation des souhaits de la communauté pour 2022]]. [https://phabricator.wikimedia.org/T25020]
* Sur Wikipédia, tous les nouveaux comptes obtiennent désormais les [[mw:Special:MyLanguage/Growth/Feature_summary|Fonctionnalités de croissance]] par défaut lors de la création d'un compte. Les communautés sont encouragées à [[mw:Special:MyLanguage/Help:Growth/Tools/Account_creation|mettre à jour leurs ressources d'aide]]. Auparavant, seuls 80 % des nouveaux comptes obtenaient les fonctionnalités de croissance. Quelques Wikipédias ne sont pas affectées par ce changement. [https://phabricator.wikimedia.org/T301820]
* Vous pouvez à présent empêcher que des images spécifiques utilisées sur une page apparaissent à d'autres endroits, tels que la prévisualisation des pages (''PagePreviews'') ou les résultats de recherche. Cela est effectué grâce au code <bdi lang="zxx" dir="ltr"><code><nowiki>class=notpageimage</nowiki></code></bdi>. Par example, <code><nowiki>[[Fichier:Exemple.png|class=notpageimage]]</nowiki></code>. [https://phabricator.wikimedia.org/T301588]
* [[File:Octicons-tools.svg|15px|link=|alt=|Sujet technique]] Une modification a été apportée au HTML des pages Special:Contributions, Special:MergeHistory et aux pages d'historique, afin de prendre en charge le regroupement des modifications par date dans [[mw:Special:MyLanguage/Skin:Minerva_Neue|l'apparence mobile]]. Bien que peu probable, cela pourrait affecter les gadgets et les scripts des utilisateurs. Une [[phab:T298638|liste de tous les changements HTML]] est disponible sur Phabricator.
'''Événements'''
* Les [[m:Special:MyLanguage/Community Wishlist Survey 2022/Results|résultats de l'enquête sur les souhaits de la communauté]] ont été publiés. Le [[m:Special:MyLanguage/Community Wishlist Survey/Updates/2022 results#leaderboard|classement des propositions par ordre de priorité]] est également disponible.
'''Changements à venir cette semaine'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] La [[mw:MediaWiki 1.38/wmf.23|nouvelle version]] de MediaWiki sera installée sur les wikis de test et sur MediaWiki.org à partir du {{#time:j xg|2022-02-22|fr}}. Elle sera installée sur tous les wikis hormis la majorité des Wikipédias le {{#time:j xg|2022-02-23|fr}} et enfin sur toutes les Wikipédias restantes le {{#time:j xg|2022-02-24|fr}} ([[mw:MediaWiki 1.38/Roadmap|calendrier]]).
'''Changements à venir'''
* Le logiciel permettant de lire les vidéos et les fichiers audio sur les pages va bientôt changer sur tous les wikis. L'ancien lecteur sera supprimé. L'affichage de certains lecteurs audio deviendra plus large après ce changement. [[mw:Special:MyLanguage/Extension:TimedMediaHandler/VideoJS_Player|Le nouveau lecteur]] a été une fonctionnalité bêta pendant plus de quatre ans. [https://phabricator.wikimedia.org/T100106][https://phabricator.wikimedia.org/T248418]
* [[File:Octicons-tools.svg|15px|link=|alt=|Sujet technique]] Le système d'exploitation sous-jacent de Toolforge est en cours de mise à jour. Si vous y maintenez des outils, il existe deux options pour migrer vos outils vers le nouveau système. Vous trouverez les [[wikitech:News/Toolforge Stretch deprecation|détails, délais et instructions]] sur Wikitech. [https://lists.wikimedia.org/hyperkitty/list/cloud-announce@lists.wikimedia.org/thread/EPJFISC52T7OOEFH5YYMZNL57O4VGSPR/]
* Lorsqu'ils supprimeront une page donnée, les administrateurs auront bientôt [[m:Special:MyLanguage/Community Wishlist Survey 2021/(Un)delete associated talk page|l'option de supprimer/restaurer]] la page de discussion associée. Un élément dédié dans l'API avec cette option sera également disponible. Cette fonctionnalité était [[m:Community Wishlist Survey 2021/Admins and patrollers/(Un)delete associated talk page|une demande soumise lors de la consultation des souhaits de la communauté pour 2021]].
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/08|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W08"/>
21 février 2022 à 20:12 (CET)
<!-- Message envoyé par User:Trizek (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22847768 -->
== Wiki Loves Folklore is extended till 15th March ==
<div lang="en" dir="ltr" class="mw-content-ltr">{{int:please-translate}}
[[File:Wiki Loves Folklore Logo.svg|right|frameless|180px]]
Greetings from Wiki Loves Folklore International Team,
We are pleased to inform you that [[:c:Commons:Wiki Loves Folklore|Wiki Loves Folklore]] an international photographic contest on Wikimedia Commons has been extended till the '''15th of March 2022'''. The scope of the contest is focused on folk culture of different regions on categories, such as, but not limited to, folk festivals, folk dances, folk music, folk activities, etc.
We would like to have your immense participation in the photographic contest to document your local Folk culture on Wikipedia. You can also help with the [[:c:Commons:Wiki Loves Folklore 2022/Translations|translation]] of project pages and share a word in your local language.
Best wishes,
'''International Team'''<br />
'''Wiki Loves Folklore'''
[[Utilisateur:MediaWiki message delivery|MediaWiki message delivery]] ([[Discussion utilisateur:MediaWiki message delivery|discussion]]) 22 février 2022 à 05:50 (CET)
</div>
<!-- Message envoyé par User:Rockpeterson@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=22754428 -->
== Ratification des directives d'application du Code de Conduite Universel ==
Bonjour,
Les ''[[m:Universal Code of Conduct/Enforcement guidelines/fr|directrices d'application du Code de Conduite Universel (UCoC) ]]'' ont été publiées le 24 janvier 2022 comme une proposition de méthode pour appliquer le [[m:Universal Code of Conduct/fr|Code de conduite universel]] au sein du mouvement. Vous pouvez partager vos commentaires ici ou sur [[m:Talk:Universal Code of Conduct/Enforcement guidelines|la page de discussion Meta-wiki]].
Il y aura des conversations sur Zoom le 25 février 2022 à 12:00 UTC, et le 4 mars 2022 à 15:00 UTC. '''[[m:Special:MyLanguage/Universal Code of Conduct/Conversations|Rejoignez l'équipe du projet UCoC et les membres du comité de rédaction pour discuter des directives et du processus de vote]]'''.
La période de vote s'étend du '''7 au 21 mars'''. [[m:Universal Code of Conduct/Enforcement guidelines/Voting|Plus de détails sur la page d'information sur le vote]]''. Vous pouvez également consulter l'[[m:Universal Code of Conduct/Project#Timeline|agenda sur Meta-wiki]].
Merci pour votre participation !
Bien à vous,
L'équipe Stratégie et Gouvernance du mouvement
<!-- Xeno (WMF) pour -->[[Utilisateur:MPossoupe (WMF)|MPossoupe (WMF)]] ([[Discussion utilisateur:MPossoupe (WMF)|d]]) 24 février 2022 à 22:08 (CET)
== Coming soon ==
<div class="plainlinks mw-content-ltr" lang="fr" dir="ltr">
=== Bientôt sur votre wiki : diverses améliorations autour des modèles ===
Bonjour,
À partir du 9 mars, plusieurs améliorations autour des modèles seront effectives sur votre wiki :
* améliorations fondamentales de la [[Mw:Special:MyLanguage/Help:VisualEditor/User guide#Editing templates|boite de dialogue des modèles dans l’éditeur visuel]] ([[m:WMDE Technical Wishes/VisualEditor template dialog improvements|1]], [[m:WMDE Technical Wishes/Removing a template from a page using the VisualEditor|2]]) ;
* améliorations pour rendre plus facile l’ajout de modèles sur une page ([[m:WMDE Technical Wishes/Finding and inserting templates|3]]) (pour la boite de dialogue des modèles [[Mw:Special:MyLanguage/Help:VisualEditor/User guide#Editing templates|dans l’éditeur visuel]], [[Mw:Special:MyLanguage/Extension:WikiEditor#/media/File:VectorEditorBasic-en.png|dans l’éditeur 2010 de wikicode]] et [[Mw:Special:MyLanguage/2017 wikitext editor|dans le nouveau mode wikicode]]) ;
* et des améliorations dans l’extension de coloration syntaxique [[Mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] ([[m:WMDE Technical Wishes/Improved Color Scheme of Syntax Highlighting|4]], [[m:WMDE Technical Wishes/Bracket Matching|5]]) (disponible sur les wikis ayant une écriture de gauche à droite).
Tous ces changements font partie du projet « [[m:WMDE Technical Wishes/Templates|Modèles]] » de [[m:WMDE Technical Wishes|l’équipe Souhaits techniques de WMDE]]. Nous espérons qu’ils vous soient utiles dans votre travail, et nous apprécierons beaucoup les retours que vous pourrez nous faire sur les pages de discussion de ces projets. </div> - [[m:User:Johanna Strodt (WMDE)|Johanna Strodt (WMDE)]] 28 février 2022 à 13:38 (CET)
<!-- Message envoyé par User:Johanna Strodt (WMDE)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=WMDE_Technical_Wishes/Technical_Wishes_News_list_all_village_pumps&oldid=22907463 -->
== [[m:Special:MyLanguage/Tech/News/2022/09|Tech News: 2022-09]] ==
<section begin="technews-2022-W09"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/09|D’autres traductions]] sont disponibles.
'''Changements récents'''
* En recherchant des modifications par [[mw:Special:MyLanguage/Help:Tags|balises]], par exemple dans l’historique d’une page ou dans les contributions d’un utilisateur, une liste déroulante de balises possibles est dorénavant accessible. Il s’agit d’[[m:Community Wishlist Survey 2022/Miscellaneous/Improve plain-text change tag selector|une demande de la Consultation des souhaits de la communauté pour 2022]]. [https://phabricator.wikimedia.org/T27909]
* Les tuteurs utilisant le [[mw:Special:MyLanguage/Growth/Mentor_dashboard|tableau de bord des tuteurs]] du projet Croissance verront désormais les nouveaux qui leur sont assignés s’ils ont entre 1 et 200 contributions. Auparavant, tous les nouveaux assignés au tuteur étaient visibles sur le tableau de bord, même ceux ayant réalisé des centaines de modifications. Les tuteurs peuvent toujours changer ces valeurs en utilisant les filtres du tableau de bord ; les derniers filtres utilisés sont enregistrés. [https://phabricator.wikimedia.org/T301268][https://phabricator.wikimedia.org/T294460]
* [[File:Octicons-tools.svg|15px|link=|alt=|Sujet technique]] Le groupe utilisateur <code>oversight</code> a été renommé en <code>suppress</code>, pour des raisons techniques. Vous allez devoir mettre à jour les utilisations locales de l’ancien nom, par exemple dans les gadgets, liens vers Spécial:Liste_des_utilisateurs ou utilisations de [[mw:Special:MyLanguage/Help:Magic_words|NUMBERINGROUP]].
'''Problèmes'''
* Les changements récents dans le code HTML des pages de [[mw:Special:MyLanguage/Help:Tracking changes|suivi des modifications]] a causé certains problèmes aux lecteurs d’écrans. Cela est maintenant résolu. [https://phabricator.wikimedia.org/T298638]
'''Changements à venir cette semaine'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] La [[mw:MediaWiki 1.38/wmf.24|nouvelle version]] de MediaWiki sera installée sur les wikis de test et sur MediaWiki.org à partir du {{#time:j xg|2022-03-01|fr}}. Elle sera installée sur tous les wikis hormis la majorité des Wikipédias le {{#time:j xg|2022-03-02|fr}} et enfin sur toutes les Wikipédias restantes le {{#time:j xg|2022-03-03|fr}} ([[mw:MediaWiki 1.38/Roadmap|calendrier]]).
'''Futurs changements'''
* Travailler avec les modèles va devenir plus facile : [[m:WMDE_Technical_Wishes/Templates|plusieurs améliorations]] sont prévues pour le 9 mars pour la plupart des wikis, et le 16 mars pour la Wikipédia en anglais. Parmi les améliorations : l’appairage des accolades, la colorisation syntaxique, la recherche et l’insertion de modèles et des fonctionnalités de l’éditeur visuel liées.
* Si vous êtes {{GENDER:|développeur|développeuse}} de modèle ou {{GENDER:|administrateur|administratrice}} d’interface, et que vous utilisez ou remplacez les CSS par défaut des boites de retour des utilisateurs (les classes <code dir=ltr>successbox, messagebox, errorbox, warningbox</code>), sachez que ces classes et CSS associées seront bientôt supprimée du cœur de MediaWiki, pour éviter les problèmes lorsque les mêmes noms de classe sont aussi utilisés sur un wiki. N’hésitez pas à nous faire savoir par un commentaire sur [[phab:T300314]] si vous pensez être touché{{GENDER:||e}} par ce changement.
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/09|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W09"/>
28 février 2022 à 23:59 (CET)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22902593 -->
== Rapports de l'appel à commentaires sur les élections 2022 du conseil d'administration de de la WMF ==
:''[[m:Special:MyLanguage/Wikimedia Foundation Board of Trustees/Call for feedback: Board of Trustees elections/Call for Feedback is now closed|Ce message est disponible dans d'autres langues sur Meta-wiki.]]''
:''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation Board of Trustees/Call for feedback: Board of Trustees elections/Call for Feedback is now closed|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation Board of Trustees/Call for feedback: Board of Trustees elections/Call for Feedback is now closed}}&language=&action=page&filter= {{int:please-translate}}]</div>''
Bonjour,
L'[[m:Wikimedia Foundation Board of Trustees/Call for feedback: Board of Trustees elections|appel à commentaires sur les élections 2022 au conseil d'administration de la Wikimedia foundation]] est désormais clos. Cet appel a débuté le 10 janvier et s'est terminé le 16 février 2022. L'appel s'est concentré sur [[m:Wikimedia Foundation Board of Trustees/Call for feedback: Board of Trustees elections/Discuss Key Questions#Questions|trois questions-clés]] et a fait l'objet d'un large débat [[m:Talk:Wikimedia Foundation Board of Trustees/Call for feedback: Board of Trustees elections/Discuss Key Questions|sur Meta-wiki]], lors des réunions avec les affiliés et dans diverses conversations communautaires. La communauté et les affiliés ont formulé de nombreuses propositions et points de discussion. Les [[m:Wikimedia Foundation Board of Trustees/Call for feedback: Board of Trustees elections/Reports|rapports]] sont disponibles sur Meta-wiki.
Ces informations seront partagées avec le conseil d'administration et le comité des élections afin qu'ils puissent prendre des décisions éclairées concernant la prochaine élection du conseil d'administration. Le Conseil d'administration fera ensuite une annonce après avoir discuté de ces informations.
Merci à tous ceux et à toutes celles qui ont participé à l'appel à commentaires pour aider à améliorer les processus d'élection du conseil d'administration.
Bien à vous,
L'équipe Stratégie et Gouvernance du Mouvement
[[User:MPossoupe (WMF)|MPossoupe (WMF)]] 3 mars 2022 à 05:20 (CET)
<!-- Message envoyé par User:Xeno (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery/fr&oldid=22796832 -->
== [[m:Special:MyLanguage/Tech/News/2022/10|Tech News: 2022-10]] ==
<section begin="technews-2022-W10"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/10|D’autres traductions]] sont disponibles.
'''Problèmes'''
* Il y a, depuis la semaine dernière, un problème avec certains intitulés de l’interface. Il sera corrigé cette semaine. Ce changement fait partie du travail en cours pour simplifier la prise en charge des habillages qui n’ont pas de mainteneurs actifs. [https://phabricator.wikimedia.org/T301203]
'''Changements à venir cette semaine'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] La [[mw:MediaWiki 1.38/wmf.25|nouvelle version]] de MediaWiki sera installée sur les wikis de test et sur MediaWiki.org à partir du {{#time:j xg|2022-03-08|fr}}. Elle sera installée sur tous les wikis hormis la majorité des Wikipédias le {{#time:j xg|2022-03-09|fr}} et enfin sur toutes les Wikipédias restantes le {{#time:j xg|2022-03-10|fr}} ([[mw:MediaWiki 1.38/Roadmap|calendrier]]).
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/10|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W10"/>
7 mars 2022 à 22:16 (CET)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22958074 -->
== Ouverture du vote de ratification des directives d'application du Code de conduite universel du 7 au 21 mars 2022 ==
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Universal Code of Conduct/Enforcement guidelines/Vote|Ce message est également traduit dans d'autres langues sur Meta-wiki.]]
:''<div class="plainlinks">[[m:Special:MyLanguage/Universal Code of Conduct/Enforcement guidelines/Vote|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Enforcement guidelines/Vote}}&language=&action=page&filter= {{int:please-translate}}]</div>''
Bonjour,
Le vote pour la ratification des [[m:Special:MyLanguage/Universal Code of Conduct/Enforcement guidelines|directives d'application révisées]] du [[m:Special:MyLanguage/Universal Code of Conduct|Code de conduite universel]]. (UCoC) est maintenant ouvert ! Le [[m:Special:MyLanguage/Universal Code of Conduct/Enforcement guidelines/Voting|Vote a commencé sur SecurePoll]]'' le 7 mars 2022 et se terminera le 21 mars 2022. [[m:Universal Code of Conduct/Enforcement guidelines/Voter information|Pour en savoir plus et lire les conditions d'éligibilité]].
Le Code de Conduite Universel (UCoC) établit une base de conduites acceptables au sein de l'ensemble du mouvement. Les directives d'application révisées ont été publiées le 24 janvier 2022 comme une proposition de manière d'appliquer le texte au sein du mouvement. [[m:Special:MyLanguage/Universal Code of Conduct/Project|Pour en savoir plus sur le projet UCoC]].
Vous pouvez également faire vos commentaires dans la langue de votre choix sur les pages de discussion Meta-wiki de l'UCoC ou contacter l'équipe par courriel : ucocproject[[File:At sign.svg|16x16px|link=|(_AT_)]]wikimedia.org
Bien à vous,
L'équipe Stratégie et Gouvernance du Mouvement
Wikimedia Foundation<section end="announcement-content" />
[[User:MPossoupe (WMF)|MPossoupe (WMF)]] 8 mars 2022 à 01:44 (CET)
<!-- Message envoyé par User:Xeno (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery/fr&oldid=22796832 -->
== Wiki Loves Folklore 2022 ends tomorrow ==
[[File:Wiki Loves Folklore Logo.svg|right|frameless|180px]]
International photographic contest [[:c:Commons:Wiki Loves Folklore 2022| Wiki Loves Folklore 2022]] ends on 15th March 2022 23:59:59 UTC. This is the last chance of the year to upload images about local folk culture, festival, cuisine, costume, folklore etc on Wikimedia Commons. Watch out our social media handles for regular updates and declaration of Winners.
([https://www.facebook.com/WikiLovesFolklore/ Facebook] , [https://twitter.com/WikiFolklore Twitter ] , [https://www.instagram.com/wikilovesfolklore/ Instagram])
The writing competition Feminism and Folklore will run till 31st of March 2022 23:59:59 UTC. Write about your local folk tradition, women, folk festivals, folk dances, folk music, folk activities, folk games, folk cuisine, folk wear, folklore, and tradition, including ballads, folktales, fairy tales, legends, traditional song and dance, folk plays, games, seasonal events, calendar customs, folk arts, folk religion, mythology etc. on your local Wikipedia. Check if your [[:m:Feminism and Folklore 2022/Project Page|local Wikipedia is participating]]
A special competition called '''Wiki Loves Falles''' is organised in Spain and the world during 15th March 2022 till 15th April 2022 to document local folk culture and [[:en:Falles|Falles]] in Valencia, Spain. Learn more about it on [[:ca:Viquiprojecte:Falles 2022|Catalan Wikipedia project page]].
We look forward for your immense co-operation.
Thanks
Wiki Loves Folklore international Team
[[Utilisateur:MediaWiki message delivery|MediaWiki message delivery]] ([[Discussion utilisateur:MediaWiki message delivery|discussion]]) 14 mars 2022 à 15:40 (CET)
<!-- Message envoyé par User:Rockpeterson@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=22754428 -->
== [[m:Special:MyLanguage/Tech/News/2022/11|Tech News: 2022-11]] ==
<section begin="technews-2022-W11"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/11|D’autres traductions]] sont disponibles.
'''Changements récents'''
* Dans l’application Wikipédia sur Android, [[mw:Special:MyLanguage/Wikimedia_Apps/Team/Android/Communication#Updates|il est maintenant possible]] de changer la barre d’outils en bas afin que les outils que vous utilisez le plus souvent soient plus faciles à atteindre. L’application dispose maintenant également d’un mode de lecture focalisé, c’est-à-dire centré sur le contenu de la page lue. [https://phabricator.wikimedia.org/T296753][https://phabricator.wikimedia.org/T254771]
'''Problèmes'''
* Un problème est survenu lors de la collecte de certaines données sur les visualisations de pages entre juin 2021 et janvier 2022 sur tous les wikis. Cela signifie que les statistiques sont incomplètes. Pour aider à calculer quels projets ou régions ont été les plus affectés, les jeux de données correspondants sont conservés durant 30 jours supplémentaires. Vous pouvez [[m:Talk:Data_retention_guidelines#Added_exception_for_page_views_investigation|en savoir plus sur Méta-Wiki]].
* Il y a eu un problème avec la base de données le 10 mars : tous les wikis ont été inaccessibles aux utilisateurs connectés pendant 12 minutes. Les utilisateurs déconnectés pouvaient lire les pages mais pas les modifier ni accéder à du contenu non mis en cache. [https://wikitech.wikimedia.org/wiki/Incident_documentation/2022-03-10_MediaWiki_availability]
'''Changements à venir cette semaine'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] La [[mw:MediaWiki 1.38/wmf.26|nouvelle version]] de MediaWiki sera installée sur les wikis de test et sur MediaWiki.org à partir du {{#time:j xg|2022-03-15|fr}}. Elle sera installée sur tous les wikis hormis la majorité des Wikipédias le {{#time:j xg|2022-03-16|fr}} et enfin sur toutes les Wikipédias restantes le {{#time:j xg|2022-03-17|fr}} ([[mw:MediaWiki 1.38/Roadmap|calendrier]]).
* Lorsque l’on [[mw:Special:MyLanguage/Help:System_message#Finding_messages_and_documentation|utilise <bdi lang="zxx" dir="ltr"><code>uselang=qqx</code></bdi> pour trouver les messages traductibles]], cela affichera maintenant toutes les clés possibles de messages pour les onglets de navigation tels que « {{int:vector-view-history}} ». [https://phabricator.wikimedia.org/T300069]
* [[File:Octicons-tools.svg|15px|link=|alt=|Sujet technique]] L’accès à [[{{#special:RevisionDelete}}]] a été étendu pour inclure les utilisateurs qui disposent des droits <code dir=ltr>deletelogentry</code> et <code dir=ltr>deletedhistory</code> par l’intermédiaire des groupes dont ils sont membres. Auparavant, seuls ceux qui disposaient du droit <code dir=ltr>deleterevision</code> pouvaient accéder à cette page spéciale. [https://phabricator.wikimedia.org/T301928]
* Sur les pages [[{{#special:Undelete}}]] qui montrent les différences et révisions, il y aura un lien de retour à la page principale « Restaurer une page » avec la liste des révisions. [https://phabricator.wikimedia.org/T284114]
'''Futurs changements'''
* La Fondation Wikimedia a annoncé la stratégie de mise en œuvre du masquage des adresses IP, ainsi que les étapes suivantes. L’[[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation#feb25|annonce peut être lue ici]].
* Les développeurs de l’[[mw:Special:MyLanguage/Wikimedia Apps/Android FAQ|application Wikipédia pour Android]] travaillent sur de [[mw:Special:MyLanguage/Wikimedia Apps/Team/Android/Communication|nouvelles fonctionnalités]] pour les pages de discussion des utilisateurs et celles des articles. [https://phabricator.wikimedia.org/T297617]
'''Évènements'''
* L’[[mw:Wikimedia Hackathon 2022|Hackathon Wikimedia 2022]] aura lieu sous forme hybride du 20 au 22 mai 2022. Il se tiendra en ligne mais l’organisation de rencontres en présentiel autour du monde sera subventionnée. Les subventions peuvent être demandées jusqu’au 20 mars.
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/11|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W11"/>
14 mars 2022 à 23:07 (CET)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22993074 -->
== Groupe de travail sur le développement du leadership : Candidatez pour rejoindre (du 14 mars au 10 avril 2022) ==
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Leadership Development Working Group/Participate/Announcement|Ce message est également traduit dans d'autres langues sur Meta-wiki.]]''
:''<div class="plainlinks">[[m:Special:MyLanguage/Leadership Development Working Group/Participate/Announcement|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Leadership Development Working Group/Participate/Announcement}}&language=&action=page&filter= {{int:please-translate}}]</div>''
Bonjour,
Merci à tous ceux et toutes celles qui ont participé à l'appel à commentaires sur l'initiative [[m:Special:MyLanguage/Leadership Development Working Group|groupe de travail sur le développement du leadership]]. Un [[m:Special:MyLanguage/Leadership Development Working Group/Participate#5. Summary of Call for Feedback|résumé des commentaires]] est disponible sur Meta-wiki. Ces commentaires seront partagés avec le groupe de travail pour éclairer son travail. La période de candidature pour rejoindre le groupe de travail est maintenant ouverte et se terminera le 10 avril 2022. Veuillez [[m:Special:MyLanguage/Leadership_Development_Working_Group/Purpose_and_Structure#3._How_is_the_working_group_formed_and_structured?|relire les informations sur le groupe de travail]], partager avec les membres de la communauté qui pourraient être intéressés, et '''[[m:Special:MyLanguage/Leadership_Development_Working_Group/Participate#1._How_to_participate|candidatez si vous êtes intéressé.e]]'''.
Merci,
De l'équipe développement communautaire<br /><section end="announcement-content" />
[[User:MPossoupe (WMF)|MPossoupe (WMF)]] 16 mars 2022 à 17:56 (CET)
<!-- Message envoyé par User:Xeno (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery/fr&oldid=23008845 -->
== [[m:Special:MyLanguage/Tech/News/2022/12|Tech News: 2022-12]] ==
<section begin="technews-2022-W12"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/12|D’autres traductions]] sont disponibles.
'''Nouveau rythme de sortie du code pour cette semaine'''
* Il y aura 4 nouvelles versions successives de MediaWiki cette semaine, au lieu d’une seule. Il s’agit d’une expérimentation pour limiter les problèmes et accélérer le déploiement des fonctionnalités. Les versions seront déployées sur tous les wikis, à des moments différents, lundi, mardi et mercredi. Vous pouvez [[mw:Special:MyLanguage/Wikimedia Release Engineering Team/Trainsperiment week|en savoir plus sur ce projet]].
'''Changements récents'''
* Vous pouvez maintenant définir combien de résultats de rechercher afficher par défaut dans [[Special:Preferences#mw-prefsection-searchoptions|vos préférences]]. Il s’agissait du douzième vœu le plus populaire de la [[m:Special:MyLanguage/Community Wishlist Survey 2022/Results|Consultation des souhaits de la communauté pour 2022]]. [https://phabricator.wikimedia.org/T215716]
* [[File:Octicons-tools.svg|15px|link=|alt=|Sujet technique]] L’outil de carnet Jupyter [[wikitech:PAWS|PAWS]] a été mis à jour avec une nouvelle interface. [https://phabricator.wikimedia.org/T295043]
'''Futurs changements'''
* Les cartes interactives utilisant [[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]] fonctionneront bientôt sur les wikis qui utilisent les révisions étiquetées (l’extension [[mw:Special:MyLanguage/Extension:FlaggedRevs|FlaggedRevision]]). [https://wikimedia.sslsurvey.de/Kartographer-Workflows-EN/ Dites-nous] quelles améliorations vous aimeriez dans Kartographer. Vous pouvez utiliser un anglais élémentaire pour répondre à l’enquête. [https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Geoinformation]
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/12|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W12"/>
21 mars 2022 à 17:01 (CET)
<!-- Message envoyé par User:Trizek (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23034693 -->
== [[m:Special:MyLanguage/Tech/News/2022/13|Tech News: 2022-13]] ==
<section begin="technews-2022-W13"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/13|D’autres traductions]] sont disponibles.
'''Changements récents'''
* Un nouvel outil d’importation de fichier sur Wikimedia Commons est disponible pour les utilisateurs de MacOS : [[c:Commons:Sunflower|Sunflower]].
'''Changements à venir cette semaine'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] La [[mw:MediaWiki 1.39/wmf.5|nouvelle version]] de MediaWiki sera installée sur les wikis de test et sur MediaWiki.org à partir du {{#time:j xg|2022-03-29|fr}}. Elle sera installée sur tous les wikis hormis la majorité des Wikipédias le {{#time:j xg|2022-03-30|fr}} et enfin sur toutes les Wikipédias restantes le {{#time:j xg|2022-03-31|fr}} ([[mw:MediaWiki 1.39/Roadmap|calendrier]]).
* Certains wikis seront en lecture seule pendant quelques minutes en raison d’une opération classique sur la base de donnée, le {{#time:j xg|2022-03-29|fr}} à 7 h UTC ([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s3.dblist wikis concernés]) et le {{#time:j xg|2022-03-31|fr}} à 7 h UTC ([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s5.dblist wikis concernés]). [https://phabricator.wikimedia.org/T301850][https://phabricator.wikimedia.org/T303798]
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/13|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W13"/>
28 mars 2022 à 21:54 (CEST)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23073711 -->
== [[m:Special:MyLanguage/Tech/News/2022/14|Tech News: 2022-14]] ==
<section begin="technews-2022-W14"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/14|D’autres traductions]] sont disponibles.
'''Problèmes'''
* Pendant quelques jours, la semaine dernière, les modifications qui étaient suggérées aux nouveaux n’étaient pas étiquetées dans le flux de [[{{#special:recentchanges}}]]. Cela a été corrigé. [https://phabricator.wikimedia.org/T304747]
'''Changements à venir cette semaine'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] La [[mw:MediaWiki 1.39/wmf.6|nouvelle version]] de MediaWiki sera installée sur les wikis de test et sur MediaWiki.org à partir du {{#time:j xg|2022-04-05|fr}}. Elle sera installée sur tous les wikis hormis la majorité des Wikipédias le {{#time:j xg|2022-04-06|fr}} et enfin sur toutes les Wikipédias restantes le {{#time:j xg|2022-04-07|fr}} ([[mw:MediaWiki 1.39/Roadmap|calendrier]]).
* Certains wikis vont passer en lecture seule pendant quelques minutes en raison d’une interversion de leur base de données principale. Cela aura lieu le {{#time:j xg|2022-04-07|fr}} à 7 h UTC ([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s4.dblist wikis concernés]).
'''Futurs changements'''
* À partir de la semaine prochaine, le titre des actualités technique sera traduisible. Lors de la distribution de l’infolettre, son titre ne sera plus « <code dir=ltr>Tech News: 2022-14</code> ». Cela peut affecter certains filtres définis par les communautés. [https://phabricator.wikimedia.org/T302920]
* Durant les prochains mois, la fonctionnalité « [[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|Ajouter un lien]] » va arriver sur [[phab:T304110|d’autres Wikipédia]]. Chaque semaine, quelques wikis seront dotés de cette fonctionnalité. Vous pouvez tester cet outil sur [[mw:Special:MyLanguage/Growth#deploymentstable|les quelques wikis où la « recommandation de liens » est déjà disponible]].
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/14|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W14"/>
4 avril 2022 à 23:01 (CEST)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23097604 -->
== Résultats du vote de ratification des directives d'application du Code de Conduite Universel ==
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Universal Code of Conduct/Enforcement guidelines/Voting/Results/Announcement|Ce message est également traduit dans d'autres langues sur Meta-wiki.]]''
:''<div class="plainlinks">[[m:Special:MyLanguage/Universal Code of Conduct/Enforcement guidelines/Voting/Results/Announcement|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Enforcement guidelines/Voting/Results/Announcement}}&language=&action=page&filter= {{int:please-translate}}]</div>''
L'équipe "Trust and Safety Policy" a publié les résultats du vote de ratification des directives d'application du Code de Conduite Universel. [[m:Special:MyLanguage/Universal Code of Conduct/Enforcement guidelines/Voting/Results| ''Voir les résultats et en lire plus sur Meta-wiki.'']]. Les [[m:Universal_Code_of_Conduct/Enforcement_guidelines/UCoC_Phase_2_Ratification_Results_Announcement|prochaines étapes]] sont également annoncées sur Meta-wiki.<br /><section end="announcement-content" />
[[User:MPossoupe (WMF)|MPossoupe (WMF)]] 6 avril 2022 à 18:20 (CEST)
<!-- Message envoyé par User:MPossoupe (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery/fr&oldid=23008845 -->
== Actualités techniques no 2022-15 ==
<section begin="technews-2022-W15"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/15|D’autres traductions]] sont disponibles.
'''Changements récents'''
* Une nouvelle page publique d’état des serveurs est disponible sur <span class="mw-content-ltr" lang="en" dir="ltr">[https://www.wikimediastatus.net/ www.wikimediastatus.net]</span>. Ce site affiche cinq statistiques de haut niveau donnant le niveau de fonctionnement et de performance de l’environnement technique de nos wikis. Elle contient aussi des rapports manuels pour expliquer les incidents aussi rapidement que possible, que les ingénieurs écrivent tout en corrigeant le problème. Le site est séparée de notre infrastructure de production et hébergée par un service externe pour rester accessible même quand les wikis sont brièvement indisponibles. Vous pouvez [https://diff.wikimedia.org/2022/03/31/announcing-www-wikimediastatus-net/ en savoir plus sur ce projet].
* Sur les Wiktionnaires, le logiciel permettant de lire les vidéos et les fichiers audio sur les pages a changé. L’ancien lecteur a été supprimé. L'affichage de certains lecteurs audio va devenir plus large avec ce changement. [[mw:Special:MyLanguage/Extension:TimedMediaHandler/VideoJS_Player|Le nouveau lecteur]] a été une fonctionnalité bêta pendant plus de quatre ans. [https://phabricator.wikimedia.org/T100106][https://phabricator.wikimedia.org/T248418]
'''Changements à venir cette semaine'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] La [[mw:MediaWiki 1.39/wmf.7|nouvelle version]] de MediaWiki sera installée sur les wikis de test et sur MediaWiki.org à partir du {{#time:j xg|2022-04-12|fr}}. Elle sera installée sur tous les wikis hormis la majorité des Wikipédias le {{#time:j xg|2022-04-13|fr}} et enfin sur toutes les Wikipédias restantes le {{#time:j xg|2022-04-14|fr}} ([[mw:MediaWiki 1.39/Roadmap|calendrier]]).
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/15|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W15"/>
11 avril 2022 à 21:44 (CEST)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23124108 -->
== Nouvelles de la Stratégie et de la Gouvernance du Mouvement – Numéro 6 ==
<section begin="ucoc-newsletter"/>
<div style = "line-height: 1.2">
<span style="font-size:200%;">'''Nouvelles de la Stratégie et de la Gouvernance du Mouvement'''</span><br>
<span style="font-size:120%; color:#404040;">'''Numéro 6, avril 2022'''</span><span style="font-size:120%; float:right;">[[m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/6|'''Lire le bulletin complet''']]</span>
----
Bienvenue au sixième numéro des Nouvelles de la Stratégie et de la Gouvernance du Mouvement (anciennement connues sous le nom de Nouvelles du Code de Conduite Universel) ! Ce bulletin d'information révisé diffuse des nouvelles et des événements pertinents concernant la Charte du Mouvement, le Code de Conduite Universel, les subventions d'implémentation de la Stratégie du Mouvement, les élections du Conseil d'administration et d'autres sujets relatifs à la Stratégie et la Gouvernance du Mouvement.
Cette lettre d'information sera distribuée tous les 3 mois, tandis que des mises à jour plus fréquentes seront également envoyées aux abonné.es toutes les semaines. N'oubliez pas de vous abonner [[:m:Special:MyLanguage/Global message delivery/Targets/MSG Newsletter Subscription|ici]] si vous souhaitez recevoir ces mises à jour.
</div><div style="margin-top:3px; padding:10px 10px 10px 20px; background:#fffff; border:2px solid #808080; border-radius:4px; font-size:100%;">
*'''Développement du leadership -''' Un groupe de travail est en train de se former ! - Les candidatures pour rejoindre le groupe de travail sur le développement du leadership ont été clôturées le 10 avril 2022. Jusqu'à 12 membres de la communauté seront sélectionnés pour participer au groupe de travail. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/6#A1|continuer la lecture]])
*'''Les résultats de la ratification du Code de conduite universel sont connus ! -''' Le processus global de décision de l'application du code de conduite universel via SecurePoll s'est déroulé du 7 au 21 mars. Plus de 2 300 électeurs éligibles, issus d'au moins 128 projets différents, ont fait part de leur avis et de leurs commentaires. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/6#A2|continuer la lecture]])
*'''Discussions sur les Hubs-''' L'événement "Global Conversation" sur les Hubs régionaux et thématiques a eu lieu le samedi 12 mars. 84 Wikimédiens et wikimédiennes venant de tout le mouvement y ont participé. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/6#A3|continuer la lecture]])
*'''Les subventions pour la stratégie du mouvement restent ouvertes ! -''' Depuis le début de l'année, six propositions d'une valeur totale d'environ 80 000 USD ont été approuvées. Vous avez une idée de projet sur la stratégie du mouvement ? N'hésitez pas à nous contacter ! ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/6#A4|continuer la lecture]])
*'''Le Comité de rédaction de la Charte du Mouvement est prêt ! -''' Le Comité de quinze membres qui a été élu en octobre 2021, s'est mis d'accord sur les valeurs et les méthodes essentielles de son travail, et a commencé à créer les grandes lignes du projet de Charte du Mouvement. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/6#A5|continuer la lecture]])
*'''Présentation du "Bulletin hebdomadaire sur la Stratégie du Mouvement" -''' Contribuez et abonnez-vous ! - L'équipe MSG vient de lancer le portail des mises à jour, qui est connecté aux différentes pages de la Stratégie du Mouvement sur Meta-wiki. Abonnez-vous pour recevoir les dernières nouvelles sur les différents projets en cours. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/6#A6|continuer la lecture]])
*'''Blogs Diff -'''. Consultez les publications les plus récentes sur la Stratégie du Mouvement sur Wikimedia Diff. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/6#A7|continuer la lecture]])
</div><section end="ucoc-newsletter"/>
[[User:MPossoupe (WMF)|MPossoupe (WMF)]] 13 avril 2022 à 19:04 (CEST)
<!-- Message envoyé par User:MPossoupe (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery/fr&oldid=23008845 -->
== Actualités techniques n° 2022-16 ==
<section begin="technews-2022-W16"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/16|D’autres traductions]] sont disponibles.
'''Changements à venir cette semaine'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] La [[mw:MediaWiki 1.39/wmf.8|nouvelle version]] de MediaWiki sera installée sur les wikis de test et sur MediaWiki.org à partir du {{#time:j xg|2022-04-19|fr}}. Elle sera installée sur tous les wikis hormis la majorité des Wikipédias le {{#time:j xg|2022-04-20|fr}} et enfin sur toutes les Wikipédias restantes le {{#time:j xg|2022-04-21|fr}} ([[mw:MediaWiki 1.39/Roadmap|calendrier]]).
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] Certains wikis seront en lecture seule pendant quelques minutes en raison d’une opération classique sur la base de donnée, le {{#time:j xg|2022-04-19|fr}} à 7 h UTC ([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s7.dblist wikis concernés]) et le {{#time:j xg|2022-04-21|fr}} à 7 h UTC ([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s8.dblist wikis concernés]).
* Les administrateurs auront désormais [[m:Community Wishlist Survey 2021/(Un)delete associated talk page|une option pour supprimer (ou restaurer) la page de discussion associée]] à page lors de sa suppression (ou restauration). L’API a aussi un point terminal avec cette option. C’est la conclusion du [[m:Community Wishlist Survey 2021/Admins and patrollers/(Un)delete associated talk page|11<sup>e</sup> souhait de la Consultation des souhaits de la communauté pour 2021]].
* Sur les [[mw:Special:MyLanguage/Reading/Web/Desktop_Improvements#test-wikis|wikis choisis]], 50 % des utilisateurs connectés verront le nouveau [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Features/Table of contents|sommaire]]. En faisant défiler la page, le sommaire restera à la même place sur l’écran. Cela fait partie du projets [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|Améliorations pour ordinateur]]. [https://phabricator.wikimedia.org/T304169]
* [[File:Octicons-tools.svg|15px|link=|alt=|Sujet technique]] Les boites de message produites par le code de MediaWiki n’auront plus les classes CSS <code dir=ltr>successbox</code>, <code dir=ltr>errorbox</code>, <code dir=ltr>warningbox</code>. Les styles pour ces classes et <code dir=ltr>messagebox</code> seront retirées du cœur de MediaWiki. Cela n’affecte que les wikis qui utilisent ces classes dans le wikicode, ou changent leur apparence à l’aide de CSS s’appliquant à tout le site. Vérifiez si votre wiki les utilise. Cela a été précédemment annoncé dans [[m:Special:MyLanguage/Tech/News/2022/09|le numéro du 28 février des actualités techniques]].
'''Futurs changements'''
* [[mw:Special:MyLanguage/Extension:Kartographer|Kartographer]] va devenir compatible avec la [[mw:Special:MyLanguage/Extension:FlaggedRevs|stabilisation des pages de FlaggedRevisions]]. Les cartes Kartographer fonctionneront aussi sur les pages avec des [[mw:Special:MyLanguage/Help:Pending changes|changements en attente]][https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Geoinformation#Project_descriptions].La documentation Kartographer a bien été mise à jour. [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Extension:Kartographer/Getting_started] [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:VisualEditor/Maps] [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Extension:Kartographer]
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/16|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W16"/>
19 avril 2022 à 01:11 (CEST)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23167004 -->
== Participez aux conversations publiques sur le Plan annuel de la Wikimedia Foundation avec Maryana Iskander ==
<section begin="announcement-content" />
:[[m:Special:MyLanguage/Wikimedia Foundation Annual Plan/2022-2023/Conversations/Announcement|''Vous trouverez ce message traduit dans d’autres langues sur Meta-Wiki.'']]
:''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation Annual Plan/2022-2023/Conversations/Announcement|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation Annual Plan/2022-2023/Conversations/Announcement}}&language=&action=page&filter= {{int:please-translate}}]</div>''
Bonjour,
Les équipes [[m:Special:MyLanguage/Movement Communications|Communication interne]] et [[m:Special:MyLanguage/Movement Strategy and Governance|Stratégie et gouvernance du mouvement]] vous invite à discuter du '''[[m:Special:MyLanguage/Wikimedia Foundation Annual Plan/2022-2023/draft|Projet annuel 2022–23 de Wikimedia Foundation]]''', un document définissant le travail à faire pour la Wikimedia Foundation.
Ces conversations publiques s’inscrivent dans [[m:Special:MyLanguage/Wikimedia Foundation Chief Executive Officer/Maryana’s Listening Tour|la « tournée d’écoute » de la directrice générale de la Wikimedia Foundation]], [[m:User:MIskander-WMF|Maryana Iskander]].
Les conversations publiques portent sur les points suivants :
* La [[m:Special:MyLanguage/Wikimedia 2030|Stratégie 2030 du mouvement Wikimedia]] définit nos orientations vers la « connaissance comme service » et « l’équité des connaissances ». La Wikimedia Foundation veut définir son projet selon ces deux objectifs. Comment, selon-vous, la Wikimedia Foundation doit-elle les appliquer à notre travail ?
* La Wikimedia Foundation continue d’étudier la meilleure manière de travailler au niveau régional. Notre régionalisation s’est accentuée dans des domaines tels que les subventions, les nouvelles fonctionnalités et les consultations communautaires. Qu’est-ce qui fonctionne bien ? Qu’est-ce que nous pouvons améliorer ?
* Tout le monde peut contribuer au processus de la Stratégie du mouvement. Mettons en commun nos activités, idées, demandes et les leçons que nous avons appris. Comment la Wikimedia Foundation peut-elle soutenir davantage les bénévoles et organisations affiliées qui travaillent sur la Stratégie du mouvement ?
Vous pouvez consulter [[m:Special:MyLanguage/Wikimedia Foundation Annual Plan/2022-2023/draft/Your Input|'''le calendrier des visioconférences sur Meta-Wiki''']].
Les informations seront disponibles dans plusieurs langues. Chaque visioconférence sera ouverte à toutes celles-et-ceux qui le souhaitent. Une interprétation en direct sera disponible pour certaines visioconférences.
Bien cordialement,<br /><section end="announcement-content" />
[[User:MPossoupe (WMF)|MPossoupe (WMF)]] 20 avril 2022 à 09:26 (CEST)
<!-- Message envoyé par User:MPossoupe (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery/fr&oldid=23008845 -->
== Les prochaines étapes du processus du Code de Conduite Universel (UCoC) et de ses directives d'application. ==
<section begin="announcement-content" />
:''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation Board noticeboard/April 2022 - Board of Trustees on Next steps: Universal Code of Conduct (UCoC) and UCoC Enforcement Guidelines|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation Board noticeboard/April 2022 - Board of Trustees on Next steps: Universal Code of Conduct (UCoC) and UCoC Enforcement Guidelines}}&language=&action=page&filter= {{int:please-translate}}]</div>''
Le comité des Affaires Communautaires du conseil d'administration de la Wikimedia Foundation souhaite remercier tous ceux et celles qui ont participé au vote de la communauté sur les directives d'application du Code de Conduite Universel (UCoC).
Le groupe de scrutateurs bénévoles a terminé la vérification de l'exactitude du vote et a indiqué que le nombre total de votes reçus était de 2 283. Sur les 2 283 votes reçus, un total de 1 338 (58,6 %) membres de la communauté ont voté pour les directives d'application et un total de 945 (41,4 %) membres de la communauté ont voté contre. En outre, 658 participants ont laissé des commentaires, dont 77 % étaient rédigés en anglais.
Nous reconnaissons et apprécions la passion et l'engagement dont les membres de la communauté ont fait preuve pour créer une culture sûre et accueillante qui met fin aux comportements hostiles et toxiques, soutient les personnes visées par ces comportements et encourage les personnes de bonne foi à être productives sur les projets Wikimedia.
Même à ce stade où le processus n'est pas encore achevé, cela est évident dans les commentaires reçus. Bien que les directives d'application aient atteint le seuil de soutien nécessaire pour que le conseil d'administration les examine, nous avons encouragé les électeurs, quel que soit leur vote, à faire part de leurs commentaires sur les éléments des directives d'application qui, selon eux, devaient être modifiés ou corrigés, ainsi que sur les raisons de ces modifications, au cas où il semblerait judicieux de lancer une nouvelle série de modifications qui répondraient aux préoccupations de la communauté.
Le personnel de la Fondation qui a passé en revue les commentaires, nous a informés de certains des thèmes émergents, et en conséquence, nous avons décidé, en tant que Comité des Affaires Communautaires, de demander à la Fondation de reconvoquer le comité de rédaction et d'entreprendre un autre engagement communautaire pour affiner les directives d'application sur la base des commentaires de la communauté reçus lors du vote qui vient de se terminer.
Pour plus de clarté, ces commentaires ont été regroupés en 4 sections comme suit :
# Identifier le type, le but et l'applicabilité de la formation ;
# Simplifier la langue pour faciliter la traduction et la compréhension par les non-experts ;
# Explorer le concept d'affirmation, y compris ses avantages et ses inconvénients ;
# Revoir les rôles contradictoires de la vie privée/protection des victimes et du droit d'être entendu.
D'autres questions peuvent émerger au cours des conversations, et en particulier au fur et à mesure de l'évolution du projet de directives d'application, mais nous considérons que ce sont les principaux domaines de préoccupation des électeurs, électrices et nous demandons au personnel de faciliter l'examen de ces questions. Après un engagement plus poussé, la Fondation devrait organiser à nouveau le vote de la communauté pour évaluer le projet de directives d'application remanié afin de voir si le nouveau document est alors prêt pour sa ratification officielle.
De plus, nous sommes conscients des préoccupations relatives à la note 3.1 du Code de Conduite Universel. Nous demandons à la Fondation de faciliter la révision de cette note afin de s'assurer que le texte répond à ses objectifs de soutien à une communauté sûre et inclusive, sans attendre la révision prévue de l'ensemble du texte à la fin de l'année.
Encore une fois, nous remercions toutes celles et tous ceux qui ont participé, qui ont réfléchi à ces enjeux cruciaux et difficiles et qui ont contribué à de meilleures approches dans l'ensemble du mouvement pour bien travailler ensemble.
Bien à vous,
Rosie
Rosie Stephenson-Goodknight (she/her)<br />
Présidente par intérim du Comité des Affaires Communautaires <br />
Conseil d’administration de la Fondation Wikimédia<br /><section end="announcement-content" />
[[User:MPossoupe (WMF)|MPossoupe (WMF)]] 25 avril 2022 à 12:11 (CEST)
<!-- Message envoyé par User:MPossoupe (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery/fr&oldid=23008845 -->
== Actualités techniques n° 2022-17 ==
<section begin="technews-2022-W17"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/17|D’autres traductions]] sont disponibles.
'''Changements récents'''
* Sur [https://noc.wikimedia.org/conf/dblists/group1.dblist de nombreux wikis] (le groupe 1), le logiciel permettant de lire les vidéos et les fichiers audio sur les pages a changé. L’ancien lecteur a été retiré. Avec ce changement, certains lecteurs audio vont devenir plus larges. [[mw:Special:MyLanguage/Extension:TimedMediaHandler/VideoJS_Player|Le nouveau lecteur]] a été une fonctionnalité bêta pendant plus de quatre ans. [https://phabricator.wikimedia.org/T100106][https://phabricator.wikimedia.org/T248418]
'''Changements à venir cette semaine'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] La [[mw:MediaWiki 1.39/wmf.9|nouvelle version]] de MediaWiki sera installée sur les wikis de test et sur MediaWiki.org à partir du {{#time:j xg|2022-04-26|fr}}. Elle sera installée sur tous les wikis hormis la majorité des Wikipédias le {{#time:j xg|2022-04-27|fr}} et enfin sur toutes les Wikipédias restantes le {{#time:j xg|2022-04-28|fr}} ([[mw:MediaWiki 1.39/Roadmap|calendrier]]).
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] Certains wikis vont passer en lecture seule pendant quelques minutes en raison d’une interversion de leur base de données principale. Cela aura lieu le {{#time:j xg|2022-04-26|fr}} à 7 h UTC ([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s2.dblist wikis concernés]).
* Certains très vieux navigateurs et systèmes d’exploitation ne sont plus pris en charge. Sur les wikis, des choses peuvent paraitre étranges voire ne pas fonctionner du tout sur les très vieux navigateurs tels qu’Internet Explorer 9 ou 10, Android 4 ou Firefox 38 et précédents. [https://phabricator.wikimedia.org/T306486]
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/17|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W17"/>
26 avril 2022 à 00:56 (CEST)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23187115 -->
== Appel à candidatures pour les élections 2022 du conseil d'administration ==
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Announcement/Call for Candidates/Short|Ce message est également traduit dans d'autres langues sur Meta-wiki.]]''
:''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Announcement/Call for Candidates/Short|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections/2022/Announcement/Call for Candidates/Short}}&language=&action=page&filter= {{int:please-translate}}]</div>''
Bonjour,
Les candidatures pour l'élection de nouveaux administrateurs et de nouvelles administratrices au conseil d'administration de la Wikimedia foundation sont ouvertes.
Cette année, 2 administrateurs.trices seront élu.es. C'est l'occasion d'améliorer la représentativité, la diversité et l'expertise au sein du Conseil.
Les sièges à pourvoir cette année ont été précédemment [[m:Affiliate-selected Board seats/2019|sélectionnés par les affiliés]]. Cette année, une méthode différente sera utilisée :
# Les candidats et candidates soumettent leur candidature avant le 9 mai ; ce délai peut être légèrement prolongé.
# Tout membre de la communauté peut se présenter s'il remplit les conditions décrites [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Apply to be a Candidate|ici.]]
# Les affiliés votent pour retenir six (6) noms à partir de la liste.
# Chaque affilié dispose d'une voix. Le vote des affiliés devrait avoir lieu au début du mois de juillet.
# La communauté vote pour élire deux des six candidat.es présélectionné.es.
# Le vote de la communauté doit commencer le 15 août et se terminer le 29 août.
# Le conseil d'administration nommera les deux candidat.es nouvellement élu.es.
# Cette dernière étape, qui conclura le processus électoral, devrait avoir lieu au début du mois d'octobre 2022.
Vous connaissez une candidate potentielle ou un candidat potentiel ? Encouragez-les à se présenter !
Vous êtes une candidate potentielle ou un candidat potentiel ? N'hésitez pas à candidater !
Plus de détails sur cette [[m:Wikimedia_Foundation_elections/2022/Apply_to_be_a_Candidate|page Meta-wiki]]
Merci pour votre soutien !
L'équipe Stratégie et Gouvernance du mouvement au nom du comité des élections et du conseil d'administration.<br /><section end="announcement-content" />
[[User:MPossoupe (WMF)|MPossoupe (WMF)]] 26 avril 2022 à 18:42 (CEST)
<!-- Message envoyé par User:MPossoupe (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery/fr&oldid=23008845 -->
== Parlons des améliorations de l'interface ordinateur ==
[[File:New table of contents shown on English wikipedia.png|thumb]]
Bonjour !
Avez-vous remarqué que certains wikis ont une interface pour ordinateur différente ? Vous êtes curieux de connaître les prochaines étapes ? Vous avez peut-être des questions ou des idées concernant le design ou les aspects techniques ?
Participez à une réunion en ligne avec l'équipe qui travaille aux [[mw:Special:MyLanguage/Reading/Web/Desktop_Improvements|améliorations de l'interface pour ordinateur de bureau]] ! La rencontre aura lieu le '''29 avril 2022 à [https://www.timeanddate.com/worldclock/fixedtime.html?iso=20220429T1300 13:00] et [https://www.timeanddate.com/worldclock/fixedtime.html?iso=20220429T1800 18:00 UTC]''' sur Zoom et aura une durée d'une heure. '''[https://wikimedia.zoom.us/j/88045453898 Cliquez ici pour vous inscrire]'''. ID de la réunion : 88045453898. [https://wikimedia.zoom.us/u/kcOMICmyyA Numéros de téléphone locaux].
'''Ordre du jour'''
* Point d’information sur les développements récents
* Questions et réponses, discussion
'''Format'''
La réunion ne sera ni enregistrée ni diffusée. Les notes seront prises dans un [https://docs.google.com/document/d/1G4tfss-JBVxyZMxGlOj5MCBhOO-0sLekquFoa2XiQb8/edit# fichier Google Docs]. Cette réunion sera animée par [[mw:User:OVasileva_(WMF)|Olga Vasileva]] (la chef d'équipe). La partie de présentation sera en langue anglaise.
Nous pouvons répondre aux questions posées en français, italien (seulement à 18:00 UTC), anglais et polonais (aux deux réunions). Si vous préférez poser vos questions en avance, ajoutez-les dans la [[mw:Talk:Reading/Web/Desktop_Improvements|page de discussion]] ou envoyez-les à sgrabarczuk@wikimedia.org.
Lors de cette réunion, la [[foundation:Friendly_space_policy|Politique des Espaces Conviviaux]] et le [[mw:Special:MyLanguage/Code_of_Conduct|Code de Conduite]] pour les Espaces Techniques Wikimédia s'appliquent. Zoom n'est pas soumis à la [[foundation:Privacy_policy|Politique de confidentialité de WMF]].
Nous espérons vous voir ! [[User:SGrabarczuk (WMF)|SGrabarczuk (WMF)]] ([[User talk:SGrabarczuk (WMF)|discuter]]) 27 avril 2022 à 15:12 (CEST)
<!-- Message envoyé par User:SGrabarczuk (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=User:SGrabarczuk_(WMF)/sandbox/MM/Francophones&oldid=20689614 -->
== Coming soon: Improvements for templates ==
<div class="plainlinks mw-content-ltr" lang="fr" dir="ltr">
<!--T:11-->
[[File:Overview of changes in the VisualEditor template dialog by WMDE Technical Wishes.webm|thumb|Changements majeurs dans la boite de dialogue des modèles]]
Bonjour,
De nouveaux changements concernant les modèles vont arriver sur votre wiki.
La [[mw:Special:MyLanguage/Help:VisualEditor/User guide#Editing templates|'''boite de dialogue des modèles''' de l’éditeur visuel]] et de [[mw:Special:MyLanguage/2017 wikitext editor|l’éditeur 2017 de wikicode]] (en bêta) vont '''recevoir des améliorations majeures''' qui devraient aider les utilisateurs à mieux comprendre les attendus des modèles, comment y naviguer et comment ajouter des paramètres.
* [[metawiki:WMDE Technical Wishes/VisualEditor template dialog improvements|Page du projet]], [[metawiki:Talk:WMDE Technical Wishes/VisualEditor template dialog improvements|page de discussion]]
Avec la '''coloration syntaxique''' (de l’extension [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]]), vous pouvez activer une palette de couleurs '''pour daltoniens''' à l’aide d’un paramètre utilisateur.
* [[metawiki:WMDE Technical Wishes/Improved Color Scheme of Syntax Highlighting#Color-blind_mode|Page du projet]], [[metawiki:Talk:WMDE Technical Wishes/Improved Color Scheme of Syntax Highlighting|page de discussion]]
Le déploiement est prévu le 10 mai. Il s’agit du dernier groupe d’améliorations dans le cadre de la mission « [[m:WMDE Technical Wishes/Templates|Modèles]] » de l’[[m:WMDE Technical Wishes|équipe des Souhaits techniques de Wikimedia Allemagne]].
Vos retours sur notre page de discussion seront très appréciés !
</div> -- [[m:User:Johanna Strodt (WMDE)|Johanna Strodt (WMDE)]] 29 avril 2022 à 13:13 (CEST)
<!-- Message envoyé par User:Johanna Strodt (WMDE)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=WMDE_Technical_Wishes/Technical_Wishes_News_list_all_village_pumps&oldid=23222263 -->
== Édition de l’actualité 2022 n°1 ==
<section begin="message"/><i>[[metawiki:VisualEditor/Newsletter/2022/April|Lire dans une autre langue]] • [[m:VisualEditor/Newsletter|Liste d’abonnement à cette lettre d’information multilingue]]</i>
[[File:Junior Contributor New Topic Tool Completion Rate.png|thumb|Les nouveaux éditeurs ont eu plus de succès avec ce nouvel outil.]]
L'[[mw:Special:MyLanguage/Help:DiscussionTools#New discussion tool|outil de Nouveau thème]] aide des éditeurs à créer de nouvelles ==sections== dans des pages de discussion. Les nouveaux éditeurs ont eu plus de succès avec ce nouvel outil. Vous pouvez [[mw:Talk pages project/New topic#21 April 2022|lire le rapport]]. Bientôt, l'équipe d'édition l'offrira à tous les éditeurs des 20 Wikipedias qui ont participé au test. Vous pourrez le désactiver sur [[Special:Preferences#mw-prefsection-editing-discussion]].<section end="message"/>
[[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] 2 mai 2022 à 20:55 (CEST)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/VisualEditor/Newsletter/Wikis_with_VE&oldid=22019984 -->
== Actualités techniques n° 2022-18 ==
<section begin="technews-2022-W18"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/18|D’autres traductions]] sont disponibles.
'''Changements récents'''
* Sur tous [https://noc.wikimedia.org/conf/dblists/group2.dblist les wikis restants] (ceux du groupe 2), le logiciel permettant de lire les vidéos et les fichiers audio sur les pages a changé. L’ancien lecteur a été retiré. Avec ce changement, certains lecteurs audio vont devenir plus larges. [[mw:Special:MyLanguage/Extension:TimedMediaHandler/VideoJS_Player|Le nouveau lecteur]] a été une fonctionnalité bêta pendant plus de quatre ans. [https://phabricator.wikimedia.org/T100106][https://phabricator.wikimedia.org/T248418]
'''Changements à venir cette semaine'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] La [[mw:MediaWiki 1.39/wmf.10|nouvelle version]] de MediaWiki sera installée sur les wikis de test et sur MediaWiki.org à partir du {{#time:j xg|2022-05-03|fr}}. Elle sera installée sur tous les wikis hormis la majorité des Wikipédias le {{#time:j xg|2022-05-04|fr}} et enfin sur toutes les Wikipédias restantes le {{#time:j xg|2022-05-05|fr}} ([[mw:MediaWiki 1.39/Roadmap|calendrier]]).
'''Futurs changements'''
* Les développeurs travaillent sur les pages de discussion dans [[mw:Wikimedia Apps/Team/iOS|l’appli Wikipédia pour iOS]]. Vous pouvez [https://wikimedia.qualtrics.com/jfe/form/SV_9GBcHczQGLbQWTY faire vos retours], en répondant en anglais, allemand, hébreu ou chinois.
* [[m:WMDE_Technical_Wishes/VisualEditor_template_dialog_improvements#Status_and_next_steps|La plupart des wikis]] vont être dotés d’[[m:WMDE_Technical_Wishes/VisualEditor_template_dialog_improvements|une boite de dialogue de modèle améliorée]] dans l’éditeur visuel et le nouvel éditeur de wikicode. [https://phabricator.wikimedia.org/T296759] [https://phabricator.wikimedia.org/T306967]
* Si vous utilisez la coloration syntaxique de l’éditeur de wikicode, vous pourrez bientôt activer [[m:WMDE_Technical_Wishes/Improved_Color_Scheme_of_Syntax_Highlighting#Color-blind_mode|une gamme de couleurs pour daltoniens]]. [https://phabricator.wikimedia.org/T306867]
* [[File:Octicons-tools.svg|15px|link=|alt=|Sujet technique]] Plusieurs ID CSS de messages d’interface MediaWiki vont être retirés. Merci aux contributeurs techniques d’[[phab:T304363|examiner la liste des ID et des liens vers leurs utilisations]]. Cela inclut <code dir=ltr>#mw-anon-edit-warning</code>, <code dir=ltr>#mw-undelete-revision</code> et 3 autres.
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/18|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W18"/>
2 mai 2022 à 21:33 (CEST)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23232924 -->
== Appel à bénévoles des élections ==
<languages/>
Bonjour,
L'équipe Stratégie et gouvernance du mouvement recherche des membres de la communauté pour servir de bénévoles des élections lors de la prochaine élection du conseil d'administration.
Le programme de bénévoles des élections a commencé en 2021 lors de l'élection du conseil d'administration de la Wikimedia Foundation. Ce programme s'est avéré être un succès. Avec l'aide des bénévoles des élections, nous avons pu augmenter la sensibilisation et la participation à l'élection de 1 753 électeurs par rapport à 2017. Le taux de participation global était de 10,13 %, soit 1,1 point de pourcentage de plus, et 214 wikis étaient représentés lors de l'élection.
Mais un total de 74 wikis qui n'ont pas participé en 2017 ont voté à l'élection de 2021. Pouvez-vous aider à améliorer la participation lors des élections de cette année ?
Les bénévoles des élections apporteront leur aide dans les domaines suivants :
* Traduire des messages courts et annoncer le processus électoral en cours dans les canaux communautaires.
* Facultatif : Suivre les canaux de communication communautaires pour recueillir les commentaires et les questions de la communauté
Les bénévoles doivent :
* Maintenir la politique de l'espace convivial pendant les conversations et les événements.
* Présenter les directives et les informations de vote à la communauté de manière neutre.
Voulez-vous être un bénévole électoral et faire en sorte que votre communauté soit représentée lors du vote ? Inscrivez-vous sur [[m:Special:MyLanguage/Movement Strategy and Governance/Election Volunteers/About|cette page Meta-wiki]] pour recevoir des mises à jour. Vous pouvez utiliser [[m:Special:MyLanguage/Talk:Movement Strategy and Governance/Election Volunteers/About|la page de discussions]] pour toute question concernant les traductions.
Bien à vous,
[[User:MPossoupe (WMF)|MPossoupe (WMF)]] 3 mai 2022 à 08:33 (CEST)
<!-- Message envoyé par User:MPossoupe (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery/fr&oldid=23008845 -->
== Actualités techniques n°2022-19 ==
<section begin="technews-2022-W19"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/19|D’autres traductions]] sont disponibles.
'''Changements récents'''
* Vous pouvez dorénavant voir les catégories dans l’[[mw:Special:MyLanguage/Wikimedia Apps/Team/Android|appli Wikipédia pour Android]]. [https://phabricator.wikimedia.org/T73966]
'''Problèmes'''
* Cette semaine, il y a eu un problème avec l’autocomplétion des recherches de Wikidata. Cela a été corrigé. [https://phabricator.wikimedia.org/T307586]
* Cette semaine, l’accès à tous les wikis a été ralenti voire bloqué pendant 20 minutes pour les utilisateurs connectés et les pages non mises en cache. Un problème dans un changement de la base de données était en cause. [https://phabricator.wikimedia.org/T307647]
'''Changements à venir cette semaine'''
* Il n’y aura pas de nouvelle version de MediaWiki cette semaine. [https://phabricator.wikimedia.org/T305217#7894966]
* Des [[m:WMDE Technical Wishes/Geoinformation#Current issues|problèmes d’incompatibilité]] entre les extensions [[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]] et [[mw:Special:MyLanguage/Help:Extension:FlaggedRevs|FlaggedRevs]] vont être corrigés : le déploiement est prévu pour le 10 mai sur tous les wikis. Le 24 mai, Kartographer sera ensuite activé sur [[phab:T307348|les cinq wikis qui n’avaient pas encore activé l’extension]].
* L’habillage [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|Vector (2022)]] va être défini par défaut sur plusieurs autres wikis, dont les Wikipédia en arabe et en catalan. Les utilisateurs connectés pourront toujours revenir à l’ancien Vector (2010). Voir [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates/2022-04 for the largest wikis|les dernières actualités]] concernant Vector (2022).
'''Prochaines réunions'''
* La prochaine [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates/Talk to Web|réunion publique avec l’équipe Web]] concernant Vector (2022) aura lieu le 17 mai. Les dates de réunion suivantes sont prévues : 7 juin, 21 juin, 5 juillet et 19 juillet.
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/19|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W19"/>
9 mai 2022 à 17:22 (CEST)
<!-- Message envoyé par User:Trizek (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23256717 -->
== Actualités techniques n° 2022-20 ==
<section begin="technews-2022-W20"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/20|D’autres traductions]] sont disponibles.
'''Changements à venir cette semaine'''
* Certains wikis pourront bientôt utiliser la fonctionnalité [[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|ajouter un lien]], à partir de mercredi. Les wikis concernés sont {{int:project-localized-name-cawiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-hewiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-hiwiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-kowiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-nowiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-ptwiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-simplewiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-svwiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-ukwiki/fr}}. Il s’agit d’un [[phab:T304110|déploiement progressif de cet outil à d’autres éditions de Wikipédia]]. Les communautés peuvent [[mw:Special:MyLanguage/Growth/Community configuration|configurer localement cette fonctionnalité]]. [https://phabricator.wikimedia.org/T304542]
* Le [[mw:Special:MyLanguage/Wikimedia Hackathon 2022|Marathon de codage Wikimedia 2022]] aura lieu en ligne du 20 au 22 mai, en anglais. Des [[mw:Special:MyLanguage/Wikimedia Hackathon 2022/Meetups|rassemblements locaux de programmeurs]] auront lieu en Allemagne, au Ghana, en Grèce, en Inde, au Nigéria et aux États-Unis. Les Wikimédiens intéressés par la technique peuvent découvrir et travailler sur les projets logiciels. Vous pouvez aussi organiser une session ou publier un projet sur lequel vous voudriez travailler.
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] La [[mw:MediaWiki 1.39/wmf.12|nouvelle version]] de MediaWiki sera installée sur les wikis de test et sur MediaWiki.org à partir du {{#time:j xg|2022-05-17|fr}}. Elle sera installée sur tous les wikis hormis la majorité des Wikipédias le {{#time:j xg|2022-05-18|fr}} et enfin sur toutes les Wikipédias restantes le {{#time:j xg|2022-05-19|fr}} ([[mw:MediaWiki 1.39/Roadmap|calendrier]]).
'''Futurs changements'''
* Vous pourrez bientôt modifier des pages traductibles dans l’éditeur visuel. Les pages traductibles existent, par exemple, sur Méta-Wiki et Commons. [https://diff.wikimedia.org/2022/05/12/mediawiki-1-38-brings-support-for-editing-translatable-pages-with-the-visual-editor/]
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/20|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W20"/>
16 mai 2022 à 20:58 (CEST)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23291515 -->
== Rapport sur les commentaires des électeurs et électrices concernant la ratification des directives d'application du Code de Conduite Universel (UCoC) ==
<section begin="announcement-content" />
:''<div class="plainlinks">[[m:Special:MyLanguage/Universal Code of Conduct/Enforcement guidelines/Voting/Report/Announcement|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Enforcement guidelines/Voting/Report/Announcement}}&language=&action=page&filter= {{int:please-translate}}]</div>''
Bonjour,
L'équipe du projet UCoC a terminé l'analyse des commentaires accompagnant le vote de ratification des directives d'application du code de conduite universel.
Après l'achèvement de la rédaction des directives d'application de l'UCoC en 2022, celles-ci ont été soumises au vote de la communauté wikimédienne. Les votes provenaient de 137 communautés, les 9 premières communautés étant : Wikipédia en anglais, allemand, français, russe, polonais, espagnol, chinois, japonais, italien et Meta-wiki.
Les votant.es ont eu la possibilité de faire des commentaires sur le contenu du projet de document. 658 participant.es ont laissé des commentaires. 77% des commentaires sont rédigés en anglais. Les votant.es ont exprimé leurs opinions dans 24 langues, les plus nombreuses étant l'anglais (508), l'allemand (34), le japonais (28), le français (25) et le russe (12).
Un rapport sera envoyé au comité de rédaction chargé de la révision qui affinera les directives d'application sur la base des commentaires de la communauté reçus lors du vote qui vient de se terminer. Une version publique du rapport est [[m:Special:MyLanguage/Universal Code of Conduct/Enforcement guidelines/Voting/Report|'''publiée en plusieurs langues sur Meta-wiki ici''']]. {{int:please-translate}}
Encore une fois, nous remercions toutes celles et tous ceux qui ont participé au vote et aux discussions. Nous invitons tout le monde à contribuer lors des prochaines discussions communautaires. Plus d'informations sur le Code de Conduite Universel et les directives d'application peuvent être trouvées [[m:Special:MyLanguage/Universal Code of Conduct/Project|sur Meta-wiki]].
Au nom de l'équipe projet UCoC<br /><section end="announcement-content" />
[[User:MPossoupe (WMF)|MPossoupe (WMF)]] 23 mai 2022 à 17:40 (CEST)
<!-- Message envoyé par User:MPossoupe (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery/fr&oldid=23008845 -->
== Actualités techniques n° 2022-21 ==
<section begin="technews-2022-W21"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/21|D’autres traductions]] sont disponibles.
'''Changements récents'''
* Les administrateurs qui utilisent l’interface web mobile peuvent dorénavant accéder à Spécial:Block directement depuis leur page utilisateur. [https://phabricator.wikimedia.org/T307341]
* La page du portail <span class="mw-content-ltr" lang="en" dir="ltr">[https://www.wiktionary.org/ www.wiktionary.org]</span> utilise dorénavant un système de mise à jour automatisé. Les [[m:Project_portals|portails]] des autres projets vont être mise à jour dans les prochains mois. [https://phabricator.wikimedia.org/T304629]
'''Problèmes'''
* L’équipe Croissance s’occupe d’un programme de tutorat pour les nouveaux. Auparavant, les nouveaux ne pouvaient pas désactiver ce programme. À partir du 19 mai 2022, les nouveaux pourront quitter entièrement le système de tutorat pour la Croissance, s’ils souhaitent ne pas avoir de tuteur. [https://phabricator.wikimedia.org/T287915]
* Certains contributeurs ne peuvent pas accéder à l’outil de traduction de contenu s’ils y accèdent par un clic dans le menu Contributions. Le problème est en train d’être résolu. En y accédant directement via Spécial:ContentTranslation, cela devrait fonctionner en attendant. [https://phabricator.wikimedia.org/T308802]
'''Changements à venir cette semaine'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] La [[mw:MediaWiki 1.39/wmf.13|nouvelle version]] de MediaWiki sera installée sur les wikis de test et sur MediaWiki.org à partir du {{#time:j xg|2022-05-24|fr}}. Elle sera installée sur tous les wikis hormis la majorité des Wikipédias le {{#time:j xg|2022-05-25|fr}} et enfin sur toutes les Wikipédias restantes le {{#time:j xg|2022-05-26|fr}} ([[mw:MediaWiki 1.39/Roadmap|calendrier]]).
'''Futurs changements'''
* [[File:Octicons-tools.svg|15px|link=|alt=|Sujet technique]] Les développeurs de gadgets et de scripts utilisateur sont invités à donner leur avis sur une [[mw:User:Jdlrobson/Extension:Gadget/Policy|proposition de règlement technique]] qui vise à améliorer l’assistance des développeurs MediaWiki. [https://phabricator.wikimedia.org/T308686]
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/21|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W21"/>
24 mai 2022 à 02:20 (CEST)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23317250 -->
== Actualités techniques n°2022-22 ==
<section begin="technews-2022-W22"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/22|D’autres traductions]] sont disponibles.
'''Changements récents'''
* [[File:Octicons-tools.svg|15px|link=|Sujet technique]] Dans l’extension [[mw:Special:MyLanguage/Extension:AbuseFilter|AbuseFilter]] (filtres antiabus), une fonction <code dir=ltr>ip_in_ranges()</code> a été introduite pour vérifier si une IP est dans un des intervalles. Il est recommandé aux wikis de combiner plusieurs expressions <code dir=ltr>ip_in_range()</code> séparées par <code>|</code> dans une unique expression pour de meilleures performances. Vous pouvez utiliser la fonction de recherche de [[Special:AbuseFilter|Spécial:Filtre_antiabus]] pour retrouver où elle est utilisée. [https://phabricator.wikimedia.org/T305017]
* La [[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation/IP Info feature|fonctionnalité IP Info]], qui aide les contributeurs luttant contre les abus à accéder aux informations concernant les IP, [[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation/IP Info feature#May 24, 2022|a été déployée]] sur tous les wikis comme fonctionnalité bêta. Cela arrive après plusieurs semaines de test en bêta sur test.wikipedia.org.
'''Changements à venir cette semaine'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] La [[mw:MediaWiki 1.39/wmf.14|nouvelle version]] de MediaWiki sera installée sur les wikis de test et sur MediaWiki.org à partir du {{#time:j xg|2022-05-31|fr}}. Elle sera installée sur tous les wikis hormis la majorité des Wikipédias le {{#time:j xg|2022-06-01|fr}} et enfin sur toutes les Wikipédias restantes le {{#time:j xg|2022-06-02|fr}} ([[mw:MediaWiki 1.39/Roadmap|calendrier]]).
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] Certains wikis vont passer en lecture seule pendant quelques minutes en raison d’une interversion de leur base de données principale. Cela aura lieu le {{#time:j xg|2022-05-31|fr}} à 7 h UTC ([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s5.dblist wikis concernés]).
* L’[[mw:Special:MyLanguage/Help:DiscussionTools#New topic tool|outil Nouveau sujet]] va bientôt être déployé pour tous les contributeurs sur la plupart des wikis. Vous pourrez le désactiver depuis l’outil lui-même ou dans [[Special:Preferences#mw-prefsection-editing-discussion|vos Préférences]]. [https://www.mediawiki.org/wiki/Special:MyLanguage/Talk_pages_project/New_discussion][https://phabricator.wikimedia.org/T287804]
* [[File:Octicons-tools.svg|15px|link=|Sujet technique]] Le [[:mw:Special:ApiHelp/query+usercontribs|terminal d’API list=usercontribs]] permettra bientôt d’obtenir les contributions d’un [[mw:Special:MyLanguage/Help:Range blocks#Non-technical explanation|intervalle d’IP]]. Les utilisateurs de l’API peuvent définir le paramètre <code>uciprange</code> pour obtenir les contributions de tout intervalle d’IP, en respectant [[:mw:Manual:$wgRangeContributionsCIDRLimit|la limite]]. [https://phabricator.wikimedia.org/T177150]
* Une nouvelle fonction d’analyse syntaxique va être introduite : <bdi lang="zxx" dir="ltr"><code><nowiki>{{=}}</nowiki></code></bdi>. Cela remplacera les modèles « = » actuels, en insérant un [[w:fr:Signe égal|signe égal]]. Cela peut être utilisé pour échapper le signe égal dans les valeurs des paramètres des modèles. [https://phabricator.wikimedia.org/T91154]
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/22|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W22"/>
30 mai 2022 à 22:28 (CEST)
<!-- Message envoyé par User:Trizek (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23340178 -->
== Révisions des directives d'application du Code de conduite universel (UCoC) ==
<section begin="announcement-content" />
:''<div class="plainlinks">[[m:Special:MyLanguage/Universal Code of Conduct/Enforcement guidelines/Revision discussions/Announcement|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Enforcement guidelines/Revision discussions/Announcement}}&language=&action=page&filter= {{int:please-translate}}]</div>''
Bonjour,
Après le vote de la communauté sur les directives d'application de l'UCoC en mars, le [[m:Special:MyLanguage/Wikimedia Foundation Community Affairs Committee|Comité des affaires communautaires (CAC)]] du Conseil [https://lists.wikimedia.org/hyperkitty/list/wikimedia-l@lists.wikimedia.org/thread/JAYQN3NYKCHQHONMUONYTI6WRKZFQNSC/ a demandé que plusieurs points des directives soient revus pour être améliorés] avant que le Conseil ne procède à son examen final. Ces points ont été identifiés sur la base des discussions communautaires et des commentaires fournis lors du vote. Le CAC a également demandé la révision de la note controversée de la section 3.1 de l'UCoC.
Une fois de plus, un grand merci à toutes les personnes qui ont voté, en particulier à celles qui ont fait des commentaires constructifs et des remarques ! L'équipe travaille avec le conseil d'administration pour établir un calendrier pour ce travail, et le communiquera le mois prochain.
Les membres des deux précédents [[m:Special:MyLanguage/Universal Code of Conduct/Drafting committee|comités de rédaction de l'UCoC]] ont généreusement offert leur temps pour contribuer à l'amélioration des directives. Vous pouvez en savoir plus sur eux et leur travail [[m:Special:MyLanguage/Universal Code of Conduct/Drafting committee#Revisions_Committee|ici]], et lire les [[m:Special:MyLanguage/Universal_Code_of_Conduct/Drafting_committee/Phase_2_meeting_summaries#2022|résumés de leurs réunions hebdomadaires de cette année]].
Les membres de la communauté ont fait de nombreux commentaires précieux lors du vote et dans d'autres conversations. Étant donné la taille et la diversité de la communauté Wikimedia, il y a encore plus de voix qui peuvent donner des idées sur la façon d'améliorer les directives d'application et ajouter des idées encore plus précieuses au processus. Afin d'aider le comité de révision à identifier les améliorations à apporter, nous vous demandons de répondre à plusieurs questions qui seront soumises à l'examen du comité. Visitez les pages Meta-wiki ([[m:Special:MyLanguage/Universal_Code_of_Conduct/Enforcement_guidelines/Revision_discussions|Discussions sur la révision des directives d'application]], [[m:Special:MyLanguage/Universal_Code_of_Conduct/Policy text/Revision_discussions|Discussions sur la révision du texte de l'UcoC]]) pour faire part de vos idées au comité. Il est très important que les points de vue des différentes communautés soient entendus avant que le comité ne commence à rédiger des propositions de révision.
Au nom de l'équipe du projet UCoC <br /><section end="announcement-content" />
[[User:MPossoupe (WMF)|MPossoupe (WMF)]] 6 juin 2022 à 19:24 (CEST)
<!-- Message envoyé par User:MPossoupe (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery/fr&oldid=23008845 -->
== Actualités techniques n°2022-23 ==
<section begin="technews-2022-W23"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/23|D’autres traductions]] sont disponibles.
'''Changements à venir cette semaine'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] La [[mw:MediaWiki 1.39/wmf.15|nouvelle version]] de MediaWiki sera installée sur les wikis de test et sur MediaWiki.org à partir du {{#time:j xg|2022-06-07|fr}}. Elle sera installée sur tous les wikis hormis la majorité des Wikipédias le {{#time:j xg|2022-06-08|fr}} et enfin sur toutes les Wikipédias restantes le {{#time:j xg|2022-06-09|fr}} ([[mw:MediaWiki 1.39/Roadmap|calendrier]]).
* [[File:Octicons-tools.svg|15px|link=|alt=|Sujet technique]] <span lang="en" dir="ltr" class="mw-content-ltr">A new <bdi lang="zxx" dir="ltr"><code>str_replace_regexp()</code></bdi> function can be used in [[Special:AbuseFilter|abuse filters]] to replace parts of text using a [[w:en:Regular expression|regular expression]].</span> [https://phabricator.wikimedia.org/T285468]
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/23|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W23"/>
7 juin 2022 à 04:46 (CEST)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23366979 -->
== Actualités techniques n° 2022-24 ==
<section begin="technews-2022-W24"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/24|D’autres traductions]] sont disponibles.
'''Changements récents'''
* Tous les wikis peuvent dorénavant utiliser les cartes [[mw:Special:MyLanguage/Extension:Kartographer|Kartographer]]. Celles-ci fonctionnent dorénavant sur les pages avec [[mw:Special:MyLanguage/Help:Pending changes|des modifications en attente]]. [https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Geoinformation#Project_descriptions][https://phabricator.wikimedia.org/T307348]
'''Changements à venir cette semaine'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] La [[mw:MediaWiki 1.39/wmf.16|nouvelle version]] de MediaWiki sera installée sur les wikis de test et sur MediaWiki.org à partir du {{#time:j xg|2022-06-14|fr}}. Elle sera installée sur tous les wikis hormis la majorité des Wikipédias le {{#time:j xg|2022-06-15|fr}} et enfin sur toutes les Wikipédias restantes le {{#time:j xg|2022-06-16|fr}} ([[mw:MediaWiki 1.39/Roadmap|calendrier]]).
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] Certains wikis vont passer en lecture seule pendant quelques minutes en raison d’une interversion de leur base de données principale. Cela aura lieu le {{#time:j xg|2022-06-14|fr}} à 6 h UTC ([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s6.dblist wikis concernés]). [https://phabricator.wikimedia.org/T300471]
* À partir de mercredi, un nouvel ensemble de wikis pourront utiliser la fonctionnalité « [[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|Ajouter un lien]] » ({{int:project-localized-name-abwiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-acewiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-adywiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-afwiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-akwiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-alswiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-amwiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-anwiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-angwiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-arcwiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-arzwiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-astwiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-atjwiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-avwiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-aywiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-azwiki/fr}}{{int:comma-separator/fr}}{{int:project-localized-name-azbwiki/fr}}). Il s’agit d’un [[phab:T304110|déploiement progressif de cet outil à d’autres éditions de Wikipédia]]. Les communautés peuvent [[mw:Special:MyLanguage/Growth/Community configuration|configurer localement cette fonctionnalité]]. [https://phabricator.wikimedia.org/T304548]
* <span lang="en" dir="ltr" class="mw-content-ltr">The [[mw:Special:MyLanguage/Help:DiscussionTools#New topic tool|New Topic Tool]] will be deployed for all editors at Commons, Wikidata, and some other wikis soon. You will be able to opt out from within the tool and in [[Special:Preferences#mw-prefsection-editing-discussion|Preferences]].</span> [https://www.mediawiki.org/wiki/Special:MyLanguage/Talk_pages_project/New_discussion][https://phabricator.wikimedia.org/T287804]
'''<span lang="en" dir="ltr" class="mw-content-ltr">Future meetings</span>'''
* <span lang="en" dir="ltr" class="mw-content-ltr">The next [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates/Talk to Web|open meeting with the Web team]] about Vector (2022) will take place today (13 June). The following meetings will take place on: 28 June, 12 July, 26 July.</span>
'''<span lang="en" dir="ltr" class="mw-content-ltr">Future changes</span>'''
* <span lang="en" dir="ltr" class="mw-content-ltr">By the end of July, the [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|Vector 2022]] skin should be ready to become the default across all wikis. Discussions on how to adjust it to the communities' needs will begin in the next weeks. It will always be possible to revert to the previous version on an individual basis. [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates/2022-04 for the largest wikis|Learn more]].</span>
<div lang="en" dir="ltr" class="mw-content-ltr">
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2022/24|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div>
</div><section end="technews-2022-W24"/>
13 juin 2022 à 18:58 (CEST)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23389956 -->
== Actualités techniques n° 2022-25 ==
<section begin="technews-2022-W25"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/25|D’autres traductions]] sont disponibles.
'''Changements récents'''
* L'[[mw:Special:MyLanguage/Wikimedia Apps/Team/Android|appli Wikipédia pour Android]] a dorénavant une option pour modifier la page entière en une fois. Elle est située dans le menu de dépassement (menu trois-points [[File:Ic more vert 36px.svg|15px|link=|alt=]]). [https://phabricator.wikimedia.org/T103622]
* [[File:Octicons-tools.svg|15px|link=|alt=|Sujet technique]] Certains changements récents dans la base de données peuvent affecter les requêtes utilisant l'outil [[m:Research:Quarry|Quarry]]. Les requêtes utilisant <bdi lang="zxx" dir="ltr"><code>site_stats</code></bdi> sur Wikipédia en anglais, Commons et Wikidata doivent être mises à jour. [[phab:T306589|En savoir plus]].
* [[File:Octicons-tools.svg|15px|link=|alt=|Sujet technique]] Une nouvelle variable <bdi lang="zxx" dir="ltr"><code>user_global_editcount</code></bdi> peut être utilisé dans les [[Special:AbuseFilter|filtres antiabus]] pour ne pas affecter les utilisateurs actifs globalement. [https://phabricator.wikimedia.org/T130439]
'''Changements à venir cette semaine'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] La [[mw:MediaWiki 1.39/wmf.17|nouvelle version]] de MediaWiki sera installée sur les wikis de test et sur MediaWiki.org à partir du {{#time:j xg|2022-06-21|fr}}. Elle sera installée sur tous les wikis hormis la majorité des Wikipédias le {{#time:j xg|2022-06-22|fr}} et enfin sur toutes les Wikipédias restantes le {{#time:j xg|2022-06-23|fr}} ([[mw:MediaWiki 1.39/Roadmap|calendrier]]).
* Les utilisateurs d'habillages non réactifs (tels que MonoBook ou Vector) sur appareil mobile peuvent remarquer un léger changement du niveau de zoom par défaut. Le but est d'optimiser le zoom et de garantir que tous les éléments d'interface sont présents sur la page (par exemple le sommaire sur Vector 2022). Dans le cas peu probable où cela poserait problème dans votre utilisation du site, nous aimerions avoir plus d'informations, donc n'hésitez pas à notifier <span class="mw-content-ltr" lang="en" dir="ltr">[[m:User:Jon (WMF)|Jon (WMF)]]</span> sur toute discussion relative sur les wikis. [https://phabricator.wikimedia.org/T306910]
'''Changements futurs'''
* La fonctionnalité bêta des [[mw:Special:MyLanguage/Help:DiscussionTools|Outils de discussion]] va être mise à jour en juillet. L'apparence des discussions va changer. Vous pouvez voir [[mw:Special:MyLanguage/Talk pages project/Usability/Prototype|certains des changements proposés]].
* [[File:Octicons-tools.svg|15px|link=|alt=|Sujet technique]] La sortie HTML de Parsoid arrêtera bientôt d'annoter les liens vers les fichiers avec des valeurs différentes pour l'attribut <bdi lang="zxx" dir="ltr"><code>typeof</code></bdi>, et utilisera <bdi lang="zxx" dir="ltr"><code>mw:File</code></bdi> pour tous les types. Les auteurs d'outils doivent modifier tout code qui attendrait les valeurs <bdi lang="zxx" dir="ltr"><code>mw:Image</code></bdi>, <bdi lang="zxx" dir="ltr"><code>mw:Audio</code></bdi> ou <bdi lang="zxx" dir="ltr"><code>mw:Video</code></bdi>. [https://phabricator.wikimedia.org/T273505]
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/25|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W25"/>
20 juin 2022 à 22:18 (CEST)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23425855 -->
== Actualités techniques n° 2022-26 ==
<section begin="technews-2022-W26"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimédia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/26|D’autres traductions]] sont disponibles.
'''Changements récents'''
* [[File:Octicons-tools.svg|15px|link=|alt=|Sujet technique]] Le service d'API [[m:Special:MyLanguage/Wikimedia Enterprise|Wikimedia Entreprise]] a dorénavant des comptes en libre-service avec des requêtes et des copies instantanés mensuelles gratuitement sur demande ([https://enterprise.wikimedia.com/docs/ documentation de l'API]). L'accès pour la communauté [[m:Special:MyLanguage/Wikimedia Enterprise/FAQ#community-access|aux clichés des bases de données et aux Services infonuagiques Wikimedia]] continue.
* [[File:Octicons-tools.svg|15px|link=|alt=|Sujet technique]] [[d:Special:MyLanguage/Wikidata:Wiktionary#lua|Tous les wikis Wikimedia peuvent maintenant utiliser les lexèmes Wikidata en Lua]] en créant des modules et modèles locaux. Les discussions sont les bienvenues [[d:Wikidata_talk:Lexicographical_data#You_can_now_reuse_Wikidata_Lexemes_on_all_wikis|sur la page du projet]].
'''Changements à venir cette semaine'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] La [[mw:MediaWiki 1.39/wmf.18|nouvelle version]] de MediaWiki sera installée sur les wikis de test et sur MediaWiki.org à partir du {{#time:j xg|2022-06-28|fr}}. Elle sera installée sur tous les wikis hormis la majorité des Wikipédias le {{#time:j xg|2022-06-29|fr}} et enfin sur toutes les Wikipédias restantes le {{#time:j xg|2022-06-30|fr}} ([[mw:MediaWiki 1.39/Roadmap|calendrier]]).
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] Certains wikis vont passer en lecture seule pendant quelques minutes en raison d’une interversion de leur base de données principale. Cela aura lieu le {{#time:j xg|2022-06-28|fr}} à 6 h UTC ([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s7.dblist wikis concernés]). [https://phabricator.wikimedia.org/T311033]
* Certains services globaux et inter-wikis passeront en lecture seule pendant quelques minutes en raison d'une interversion de leur base de données principale. Cela aura lieu le {{#time:j xg|2022-06-30|fr}} à 6 h UTC. Cela va affecter l'outil Traduction de contenu, les notifications Echo, les Discussions structurées, les expérimentations Croissance et quelques autres services. [https://phabricator.wikimedia.org/T300472]
* Les utilisateurs pourront trier les colonnes des tableaux triables dans l'apparence mobile. [https://phabricator.wikimedia.org/T233340]
'''Prochaines réunions'''
* La prochaine [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates/Talk to Web|réunion publique avec l’équipe Web]] concernant Vector (2022) aura lieu demain, le 28 juin. Les réunions suivantes auront lieu les 12 juillet et 19 juillet.
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/26|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W26"/>
27 juin 2022 à 22:02 (CEST)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23453785 -->
== Results of Wiki Loves Folklore 2022 is out! ==
<div lang="en" dir="ltr" class="mw-content-ltr">
{{int:please-translate}}
[[File:Wiki Loves Folklore Logo.svg|right|150px|frameless]]
Hi, Greetings
The winners for '''[[c:Commons:Wiki Loves Folklore 2022|Wiki Loves Folklore 2022]]''' is announced!
We are happy to share with you winning images for this year's edition. This year saw over 8,584 images represented on commons in over 92 countries. Kindly see images '''[[:c:Commons:Wiki Loves Folklore 2022/Winners|here]]'''
Our profound gratitude to all the people who participated and organized local contests and photo walks for this project.
We hope to have you contribute to the campaign next year.
'''Thank you,'''
'''Wiki Loves Folklore International Team'''
--[[Utilisateur:MediaWiki message delivery|MediaWiki message delivery]] ([[Discussion utilisateur:MediaWiki message delivery|discussion]]) 4 juillet 2022 à 18:12 (CEST)
</div>
<!-- Message envoyé par User:Tiven2240@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=23454230 -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Tech News: 2022-27</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="technews-2022-W27"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2022/27|Translations]] are available.
'''Changes later this week'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Recurrent item]] The [[mw:MediaWiki 1.39/wmf.19|new version]] of MediaWiki will be on test wikis and MediaWiki.org from {{#time:j xg|2022-07-05|en}}. It will be on non-Wikipedia wikis and some Wikipedias from {{#time:j xg|2022-07-06|en}}. It will be on all wikis from {{#time:j xg|2022-07-07|en}} ([[mw:MediaWiki 1.39/Roadmap|calendar]]).
* [[File:Octicons-sync.svg|12px|link=|alt=|Recurrent item]] Some wikis will be in read-only for a few minutes because of a switch of their main database. It will be performed on {{#time:j xg|2022-07-05|en}} at 07:00 UTC ([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s6.dblist targeted wikis]) and on {{#time:j xg|2022-07-07|en}} at 7:00 UTC ([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s4.dblist targeted wikis]).
* The Beta Feature for [[mw:Special:MyLanguage/Help:DiscussionTools|DiscussionTools]] will be updated throughout July. Discussions will look different. You can see [[mw:Special:MyLanguage/Talk pages project/Usability/Prototype|some of the proposed changes]].
* [[File:Octicons-tools.svg|15px|link=|alt=| Advanced item]] This change only affects pages in the main namespace in Wikisource. The Javascript config variable <bdi lang="zxx" dir="ltr"><code>proofreadpage_source_href</code></bdi> will be removed from <bdi lang="zxx" dir="ltr"><code>[[mw:Special:MyLanguage/Manual:Interface/JavaScript#mw.config|mw.config]]</code></bdi> and be replaced with the variable <bdi lang="zxx" dir="ltr"><code>prpSourceIndexPage</code></bdi>. [https://phabricator.wikimedia.org/T309490]
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2022/27|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2022-W27"/>
</div>
4 juillet 2022 à 21:32 (CEST)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23466250 -->
== Proposez des déclarations pour la boussole électorale 2022 ==
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Announcement/Propose statements for the 2022 Election Compass| Ce message est également traduit dans d'autres langues sur Meta-wiki.]]''
:''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Announcement/Propose statements for the 2022 Election Compass|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections/2022/Announcement/Propose statements for the 2022 Election Compass}}&language=&action=page&filter= {{int:please-translate}}]</div>''
Bonjour,
Dans le cadre des [[m:Special:MyLanguage/Wikimedia Foundation elections/2022|élections 2022 du conseil d'administration,]] des volontaires sont [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2022/Community_Voting/Election_Compass|invités à proposer des déclarations à utiliser dans la boussole électorale]].
Une boussole électorale est un outil destiné à aider les électrices et les électeurs à choisir les candidates et les candidats qui correspondent le mieux à leurs convictions et à leurs opinions. Les membres de la communauté proposeront des déclarations auxquelles les candidates et les candidats devront répondre en utilisant une échelle de Lickert (d'accord/neutre/désaccord). Les réponses des candidats aux déclarations seront chargées dans l'outil Boussole électorale. Les électrices et électeurs utiliseront l'outil en entrant leur réponse aux déclarations (d'accord/désaccord/neutre). Les résultats montreront les candidates et les candidats qui correspondent le mieux aux croyances et aux opinions de l'électeur ou de l'électrice.
Pour proposer une déclaration, il suffit d'accéder à [[m:Wikimedia_Foundation_elections/2022/Community_Voting/Election_Compass/Statements|cette page Meta-wiki]].
Les 15 meilleures déclarations seront sélectionnées par le comité des élections au début du mois d'août.
Voici le calendrier :
* Du 8 au 20 juillet : les volontaires proposent des déclarations pour la boussole électorale.
* Du 21 au 22 juillet : le comité des élections vérifie que les déclarations sont claires et supprime les déclarations hors sujet.
* Du 23 juillet au 1er août : les volontaires votent les déclarations.
* Du 2 au 4 août : le comité des élections sélectionne les 15 meilleures déclarations.
* Du 5 au 12 août : les candidates et candidats se positionnent par rapport aux déclarations.
* 15 août : ouverture de la boussole électorale afin que les électrices et électeurs puissent l'utiliser pour orienter leur décision de vote.
Le comité des élections supervisera le processus, avec le soutien de l'équipe Stratégie et Gouvernance du Mouvement. Elle vérifiera que les déclarations sont claires, qu'il n'y a pas de doublons, pas de fautes de frappe, etc.
Bien à vous,
L'équipe Stratégie et Gouvernance du Mouvement
''Ce message a été envoyé au nom du groupe de travail pour la sélection des membres du conseil d'administration et du comité des élections''.<br /><section end="announcement-content" />
[[User:MPossoupe (WMF)|MPossoupe (WMF)]] 11 juillet 2022 à 18:02 (CEST)
<!-- Message envoyé par User:MPossoupe (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery/fr&oldid=23008845 -->
== Actualités techniques n° 2022-28 ==
<section begin="technews-2022-W28"/><div class="plainlinks">
<div lang="en" dir="ltr" class="mw-content-ltr">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2022/28|Translations]] are available.
</div>
'''<span lang="en" dir="ltr" class="mw-content-ltr">Recent changes</span>'''
* <span lang="en" dir="ltr" class="mw-content-ltr">In the [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|Vector 2022 skin]], the page title is now displayed above the tabs such as Discussion, Read, Edit, View history, or More. [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates#Page title/tabs switch|Learn more]].</span> [https://phabricator.wikimedia.org/T303549]
* [[File:Octicons-tools.svg|15px|link=|alt=|<span lang="en" dir="ltr" class="mw-content-ltr">Advanced item</span>]] <span lang="en" dir="ltr" class="mw-content-ltr">It is now possible to easily view most of the configuration settings that apply to just one wiki, and to compare settings between two wikis if those settings are different. For example: [https://noc.wikimedia.org/wiki.php?wiki=jawiktionary Japanese Wiktionary settings], or [https://noc.wikimedia.org/wiki.php?wiki=eswiki&compare=eowiki settings that are different between the Spanish and Esperanto Wikipedias]. Local communities may want to [[m:Special:MyLanguage/Requesting_wiki_configuration_changes|discuss and propose changes]] to their local settings. Details about each of the named settings can be found by [[mw:Special:Search|searching MediaWiki.org]].</span> [https://phabricator.wikimedia.org/T308932]
*<span lang="en" dir="ltr" class="mw-content-ltr">The Anti-Harassment Tools team [[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation/IP Info feature#May|recently deployed]] the IP Info Feature as a [[Special:Preferences#mw-prefsection-betafeatures|Beta Feature at all wikis]]. This feature allows abuse fighters to access information about IP addresses. Please check our update on [[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation/IP Info feature#April|how to find and use the tool]]. Please share your feedback using a link you will be given within the tool itself.</span>
'''<span lang="en" dir="ltr" class="mw-content-ltr">Changes later this week</span>'''
* <span lang="en" dir="ltr" class="mw-content-ltr">There is no new MediaWiki version this week.</span>
* [[File:Octicons-sync.svg|12px|link=|alt=|<span lang="en" dir="ltr" class="mw-content-ltr">Recurrent item</span>]] <span lang="en" dir="ltr" class="mw-content-ltr">Some wikis will be in read-only for a few minutes because of a switch of their main database. It will be performed on {{#time:j xg|2022-07-12|en}} at 07:00 UTC ([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s3.dblist targeted wikis]).</span>
'''<span lang="en" dir="ltr" class="mw-content-ltr">Future changes</span>'''
* <span lang="en" dir="ltr" class="mw-content-ltr">The Beta Feature for [[mw:Special:MyLanguage/Help:DiscussionTools|DiscussionTools]] will be updated throughout July. Discussions will look different. You can see [[mw:Special:MyLanguage/Talk pages project/Usability/Prototype|some of the proposed changes]].</span>
<div lang="en" dir="ltr" class="mw-content-ltr">
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2022/28|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div>
</div><section end="technews-2022-W28"/>
11 juillet 2022 à 21:24 (CEST)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23502519 -->
== Actualités techniques n° 2022-29 ==
<section begin="technews-2022-W29"/><div class="plainlinks">
Dernières '''[[m:Special:MyLanguage/Tech/News|actualités techniques]]''' de la communauté technique Wikimedia. N’hésitez pas à informer les autres utilisateurs de ces changements. Certains changements ne vous concernent pas. [[m:Special:MyLanguage/Tech/News/2022/29|D’autres traductions]] sont disponibles.
'''Problèmes'''
* La fonctionnalité « [[mw:Special:MyLanguage/Extension:NearbyPages|pages à proximité]] » sur la version web mobile était indisponible la semaine dernière. Ce sera corrigé cette semaine. [https://phabricator.wikimedia.org/T312864]
'''Changements à venir cette semaine'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Sujet récurrent]] La [[mw:MediaWiki 1.39/wmf.21|nouvelle version]] de MediaWiki sera installée sur les wikis de test et sur MediaWiki.org à partir du {{#time:j xg|2022-07-19|fr}}. Elle sera installée sur tous les wikis hormis la majorité des Wikipédias le {{#time:j xg|2022-07-20|fr}} et enfin sur toutes les Wikipédias restantes le {{#time:j xg|2022-07-21|fr}} ([[mw:MediaWiki 1.39/Roadmap|calendrier]]).
'''Changements à venir'''
* Le [[mw:Technical_decision_making/Forum|forum de prises de décision techniques]] est à la recherche de [[mw:Technical_decision_making/Community_representation|représentants de la communauté]]. Vous pouvez postuler sur le wiki ou par courriel à <span class="mw-content-ltr" lang="en" dir="ltr">TDFSupport@wikimedia.org</span> avant le 12 août.
'''''[[m:Special:MyLanguage/Tech/News|Actualités techniques]]''' préparées par les [[m:Special:MyLanguage/Tech/News/Writers|rédacteurs des actualités techniques]] et postées par [[m:Special:MyLanguage/User:MediaWiki message delivery|robot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribuer]] • [[m:Special:MyLanguage/Tech/News/2022/29|Traduire]] • [[m:Tech|Obtenir de l’aide]] • [[m:Talk:Tech/News|Donner votre avis]] • [[m:Global message delivery/Targets/Tech ambassadors|S’inscrire ou se désinscrire]].''
</div><section end="technews-2022-W29"/>
19 juillet 2022 à 00:59 (CEST)
<!-- Message envoyé par User:Quiddity (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23517957 -->
== Découvrez les 6 candidat.es présélectionné.es pour l'élection 2022 du conseil d'administration de la Wikimedia Foundation ==
<section begin="announcement-content"/>
:''[[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Announcement/Announcing the six candidates for the 2022 Board of Trustees election| Ce message est également traduit dans d'autres langues sur Meta-wiki.]]''
:''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Announcement/Announcing the six candidates for the 2022 Board of Trustees election|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections/2022/Announcement/Announcing the six candidates for the 2022 Board of Trustees election}}&language=&action=page&filter= {{int:please-translate}}]</div>''
Bonjour,
'''Le processus de vote des affiliés est terminé.''' Les représentant.es de chaque organisation affiliée se sont renseigné.es sur les candidat.es en lisant leurs déclarations, en examinant leurs réponses aux questions et en tenant compte de l'évaluation des candidat.es fournie par le comité d'analyse. Les candidat.es sélectionné.es pour le Conseil d'administration 2022 sont :
* Tobechukwu Precious Friday ([[m:User:Tochiprecious|Tochiprecious]])
* Farah Jack Mustaklem ([[m:User:Fjmustak|Fjmustak]])
* Shani Evenstein Sigalov ([[m:User:Esh77|Esh77]])
* Kunal Mehta ([[m:User:Legoktm|Legoktm]])
* Michał Buczyński ([[m:User:Aegis Maelstrom|Aegis Maelstrom]])
* Mike Peel ([[m:User:Mike Peel|Mike Peel]])
Plus d'informations sur les [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Results|Résultats]] et les [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Stats|statistiques]] de cette élection du Conseil d'administration.
Nous remercions les représentant.es des affiliés et les membres du comité d'analyse pour leur participation à ce processus et pour avoir contribué à accroître la capacité et la diversité du conseil d'administration. Ces heures de travail bénévole nous permettent de mieux comprendre et de mieux appréhender les choses. Nous vous remercions de votre participation.
Merci aux membres de la communauté qui se sont portés candidats au conseil d'administration. Envisager de rejoindre le conseil d'administration n'est pas une décision anodine. Le temps et le dévouement dont les candidats et candidates ont fait preuve jusqu'à présent témoignent de leur engagement envers ce mouvement. Félicitations aux candidat.es qui ont été sélectionné.es. Beaucoup de reconnaissance et de gratitude pour les candidat.es non sélectionné.es. Veuillez continuer à partager votre leadership avec le mouvement Wikimedia.
Merci à celles et ceux qui ont suivi le processus des affiliés lors de cette élection du Conseil. Vous pouvez consulter les résultats du processus de sélection des affiliés.
'''La prochaine étape du processus de l'élection du conseil d'administration est la période de vote de la communauté.''' [[m:Special:MyLanguage/Wikimedia Foundation elections/2022#Timeline|Vous pouvez consulter le calendrier des élections du conseil d'administration ici]]. Pour vous préparer à la période de vote de la communauté, il y a plusieurs choses que les membres de la communauté sont invités à faire :
* [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Candidates|Lire les déclarations des candidat.es]] et lire les réponses des candidat.es aux questions posées par les représentant.es des affiliés.
* [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2022/Community_Voting/Questions_for_Candidates|Proposer et sélectionner les 6 questions auxquelles les candidats et candidates devront répondre dans leurs vidéos Questions & Réponses]].
* Voir l'[[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Candidates|évaluation des candidats par le comité d'analyse sur la base de la déclaration de leurs déclarations]].
* [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Community Voting/Election Compass|Proposer des déclarations pour la boussole électorale]] que les électeur.trices peuvent utiliser pour identifier les candidat.e.s qui correspondent le mieux à leurs principes.
* Encourager d'autres personnes de votre communauté à participer à l'élection.
Bien à vous,
Stratégie et Gouvernance du Mouvement
''Ce message a été envoyé au nom du groupe de travail sur la sélection des membres du conseil d'administration et du comité des élections''
</div><section end="announcement-content"/>
[[User:MPossoupe (WMF)|MPossoupe (WMF)]] 21 juillet 2022 à 15:53 (CEST)
<!-- Message envoyé par User:MPossoupe (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery/fr&oldid=23008845 -->
:Bonjour,
:Pour les messages en français, veuillez ne plus utiliser ce point qui met fin aux phrases au milieu des mots mais utiliser le point approprié, ou bien utiliser le genre neutre de la langue française.
:-- ◄ [[Utilisateur:DavidL|'''D'''avid '''L''']] • [[Discussion Utilisateur:DavidL|discuter]] ► 21 juillet 2022 à 17:45 (CEST)
== Nouvelles de la Stratégie et de la Gouvernance du Mouvement – Numéro 7 ==
<section begin="msg-newsletter"/>
<div style = "line-height: 1.2">
<span style="font-size:200%;">'''Nouvelles de la Stratégie et de la Gouvernance du Mouvement'''</span><br>
<span style="font-size:120%; color:#404040;">'''Numéro 7 - juillet-septembre 2022'''</span><span style="font-size:120%; float:right;">[[m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7|'''Lire le bulletin complet''']]</span>
----
Bienvenue au 7ème numéro des Nouvelles de la stratégie et de la gouvernance du mouvement ! Cette lettre d'information diffuse des nouvelles et des événements pertinents concernant la mise en œuvre des [[:m:Special:MyLanguage/Movement Strategy/Initiatives|Recommandations de la stratégie du mouvement]] Wikimedia, d'autres sujets pertinents concernant la gouvernance du mouvement, ainsi que différents projets et activités soutenus par l'équipe Stratégie et Gouvernance du Mouvement (MSG) de la Wikimedia Foundation.
La lettre d'information MSG est diffusée tous les trimestres, tandis que la [[:m:Special:MyLanguage/Movement Strategy/Updates|"Movement Strategy Weekly"]], plus régulière, sera diffusée chaque semaine. N'oubliez pas de vous abonner [[m:Special:MyLanguage/Global message delivery/Targets/MSG Newsletter Subscription|ici]] si vous souhaitez recevoir les prochains numéros de cette lettre d'information.
</div><div style="margin-top:3px; padding:10px 10px 10px 20px; background:#fffff; border:2px solid #808080; border-radius:4px; font-size:100%;">
* '''Accroître la pérennité de notre mouvement''' : Le rapport annuel sur la durabilité de la Wikimedia Foundation a été publié. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A1|continuer la lecture]])
* '''Améliorer l'expérience utilisateur''' : améliorations récentes de l'interface bureau pour les projets Wikimedia. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A2|continuer la lecture]])
* '''Garantir sécurité et inclusion''' : mise à jour du processus de révision des directives d'application du code de conduite universel. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A3|continuer la lecture]])
* '''Assurer l'équité dans la prise de décision''' : rapports des conversations des Hubs pilotes, progrès récents du Comité de rédaction de la Charte du mouvement, et un nouveau livre blanc pour le futur de la participation au sein mouvement Wikimedia. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A4|continuer la lecture]])
* '''Se coordonner entre parties prenantes''' : lancement d'un service d'aide pour les affiliés et les communautés de volontaires travaillant sur le partenariat de contenu. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A5|continuer la lecture]])
* '''Développement du leadership''' : mises à jour sur les projets de leadership des organisateurs et organisatrices du mouvement Wikimedia au Brésil et au Cap-Vert. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A6|continuer la lecture]])
* '''Gérer notre savoir interne''' : lancement d'un nouveau portail de documentation technique et de ressources communautaires. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A7|continuer la lecture]])
* '''Innover dans la connaissance libre''' : des ressources audiovisuelles de haute qualité pour les expériences scientifiques et une nouvelle boîte à outils pour enregistrer les transcriptions orales. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A8|continuer la lecture]])
* '''Evaluer, itérer et adapter''' : résultats du projet pilote Equity Landscape ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A9|continuer la lecture]])
* '''Autres nouvelles et mises à jour''' : un nouveau forum pour discuter de la mise en œuvre de la stratégie de mouvement, la prochaine élection du conseil d'administration de la Wikimedia Foundation, un nouveau podcast pour discuter de la stratégie du mouvement, et un changement de personnel pour l'équipe Stratégie et Gouvernance du Mouvement de la fondation. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A10|continuer la lecture]])
</div><section end="msg-newsletter"/>
[[User:MPossoupe (WMF)|MPossoupe (WMF)]] 25 juillet 2022 à 11:33 (CEST)
<!-- Message envoyé par User:MPossoupe (WMF)@metawiki en utilisant la liste sur https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery/fr&oldid=23008845 -->
ojo8s8fg6ky8r69jmzyew8h2ktzpj7o
Mathc initiation/Fichiers h : c71
0
77852
682364
678535
2022-07-25T10:23:50Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
:
[[Mathc initiation/a08| Sommaire]]
:
----{{Partie{{{type|}}}|L'intégration par partie|fond={{{fond|}}<nowiki>}</nowiki>}}
:
En mathématiques, l'intégration par parties est une méthode qui permet de transformer l'intégrale d'un produit de fonctions en d'autres intégrales. Elle est fréquemment utilisée pour calculer une intégrale d'un produit de fonctions. Cette formule peut être considérée comme une version intégrale de la règle du produit [https://fr.wikipedia.org/wiki/Int%C3%A9gration_par_parties]
:
<br>
Copier la bibliothèque dans votre répertoire de travail :
* [[Mathc initiation/Fichiers h : c71a1|x_hfile.h ............ Déclaration des fichiers h]]
* [[Mathc initiation/Fichiers h : c71a2|x_def.h .............. Les utilitaires]]
* [[Mathc initiation/Fichiers h : c71a3|x_symp.h .......... L'algorithme pour la méthode sympson]]
:
<br>
Multiplier par 1 :
* [[Mathc initiation/Fichiers h : c71b01|fa.h ]] <................> [[Mathc initiation/Fichiers c : c71c01|c1a.c : "ln(x)";]]
* [[Mathc initiation/Fichiers c : c71c05| Étude de : "ln(x)**n";]]
* [[Mathc initiation/Fichiers h : c71b02|fb.h ]] <................> [[Mathc initiation/Fichiers c : c71c02|c1b.c : "atan(x)";]]
* [[Mathc initiation/Fichiers h : c71b03|fc.h ]] <................> [[Mathc initiation/Fichiers c : c71c03|c1c.c : "asin(x)";]]
* [[Mathc initiation/Fichiers h : c71b04|fd.h ]] <................> [[Mathc initiation/Fichiers c : c71c04|c1d.c : "acos(x)";]]
:
----
{{AutoCat}}
qw5mkiuamovlwiaqai5kgfh6syf6frh
682368
682364
2022-07-25T10:30:23Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
:
[[Mathc initiation/a08| Sommaire]]
:
----{{Partie{{{type|}}}|L'intégration par partie|fond={{{fond|}}<nowiki>}</nowiki>}}
:
En mathématiques, l'intégration par parties est une méthode qui permet de transformer l'intégrale d'un produit de fonctions en d'autres intégrales. Elle est fréquemment utilisée pour calculer une intégrale d'un produit de fonctions. Cette formule peut être considérée comme une version intégrale de la règle du produit [https://fr.wikipedia.org/wiki/Int%C3%A9gration_par_parties]
:
<br>
Copier la bibliothèque dans votre répertoire de travail :
* [[Mathc initiation/Fichiers h : c71a1|x_hfile.h ............ Déclaration des fichiers h]]
* [[Mathc initiation/Fichiers h : c71a2|x_def.h .............. Les utilitaires]]
* [[Mathc initiation/Fichiers h : c71a3|x_symp.h .......... L'algorithme pour la méthode sympson]]
:
<br>
Multiplier par 1 :
* [[Mathc initiation/Fichiers h : c71b01|fa.h ]] <................> [[Mathc initiation/Fichiers c : c71c01|c1a.c : "ln(x)";]]
* [[Mathc initiation/Fichiers c : c71c05| Étude de : <.................> "ln(x)**n";]]
* [[Mathc initiation/Fichiers h : c71b02|fb.h ]] <................> [[Mathc initiation/Fichiers c : c71c02|c1b.c : "atan(x)";]]
* [[Mathc initiation/Fichiers h : c71b03|fc.h ]] <................> [[Mathc initiation/Fichiers c : c71c03|c1c.c : "asin(x)";]]
* [[Mathc initiation/Fichiers h : c71b04|fd.h ]] <................> [[Mathc initiation/Fichiers c : c71c04|c1d.c : "acos(x)";]]
:
----
{{AutoCat}}
6l2t3b0948qx2fm16mfz8xuadsb3ykz
682374
682368
2022-07-25T10:33:55Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
:
[[Mathc initiation/a08| Sommaire]]
:
----{{Partie{{{type|}}}|L'intégration par partie|fond={{{fond|}}<nowiki>}</nowiki>}}
:
En mathématiques, l'intégration par parties est une méthode qui permet de transformer l'intégrale d'un produit de fonctions en d'autres intégrales. Elle est fréquemment utilisée pour calculer une intégrale d'un produit de fonctions. Cette formule peut être considérée comme une version intégrale de la règle du produit [https://fr.wikipedia.org/wiki/Int%C3%A9gration_par_parties]
:
<br>
Copier la bibliothèque dans votre répertoire de travail :
* [[Mathc initiation/Fichiers h : c71a1|x_hfile.h ............ Déclaration des fichiers h]]
* [[Mathc initiation/Fichiers h : c71a2|x_def.h .............. Les utilitaires]]
* [[Mathc initiation/Fichiers h : c71a3|x_symp.h .......... L'algorithme pour la méthode sympson]]
:
<br>
Multiplier par 1 :
* [[Mathc initiation/Fichiers h : c71b01|fa.h ]] <................> [[Mathc initiation/Fichiers c : c71c01|c1a.c : "ln(x)";]]
* [[Mathc initiation/Fichiers c : c71c05| Étude de : <......> "ln(x)**n";]]
* [[Mathc initiation/Fichiers h : c71b02|fb.h ]] <................> [[Mathc initiation/Fichiers c : c71c02|c1b.c : "atan(x)";]]
* [[Mathc initiation/Fichiers h : c71b03|fc.h ]] <................> [[Mathc initiation/Fichiers c : c71c03|c1c.c : "asin(x)";]]
* [[Mathc initiation/Fichiers h : c71b04|fd.h ]] <................> [[Mathc initiation/Fichiers c : c71c04|c1d.c : "acos(x)";]]
:
----
{{AutoCat}}
64m5n5kb8iwe9tupkt7a1j76g3t8fhv
682382
682374
2022-07-25T11:04:23Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
:
[[Mathc initiation/a08| Sommaire]]
:
----{{Partie{{{type|}}}|L'intégration par partie|fond={{{fond|}}<nowiki>}</nowiki>}}
:
En mathématiques, l'intégration par parties est une méthode qui permet de transformer l'intégrale d'un produit de fonctions en d'autres intégrales. Elle est fréquemment utilisée pour calculer une intégrale d'un produit de fonctions. Cette formule peut être considérée comme une version intégrale de la règle du produit [https://fr.wikipedia.org/wiki/Int%C3%A9gration_par_parties]
:
<br>
Copier la bibliothèque dans votre répertoire de travail :
* [[Mathc initiation/Fichiers h : c71a1|x_hfile.h ............ Déclaration des fichiers h]]
* [[Mathc initiation/Fichiers h : c71a2|x_def.h .............. Les utilitaires]]
* [[Mathc initiation/Fichiers h : c71a3|x_symp.h .......... L'algorithme pour la méthode sympson]]
:
<br>
Multiplier par 1 :
* [[Mathc initiation/Fichiers h : c71b01|fa.h ]] <................> [[Mathc initiation/Fichiers c : c71c01|c1a.c : "ln(x)";]]
* [[Mathc initiation/Fichiers c : c71c05| Étude de : <......> "ln(x)**n";]]
* [[Mathc initiation/Fichiers h : c71b02|fb.h ]] <................> [[Mathc initiation/Fichiers c : c71c02|c1b.c : "atan(x)";]]
* [[Mathc initiation/Fichiers h : c71b03|fc.h ]] <................> [[Mathc initiation/Fichiers c : c71c03|c1c.c : "asin(x)";]]
* [[Mathc initiation/Fichiers h : c71b04|fd.h ]] <................> [[Mathc initiation/Fichiers c : c71c04|c1d.c : "acos(x)";]]
* [[Mathc initiation/Fichiers h : c71b06|fe.h ]] <................> [[Mathc initiation/Fichiers c : c71c06|c1e.c : "asinh(x)";]]
:
----
{{AutoCat}}
blp5py32ejsfqwudqmzpep5oi0vth70
682392
682382
2022-07-25T11:52:39Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
:
[[Mathc initiation/a08| Sommaire]]
:
----{{Partie{{{type|}}}|L'intégration par partie|fond={{{fond|}}<nowiki>}</nowiki>}}
:
En mathématiques, l'intégration par parties est une méthode qui permet de transformer l'intégrale d'un produit de fonctions en d'autres intégrales. Elle est fréquemment utilisée pour calculer une intégrale d'un produit de fonctions. Cette formule peut être considérée comme une version intégrale de la règle du produit [https://fr.wikipedia.org/wiki/Int%C3%A9gration_par_parties]
:
<br>
Copier la bibliothèque dans votre répertoire de travail :
* [[Mathc initiation/Fichiers h : c71a1|x_hfile.h ............ Déclaration des fichiers h]]
* [[Mathc initiation/Fichiers h : c71a2|x_def.h .............. Les utilitaires]]
* [[Mathc initiation/Fichiers h : c71a3|x_symp.h .......... L'algorithme pour la méthode sympson]]
:
<br>
Multiplier par 1 :
* [[Mathc initiation/Fichiers h : c71b01|fa.h ]] <................> [[Mathc initiation/Fichiers c : c71c01|c1a.c : "ln(x)";]]
* [[Mathc initiation/Fichiers c : c71c05| Étude de : <......> "ln(x)**n";]]
* [[Mathc initiation/Fichiers h : c71b02|fb.h ]] <................> [[Mathc initiation/Fichiers c : c71c02|c1b.c : "atan(x)";]]
* [[Mathc initiation/Fichiers h : c71b03|fc.h ]] <................> [[Mathc initiation/Fichiers c : c71c03|c1c.c : "asin(x)";]]
* [[Mathc initiation/Fichiers h : c71b04|fd.h ]] <................> [[Mathc initiation/Fichiers c : c71c04|c1d.c : "acos(x)";]]
* [[Mathc initiation/Fichiers h : c71b06|fe.h ]] <................> [[Mathc initiation/Fichiers c : c71c06|c1e.c : "asinh(x)";]]
* [[Mathc initiation/Fichiers h : c71b07|ff.h ]] <................> [[Mathc initiation/Fichiers c : c71c07|c1f.c : "acosh(x)";]]
:
----
{{AutoCat}}
6f3fa0t4wjld1e9lhtrvnetqcqp47o9
682395
682392
2022-07-25T11:54:51Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
:
[[Mathc initiation/a08| Sommaire]]
:
----{{Partie{{{type|}}}|L'intégration par partie|fond={{{fond|}}<nowiki>}</nowiki>}}
:
En mathématiques, l'intégration par parties est une méthode qui permet de transformer l'intégrale d'un produit de fonctions en d'autres intégrales. Elle est fréquemment utilisée pour calculer une intégrale d'un produit de fonctions. Cette formule peut être considérée comme une version intégrale de la règle du produit [https://fr.wikipedia.org/wiki/Int%C3%A9gration_par_parties]
:
<br>
Copier la bibliothèque dans votre répertoire de travail :
* [[Mathc initiation/Fichiers h : c71a1|x_hfile.h ............ Déclaration des fichiers h]]
* [[Mathc initiation/Fichiers h : c71a2|x_def.h .............. Les utilitaires]]
* [[Mathc initiation/Fichiers h : c71a3|x_symp.h .......... L'algorithme pour la méthode sympson]]
:
<br>
Multiplier par 1 :
* [[Mathc initiation/Fichiers h : c71b01|fa.h ]] <................> [[Mathc initiation/Fichiers c : c71c01|c1a.c : "ln(x)";]]
* [[Mathc initiation/Fichiers c : c71c05| Étude de : <......> "ln(x)**n";]]
* [[Mathc initiation/Fichiers h : c71b02|fb.h ]] <................> [[Mathc initiation/Fichiers c : c71c02|c1b.c : "atan(x)";]]
* [[Mathc initiation/Fichiers h : c71b03|fc.h ]] <................> [[Mathc initiation/Fichiers c : c71c03|c1c.c : "asin(x)";]]
* [[Mathc initiation/Fichiers h : c71b04|fd.h ]] <................> [[Mathc initiation/Fichiers c : c71c04|c1d.c : "acos(x)";]]
* [[Mathc initiation/Fichiers h : c71b06|fe.h ]] <................> [[Mathc initiation/Fichiers c : c71c06|c1e.c : "asinh(x)";]]
* [[Mathc initiation/Fichiers h : c71b07|ff.h ]] <.................> [[Mathc initiation/Fichiers c : c71c07|c1f.c : "acosh(x)";]]
:
----
{{AutoCat}}
sokp9pvpl3xizrrwc93sqnv38rdc79x
Mathc initiation/Fichiers h : c74
0
77890
682330
682316
2022-07-24T17:47:05Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
:
[[Mathc initiation/a08| Sommaire]]
:
----{{Partie{{{type|}}}|Intégrer les fonctions élémentaires (Sympson)|fond={{{fond|}}<nowiki>}</nowiki>}}
:
En mathématiques, l'intégration est le fait de calculer une intégrale. C'est aussi une des deux branches du calcul infinitésimal, appelée également calcul intégral, l'autre étant le calcul différentiel..[https://fr.wikipedia.org/wiki/Int%C3%A9gration_(math%C3%A9matiques)]
:
<br>
Copier la bibliothèque dans votre répertoire de travail :
* [[Mathc initiation/Fichiers h : c74a1|x_hfile.h ............ Déclaration des fichiers h]]
* [[Mathc initiation/Fichiers h : c74a2|x_def.h .............. Les utilitaires]]
* [[Mathc initiation/Fichiers h : c74a3|x_symp.h ......... L'algorithme pour la méthode sympson]]
:
<br>
{| class="wikitable"
|+ Calculer les intégrales élémentaires
|-
! Fonctions trigonométriques : !! Fonctions trigonométriques hyperbolique:
|-
||
* .
* .
* [[Mathc initiation/Fichiers h : c74b01|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c01|c1a.c : ..... "sec(x)";]]
* [[Mathc initiation/Fichiers h : c74b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c02|c1b.c : ..... "csc(x)";]]
* [[Mathc initiation/Fichiers h : c74b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c03|c1c.c : ..... "tan(x)";]]
* [[Mathc initiation/Fichiers h : c74b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c04|c1d.c : ..... "cot(x)";]]
* [[Mathc initiation/Fichiers h : c71b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c03|c1c.c :
..... "asin(x)";]]
* [[Mathc initiation/Fichiers h : c71b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c04|c1d.c :
..... "acos(x)";]]
* [[Mathc initiation/Fichiers h : c71b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c02|c1b.c :
..... "atan(x)";]]
* [[Mathc initiation/Fichiers h : c79a|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c79a|c1a.c :
..... "sec(x)**2";]]
* [[Mathc initiation/Fichiers h : c79b|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c79b|c1b.c :
..... "csc(x)**2";]]
* [[Mathc initiation/Fichiers h : c79c|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c79c|c1c.c :
..... "sec(x)tan(x)";]]
* [[Mathc initiation/Fichiers h : c79d|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c79d|c1d.c :
..... "csc(x)cot(x)";]]
* [[Mathc initiation/Fichiers h : c79i|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c79i|c1i.c :
...... "1/(1-x**2)";]]
||
* [[Mathc initiation/Fichiers h : c74b07|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c07|c1g.c : ..... "sinh(x)";]]
* [[Mathc initiation/Fichiers h : c74b08|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c08|c1h.c : ..... "cosh(x)";]]
* [[Mathc initiation/Fichiers h : c74b09|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c74c09|c1i.c : ...... "sech(x)";]]
* [[Mathc initiation/Fichiers h : c74b10|fj.h ]] : <................> [[Mathc initiation/Fichiers c : c74c10|c1j.c : ...... "csch(x)";]]
* [[Mathc initiation/Fichiers h : c74b05|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c05|c1e.c : ..... "tanh(x)";]]
* [[Mathc initiation/Fichiers h : c74b06|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c74c06|c1f.c : ...... "coth(x)";]]
*.
*.
*.
* [[Mathc initiation/Fichiers h : c79e|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c79e|c1e.c :
..... "sech(x)**2";]]
* [[Mathc initiation/Fichiers h : c79f|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c79f|c1f.c :
...... "csch(x)**2";]]
* [[Mathc initiation/Fichiers h : c79g|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c79g|c1g.c :
..... "sech(x)*tanh(x)";]]
* [[Mathc initiation/Fichiers h : c79h|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c79h|c1h.c :
..... "csch(x)*coth(x)";]]
|}
{| class="wikitable"
|+ .
|-
! Fonctions exponentielles : !! Fonctions logarithmes :
|-
||
*.
||
* [[Mathc initiation/Fichiers h : c71b01|fa.h ]] <................> [[Mathc initiation/Fichiers c : c71c01|c1a.c : ...... "ln(x)";]]
|}
<br>
----
{{AutoCat}}
8ep9jrsesnbckkg0hxv2yd52yuoxvlf
682333
682330
2022-07-24T17:49:35Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
:
[[Mathc initiation/a08| Sommaire]]
:
----{{Partie{{{type|}}}|Intégrer les fonctions élémentaires (Sympson)|fond={{{fond|}}<nowiki>}</nowiki>}}
:
En mathématiques, l'intégration est le fait de calculer une intégrale. C'est aussi une des deux branches du calcul infinitésimal, appelée également calcul intégral, l'autre étant le calcul différentiel..[https://fr.wikipedia.org/wiki/Int%C3%A9gration_(math%C3%A9matiques)]
:
<br>
Copier la bibliothèque dans votre répertoire de travail :
* [[Mathc initiation/Fichiers h : c74a1|x_hfile.h ............ Déclaration des fichiers h]]
* [[Mathc initiation/Fichiers h : c74a2|x_def.h .............. Les utilitaires]]
* [[Mathc initiation/Fichiers h : c74a3|x_symp.h ......... L'algorithme pour la méthode sympson]]
:
<br>
{| class="wikitable"
|+ Calculer les intégrales élémentaires
|-
! Fonctions trigonométriques : !! Fonctions trigonométriques hyperbolique:
|-
||
* .
* .
* [[Mathc initiation/Fichiers h : c74b01|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c01|c1a.c : ..... "sec(x)";]]
* [[Mathc initiation/Fichiers h : c74b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c02|c1b.c : ..... "csc(x)";]]
* [[Mathc initiation/Fichiers h : c74b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c03|c1c.c : ..... "tan(x)";]]
* [[Mathc initiation/Fichiers h : c74b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c04|c1d.c : ..... "cot(x)";]]
* [[Mathc initiation/Fichiers h : c71b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c03|c1c.c :
..... "asin(x)";]]
* [[Mathc initiation/Fichiers h : c71b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c04|c1d.c :
..... "acos(x)";]]
* [[Mathc initiation/Fichiers h : c71b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c02|c1b.c :
..... "atan(x)";]]
* [[Mathc initiation/Fichiers h : c79a|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c79a|c1a.c :
..... "sec(x)**2";]]
* [[Mathc initiation/Fichiers h : c79b|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c79b|c1b.c :
..... "csc(x)**2";]]
* [[Mathc initiation/Fichiers h : c79c|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c79c|c1c.c :
..... "sec(x)tan(x)";]]
* [[Mathc initiation/Fichiers h : c79d|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c79d|c1d.c :
..... "csc(x)cot(x)";]]
* [[Mathc initiation/Fichiers h : c79i|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c79i|c1i.c :
...... "1/(1-x**2)";]]
||
* [[Mathc initiation/Fichiers h : c74b07|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c07|c1g.c : ..... "sinh(x)";]]
* [[Mathc initiation/Fichiers h : c74b08|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c08|c1h.c : ..... "cosh(x)";]]
* [[Mathc initiation/Fichiers h : c74b09|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c74c09|c1i.c : ...... "sech(x)";]]
* [[Mathc initiation/Fichiers h : c74b10|fj.h ]] : <................> [[Mathc initiation/Fichiers c : c74c10|c1j.c : ...... "csch(x)";]]
* [[Mathc initiation/Fichiers h : c74b05|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c05|c1e.c : ..... "tanh(x)";]]
* [[Mathc initiation/Fichiers h : c74b06|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c74c06|c1f.c : ...... "coth(x)";]]
*.
*.
*.
* [[Mathc initiation/Fichiers h : c79e|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c79e|c1e.c :
..... "sech(x)**2";]]
* [[Mathc initiation/Fichiers h : c79f|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c79f|c1f.c :
...... "csch(x)**2";]]
* [[Mathc initiation/Fichiers h : c79g|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c79g|c1g.c :
..... "sech(x)*tanh(x)";]]
* [[Mathc initiation/Fichiers h : c79h|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c79h|c1h.c :
..... "csch(x)*coth(x)";]]
*.
|}
{| class="wikitable"
|+ .
|-
! Fonctions exponentielles : !! Fonctions logarithmes :
|-
||
*.
||
* [[Mathc initiation/Fichiers h : c71b01|fa.h ]] <................> [[Mathc initiation/Fichiers c : c71c01|c1a.c : ...... "ln(x)";]]
|}
<br>
----
{{AutoCat}}
p6wfhiahzjytkjr99mqtz2br2dyuryp
682334
682333
2022-07-24T18:01:39Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
:
[[Mathc initiation/a08| Sommaire]]
:
----{{Partie{{{type|}}}|Intégrer les fonctions élémentaires (Sympson)|fond={{{fond|}}<nowiki>}</nowiki>}}
:
En mathématiques, l'intégration est le fait de calculer une intégrale. C'est aussi une des deux branches du calcul infinitésimal, appelée également calcul intégral, l'autre étant le calcul différentiel..[https://fr.wikipedia.org/wiki/Int%C3%A9gration_(math%C3%A9matiques)]
:
<br>
Copier la bibliothèque dans votre répertoire de travail :
* [[Mathc initiation/Fichiers h : c74a1|x_hfile.h ............ Déclaration des fichiers h]]
* [[Mathc initiation/Fichiers h : c74a2|x_def.h .............. Les utilitaires]]
* [[Mathc initiation/Fichiers h : c74a3|x_symp.h ......... L'algorithme pour la méthode sympson]]
:
<br>
{| class="wikitable"
|+ Calculer les intégrales élémentaires
|-
! Fonctions trigonométriques : !! Fonctions trigonométriques hyperbolique:
|-
||
* .
* .
* [[Mathc initiation/Fichiers h : c74b01|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c01|c1a.c : ..... "sec(x)";]]
* [[Mathc initiation/Fichiers h : c74b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c02|c1b.c : ..... "csc(x)";]]
* [[Mathc initiation/Fichiers h : c74b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c03|c1c.c : ..... "tan(x)";]]
* [[Mathc initiation/Fichiers h : c74b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c04|c1d.c : ..... "cot(x)";]]
* [[Mathc initiation/Fichiers h : c71b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c03|c1c.c :
..... "asin(x)";]]
* [[Mathc initiation/Fichiers h : c71b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c04|c1d.c :
..... "acos(x)";]]
* [[Mathc initiation/Fichiers h : c71b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c02|c1b.c :
..... "atan(x)";]]
* [[Mathc initiation/Fichiers h : c79a|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c79a|c1a.c :
..... "sec(x)**2";]]
* [[Mathc initiation/Fichiers h : c79b|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c79b|c1b.c :
..... "csc(x)**2";]]
* [[Mathc initiation/Fichiers h : c79c|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c79c|c1c.c :
..... "sec(x)tan(x)";]]
* [[Mathc initiation/Fichiers h : c79d|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c79d|c1d.c :
..... "csc(x)cot(x)";]]
* [[Mathc initiation/Fichiers h : c79i|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c79i|c1i.c :
...... "1/sqrt(1-x**2)";]]
* [[Mathc initiation/Fichiers h : c79j|fj.h ]] : <................> [[Mathc initiation/Fichiers c : c79j|c1j.c :
...... "1/(x**2+1)";]]
||
* [[Mathc initiation/Fichiers h : c74b07|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c07|c1g.c : ..... "sinh(x)";]]
* [[Mathc initiation/Fichiers h : c74b08|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c08|c1h.c : ..... "cosh(x)";]]
* [[Mathc initiation/Fichiers h : c74b09|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c74c09|c1i.c : ...... "sech(x)";]]
* [[Mathc initiation/Fichiers h : c74b10|fj.h ]] : <................> [[Mathc initiation/Fichiers c : c74c10|c1j.c : ...... "csch(x)";]]
* [[Mathc initiation/Fichiers h : c74b05|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c05|c1e.c : ..... "tanh(x)";]]
* [[Mathc initiation/Fichiers h : c74b06|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c74c06|c1f.c : ...... "coth(x)";]]
*.
*.
*.
* [[Mathc initiation/Fichiers h : c79e|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c79e|c1e.c :
..... "sech(x)**2";]]
* [[Mathc initiation/Fichiers h : c79f|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c79f|c1f.c :
...... "csch(x)**2";]]
* [[Mathc initiation/Fichiers h : c79g|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c79g|c1g.c :
..... "sech(x)*tanh(x)";]]
* [[Mathc initiation/Fichiers h : c79h|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c79h|c1h.c :
..... "csch(x)*coth(x)";]]
*.
|}
{| class="wikitable"
|+ .
|-
! Fonctions exponentielles : !! Fonctions logarithmes :
|-
||
*.
||
* [[Mathc initiation/Fichiers h : c71b01|fa.h ]] <................> [[Mathc initiation/Fichiers c : c71c01|c1a.c : ...... "ln(x)";]]
|}
<br>
----
{{AutoCat}}
dh83kqn4oe35jpxr55f0bvcvac4klxs
682338
682334
2022-07-24T18:04:30Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
:
[[Mathc initiation/a08| Sommaire]]
:
----{{Partie{{{type|}}}|Intégrer les fonctions élémentaires (Sympson)|fond={{{fond|}}<nowiki>}</nowiki>}}
:
En mathématiques, l'intégration est le fait de calculer une intégrale. C'est aussi une des deux branches du calcul infinitésimal, appelée également calcul intégral, l'autre étant le calcul différentiel..[https://fr.wikipedia.org/wiki/Int%C3%A9gration_(math%C3%A9matiques)]
:
<br>
Copier la bibliothèque dans votre répertoire de travail :
* [[Mathc initiation/Fichiers h : c74a1|x_hfile.h ............ Déclaration des fichiers h]]
* [[Mathc initiation/Fichiers h : c74a2|x_def.h .............. Les utilitaires]]
* [[Mathc initiation/Fichiers h : c74a3|x_symp.h ......... L'algorithme pour la méthode sympson]]
:
<br>
{| class="wikitable"
|+ Calculer les intégrales élémentaires
|-
! Fonctions trigonométriques : !! Fonctions trigonométriques hyperbolique:
|-
||
* .
* .
* [[Mathc initiation/Fichiers h : c74b01|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c01|c1a.c : ..... "sec(x)";]]
* [[Mathc initiation/Fichiers h : c74b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c02|c1b.c : ..... "csc(x)";]]
* [[Mathc initiation/Fichiers h : c74b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c03|c1c.c : ..... "tan(x)";]]
* [[Mathc initiation/Fichiers h : c74b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c04|c1d.c : ..... "cot(x)";]]
* [[Mathc initiation/Fichiers h : c71b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c03|c1c.c :
..... "asin(x)";]]
* [[Mathc initiation/Fichiers h : c71b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c04|c1d.c :
..... "acos(x)";]]
* [[Mathc initiation/Fichiers h : c71b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c02|c1b.c :
..... "atan(x)";]]
* [[Mathc initiation/Fichiers h : c79a|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c79a|c1a.c :
..... "sec(x)**2";]]
* [[Mathc initiation/Fichiers h : c79b|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c79b|c1b.c :
..... "csc(x)**2";]]
* [[Mathc initiation/Fichiers h : c79c|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c79c|c1c.c :
..... "sec(x)tan(x)";]]
* [[Mathc initiation/Fichiers h : c79d|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c79d|c1d.c :
..... "csc(x)cot(x)";]]
* [[Mathc initiation/Fichiers h : c79i|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c79i|c1i.c :
...... "1/sqrt(1-x**2)";]]
* [[Mathc initiation/Fichiers h : c79j|fj.h ]] : <................> [[Mathc initiation/Fichiers c : c79j|c1j.c :
...... "1/(x**2+1)";]]
||
* [[Mathc initiation/Fichiers h : c74b07|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c07|c1g.c : ..... "sinh(x)";]]
* [[Mathc initiation/Fichiers h : c74b08|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c08|c1h.c : ..... "cosh(x)";]]
* [[Mathc initiation/Fichiers h : c74b09|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c74c09|c1i.c : ...... "sech(x)";]]
* [[Mathc initiation/Fichiers h : c74b10|fj.h ]] : <................> [[Mathc initiation/Fichiers c : c74c10|c1j.c : ...... "csch(x)";]]
* [[Mathc initiation/Fichiers h : c74b05|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c05|c1e.c : ..... "tanh(x)";]]
* [[Mathc initiation/Fichiers h : c74b06|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c74c06|c1f.c : ...... "coth(x)";]]
*.
*.
*.
* [[Mathc initiation/Fichiers h : c79e|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c79e|c1e.c :
..... "sech(x)**2";]]
* [[Mathc initiation/Fichiers h : c79f|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c79f|c1f.c :
...... "csch(x)**2";]]
* [[Mathc initiation/Fichiers h : c79g|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c79g|c1g.c :
..... "sech(x)*tanh(x)";]]
* [[Mathc initiation/Fichiers h : c79h|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c79h|c1h.c :
..... "csch(x)*coth(x)";]]
*.
*.
|}
{| class="wikitable"
|+ .
|-
! Fonctions exponentielles : !! Fonctions logarithmes :
|-
||
*.
||
* [[Mathc initiation/Fichiers h : c71b01|fa.h ]] <................> [[Mathc initiation/Fichiers c : c71c01|c1a.c : ...... "ln(x)";]]
|}
<br>
----
{{AutoCat}}
j97o4brodnvwnjz8j2zkijxmfa1g5yw
682342
682338
2022-07-24T18:21:38Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
:
[[Mathc initiation/a08| Sommaire]]
:
----{{Partie{{{type|}}}|Intégrer les fonctions élémentaires (Sympson)|fond={{{fond|}}<nowiki>}</nowiki>}}
:
En mathématiques, l'intégration est le fait de calculer une intégrale. C'est aussi une des deux branches du calcul infinitésimal, appelée également calcul intégral, l'autre étant le calcul différentiel..[https://fr.wikipedia.org/wiki/Int%C3%A9gration_(math%C3%A9matiques)]
:
<br>
Copier la bibliothèque dans votre répertoire de travail :
* [[Mathc initiation/Fichiers h : c74a1|x_hfile.h ............ Déclaration des fichiers h]]
* [[Mathc initiation/Fichiers h : c74a2|x_def.h .............. Les utilitaires]]
* [[Mathc initiation/Fichiers h : c74a3|x_symp.h ......... L'algorithme pour la méthode sympson]]
:
<br>
{| class="wikitable"
|+ Calculer les intégrales élémentaires
|-
! Fonctions trigonométriques : !! Fonctions trigonométriques hyperbolique:
|-
||
* .
* .
* [[Mathc initiation/Fichiers h : c74b01|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c01|c1a.c : ..... "sec(x)";]]
* [[Mathc initiation/Fichiers h : c74b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c02|c1b.c : ..... "csc(x)";]]
* [[Mathc initiation/Fichiers h : c74b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c03|c1c.c : ..... "tan(x)";]]
* [[Mathc initiation/Fichiers h : c74b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c04|c1d.c : ..... "cot(x)";]]
* [[Mathc initiation/Fichiers h : c71b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c03|c1c.c :
..... "asin(x)";]]
* [[Mathc initiation/Fichiers h : c71b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c04|c1d.c :
..... "acos(x)";]]
* [[Mathc initiation/Fichiers h : c71b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c02|c1b.c :
..... "atan(x)";]]
* [[Mathc initiation/Fichiers h : c79a|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c79a|c1a.c :
..... "sec(x)**2";]]
* [[Mathc initiation/Fichiers h : c79b|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c79b|c1b.c :
..... "csc(x)**2";]]
* [[Mathc initiation/Fichiers h : c79c|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c79c|c1c.c :
..... "sec(x)tan(x)";]]
* [[Mathc initiation/Fichiers h : c79d|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c79d|c1d.c :
..... "csc(x)cot(x)";]]
* [[Mathc initiation/Fichiers h : c79i|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c79i|c1i.c :
...... "1/sqrt(1-x**2)";]]
* [[Mathc initiation/Fichiers h : c79j|fj.h ]] : <................> [[Mathc initiation/Fichiers c : c79j|c1j.c :
...... "1/(x**2+1)";]]
* [[Mathc initiation/Fichiers h : c79k|fk.h ]] : <...............> [[Mathc initiation/Fichiers c : c79k|c1k.c :
..... "1/(x sqrt(x**2-1))";]]
||
* [[Mathc initiation/Fichiers h : c74b07|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c07|c1g.c : ..... "sinh(x)";]]
* [[Mathc initiation/Fichiers h : c74b08|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c08|c1h.c : ..... "cosh(x)";]]
* [[Mathc initiation/Fichiers h : c74b09|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c74c09|c1i.c : ...... "sech(x)";]]
* [[Mathc initiation/Fichiers h : c74b10|fj.h ]] : <................> [[Mathc initiation/Fichiers c : c74c10|c1j.c : ...... "csch(x)";]]
* [[Mathc initiation/Fichiers h : c74b05|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c05|c1e.c : ..... "tanh(x)";]]
* [[Mathc initiation/Fichiers h : c74b06|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c74c06|c1f.c : ...... "coth(x)";]]
*.
*.
*.
* [[Mathc initiation/Fichiers h : c79e|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c79e|c1e.c :
..... "sech(x)**2";]]
* [[Mathc initiation/Fichiers h : c79f|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c79f|c1f.c :
...... "csch(x)**2";]]
* [[Mathc initiation/Fichiers h : c79g|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c79g|c1g.c :
..... "sech(x)*tanh(x)";]]
* [[Mathc initiation/Fichiers h : c79h|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c79h|c1h.c :
..... "csch(x)*coth(x)";]]
*.
*.
*.
|}
{| class="wikitable"
|+ .
|-
! Fonctions exponentielles : !! Fonctions logarithmes :
|-
||
*.
||
* [[Mathc initiation/Fichiers h : c71b01|fa.h ]] <................> [[Mathc initiation/Fichiers c : c71c01|c1a.c : ...... "ln(x)";]]
|}
<br>
----
{{AutoCat}}
pkrh1nuc1b0hrvt0ymmatpimqrr7mjc
682345
682342
2022-07-24T20:41:26Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
:
[[Mathc initiation/a08| Sommaire]]
:
----{{Partie{{{type|}}}|Intégrer les fonctions élémentaires (Sympson)|fond={{{fond|}}<nowiki>}</nowiki>}}
:
En mathématiques, l'intégration est le fait de calculer une intégrale. C'est aussi une des deux branches du calcul infinitésimal, appelée également calcul intégral, l'autre étant le calcul différentiel..[https://fr.wikipedia.org/wiki/Int%C3%A9gration_(math%C3%A9matiques)]
:
<br>
Copier la bibliothèque dans votre répertoire de travail :
* [[Mathc initiation/Fichiers h : c74a1|x_hfile.h ............ Déclaration des fichiers h]]
* [[Mathc initiation/Fichiers h : c74a2|x_def.h .............. Les utilitaires]]
* [[Mathc initiation/Fichiers h : c74a3|x_symp.h ......... L'algorithme pour la méthode sympson]]
:
<br>
{| class="wikitable"
|+ Calculer les intégrales élémentaires
|-
! Fonctions trigonométriques : !! Fonctions trigonométriques hyperbolique:
|-
||
* .
* .
* [[Mathc initiation/Fichiers h : c74b01|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c01|c1a.c : ..... "sec(x)";]]
* [[Mathc initiation/Fichiers h : c74b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c02|c1b.c : ..... "csc(x)";]]
* [[Mathc initiation/Fichiers h : c74b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c03|c1c.c : ..... "tan(x)";]]
* [[Mathc initiation/Fichiers h : c74b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c04|c1d.c : ..... "cot(x)";]]
* [[Mathc initiation/Fichiers h : c71b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c03|c1c.c :
..... "asin(x)";]]
* [[Mathc initiation/Fichiers h : c71b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c04|c1d.c :
..... "acos(x)";]]
* [[Mathc initiation/Fichiers h : c71b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c02|c1b.c :
..... "atan(x)";]]
* [[Mathc initiation/Fichiers h : c79a|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c79a|c1a.c :
..... "sec(x)**2";]]
* [[Mathc initiation/Fichiers h : c79b|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c79b|c1b.c :
..... "csc(x)**2";]]
* [[Mathc initiation/Fichiers h : c79c|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c79c|c1c.c :
..... "sec(x)tan(x)";]]
* [[Mathc initiation/Fichiers h : c79d|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c79d|c1d.c :
..... "csc(x)cot(x)";]]
* [[Mathc initiation/Fichiers h : c79i|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c79i|c1i.c :
...... "1/sqrt(1-x**2)";]]
* [[Mathc initiation/Fichiers h : c79j|fj.h ]] : <................> [[Mathc initiation/Fichiers c : c79j|c1j.c :
...... "1/(x**2+1)";]]
* [[Mathc initiation/Fichiers h : c79k|fk.h ]] : <...............> [[Mathc initiation/Fichiers c : c79k|c1k.c :
..... "1/(x sqrt(x**2-1))";]]
||
* [[Mathc initiation/Fichiers h : c74b07|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c07|c1g.c : ..... "sinh(x)";]]
* [[Mathc initiation/Fichiers h : c74b08|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c08|c1h.c : ..... "cosh(x)";]]
* [[Mathc initiation/Fichiers h : c74b09|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c74c09|c1i.c : ...... "sech(x)";]]
* [[Mathc initiation/Fichiers h : c74b10|fj.h ]] : <................> [[Mathc initiation/Fichiers c : c74c10|c1j.c : ...... "csch(x)";]]
* [[Mathc initiation/Fichiers h : c74b05|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c05|c1e.c : ..... "tanh(x)";]]
* [[Mathc initiation/Fichiers h : c74b06|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c74c06|c1f.c : ...... "coth(x)";]]
*.
*.
*.
* [[Mathc initiation/Fichiers h : c79e|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c79e|c1e.c :
..... "sech(x)**2";]]
* [[Mathc initiation/Fichiers h : c79f|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c79f|c1f.c :
...... "csch(x)**2";]]
* [[Mathc initiation/Fichiers h : c79g|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c79g|c1g.c :
..... "sech(x)*tanh(x)";]]
* [[Mathc initiation/Fichiers h : c79h|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c79h|c1h.c :
..... "csch(x)*coth(x)";]]
* [[Mathc initiation/Fichiers h : c79l|fl.h ]] : <................> [[Mathc initiation/Fichiers c : c79l|c1l.c :
...... "1/sqrt(1+x**2)";]]
*.
*.
|}
{| class="wikitable"
|+ .
|-
! Fonctions exponentielles : !! Fonctions logarithmes :
|-
||
*.
||
* [[Mathc initiation/Fichiers h : c71b01|fa.h ]] <................> [[Mathc initiation/Fichiers c : c71c01|c1a.c : ...... "ln(x)";]]
|}
<br>
----
{{AutoCat}}
9zyph0vmlxr8aupma49e6z7zlk10flx
682348
682345
2022-07-24T20:49:23Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
:
[[Mathc initiation/a08| Sommaire]]
:
----{{Partie{{{type|}}}|Intégrer les fonctions élémentaires (Sympson)|fond={{{fond|}}<nowiki>}</nowiki>}}
:
En mathématiques, l'intégration est le fait de calculer une intégrale. C'est aussi une des deux branches du calcul infinitésimal, appelée également calcul intégral, l'autre étant le calcul différentiel..[https://fr.wikipedia.org/wiki/Int%C3%A9gration_(math%C3%A9matiques)]
:
<br>
Copier la bibliothèque dans votre répertoire de travail :
* [[Mathc initiation/Fichiers h : c74a1|x_hfile.h ............ Déclaration des fichiers h]]
* [[Mathc initiation/Fichiers h : c74a2|x_def.h .............. Les utilitaires]]
* [[Mathc initiation/Fichiers h : c74a3|x_symp.h ......... L'algorithme pour la méthode sympson]]
:
<br>
{| class="wikitable"
|+ Calculer les intégrales élémentaires
|-
! Fonctions trigonométriques : !! Fonctions trigonométriques hyperbolique:
|-
||
* .
* .
* [[Mathc initiation/Fichiers h : c74b01|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c01|c1a.c : ..... "sec(x)";]]
* [[Mathc initiation/Fichiers h : c74b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c02|c1b.c : ..... "csc(x)";]]
* [[Mathc initiation/Fichiers h : c74b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c03|c1c.c : ..... "tan(x)";]]
* [[Mathc initiation/Fichiers h : c74b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c04|c1d.c : ..... "cot(x)";]]
* [[Mathc initiation/Fichiers h : c71b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c03|c1c.c :
..... "asin(x)";]]
* [[Mathc initiation/Fichiers h : c71b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c04|c1d.c :
..... "acos(x)";]]
* [[Mathc initiation/Fichiers h : c71b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c02|c1b.c :
..... "atan(x)";]]
* [[Mathc initiation/Fichiers h : c79a|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c79a|c1a.c :
..... "sec(x)**2";]]
* [[Mathc initiation/Fichiers h : c79b|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c79b|c1b.c :
..... "csc(x)**2";]]
* [[Mathc initiation/Fichiers h : c79c|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c79c|c1c.c :
..... "sec(x)tan(x)";]]
* [[Mathc initiation/Fichiers h : c79d|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c79d|c1d.c :
..... "csc(x)cot(x)";]]
* [[Mathc initiation/Fichiers h : c79i|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c79i|c1i.c :
...... "1/sqrt(1-x**2)";]]
* [[Mathc initiation/Fichiers h : c79j|fj.h ]] : <................> [[Mathc initiation/Fichiers c : c79j|c1j.c :
...... "1/(x**2+1)";]]
* [[Mathc initiation/Fichiers h : c79k|fk.h ]] : <...............> [[Mathc initiation/Fichiers c : c79k|c1k.c :
..... "1/(x sqrt(x**2-1))";]]
||
* [[Mathc initiation/Fichiers h : c74b07|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c07|c1g.c : ..... "sinh(x)";]]
* [[Mathc initiation/Fichiers h : c74b08|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c08|c1h.c : ..... "cosh(x)";]]
* [[Mathc initiation/Fichiers h : c74b09|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c74c09|c1i.c : ...... "sech(x)";]]
* [[Mathc initiation/Fichiers h : c74b10|fj.h ]] : <................> [[Mathc initiation/Fichiers c : c74c10|c1j.c : ...... "csch(x)";]]
* [[Mathc initiation/Fichiers h : c74b05|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c05|c1e.c : ..... "tanh(x)";]]
* [[Mathc initiation/Fichiers h : c74b06|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c74c06|c1f.c : ...... "coth(x)";]]
*.
*.
*.
* [[Mathc initiation/Fichiers h : c79e|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c79e|c1e.c :
..... "sech(x)**2";]]
* [[Mathc initiation/Fichiers h : c79f|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c79f|c1f.c :
...... "csch(x)**2";]]
* [[Mathc initiation/Fichiers h : c79g|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c79g|c1g.c :
..... "sech(x)*tanh(x)";]]
* [[Mathc initiation/Fichiers h : c79h|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c79h|c1h.c :
..... "csch(x)*coth(x)";]]
* [[Mathc initiation/Fichiers h : c79l|fl.h ]] : <................> [[Mathc initiation/Fichiers c : c79l|c1l.c :
...... "1/sqrt(1+x**2)";]]
* [[Mathc initiation/Fichiers h : c79m|fm.h ]] : <...............> [[Mathc initiation/Fichiers c : c79m|c1m.c :
..... "1/(1-x**2)";]]
*.
|}
{| class="wikitable"
|+ .
|-
! Fonctions exponentielles : !! Fonctions logarithmes :
|-
||
*.
||
* [[Mathc initiation/Fichiers h : c71b01|fa.h ]] <................> [[Mathc initiation/Fichiers c : c71c01|c1a.c : ...... "ln(x)";]]
|}
<br>
----
{{AutoCat}}
ssz2y3x7fkuxoulf1s3h79kximft135
682349
682348
2022-07-24T20:50:35Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
:
[[Mathc initiation/a08| Sommaire]]
:
----{{Partie{{{type|}}}|Intégrer les fonctions élémentaires (Sympson)|fond={{{fond|}}<nowiki>}</nowiki>}}
:
En mathématiques, l'intégration est le fait de calculer une intégrale. C'est aussi une des deux branches du calcul infinitésimal, appelée également calcul intégral, l'autre étant le calcul différentiel..[https://fr.wikipedia.org/wiki/Int%C3%A9gration_(math%C3%A9matiques)]
:
<br>
Copier la bibliothèque dans votre répertoire de travail :
* [[Mathc initiation/Fichiers h : c74a1|x_hfile.h ............ Déclaration des fichiers h]]
* [[Mathc initiation/Fichiers h : c74a2|x_def.h .............. Les utilitaires]]
* [[Mathc initiation/Fichiers h : c74a3|x_symp.h ......... L'algorithme pour la méthode sympson]]
:
<br>
{| class="wikitable"
|+ Calculer les intégrales élémentaires
|-
! Fonctions trigonométriques : !! Fonctions trigonométriques hyperbolique:
|-
||
* .
* .
* [[Mathc initiation/Fichiers h : c74b01|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c01|c1a.c : ..... "sec(x)";]]
* [[Mathc initiation/Fichiers h : c74b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c02|c1b.c : ..... "csc(x)";]]
* [[Mathc initiation/Fichiers h : c74b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c03|c1c.c : ..... "tan(x)";]]
* [[Mathc initiation/Fichiers h : c74b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c04|c1d.c : ..... "cot(x)";]]
* [[Mathc initiation/Fichiers h : c71b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c03|c1c.c :
..... "asin(x)";]]
* [[Mathc initiation/Fichiers h : c71b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c04|c1d.c :
..... "acos(x)";]]
* [[Mathc initiation/Fichiers h : c71b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c02|c1b.c :
..... "atan(x)";]]
* [[Mathc initiation/Fichiers h : c79a|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c79a|c1a.c :
..... "sec(x)**2";]]
* [[Mathc initiation/Fichiers h : c79b|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c79b|c1b.c :
..... "csc(x)**2";]]
* [[Mathc initiation/Fichiers h : c79c|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c79c|c1c.c :
..... "sec(x)tan(x)";]]
* [[Mathc initiation/Fichiers h : c79d|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c79d|c1d.c :
..... "csc(x)cot(x)";]]
* [[Mathc initiation/Fichiers h : c79i|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c79i|c1i.c :
...... "1/sqrt(1-x**2)";]]
* [[Mathc initiation/Fichiers h : c79j|fj.h ]] : <................> [[Mathc initiation/Fichiers c : c79j|c1j.c :
...... "1/(x**2+1)";]]
* [[Mathc initiation/Fichiers h : c79k|fk.h ]] : <...............> [[Mathc initiation/Fichiers c : c79k|c1k.c :
..... "1/(x sqrt(x**2-1))";]]
||
* [[Mathc initiation/Fichiers h : c74b07|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c07|c1g.c : ..... "sinh(x)";]]
* [[Mathc initiation/Fichiers h : c74b08|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c08|c1h.c : ..... "cosh(x)";]]
* [[Mathc initiation/Fichiers h : c74b09|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c74c09|c1i.c : ...... "sech(x)";]]
* [[Mathc initiation/Fichiers h : c74b10|fj.h ]] : <................> [[Mathc initiation/Fichiers c : c74c10|c1j.c : ...... "csch(x)";]]
* [[Mathc initiation/Fichiers h : c74b05|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c05|c1e.c : ..... "tanh(x)";]]
* [[Mathc initiation/Fichiers h : c74b06|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c74c06|c1f.c : ...... "coth(x)";]]
*.
*.
*.
* [[Mathc initiation/Fichiers h : c79e|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c79e|c1e.c :
..... "sech(x)**2";]]
* [[Mathc initiation/Fichiers h : c79f|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c79f|c1f.c :
...... "csch(x)**2";]]
* [[Mathc initiation/Fichiers h : c79g|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c79g|c1g.c :
..... "sech(x)*tanh(x)";]]
* [[Mathc initiation/Fichiers h : c79h|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c79h|c1h.c :
..... "csch(x)*coth(x)";]]
* [[Mathc initiation/Fichiers h : c79l|fl.h ]] : <................> [[Mathc initiation/Fichiers c : c79l|c1l.c :
...... "1/sqrt(1+x**2)";]]
* [[Mathc initiation/Fichiers h : c79m|fm.h ]] : <..............> [[Mathc initiation/Fichiers c : c79m|c1m.c :
.... "1/(1-x**2)";]]
*.
|}
{| class="wikitable"
|+ .
|-
! Fonctions exponentielles : !! Fonctions logarithmes :
|-
||
*.
||
* [[Mathc initiation/Fichiers h : c71b01|fa.h ]] <................> [[Mathc initiation/Fichiers c : c71c01|c1a.c : ...... "ln(x)";]]
|}
<br>
----
{{AutoCat}}
54e6rqfvquu3g56zqkqef4ju7rfqnxe
682352
682349
2022-07-24T20:58:50Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
:
[[Mathc initiation/a08| Sommaire]]
:
----{{Partie{{{type|}}}|Intégrer les fonctions élémentaires (Sympson)|fond={{{fond|}}<nowiki>}</nowiki>}}
:
En mathématiques, l'intégration est le fait de calculer une intégrale. C'est aussi une des deux branches du calcul infinitésimal, appelée également calcul intégral, l'autre étant le calcul différentiel..[https://fr.wikipedia.org/wiki/Int%C3%A9gration_(math%C3%A9matiques)]
:
<br>
Copier la bibliothèque dans votre répertoire de travail :
* [[Mathc initiation/Fichiers h : c74a1|x_hfile.h ............ Déclaration des fichiers h]]
* [[Mathc initiation/Fichiers h : c74a2|x_def.h .............. Les utilitaires]]
* [[Mathc initiation/Fichiers h : c74a3|x_symp.h ......... L'algorithme pour la méthode sympson]]
:
<br>
{| class="wikitable"
|+ Calculer les intégrales élémentaires
|-
! Fonctions trigonométriques : !! Fonctions trigonométriques hyperbolique:
|-
||
* .
* .
* [[Mathc initiation/Fichiers h : c74b01|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c01|c1a.c : ..... "sec(x)";]]
* [[Mathc initiation/Fichiers h : c74b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c02|c1b.c : ..... "csc(x)";]]
* [[Mathc initiation/Fichiers h : c74b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c03|c1c.c : ..... "tan(x)";]]
* [[Mathc initiation/Fichiers h : c74b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c04|c1d.c : ..... "cot(x)";]]
* [[Mathc initiation/Fichiers h : c71b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c03|c1c.c :
..... "asin(x)";]]
* [[Mathc initiation/Fichiers h : c71b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c04|c1d.c :
..... "acos(x)";]]
* [[Mathc initiation/Fichiers h : c71b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c02|c1b.c :
..... "atan(x)";]]
* [[Mathc initiation/Fichiers h : c79a|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c79a|c1a.c :
..... "sec(x)**2";]]
* [[Mathc initiation/Fichiers h : c79b|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c79b|c1b.c :
..... "csc(x)**2";]]
* [[Mathc initiation/Fichiers h : c79c|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c79c|c1c.c :
..... "sec(x)tan(x)";]]
* [[Mathc initiation/Fichiers h : c79d|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c79d|c1d.c :
..... "csc(x)cot(x)";]]
* [[Mathc initiation/Fichiers h : c79i|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c79i|c1i.c :
...... "1/sqrt(1-x**2)";]]
* [[Mathc initiation/Fichiers h : c79j|fj.h ]] : <................> [[Mathc initiation/Fichiers c : c79j|c1j.c :
...... "1/(x**2+1)";]]
* [[Mathc initiation/Fichiers h : c79k|fk.h ]] : <...............> [[Mathc initiation/Fichiers c : c79k|c1k.c :
..... "1/(x sqrt(x**2-1))";]]
||
* [[Mathc initiation/Fichiers h : c74b07|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c07|c1g.c : ..... "sinh(x)";]]
* [[Mathc initiation/Fichiers h : c74b08|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c08|c1h.c : ..... "cosh(x)";]]
* [[Mathc initiation/Fichiers h : c74b09|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c74c09|c1i.c : ...... "sech(x)";]]
* [[Mathc initiation/Fichiers h : c74b10|fj.h ]] : <................> [[Mathc initiation/Fichiers c : c74c10|c1j.c : ...... "csch(x)";]]
* [[Mathc initiation/Fichiers h : c74b05|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c05|c1e.c : ..... "tanh(x)";]]
* [[Mathc initiation/Fichiers h : c74b06|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c74c06|c1f.c : ...... "coth(x)";]]
*.
*.
*.
* [[Mathc initiation/Fichiers h : c79e|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c79e|c1e.c :
..... "sech(x)**2";]]
* [[Mathc initiation/Fichiers h : c79f|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c79f|c1f.c :
...... "csch(x)**2";]]
* [[Mathc initiation/Fichiers h : c79g|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c79g|c1g.c :
..... "sech(x)*tanh(x)";]]
* [[Mathc initiation/Fichiers h : c79h|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c79h|c1h.c :
..... "csch(x)*coth(x)";]]
* [[Mathc initiation/Fichiers h : c79l|fl.h ]] : <................> [[Mathc initiation/Fichiers c : c79l|c1l.c :
...... "1/sqrt(1+x**2)";]]
* [[Mathc initiation/Fichiers h : c79m|fm.h ]] : <..............> [[Mathc initiation/Fichiers c : c79m|c1m.c :
.... "1/(1-x**2)";]]
* [[Mathc initiation/Fichiers h : c79n|fn.h ]] : <...............> [[Mathc initiation/Fichiers c : c79n|c1n.c :
..... "-1/(x sqrt(1-x**2))";]]
|}
{| class="wikitable"
|+ .
|-
! Fonctions exponentielles : !! Fonctions logarithmes :
|-
||
*.
||
* [[Mathc initiation/Fichiers h : c71b01|fa.h ]] <................> [[Mathc initiation/Fichiers c : c71c01|c1a.c : ...... "ln(x)";]]
|}
<br>
----
{{AutoCat}}
si822vi4ertdv1ycioqqzha9mj9z1lz
682375
682352
2022-07-25T10:35:25Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
:
[[Mathc initiation/a08| Sommaire]]
:
----{{Partie{{{type|}}}|Intégrer les fonctions élémentaires (Sympson)|fond={{{fond|}}<nowiki>}</nowiki>}}
:
En mathématiques, l'intégration est le fait de calculer une intégrale. C'est aussi une des deux branches du calcul infinitésimal, appelée également calcul intégral, l'autre étant le calcul différentiel..[https://fr.wikipedia.org/wiki/Int%C3%A9gration_(math%C3%A9matiques)]
:
<br>
Copier la bibliothèque dans votre répertoire de travail :
* [[Mathc initiation/Fichiers h : c74a1|x_hfile.h ............ Déclaration des fichiers h]]
* [[Mathc initiation/Fichiers h : c74a2|x_def.h .............. Les utilitaires]]
* [[Mathc initiation/Fichiers h : c74a3|x_symp.h ......... L'algorithme pour la méthode sympson]]
:
<br>
{| class="wikitable"
|+ Calculer les intégrales élémentaires
|-
! Fonctions trigonométriques : !! Fonctions trigonométriques hyperbolique:
|-
||
* .
* .
* [[Mathc initiation/Fichiers h : c74b01|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c01|c1a.c : ..... "sec(x)";]]
* [[Mathc initiation/Fichiers h : c74b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c02|c1b.c : ..... "csc(x)";]]
* [[Mathc initiation/Fichiers h : c74b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c03|c1c.c : ..... "tan(x)";]]
* [[Mathc initiation/Fichiers h : c74b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c04|c1d.c : ..... "cot(x)";]]
* [[Mathc initiation/Fichiers h : c71b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c03|c1c.c :
..... "asin(x)";]]
* [[Mathc initiation/Fichiers h : c71b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c04|c1d.c :
..... "acos(x)";]]
* [[Mathc initiation/Fichiers h : c71b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c02|c1b.c :
..... "atan(x)";]]
* [[Mathc initiation/Fichiers h : c79a|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c79a|c1a.c :
..... "sec(x)**2";]]
* [[Mathc initiation/Fichiers h : c79b|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c79b|c1b.c :
..... "csc(x)**2";]]
* [[Mathc initiation/Fichiers h : c79c|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c79c|c1c.c :
..... "sec(x)tan(x)";]]
* [[Mathc initiation/Fichiers h : c79d|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c79d|c1d.c :
..... "csc(x)cot(x)";]]
* [[Mathc initiation/Fichiers h : c79i|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c79i|c1i.c :
...... "1/sqrt(1-x**2)";]]
* [[Mathc initiation/Fichiers h : c79j|fj.h ]] : <................> [[Mathc initiation/Fichiers c : c79j|c1j.c :
...... "1/(x**2+1)";]]
* [[Mathc initiation/Fichiers h : c79k|fk.h ]] : <...............> [[Mathc initiation/Fichiers c : c79k|c1k.c :
..... "1/(x sqrt(x**2-1))";]]
||
* [[Mathc initiation/Fichiers h : c74b07|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c07|c1g.c : ..... "sinh(x)";]]
* [[Mathc initiation/Fichiers h : c74b08|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c08|c1h.c : ..... "cosh(x)";]]
* [[Mathc initiation/Fichiers h : c74b09|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c74c09|c1i.c : ...... "sech(x)";]]
* [[Mathc initiation/Fichiers h : c74b10|fj.h ]] : <................> [[Mathc initiation/Fichiers c : c74c10|c1j.c : ...... "csch(x)";]]
* [[Mathc initiation/Fichiers h : c74b05|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c05|c1e.c : ..... "tanh(x)";]]
* [[Mathc initiation/Fichiers h : c74b06|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c74c06|c1f.c : ...... "coth(x)";]]
*.
*.
*.
* [[Mathc initiation/Fichiers h : c79e|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c79e|c1e.c :
..... "sech(x)**2";]]
* [[Mathc initiation/Fichiers h : c79f|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c79f|c1f.c :
...... "csch(x)**2";]]
* [[Mathc initiation/Fichiers h : c79g|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c79g|c1g.c :
..... "sech(x)*tanh(x)";]]
* [[Mathc initiation/Fichiers h : c79h|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c79h|c1h.c :
..... "csch(x)*coth(x)";]]
* [[Mathc initiation/Fichiers h : c79l|fl.h ]] : <................> [[Mathc initiation/Fichiers c : c79l|c1l.c :
...... "1/sqrt(1+x**2)";]]
* [[Mathc initiation/Fichiers h : c79m|fm.h ]] : <..............> [[Mathc initiation/Fichiers c : c79m|c1m.c :
.... "1/(1-x**2)";]]
* [[Mathc initiation/Fichiers h : c79n|fn.h ]] : <...............> [[Mathc initiation/Fichiers c : c79n|c1n.c :
..... "-1/(x sqrt(1-x**2))";]]
|}
{| class="wikitable"
|+ .
|-
! Fonctions exponentielles : !! Fonctions logarithmes :
|-
||
*.
*.
||
* [[Mathc initiation/Fichiers h : c71b01|fa.h ]] <................> [[Mathc initiation/Fichiers c : c71c01|c1a.c : ...... "ln(x)";]]
* [[Mathc initiation/Fichiers c : c71c05| Étude de : <......> "ln(x)**n";]]
|}
<br>
----
{{AutoCat}}
gx2c5oq29mn47wr9x0796gujb5jx2tx
682389
682375
2022-07-25T11:09:41Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
:
[[Mathc initiation/a08| Sommaire]]
:
----{{Partie{{{type|}}}|Intégrer les fonctions élémentaires (Sympson)|fond={{{fond|}}<nowiki>}</nowiki>}}
:
En mathématiques, l'intégration est le fait de calculer une intégrale. C'est aussi une des deux branches du calcul infinitésimal, appelée également calcul intégral, l'autre étant le calcul différentiel..[https://fr.wikipedia.org/wiki/Int%C3%A9gration_(math%C3%A9matiques)]
:
<br>
Copier la bibliothèque dans votre répertoire de travail :
* [[Mathc initiation/Fichiers h : c74a1|x_hfile.h ............ Déclaration des fichiers h]]
* [[Mathc initiation/Fichiers h : c74a2|x_def.h .............. Les utilitaires]]
* [[Mathc initiation/Fichiers h : c74a3|x_symp.h ......... L'algorithme pour la méthode sympson]]
:
<br>
{| class="wikitable"
|+ Calculer les intégrales élémentaires
|-
! Fonctions trigonométriques : !! Fonctions trigonométriques hyperbolique:
|-
||
* .
* .
* [[Mathc initiation/Fichiers h : c74b01|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c01|c1a.c : ..... "sec(x)";]]
* [[Mathc initiation/Fichiers h : c74b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c02|c1b.c : ..... "csc(x)";]]
* [[Mathc initiation/Fichiers h : c74b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c03|c1c.c : ..... "tan(x)";]]
* [[Mathc initiation/Fichiers h : c74b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c04|c1d.c : ..... "cot(x)";]]
* [[Mathc initiation/Fichiers h : c71b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c03|c1c.c :
..... "asin(x)";]]
* [[Mathc initiation/Fichiers h : c71b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c04|c1d.c :
..... "acos(x)";]]
* [[Mathc initiation/Fichiers h : c71b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c02|c1b.c :
..... "atan(x)";]]
* [[Mathc initiation/Fichiers h : c79a|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c79a|c1a.c :
..... "sec(x)**2";]]
* [[Mathc initiation/Fichiers h : c79b|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c79b|c1b.c :
..... "csc(x)**2";]]
* [[Mathc initiation/Fichiers h : c79c|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c79c|c1c.c :
..... "sec(x)tan(x)";]]
* [[Mathc initiation/Fichiers h : c79d|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c79d|c1d.c :
..... "csc(x)cot(x)";]]
* [[Mathc initiation/Fichiers h : c79i|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c79i|c1i.c :
...... "1/sqrt(1-x**2)";]]
* [[Mathc initiation/Fichiers h : c79j|fj.h ]] : <................> [[Mathc initiation/Fichiers c : c79j|c1j.c :
...... "1/(x**2+1)";]]
* [[Mathc initiation/Fichiers h : c79k|fk.h ]] : <...............> [[Mathc initiation/Fichiers c : c79k|c1k.c :
..... "1/(x sqrt(x**2-1))";]]
||
* [[Mathc initiation/Fichiers h : c74b07|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c07|c1g.c : ..... "sinh(x)";]]
* [[Mathc initiation/Fichiers h : c74b08|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c08|c1h.c : ..... "cosh(x)";]]
* [[Mathc initiation/Fichiers h : c74b09|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c74c09|c1i.c : ...... "sech(x)";]]
* [[Mathc initiation/Fichiers h : c74b10|fj.h ]] : <................> [[Mathc initiation/Fichiers c : c74c10|c1j.c : ...... "csch(x)";]]
* [[Mathc initiation/Fichiers h : c74b05|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c05|c1e.c : ..... "tanh(x)";]]
* [[Mathc initiation/Fichiers h : c74b06|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c74c06|c1f.c : ...... "coth(x)";]]
* [[Mathc initiation/Fichiers h : c71b06|fe.h ]] <................> [[Mathc initiation/Fichiers c : c71c06|c1e.c : ...... "asinh(x)";]]
*.
*.
* [[Mathc initiation/Fichiers h : c79e|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c79e|c1e.c :
..... "sech(x)**2";]]
* [[Mathc initiation/Fichiers h : c79f|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c79f|c1f.c :
...... "csch(x)**2";]]
* [[Mathc initiation/Fichiers h : c79g|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c79g|c1g.c :
..... "sech(x)*tanh(x)";]]
* [[Mathc initiation/Fichiers h : c79h|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c79h|c1h.c :
..... "csch(x)*coth(x)";]]
* [[Mathc initiation/Fichiers h : c79l|fl.h ]] : <................> [[Mathc initiation/Fichiers c : c79l|c1l.c :
...... "1/sqrt(1+x**2)";]]
* [[Mathc initiation/Fichiers h : c79m|fm.h ]] : <..............> [[Mathc initiation/Fichiers c : c79m|c1m.c :
.... "1/(1-x**2)";]]
* [[Mathc initiation/Fichiers h : c79n|fn.h ]] : <...............> [[Mathc initiation/Fichiers c : c79n|c1n.c :
..... "-1/(x sqrt(1-x**2))";]]
|}
{| class="wikitable"
|+ .
|-
! Fonctions exponentielles : !! Fonctions logarithmes :
|-
||
*.
*.
||
* [[Mathc initiation/Fichiers h : c71b01|fa.h ]] <................> [[Mathc initiation/Fichiers c : c71c01|c1a.c : ...... "ln(x)";]]
* [[Mathc initiation/Fichiers c : c71c05| Étude de : <......> "ln(x)**n";]]
|}
<br>
----
{{AutoCat}}
nvjc484rqwp5w0genz7w9z6vovjn0wr
682396
682389
2022-07-25T11:56:35Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
:
[[Mathc initiation/a08| Sommaire]]
:
----{{Partie{{{type|}}}|Intégrer les fonctions élémentaires (Sympson)|fond={{{fond|}}<nowiki>}</nowiki>}}
:
En mathématiques, l'intégration est le fait de calculer une intégrale. C'est aussi une des deux branches du calcul infinitésimal, appelée également calcul intégral, l'autre étant le calcul différentiel..[https://fr.wikipedia.org/wiki/Int%C3%A9gration_(math%C3%A9matiques)]
:
<br>
Copier la bibliothèque dans votre répertoire de travail :
* [[Mathc initiation/Fichiers h : c74a1|x_hfile.h ............ Déclaration des fichiers h]]
* [[Mathc initiation/Fichiers h : c74a2|x_def.h .............. Les utilitaires]]
* [[Mathc initiation/Fichiers h : c74a3|x_symp.h ......... L'algorithme pour la méthode sympson]]
:
<br>
{| class="wikitable"
|+ Calculer les intégrales élémentaires
|-
! Fonctions trigonométriques : !! Fonctions trigonométriques hyperbolique:
|-
||
* .
* .
* [[Mathc initiation/Fichiers h : c74b01|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c01|c1a.c : ..... "sec(x)";]]
* [[Mathc initiation/Fichiers h : c74b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c02|c1b.c : ..... "csc(x)";]]
* [[Mathc initiation/Fichiers h : c74b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c03|c1c.c : ..... "tan(x)";]]
* [[Mathc initiation/Fichiers h : c74b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c04|c1d.c : ..... "cot(x)";]]
* [[Mathc initiation/Fichiers h : c71b03|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c03|c1c.c :
..... "asin(x)";]]
* [[Mathc initiation/Fichiers h : c71b04|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c04|c1d.c :
..... "acos(x)";]]
* [[Mathc initiation/Fichiers h : c71b02|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c71c02|c1b.c :
..... "atan(x)";]]
* [[Mathc initiation/Fichiers h : c79a|fa.h ]] : <...............> [[Mathc initiation/Fichiers c : c79a|c1a.c :
..... "sec(x)**2";]]
* [[Mathc initiation/Fichiers h : c79b|fb.h ]] : <...............> [[Mathc initiation/Fichiers c : c79b|c1b.c :
..... "csc(x)**2";]]
* [[Mathc initiation/Fichiers h : c79c|fc.h ]] : <...............> [[Mathc initiation/Fichiers c : c79c|c1c.c :
..... "sec(x)tan(x)";]]
* [[Mathc initiation/Fichiers h : c79d|fd.h ]] : <...............> [[Mathc initiation/Fichiers c : c79d|c1d.c :
..... "csc(x)cot(x)";]]
* [[Mathc initiation/Fichiers h : c79i|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c79i|c1i.c :
...... "1/sqrt(1-x**2)";]]
* [[Mathc initiation/Fichiers h : c79j|fj.h ]] : <................> [[Mathc initiation/Fichiers c : c79j|c1j.c :
...... "1/(x**2+1)";]]
* [[Mathc initiation/Fichiers h : c79k|fk.h ]] : <...............> [[Mathc initiation/Fichiers c : c79k|c1k.c :
..... "1/(x sqrt(x**2-1))";]]
||
* [[Mathc initiation/Fichiers h : c74b07|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c07|c1g.c : ..... "sinh(x)";]]
* [[Mathc initiation/Fichiers h : c74b08|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c08|c1h.c : ..... "cosh(x)";]]
* [[Mathc initiation/Fichiers h : c74b09|fi.h ]] : <................> [[Mathc initiation/Fichiers c : c74c09|c1i.c : ...... "sech(x)";]]
* [[Mathc initiation/Fichiers h : c74b10|fj.h ]] : <................> [[Mathc initiation/Fichiers c : c74c10|c1j.c : ...... "csch(x)";]]
* [[Mathc initiation/Fichiers h : c74b05|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c74c05|c1e.c : ..... "tanh(x)";]]
* [[Mathc initiation/Fichiers h : c74b06|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c74c06|c1f.c : ...... "coth(x)";]]
* [[Mathc initiation/Fichiers h : c71b06|fe.h ]] <................> [[Mathc initiation/Fichiers c : c71c06|c1e.c : ...... "asinh(x)";]]
* [[Mathc initiation/Fichiers h : c71b07|ff.h ]] <.................> [[Mathc initiation/Fichiers c : c71c07|c1f.c : ....... "acosh(x)";]]
*.
* [[Mathc initiation/Fichiers h : c79e|fe.h ]] : <...............> [[Mathc initiation/Fichiers c : c79e|c1e.c :
..... "sech(x)**2";]]
* [[Mathc initiation/Fichiers h : c79f|ff.h ]] : <................> [[Mathc initiation/Fichiers c : c79f|c1f.c :
...... "csch(x)**2";]]
* [[Mathc initiation/Fichiers h : c79g|fg.h ]] : <...............> [[Mathc initiation/Fichiers c : c79g|c1g.c :
..... "sech(x)*tanh(x)";]]
* [[Mathc initiation/Fichiers h : c79h|fh.h ]] : <...............> [[Mathc initiation/Fichiers c : c79h|c1h.c :
..... "csch(x)*coth(x)";]]
* [[Mathc initiation/Fichiers h : c79l|fl.h ]] : <................> [[Mathc initiation/Fichiers c : c79l|c1l.c :
...... "1/sqrt(1+x**2)";]]
* [[Mathc initiation/Fichiers h : c79m|fm.h ]] : <..............> [[Mathc initiation/Fichiers c : c79m|c1m.c :
.... "1/(1-x**2)";]]
* [[Mathc initiation/Fichiers h : c79n|fn.h ]] : <...............> [[Mathc initiation/Fichiers c : c79n|c1n.c :
..... "-1/(x sqrt(1-x**2))";]]
|}
{| class="wikitable"
|+ .
|-
! Fonctions exponentielles : !! Fonctions logarithmes :
|-
||
*.
*.
||
* [[Mathc initiation/Fichiers h : c71b01|fa.h ]] <................> [[Mathc initiation/Fichiers c : c71c01|c1a.c : ...... "ln(x)";]]
* [[Mathc initiation/Fichiers c : c71c05| Étude de : <......> "ln(x)**n";]]
|}
<br>
----
{{AutoCat}}
s1znab2in212p7qk6tbry80ts47vwi4
Wikilivres:GUS2Wiki
4
78643
682360
682291
2022-07-25T07:23:38Z
Alexis Jazz
81580
Updating gadget usage statistics from [[Special:GadgetUsage]] ([[phab:T121049]])
wikitext
text/x-wiki
{{#ifexist:Project:GUS2Wiki/top|{{/top}}|This page provides a historical record of [[Special:GadgetUsage]] through its page history. To get the data in CSV format, see wikitext. To customize this message or add categories, create [[/top]].}}
Les données suivantes sont en cache et ont été mises à jour pour la dernière fois le 2022-07-23T03:39:06Z. {{PLURAL:5000|1=Un seul|5000}} résultat{{PLURAL:5000||s}} au maximum {{PLURAL:5000|est|sont}} disponible{{PLURAL:5000||s}} dans le cache.
{| class="sortable wikitable"
! Gadget !! data-sort-type="number" | Nombre d'utilisateurs !! data-sort-type="number" | Utilisateurs actifs
|-
|AncreTitres || 32 || 0
|-
|ArchiveLinks || 10 || 0
|-
|Barre de luxe || 35 || 1
|-
|BoutonsLiens || 41 || 0
|-
|CategoryAboveAll || 18 || 0
|-
|CategorySeparator || 22 || 0
|-
|CoinsArrondis || 99 || 1
|-
|CollapseSidebox || 33 || 0
|-
|CouleurContributions || 31 || 0
|-
|CouleursLiens || 25 || 0
|-
|DeleteSetup || data-sort-value="Infinity" | Par défaut || data-sort-value="Infinity" | Par défaut
|-
|DeluxeAdmin || 5 || 1
|-
|DeluxeEdit || 34 || 1
|-
|DeluxeHistory || 45 || 1
|-
|DeluxeImport || 19 || 1
|-
|DeluxeRename || 15 || 1
|-
|DeluxeSummary || 32 || 1
|-
|DevTools || 15 || 0
|-
|DirectPageLink || 24 || 1
|-
|Emoticons || 41 || 0
|-
|EmoticonsToolbar || 44 || 0
|-
|FastRevert || 35 || 1
|-
|FixArrayAltLines || 22 || 1
|-
|FlecheHaut || 66 || 1
|-
|GoogleTrans || 27 || 0
|-
|HotCats || 79 || 2
|-
|JournalDebug || 20 || 0
|-
|ListeABordure || 29 || 1
|-
|LiveRC || 27 || 0
|-
|LocalLiveClock || 25 || 1
|-
|Logo || 40 || 0
|-
|MobileView || 16 || 1
|-
|NavigAdmin || 36 || 0
|-
|OngletEditCount || 43 || 0
|-
|OngletEditZeroth || 65 || 0
|-
|OngletGoogle || 25 || 0
|-
|OngletPurge || 54 || 0
|-
|OptimizedSuivi || 18 || 0
|-
|Popups || 59 || 0
|-
|RenommageCategorie || 6 || 2
|-
|RestaurationDeluxe || 12 || 1
|-
|RevertDiff || 33 || 3
|-
|ScriptAutoVersion || 16 || 1
|-
|ScriptSidebox || 31 || 0
|-
|ScriptToolbar || 41 || 0
|-
|SisterProjects || 14 || 0
|-
|SkinPreview || 2 || 1
|-
|Smart patrol || 2 || 1
|-
|SourceLanguage || 22 || 0
|-
|SousPages || 53 || 1
|-
|SpaceToolbar || 30 || 0
|-
|TableUnicode || 55 || 0
|-
|Tableau || 67 || 1
|-
|TitreDeluxe || 54 || 1
|-
|TitreHierarchique || 16 || 0
|-
|UTCLiveClock || 25 || 0
|-
|UnicodeEditRendering || 28 || 1
|-
|WikEd || 29 || 0
|-
|extlinks || data-sort-value="Infinity" | Par défaut || data-sort-value="Infinity" | Par défaut
|-
|massblock || 3 || 1
|-
|monBrouillon || 15 || 0
|-
|perpagecustomization || 15 || 0
|-
|recentchangesbox || 15 || 0
|-
|searchFocus || 18 || 0
|-
|searchbox || 28 || 0
|}
* [[Spécial:GadgetUsage]]
* [[w:en:Wikipedia:GUS2Wiki/Script|GUS2Wiki]]
<!-- data in CSV format:
AncreTitres,32,0
ArchiveLinks,10,0
Barre de luxe,35,1
BoutonsLiens,41,0
CategoryAboveAll,18,0
CategorySeparator,22,0
CoinsArrondis,99,1
CollapseSidebox,33,0
CouleurContributions,31,0
CouleursLiens,25,0
DeleteSetup,default,default
DeluxeAdmin,5,1
DeluxeEdit,34,1
DeluxeHistory,45,1
DeluxeImport,19,1
DeluxeRename,15,1
DeluxeSummary,32,1
DevTools,15,0
DirectPageLink,24,1
Emoticons,41,0
EmoticonsToolbar,44,0
FastRevert,35,1
FixArrayAltLines,22,1
FlecheHaut,66,1
GoogleTrans,27,0
HotCats,79,2
JournalDebug,20,0
ListeABordure,29,1
LiveRC,27,0
LocalLiveClock,25,1
Logo,40,0
MobileView,16,1
NavigAdmin,36,0
OngletEditCount,43,0
OngletEditZeroth,65,0
OngletGoogle,25,0
OngletPurge,54,0
OptimizedSuivi,18,0
Popups,59,0
RenommageCategorie,6,2
RestaurationDeluxe,12,1
RevertDiff,33,3
ScriptAutoVersion,16,1
ScriptSidebox,31,0
ScriptToolbar,41,0
SisterProjects,14,0
SkinPreview,2,1
Smart patrol,2,1
SourceLanguage,22,0
SousPages,53,1
SpaceToolbar,30,0
TableUnicode,55,0
Tableau,67,1
TitreDeluxe,54,1
TitreHierarchique,16,0
UTCLiveClock,25,0
UnicodeEditRendering,28,1
WikEd,29,0
extlinks,default,default
massblock,3,1
monBrouillon,15,0
perpagecustomization,15,0
recentchangesbox,15,0
searchFocus,18,0
searchbox,28,0
-->
gz4vy1jp9f1stmmwc19jc6p6jwf29y0
Mathc initiation/Fichiers h : c79i
0
78715
682331
2022-07-24T17:47:29Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
[[Mathc initiation/Fichiers h : c74| Sommaire]]
Installer ce fichier dans votre répertoire de travail.
{{Fichier|fi.h|largeur=70%|info=utilitaire|icon=Crystal Clear mimetype source h.png}}
<syntaxhighlight lang="c">
/* ---------------------------------- */
/* save as fi.h */
/* ---------------------------------- */
double f(
double x)
{
return(1/sqrt(1-x*x));
}
char feq[] = "1/(1-x**2)";
/* ---------------------------------- */
double F(
double x)
{
return(asin(x));
}
char Feq[] = "asin(x)";
/* ---------------------------------- */
/* ---------------------------------- */
</syntaxhighlight>
{{AutoCat}}
leb5cq8dcor4jtpww66q8lm6vb0dmv4
682339
682331
2022-07-24T18:06:52Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
[[Mathc initiation/Fichiers h : c74| Sommaire]]
Installer ce fichier dans votre répertoire de travail.
{{Fichier|fi.h|largeur=70%|info=utilitaire|icon=Crystal Clear mimetype source h.png}}
<syntaxhighlight lang="c">
/* ---------------------------------- */
/* save as fi.h */
/* ---------------------------------- */
double f(
double x)
{
return(1/sqrt(1-x*x));
}
char feq[] = "1/sqrt(1-x**2)";
/* ---------------------------------- */
double F(
double x)
{
return(asin(x));
}
char Feq[] = "asin(x)";
/* ---------------------------------- */
/* ---------------------------------- */
</syntaxhighlight>
{{AutoCat}}
gi4z2ohrp4s5ro9wnh9yr1eekgp93gz
Mathc initiation/Fichiers c : c79i
0
78716
682332
2022-07-24T17:48:14Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
[[Mathc initiation/Fichiers h : c74| Sommaire]]
Installer et compiler ces fichiers dans votre répertoire de travail.
{{Fichier|c01i.c|largeur=70%|info=|icon=Crystal Clear mimetype source c.png}}
<syntaxhighlight lang="c">
/* ---------------------------------- */
/* save as c1i.c */
/* ---------------------------------- */
#include "x_hfile.h"
#include "fi.h"
/* ---------------------------------- */
int main(void)
{
int n = 2*50;
double a = .0;
double b = -.5;
clrscrn();
printf(" With the Simpson's rule. (n = %d)\n\n"
" (%.3f\n"
" int( (%s) dx = %.6f\n"
" (%.3f\n\n\n\n",n, b, feq, simpson(f,a,b,n), a);
printf(" With the antiderivative of f.\n\n"
" F(x) = %s \n\n\n"
" F(%.3f) - F(%.3f) = %.6f \n\n\n", Feq, b,a, F(b)-F(a));
stop();
return 0;
}
/* ---------------------------------- */
/* ---------------------------------- */
</syntaxhighlight>
Calculons l'intégrale avec la fonction simpson(f,a,b,n); puis avec sa primitive F(x).
'''Exemple de sortie écran :'''
<syntaxhighlight lang="dos">
With the Simpson's rule. (n = 100)
(-0.500
int( (1/(1-x**2)) dx = -0.523599
(0.000
With the antiderivative of f.
F(x) = asin(x)
F(-0.500) - F(0.000) = -0.523599
Press return to continue.
</syntaxhighlight>
En déduire la primitive de
Voir : [[Mathc initiation/Fichiers c : c76cs|asin(x)' = (1/(1-x**2)) ]] ==> ∫(1/(1-x**2)) dx = asin(x)
{{AutoCat}}
puqr2nmvp3wxr0i02vnxrp4l63nys3i
682340
682332
2022-07-24T18:07:56Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
[[Mathc initiation/Fichiers h : c74| Sommaire]]
Installer et compiler ces fichiers dans votre répertoire de travail.
{{Fichier|c01i.c|largeur=70%|info=|icon=Crystal Clear mimetype source c.png}}
<syntaxhighlight lang="c">
/* ---------------------------------- */
/* save as c1i.c */
/* ---------------------------------- */
#include "x_hfile.h"
#include "fi.h"
/* ---------------------------------- */
int main(void)
{
int n = 2*50;
double a = .0;
double b = -.5;
clrscrn();
printf(" With the Simpson's rule. (n = %d)\n\n"
" (%.3f\n"
" int( (%s) dx = %.6f\n"
" (%.3f\n\n\n\n",n, b, feq, simpson(f,a,b,n), a);
printf(" With the antiderivative of f.\n\n"
" F(x) = %s \n\n\n"
" F(%.3f) - F(%.3f) = %.6f \n\n\n", Feq, b,a, F(b)-F(a));
stop();
return 0;
}
/* ---------------------------------- */
/* ---------------------------------- */
</syntaxhighlight>
Calculons l'intégrale avec la fonction simpson(f,a,b,n); puis avec sa primitive F(x).
'''Exemple de sortie écran :'''
<syntaxhighlight lang="dos">
With the Simpson's rule. (n = 100)
(-0.500
int( (1/sqrt(1-x**2)) dx = -0.523599
(0.000
With the antiderivative of f.
F(x) = asin(x)
F(-0.500) - F(0.000) = -0.523599
Press return to continue.
</syntaxhighlight>
En déduire la primitive de
Voir : [[Mathc initiation/Fichiers c : c76cs|asin(x)' = (1/(1-x**2)) ]] ==> ∫(1/(1-x**2)) dx = asin(x)
{{AutoCat}}
0uvi38bwbyhuhr5a4xaur3cvve9tsd5
682341
682340
2022-07-24T18:10:10Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
[[Mathc initiation/Fichiers h : c74| Sommaire]]
Installer et compiler ces fichiers dans votre répertoire de travail.
{{Fichier|c01i.c|largeur=70%|info=|icon=Crystal Clear mimetype source c.png}}
<syntaxhighlight lang="c">
/* ---------------------------------- */
/* save as c1i.c */
/* ---------------------------------- */
#include "x_hfile.h"
#include "fi.h"
/* ---------------------------------- */
int main(void)
{
int n = 2*50;
double a = .0;
double b = -.5;
clrscrn();
printf(" With the Simpson's rule. (n = %d)\n\n"
" (%.3f\n"
" int( (%s) dx = %.6f\n"
" (%.3f\n\n\n\n",n, b, feq, simpson(f,a,b,n), a);
printf(" With the antiderivative of f.\n\n"
" F(x) = %s \n\n\n"
" F(%.3f) - F(%.3f) = %.6f \n\n\n", Feq, b,a, F(b)-F(a));
stop();
return 0;
}
/* ---------------------------------- */
/* ---------------------------------- */
</syntaxhighlight>
Calculons l'intégrale avec la fonction simpson(f,a,b,n); puis avec sa primitive F(x).
'''Exemple de sortie écran :'''
<syntaxhighlight lang="dos">
With the Simpson's rule. (n = 100)
(-0.500
int( (1/sqrt(1-x**2)) dx = -0.523599
(0.000
With the antiderivative of f.
F(x) = asin(x)
F(-0.500) - F(0.000) = -0.523599
Press return to continue.
</syntaxhighlight>
En déduire la primitive de
Voir : [[Mathc initiation/Fichiers c : c76cn|asin(x)' = (1/(1-x**2)) ]] ==> ∫(1/(1-x**2)) dx = asin(x)
{{AutoCat}}
b2d3mjmpe9z8xeu9ov6az5fft0lxqtr
Mathc initiation/Fichiers c : c79j
0
78717
682335
2022-07-24T18:02:01Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
[[Mathc initiation/Fichiers h : c74| Sommaire]]
Installer et compiler ces fichiers dans votre répertoire de travail.
{{Fichier|c01j.c|largeur=70%|info=|icon=Crystal Clear mimetype source c.png}}
<syntaxhighlight lang="c">
/* ---------------------------------- */
/* save as c1j.c */
/* ---------------------------------- */
#include "x_hfile.h"
#include "fj.h"
/* ---------------------------------- */
int main(void)
{
int n = 2*50;
double a = .0;
double b = -.5;
clrscrn();
printf(" With the Simpson's rule. (n = %d)\n\n"
" (%.3f\n"
" int( (%s) dx = %.6f\n"
" (%.3f\n\n\n\n",n, b, feq, simpson(f,a,b,n), a);
printf(" With the antiderivative of f.\n\n"
" F(x) = %s \n\n\n"
" F(%.3f) - F(%.3f) = %.6f \n\n\n", Feq, b,a, F(b)-F(a));
stop();
return 0;
}
/* ---------------------------------- */
/* ---------------------------------- */
</syntaxhighlight>
Calculons l'intégrale avec la fonction simpson(f,a,b,n); puis avec sa primitive F(x).
'''Exemple de sortie écran :'''
<syntaxhighlight lang="dos">
With the Simpson's rule. (n = 100)
(-0.500
int( (1/(x**2 + 1)) dx = -0.463648
(0.000
With the antiderivative of f.
F(x) = atan(x)
F(-0.500) - F(0.000) = -0.463648
Press return to continue.
</syntaxhighlight>
En déduire la primitive de
Voir : [[Mathc initiation/Fichiers c : c76cq|atan(x)' = 1/(x**2 + 1) ]] ==> ∫(1/(x**2 + 1)) dx = atan(x)
{{AutoCat}}
m047wz2o85b1uuii2kybu8mghkm4v8t
682336
682335
2022-07-24T18:03:19Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
[[Mathc initiation/Fichiers h : c74| Sommaire]]
Installer et compiler ces fichiers dans votre répertoire de travail.
{{Fichier|c01j.c|largeur=70%|info=|icon=Crystal Clear mimetype source c.png}}
<syntaxhighlight lang="c">
/* ---------------------------------- */
/* save as c1j.c */
/* ---------------------------------- */
#include "x_hfile.h"
#include "fj.h"
/* ---------------------------------- */
int main(void)
{
int n = 2*50;
double a = .0;
double b = -.5;
clrscrn();
printf(" With the Simpson's rule. (n = %d)\n\n"
" (%.3f\n"
" int( (%s) dx = %.6f\n"
" (%.3f\n\n\n\n",n, b, feq, simpson(f,a,b,n), a);
printf(" With the antiderivative of f.\n\n"
" F(x) = %s \n\n\n"
" F(%.3f) - F(%.3f) = %.6f \n\n\n", Feq, b,a, F(b)-F(a));
stop();
return 0;
}
/* ---------------------------------- */
/* ---------------------------------- */
</syntaxhighlight>
Calculons l'intégrale avec la fonction simpson(f,a,b,n); puis avec sa primitive F(x).
'''Exemple de sortie écran :'''
<syntaxhighlight lang="dos">
With the Simpson's rule. (n = 100)
(-0.500
int( (1/(x**2 + 1)) dx = -0.463648
(0.000
With the antiderivative of f.
F(x) = atan(x)
F(-0.500) - F(0.000) = -0.463648
Press return to continue.
</syntaxhighlight>
En déduire la primitive de
Voir : [[Mathc initiation/Fichiers c : c76ca|atan(x)' = 1/(x**2 + 1) ]] ==> ∫(1/(x**2 + 1)) dx = atan(x)
{{AutoCat}}
exiimbifgukput9ez9t5745z0ec44xf
Mathc initiation/Fichiers h : c79j
0
78718
682337
2022-07-24T18:04:01Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
[[Mathc initiation/Fichiers h : c74| Sommaire]]
Installer ce fichier dans votre répertoire de travail.
{{Fichier|fj.h|largeur=70%|info=utilitaire|icon=Crystal Clear mimetype source h.png}}
<syntaxhighlight lang="c">
/* ---------------------------------- */
/* save as fj.h */
/* ---------------------------------- */
double f(
double x)
{
return(1/(x*x + 1));
}
char feq[] = "1/(x**2 + 1)";
/* ---------------------------------- */
double F(
double x)
{
return(atan(x));
}
char Feq[] = "atan(x)";
/* ---------------------------------- */
/* ---------------------------------- */
</syntaxhighlight>
{{AutoCat}}
suu8kix1vwrm59ols0nggorp76h82u8
Mathc initiation/Fichiers h : c79k
0
78719
682343
2022-07-24T18:22:24Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
[[Mathc initiation/Fichiers h : c74| Sommaire]]
Installer ce fichier dans votre répertoire de travail.
{{Fichier|fk.h|largeur=70%|info=utilitaire|icon=Crystal Clear mimetype source h.png}}
<syntaxhighlight lang="c">
/* ---------------------------------- */
/* save as fk.h */
/* ---------------------------------- */
/* --------------------------------- */
double asec(
double x)
{
return( acos(1/x));
}
/* --------------------------------- */
/* --------------------------------- */
double f(
double x)
{
return(1/(x*sqrt(x*x-1)));
}
char feq[] = "1/(x sqrt(x**2-1))";
/* ---------------------------------- */
double F(
double x)
{
return(asec(x));
}
char Feq[] = "asec(x)";
/* ---------------------------------- */
/* ---------------------------------- */
</syntaxhighlight>
{{AutoCat}}
t60rzjoxels66pw5qjozelrdb4uvum9
Mathc initiation/Fichiers c : c79k
0
78720
682344
2022-07-24T18:23:04Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
[[Mathc initiation/Fichiers h : c74| Sommaire]]
Installer et compiler ces fichiers dans votre répertoire de travail.
{{Fichier|c01k.c|largeur=70%|info=|icon=Crystal Clear mimetype source c.png}}
<syntaxhighlight lang="c">
/* ---------------------------------- */
/* save as c1k.c */
/* ---------------------------------- */
#include "x_hfile.h"
#include "fk.h"
/* ---------------------------------- */
int main(void)
{
int n = 2*50;
double a = 1.5;
double b = 2.;
clrscrn();
printf(" With the Simpson's rule. (n = %d)\n\n"
" (%.3f\n"
" int( (%s) dx = %.6f\n"
" (%.3f\n\n\n\n",n, b, feq, simpson(f,a,b,n), a);
printf(" With the antiderivative of f.\n\n"
" F(x) = %s \n\n\n"
" F(%.3f) - F(%.3f) = %.6f \n\n\n", Feq, b,a, F(b)-F(a));
stop();
return 0;
}
/* ---------------------------------- */
/* ---------------------------------- */
</syntaxhighlight>
Calculons l'intégrale avec la fonction simpson(f,a,b,n); puis avec sa primitive F(x).
'''Exemple de sortie écran :'''
<syntaxhighlight lang="dos">
With the Simpson's rule. (n = 100)
(2.000
int( (1/(x sqrt(x**2-1))) dx = 0.206129
(1.500
With the antiderivative of f.
F(x) = asec(x)
F(2.000) - F(1.500) = 0.206129
Press return to continue.
</syntaxhighlight>
En déduire la primitive de
Voir : [[Mathc initiation/Fichiers c : c76co|asec(x)' = 1/(x sqrt(x**2-1))]] ==> ∫(1/(x sqrt(x**2-1))) dx = asec(x)
{{AutoCat}}
fv5crian1a4ru1xezs38vzhsuguc5rl
Mathc initiation/Fichiers h : c79l
0
78721
682346
2022-07-24T20:42:03Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
[[Mathc initiation/Fichiers h : c74| Sommaire]]
Installer ce fichier dans votre répertoire de travail.
{{Fichier|fl.h|largeur=70%|info=utilitaire|icon=Crystal Clear mimetype source h.png}}
<syntaxhighlight lang="c">
/* ---------------------------------- */
/* save as fl.h */
/* ---------------------------------- */
/* --------------------------------- */
double f(
double x)
{
return(1/sqrt(1+x*x));
}
char feq[] = "1/sqrt(1+x**2)";
/* ---------------------------------- */
double F(
double x)
{
return(asinh(x));
}
char Feq[] = "asinh(x)";
/* ---------------------------------- */
/* ---------------------------------- */
</syntaxhighlight>
{{AutoCat}}
nr7vhlex7dle92ktd35j0pr4kl2bm2e
Mathc initiation/Fichiers c : c79l
0
78722
682347
2022-07-24T20:43:09Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
[[Mathc initiation/Fichiers h : c74| Sommaire]]
Installer et compiler ces fichiers dans votre répertoire de travail.
{{Fichier|c01l.c|largeur=70%|info=|icon=Crystal Clear mimetype source c.png}}
<syntaxhighlight lang="c">
/* ---------------------------------- */
/* save as c1l.c */
/* ---------------------------------- */
#include "x_hfile.h"
#include "fl.h"
/* ---------------------------------- */
int main(void)
{
int n = 2*50;
double a = 1.5;
double b = 2.;
clrscrn();
printf(" With the Simpson's rule. (n = %d)\n\n"
" (%.3f\n"
" int( (%s) dx = %.6f\n"
" (%.3f\n\n\n\n",n, b, feq, simpson(f,a,b,n), a);
printf(" With the antiderivative of f.\n\n"
" F(x) = %s \n\n\n"
" F(%.3f) - F(%.3f) = %.6f \n\n\n", Feq, b,a, F(b)-F(a));
stop();
return 0;
}
/* ---------------------------------- */
/* ---------------------------------- */
</syntaxhighlight>
Calculons l'intégrale avec la fonction simpson(f,a,b,n); puis avec sa primitive F(x).
'''Exemple de sortie écran :'''
<syntaxhighlight lang="dos">
With the Simpson's rule. (n = 100)
(2.000
int( (1/sqrt(1+x**2)) dx = 0.248872
(1.500
With the antiderivative of f.
F(x) = asinh(x)
F(2.000) - F(1.500) = 0.248872
Press return to continue.
</syntaxhighlight>
En déduire la primitive de
Voir : [[Mathc initiation/Fichiers c : c76cs|asinh(x)' = 1/sqrt(1+x**2)]] ==> ∫(1/sqrt(1+x**2)) dx = asinh(x)
{{AutoCat}}
md5t44f1ex9jrkbwutphsjyko6gvnvt
Mathc initiation/Fichiers h : c79m
0
78723
682350
2022-07-24T20:50:57Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
[[Mathc initiation/Fichiers h : c74| Sommaire]]
Installer ce fichier dans votre répertoire de travail.
{{Fichier|fm.h|largeur=70%|info=utilitaire|icon=Crystal Clear mimetype source h.png}}
<syntaxhighlight lang="c">
/* ---------------------------------- */
/* save as fm.h */
/* ---------------------------------- */
/* --------------------------------- */
double f(
double x)
{
return(1/(1 - x*x));
}
char feq[] = "1/(1 - x**2)";
/* ---------------------------------- */
double F(
double x)
{
return(atanh(x));
}
char Feq[] = "atanh(x)";
/* ---------------------------------- */
/* ---------------------------------- */
</syntaxhighlight>
{{AutoCat}}
kd013p6doisz815dpamdpkribxwchso
Mathc initiation/Fichiers c : c79m
0
78724
682351
2022-07-24T20:51:42Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
[[Mathc initiation/Fichiers h : c74| Sommaire]]
Installer et compiler ces fichiers dans votre répertoire de travail.
{{Fichier|c01m.c|largeur=70%|info=|icon=Crystal Clear mimetype source c.png}}
<syntaxhighlight lang="c">
/* ---------------------------------- */
/* save as c1m.c */
/* ---------------------------------- */
#include "x_hfile.h"
#include "fm.h"
/* ---------------------------------- */
int main(void)
{
int n = 2*50;
double a = 0.;
double b = .5;
clrscrn();
printf(" With the Simpson's rule. (n = %d)\n\n"
" (%.3f\n"
" int( (%s) dx = %.6f\n"
" (%.3f\n\n\n\n",n, b, feq, simpson(f,a,b,n), a);
printf(" With the antiderivative of f.\n\n"
" F(x) = %s \n\n\n"
" F(%.3f) - F(%.3f) = %.6f \n\n\n", Feq, b,a, F(b)-F(a));
stop();
return 0;
}
/* ---------------------------------- */
/* ---------------------------------- */
</syntaxhighlight>
Calculons l'intégrale avec la fonction simpson(f,a,b,n); puis avec sa primitive F(x).
'''Exemple de sortie écran :'''
<syntaxhighlight lang="dos">
With the Simpson's rule. (n = 100)
(0.500
int( (1/(1 - x**2)) dx = 0.549306
(0.000
With the antiderivative of f.
F(x) = atanh(x)
F(0.500) - F(0.000) = 0.549306
Press return to continue.
</syntaxhighlight>
En déduire la primitive de
Voir : [[Mathc initiation/Fichiers c : c76cq|atanh(x)' = 1/(1-x**2)]] ==> ∫(1/(1-x**2)) dx = atanh(x)
{{AutoCat}}
h5i8huq8pe3ji2v03z8ahhctmgroscq
Mathc initiation/Fichiers c : c79n
0
78725
682353
2022-07-24T20:59:41Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
[[Mathc initiation/Fichiers h : c74| Sommaire]]
Installer et compiler ces fichiers dans votre répertoire de travail.
{{Fichier|c01n.c|largeur=70%|info=|icon=Crystal Clear mimetype source c.png}}
<syntaxhighlight lang="c">
/* ---------------------------------- */
/* save as c1n.c */
/* ---------------------------------- */
#include "x_hfile.h"
#include "fn.h"
/* ---------------------------------- */
int main(void)
{
int n = 2*50;
double a = .2;
double b = .6;
clrscrn();
printf(" With the Simpson's rule. (n = %d)\n\n"
" (%.3f\n"
" int( (%s) dx = %.6f\n"
" (%.3f\n\n\n\n",n, b, feq, simpson(f,a,b,n), a);
printf(" With the antiderivative of f.\n\n"
" F(x) = %s \n\n\n"
" F(%.3f) - F(%.3f) = %.6f \n\n\n", Feq, b,a, F(b)-F(a));
stop();
return 0;
}
/* ---------------------------------- */
/* ---------------------------------- */
</syntaxhighlight>
Calculons l'intégrale avec la fonction simpson(f,a,b,n); puis avec sa primitive F(x).
'''Exemple de sortie écran :'''
<syntaxhighlight lang="dos">
With the Simpson's rule. (n = 100)
(0.600
int( (-1/(x sqrt(1-x**2))) dx = -1.193819
(0.200
With the antiderivative of f.
F(x) = asech(x)
F(0.600) - F(0.200) = -1.193819
Press return to continue.
</syntaxhighlight>
En déduire la primitive de
Voir : [[Mathc initiation/Fichiers c : c76cu|asech(x)' = -1/(x sqrt(1-x**2))]] ==> ∫(-1/(x sqrt(1-x**2))) dx = asech(x)
{{AutoCat}}
bfdrk5xyuxswfiubtkdt5mvti55hpw8
Mathc initiation/Fichiers h : c79n
0
78726
682354
2022-07-24T21:00:38Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
[[Mathc initiation/Fichiers h : c74| Sommaire]]
Installer ce fichier dans votre répertoire de travail.
{{Fichier|fn.h|largeur=70%|info=utilitaire|icon=Crystal Clear mimetype source h.png}}
<syntaxhighlight lang="c">
/* ---------------------------------- */
/* save as fn.h */
/* ---------------------------------- */
double asech(
double x)
{
return( acosh(1/x));
}
/* --------------------------------- */
/* --------------------------------- */
double f(
double x)
{
return(-1/(x*sqrt(1-x*x)));
}
char feq[] = "-1/(x sqrt(1-x**2))";
/* ---------------------------------- */
double F(
double x)
{
return(asech(x));
}
char Feq[] = "asech(x)";
/* ---------------------------------- */
/* ---------------------------------- */
</syntaxhighlight>
{{AutoCat}}
7iz95zo0ci46tmdcmlogi45zduv9k8o
Mathc initiation/Fichiers c : c71c05
0
78727
682365
2022-07-25T10:27:36Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
[[Mathc initiation/Fichiers h : c76| Sommaire]]
La primitive de ln(|x|)**n :
'''Calculons la primitive :'''
<syntaxhighlight lang="dos">
/
Calculer la primitive de | ln(|x|)**n dx
/
Utilisons l'intégration par partie
u = ... dv = ...
du = ... v = ...
/ /
| u dv = u v - | v du
/ /
Nous savons que la dérivé de ln(|x|) est 1/x.
Nous ne connaissons pas sa primitive.
Nous allons multiplier ln(|x|)**n par 1.
Nous allons poser que u = ln(|x|)**n et dv = 1 dx.
/
| ln(|x|)**n 1 dx =
/
u = ln(|x|)**n dv = 1 dx
du = [n ln(|x|)**(n-1) 1/x] dx v = x
u dv uv v du
/ /
| (ln(|x|)**n 1) dx = ln(|x|)**n x - | (x) [n ln(|x|)**(n-1) 1/x] dx
/ /
/ /
| (ln(|x|)**n 1) dx = ln(|x|)**n x - n | (x/x) ln(|x|)**(n-1) dx
/ /
/ /
| (ln(|x|)**n * 1) dx = ln(|x|)**n x - n | ln(|x|)**(n-1) dx
/ /
</syntaxhighlight>
{{AutoCat}}
gbbgvy281fpvfqb86vr25p1fdllk8zk
682366
682365
2022-07-25T10:28:17Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
[[Mathc initiation/Fichiers h : c71| Sommaire]]
La primitive de ln(|x|)**n :
'''Calculons la primitive :'''
<syntaxhighlight lang="dos">
/
Calculer la primitive de | ln(|x|)**n dx
/
Utilisons l'intégration par partie
u = ... dv = ...
du = ... v = ...
/ /
| u dv = u v - | v du
/ /
Nous savons que la dérivé de ln(|x|) est 1/x.
Nous ne connaissons pas sa primitive.
Nous allons multiplier ln(|x|)**n par 1.
Nous allons poser que u = ln(|x|)**n et dv = 1 dx.
/
| ln(|x|)**n 1 dx =
/
u = ln(|x|)**n dv = 1 dx
du = [n ln(|x|)**(n-1) 1/x] dx v = x
u dv uv v du
/ /
| (ln(|x|)**n 1) dx = ln(|x|)**n x - | (x) [n ln(|x|)**(n-1) 1/x] dx
/ /
/ /
| (ln(|x|)**n 1) dx = ln(|x|)**n x - n | (x/x) ln(|x|)**(n-1) dx
/ /
/ /
| (ln(|x|)**n * 1) dx = ln(|x|)**n x - n | ln(|x|)**(n-1) dx
/ /
</syntaxhighlight>
{{AutoCat}}
pn024v105xskc5g1a0tzkciacp0xnbf
682371
682366
2022-07-25T10:32:17Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
[[Mathc initiation/Fichiers h : c71| Sommaire]]
'''Calculons la primitive de : ln(|x|)**n '''
<syntaxhighlight lang="dos">
/
Calculer la primitive de | ln(|x|)**n dx
/
Utilisons l'intégration par partie
u = ... dv = ...
du = ... v = ...
/ /
| u dv = u v - | v du
/ /
Nous savons que la dérivé de ln(|x|) est 1/x.
Nous ne connaissons pas sa primitive.
Nous allons multiplier ln(|x|)**n par 1.
Nous allons poser que u = ln(|x|)**n et dv = 1 dx.
/
| ln(|x|)**n 1 dx =
/
u = ln(|x|)**n dv = 1 dx
du = [n ln(|x|)**(n-1) 1/x] dx v = x
u dv uv v du
/ /
| (ln(|x|)**n 1) dx = ln(|x|)**n x - | (x) [n ln(|x|)**(n-1) 1/x] dx
/ /
/ /
| (ln(|x|)**n 1) dx = ln(|x|)**n x - n | (x/x) ln(|x|)**(n-1) dx
/ /
/ /
| (ln(|x|)**n * 1) dx = ln(|x|)**n x - n | ln(|x|)**(n-1) dx
/ /
</syntaxhighlight>
{{AutoCat}}
2m20micrjd9dvfxmtj4oxjvobk4mm4p
Modèle:Note à faire
10
78728
682367
2022-07-25T10:29:19Z
DavidL
1746
Page créée avec « ([[Fichier:Nuvola apps korganizer.svg|24px|link=]] '''À faire :''' {{{1|Créer la page}}})<noinclude> Ce modèle est une variante du modèle {{m|A faire}} pour éviter les problèmes de structuration HTML : dans les notes et références, les span, ... == Variante == * {{m|A faire}} sous la forme d'un bandeau, dans un chapitre. Catégorise dans [[:Catégorie:À faire]]. [[Catégorie:Modèles bandeau|A faire]] [[Catégorie:Modèles ébauche|A faire]] </noincl... »
wikitext
text/x-wiki
([[Fichier:Nuvola apps korganizer.svg|24px|link=]] '''À faire :''' {{{1|Créer la page}}})<noinclude>
Ce modèle est une variante du modèle {{m|A faire}} pour éviter les problèmes de structuration HTML : dans les notes et références, les span, ...
== Variante ==
* {{m|A faire}} sous la forme d'un bandeau, dans un chapitre.
Catégorise dans [[:Catégorie:À faire]].
[[Catégorie:Modèles bandeau|A faire]]
[[Catégorie:Modèles ébauche|A faire]]
</noinclude><includeonly>{{#ifexpr:{{NAMESPACENUMBER}}=2 or {{NAMESPACENUMBER}}=3||[[Catégorie:À faire|{{PAGENAME}}]]}}</includeonly>
557ip2y4qxu8mpdfzrt86p4bz9swp9u
682370
682367
2022-07-25T10:32:01Z
DavidL
1746
wikitext
text/x-wiki
([[Fichier:Nuvola apps korganizer.svg|24px|link=]] '''À faire :''' {{{1|Créer la page}}})<noinclude>
Ce modèle est une variante du modèle {{m|A faire}} pour éviter les problèmes de structuration HTML : dans les notes et références, les span, ...
== Paramètre ==
;''texte'': (optionnel) Texte à afficher, par défaut : « Créer la page ».
== Variante ==
* {{m|A faire}} sous la forme d'un bandeau, dans un chapitre.
Catégorise dans [[:Catégorie:À faire]].
[[Catégorie:Modèles bandeau|A faire]]
[[Catégorie:Modèles ébauche|A faire]]
</noinclude><includeonly>{{#ifexpr:{{NAMESPACENUMBER}}=2 or {{NAMESPACENUMBER}}=3||[[Catégorie:À faire|{{PAGENAME}}]]}}</includeonly>
cznnvd6bw2dtxp2nm770zypv7q14h5b
682372
682370
2022-07-25T10:32:19Z
DavidL
1746
wikitext
text/x-wiki
([[Fichier:Nuvola apps korganizer.svg|24px|link=]] '''À faire :''' {{{1|Créer la page}}})<noinclude>
Ce modèle est une variante du modèle {{m|À faire}} pour éviter les problèmes de structuration HTML : dans les notes et références, les span, ...
== Paramètre ==
;''texte'': (optionnel) Texte à afficher, par défaut : « Créer la page ».
== Variante ==
* {{m|À faire}} sous la forme d'un bandeau, dans un chapitre.
Catégorise dans [[:Catégorie:À faire]].
[[Catégorie:Modèles bandeau|A faire]]
[[Catégorie:Modèles ébauche|A faire]]
</noinclude><includeonly>{{#ifexpr:{{NAMESPACENUMBER}}=2 or {{NAMESPACENUMBER}}=3||[[Catégorie:À faire|{{PAGENAME}}]]}}</includeonly>
155htotw8mub1o0slac1sbkny9krog6
Mathc initiation/Fichiers h : c71b06
0
78729
682384
2022-07-25T11:05:04Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
[[Mathc initiation/Fichiers h : c71| Sommaire]]
Installer ce fichier dans votre répertoire de travail.
{{Fichier|fe.h|largeur=70%|info=utilitaire|icon=Crystal Clear mimetype source h.png}}
<syntaxhighlight lang="c">
/* ---------------------------------- */
/* save as fe.h */
/* ---------------------------------- */
double f(
double x)
{
return(asinh(x));
}
char feq[] = "asinh(x)";
/* ---------------------------------- */
double F(
double x)
{
return(asinh(x)*x-sqrt(1+x*x));
}
char Feq[] = "asinh(x)*x-sqrt(1+x**2)";
/* ---------------------------------- */
/* ---------------------------------- */
</syntaxhighlight>
{{AutoCat}}
221ixlbsdhz0jkbjilhkcdl7fbusnoa
Mathc initiation/Fichiers c : c71c06
0
78730
682387
2022-07-25T11:07:25Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
[[Mathc initiation/Fichiers h : c71| Sommaire]]
Installer et compiler ces fichiers dans votre répertoire de travail.
{{Fichier|c01e.c|largeur=70%|info=|icon=Crystal Clear mimetype source c.png}}
<syntaxhighlight lang="c">
/* ---------------------------------- */
/* save as c1e.c */
/* ---------------------------------- */
#include "x_hfile.h"
#include "fe.h"
/* ---------------------------------- */
int main(void)
{
int n = 2*50;
double a = .5;
double b = 2.5;
clrscrn();
printf(" With the Simpson's rule. (n = %d)\n\n"
" (%.3f\n"
" int( (%s) dx = %.6f\n"
" (%.3f\n\n\n\n",n, b, feq, simpson(f,a,b,n), a);
printf(" With the antiderivative of f.\n\n"
" F(x) = %s \n\n\n"
" F(%.3f) - F(%.3f) = %.6f \n\n\n", Feq, b,a, F(b)-F(a));
stop();
return 0;
}
/* ---------------------------------- */
/* ---------------------------------- */
</syntaxhighlight>
Calculons l'intégrale avec la fonction simpson(f,a,b,n); puis avec sa primitive F(x).
'''Exemple de sortie écran :'''
<syntaxhighlight lang="dos">
With the Simpson's rule. (n = 100)
(2.500
int( (asinh(x)) dx = 2.302924
(0.500
With the antiderivative of f.
F(x) = asinh(x)*x-sqrt(1+x**2)
F(2.500) - F(0.500) = 2.302924
Press return to continue.
</syntaxhighlight>
'''Calculons la primitive :'''
<syntaxhighlight lang="dos">
/
Calculer la primitive de | asinh(x) dx
/
Utilisons l'intégration par partie
u = ... dv = ...
du = ... v = ...
/ /
| u dv = u v - | v du
/ /
Nous savons que la dérivé de asinh(x) est 1/sqrt(1+x**2).
Nous ne connaissons pas sa primitive.
Nous allons multiplier asinh(x) par 1.
Nous allons poser que u = asinh(x) et dv = 1 dx.
/
| asinh(x) * 1 dx =
/
u = asin(x) dv = 1 dx
du = 1/sqrt(1+x**2) dx v = x
u dv uv v du
/ /
| (asinh(x) 1) dx = asin(x) * x - | (x * 1/sqrt(1+x**2)) dx
/ /
______________________
| u = 1+x**2 |
| du = 2*x dx |
| (1/2) du = x dx |
|______________________|
/ /
| (asinh(x) * 1) dx = asinh(x) * x - | 1/sqrt(1+x**2) x dx
/ /
/ /
| (asinh(x) * 1) dx = asinh(x) * x - | 1/sqrt(u) (1/2) du
/ /
/ /
| (asinh(x) * 1) dx = asinh(x) * x - (1/2) | u^(-1/2) du
/ /
/
| (asinh(x) * 1) dx = asinh(x) * x - (1/2) (2/1) u^(1/2) + C
/
/
| (asinh(x) * 1) dx = asinh(x) * x - sqrt(1+x**2) + C
/
</syntaxhighlight>
{{AutoCat}}
0zhs6w3jiuw5lwyd22zhgif2knzvr86
Mathc initiation/Fichiers h : c71b07
0
78731
682393
2022-07-25T11:53:10Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
[[Mathc initiation/Fichiers h : c71| Sommaire]]
Installer ce fichier dans votre répertoire de travail.
{{Fichier|ff.h|largeur=70%|info=utilitaire|icon=Crystal Clear mimetype source h.png}}
<syntaxhighlight lang="c">
/* ---------------------------------- */
/* ---------------------------------- */
/* save as ff.h */
/* ---------------------------------- */
double f(
double x)
{
return(acosh(x));
}
char feq[] = "acosh(x)";
/* ---------------------------------- */
double F(
double x)
{
return(acosh(x)*x - sqrt(x*x-1));
}
char Feq[] = "acosh(x) x - sqrt(x**2-1)";
/* ---------------------------------- */
/* ---------------------------------- */
</syntaxhighlight>
{{AutoCat}}
6sx5t2wxf0daczaxwblpb1x45v2nysm
Mathc initiation/Fichiers c : c71c07
0
78732
682394
2022-07-25T11:54:13Z
Xhungab
23827
modification mineure
wikitext
text/x-wiki
[[Catégorie:Mathc initiation (livre)]]
[[Mathc initiation/Fichiers h : c71| Sommaire]]
Installer et compiler ces fichiers dans votre répertoire de travail.
{{Fichier|c01f.c|largeur=70%|info=|icon=Crystal Clear mimetype source c.png}}
<syntaxhighlight lang="c">
/* ---------------------------------- */
/* save as c1f.c */
/* ---------------------------------- */
#include "x_hfile.h"
#include "ff.h"
/* ---------------------------------- */
int main(void)
{
int n = 2*50;
double a = 1.5;
double b = 2.5;
clrscrn();
printf(" With the Simpson's rule. (n = %d)\n\n"
" (%.3f\n"
" int( (%s) dx = %.6f\n"
" (%.3f\n\n\n\n",n, b, feq, simpson(f,a,b,n), a);
printf(" With the antiderivative of f.\n\n"
" F(x) = %s \n\n\n"
" F(%.3f) - F(%.3f) = %.6f \n\n\n", Feq, b,a, F(b)-F(a));
stop();
return 0;
}
/* ---------------------------------- */
/* ---------------------------------- */
</syntaxhighlight>
Calculons l'intégrale avec la fonction simpson(f,a,b,n); puis avec sa primitive F(x).
'''Exemple de sortie écran :'''
<syntaxhighlight lang="dos">
With the Simpson's rule. (n = 100)
(2.500
int( (acosh(x)) dx = 1.300109
(1.500
With the antiderivative of f.
F(x) = acosh(x) x - sqrt(x**2-1)
F(2.500) - F(1.500) = 1.300109
Press return to continue.
</syntaxhighlight>
'''Calculons la primitive :'''
<syntaxhighlight lang="dos">
/
Calculer la primitive de | acosh(x) dx
/
Utilisons l'intégration par partie
u = ... dv = ...
du = ... v = ...
/ /
| u dv = u v - | v du
/ /
Nous savons que la dérivé de acosh(x) est 1/sqrt(x**2-1).
Nous ne connaissons pas sa primitive.
Nous allons multiplier acosh(x) par 1.
Nous allons poser que u = acosh(x) et dv = 1 dx.
/
| acosh(x) * 1 dx =
/
u = acosh(x) dv = 1 dx
du = 1/sqrt(x**2-1) dx v = x
u dv uv v du
/ /
| (acosh(x) * 1) dx = acosh(x) * x - | (x 1/sqrt(x**2-1) dx
/ /
______________________
| u = x**2-1 |
| du = 2*x dx |
| (1/2) du = x dx |
|______________________|
/ /
| (acosh(x) 1) dx = acosh(x) x - | 1/sqrt(x**2-1) x dx
/ /
/ /
| (acosh(x) 1) dx = acosh(x) x - | 1/sqrt(u) (1/2) du
/ /
/ /
| (acosh(x) 1) dx = acosh(x) x - (1/2) | u^(-1/2) du
/ /
/
| (acosh(x) 1) dx = acosh(x) x - (1/2) (2/1) u^(1/2) + C
/
/
| (acosh(x) 1) dx = acosh(x) x - sqrt(x**2-1) + C
/
</syntaxhighlight>
{{AutoCat}}
80ba5ujaes2aw2isgci3289hpdizuep