OpenLLM-France/wikimedia huggingface dataset:
# Programmation en Go
## Introduction

* Ce wikilivre est complet et prêt à être utilisé. N'hésitez pas à l'améliorer encore !
* Ce livre a été classé comme étant accessible aux lecteurs de niveau 12.
Ce livre est une introduction à la programmation en Go. Go est un langage de programmation développé chez Google depuis 2007. Dans ce livre vous découvrirez comment écrire des programmes simples dans ce langage, et vous ferez un tour des principales fonctionnalités du langage. Vous étudierez également quelques cas d'usage typiques pour bien prendre en main ce langage.
Ce livre s'adresse à des personnes ayant déjà des notions de base en informatique ainsi qu'en programmation et en ligne de commande. Toutefois, les algorithmes étudiés seront simplifiés au maximum et expliqués dans le détail de manière à être accessibles à un bon niveau de Terminale S.

## Table des matières

* Une version imprimable du livre « Programmation en Go » est disponible. (voir/ modifier)
* Une version PDF de ce livre est disponible.
* Installation
* Premier programme
* Les types de base
* Les tableaux
* Initialisation de variables
* Pointeurs et structures
* Les tableaux associatifs
* Formatage de texte
* La boucle for
* If et switch
* Conditions
* Fonctions
* Interfaces
* Modules
* Panic et recover
* Goroutines
# MySQL

* La lecture préalable de Programmation SQL est nécessaire.
* La lecture préalable de PhpMyAdmin est conseillée.
* Une version imprimable du livre « MySQL » est disponible. (voir/ modifier)
* Une version PDF de ce livre est disponible.
* Voir les statistiques de consultation de cette page.
Consultez également ces pages dans d’autres projets Wikimedia :
* Ressources multimédia sur Commons.
* Article encyclopédique sur Wikipédia.
* Définition sur Wiktionnaire.
MySQL est un des SGBD les plus utilisés au monde. Il est téléchargeable gratuitement, et permet la création et utilisation de bases de données, avec lancement de requêtes SQL, remplies par l'utilisateur ou générées par l'interface graphique phpMyAdmin.
* Introduction
* PhpMyAdmin
* Parcourir les bases de données
* Spécifier les noms
* LDD, LMD et LCD
* Variables utilisateurs
* Alias
* Types de données
* Manipulation de base
* mysqldump
* Manipulation de table
* Manipulation de données
* Requêtes
* NULL
* Opérateurs
* Fonctions
* Procédures stockées
* Regex
* Bases de données spatiales
* Importer et exporter
* Réplication
* Optimisation
* API
* Sécurité
* Mots réservés
* Débogage

## Voir aussi

* Découverte de MySQL, PostgreSQL et Oracle
* (en) « Guide de style SQL »
* (en) « Podcast officiel »
* MariaDB est un fork open source téléchargeable sur https://mariadb.org/download/.
# MySQL/Alias

* Introduction
* PhpMyAdmin
* Parcourir les bases de données
* Spécifier les noms
* LDD, LMD et LCD
* Variables utilisateurs
* Alias
* Types de données
* Manipulation de base
** mysqldump
* Manipulation de table
* Manipulation de données
* Requêtes
* NULL
* Opérateurs
* Fonctions
* Procédures stockées
* Regex
* Bases de données spatiales
* Importer et exporter
* Réplication
* Optimisation
* API
* Sécurité
* Mots réservés
* Débogage
* Introduction
* PhpMyAdmin
* Parcourir les bases de données
* Spécifier les noms
* LDD, LMD et LCD
* Variables utilisateurs
* Alias
* Types de données
* Manipulation de base
** mysqldump
* Manipulation de table
* Manipulation de données
* Requêtes
* NULL
* Opérateurs
* Fonctions
* Procédures stockées
* Regex
* Bases de données spatiales
* Importer et exporter
* Réplication
* Optimisation
* API
* Sécurité
* Mots réservés
* Débogage
[ Modifier le sommaire ]
Une expression ou une colonne peut être baptisée avec AS. Cet alias est utilisé comme nom de colonne et peut donc être nommé dans les clauses des requêtes. Exemple :
Ces alias fonctionnent avec ORDER BY, GROUP BY et HAVING, mais pas WHERE.
Cela peut aussi servir à raccourcir les noms des tables employées comme préfixes.
De plus les alias peuvent jouer un rôle crucial pour les auto-jointures. Par exemple ci-dessous, la table personne est référencée par p et c :
# MySQL/Bases de données spatiales

* Introduction
* PhpMyAdmin
* Parcourir les bases de données
* Spécifier les noms
* LDD, LMD et LCD
* Variables utilisateurs
* Alias
* Types de données
* Manipulation de base
** mysqldump
* Manipulation de table
* Manipulation de données
* Requêtes
* NULL
* Opérateurs
* Fonctions
* Procédures stockées
* Regex
* Bases de données spatiales
* Importer et exporter
* Réplication
* Optimisation
* API
* Sécurité
* Mots réservés
* Débogage
* Introduction
* PhpMyAdmin
* Parcourir les bases de données
* Spécifier les noms
* LDD, LMD et LCD
* Variables utilisateurs
* Alias
* Types de données
* Manipulation de base
** mysqldump
* Manipulation de table
* Manipulation de données
* Requêtes
* NULL
* Opérateurs
* Fonctions
* Procédures stockées
* Regex
* Bases de données spatiales
* Importer et exporter
* Réplication
* Optimisation
* API
* Sécurité
* Mots réservés
* Débogage
[ Modifier le sommaire ]

## Principe

Lors du typage des champs, certains représentent des objets graphiques, et sont donc considérés comme étant de catégorie "Spatial" (base de données spatiales). Par conséquent, ils se manipulent par des requêtes différentes que pour le texte.
On distingue huit types de champs :
* Geometry
* Point
* LineString
* Polygon
* MultiPoint
* MultiLineString
* MultiPolygon
* GeometryCollection
Et six relations entre eux :
* Contains
* Disjoint
* Equals
* Intersects
* Overlaps
* Within

## Références

* ↑ (anglais) http://dev.mysql.com/doc/refman/5.0/en/spatial-datatypes.html
* ↑ (anglais) http://dev.mysql.com/doc/refman/5.7/en/spatial-relation-functions-mbr.html

## Voir aussi

* PostgreSQL/PostGIS
* Microsoft SQL Server/Bases de données spatiales sur Wikiversité
# MySQL/Importer et exporter

* Introduction
* PhpMyAdmin
* Parcourir les bases de données
* Spécifier les noms
* LDD, LMD et LCD
* Variables utilisateurs
* Alias
* Types de données
* Manipulation de base
** mysqldump
* Manipulation de table
* Manipulation de données
* Requêtes
* NULL
* Opérateurs
* Fonctions
* Procédures stockées
* Regex
* Bases de données spatiales
* Importer et exporter
* Réplication
* Optimisation
* API
* Sécurité
* Mots réservés
* Débogage
* Introduction
* PhpMyAdmin
* Parcourir les bases de données
* Spécifier les noms
* LDD, LMD et LCD
* Variables utilisateurs
* Alias
* Types de données
* Manipulation de base
** mysqldump
* Manipulation de table
* Manipulation de données
* Requêtes
* NULL
* Opérateurs
* Fonctions
* Procédures stockées
* Regex
* Bases de données spatiales
* Importer et exporter
* Réplication
* Optimisation
* API
* Sécurité
* Mots réservés
* Débogage
[ Modifier le sommaire ]

## Exporter

phpMyAdmin propose un bouton "Export" permettant l'extraction de toute une base dans un fichier .sql. Pour ne sortir que quelques tables, il faut les cocher puis choisir "Export" dans le menu déroulant en bas.
Pour exporter en SQL, le mot clé est INTO OUTFILE :
Le processus MySQL écrit lui-même le fichier, pas l'utilisateur. De plus, le fichier est stocké sur le serveur, pas le client.
Généralement le serveur a le droit d'écrire dans /tmp, donc même s'il n'est pas sécurisé ce répertoire est utilisé pour les exemples ci-dessous.
Par ailleurs, exporter est possible en ligne de commande :
Ou bien via mysqldump.

## Importer

Pour importer un fichier :
Le fichier doit se trouver sur le serveur MySQL.
Options additionnelles :
Pour spécifier la structure du document et la présence d'en-tête, on peut associer les colonnes de la base à des variables :
Dans cet exemple, seule la seconde et troisième colonne du fichier sont stockées dans le champ name et phone_number.

## Précisions sur le contenu

Pour importer un .sql créant un utilisateur et sa base de données, il faut savoir s'il existe déjà sur le serveur, car MySQL ne possède pas de DROP USER IF EXISTS. Par contre pour les bases ça fonctionne :
PS : si cette commande renvoie la commande drop database est désactivée avec PhpMyAdmin, modifier son config.default.php en passant $cfg['AllowUserDropDatabase'] à true, et vider le cache du navigateur.
# Affaire Priore/L'après-Priore

Cette page est en travaux. Tant que cet avis n'aura pas disparu, veuillez en considérer le plan et le contenu encore incomplets, temporaires et sujets à caution. Si vous souhaitez participer, il vous est recommandé de consulter sa page de discussion au préalable, où des informations peuvent être données sur l'avancement des travaux.
* L'Affaire Priore
* L'histoire d'un rendez-vous scientifique manqué un ouvrage collectif
* Résumé du livre
* Avant propos
* CHAPITRES
* L'enquête sur l'Affaire Priore
* L'Affaire Priore en 25 étapes
* Historique de l'Affaire
* Les appareils d'Antoine Priore
* Les observations biologiques
* Les problèmes « humains » de l'Affaire
* L'après-Priore
* Construire un appareil Priore ?
* ANNEXES
* Le Calendrier de l'Affaire Priore
* Personnalités cités dans les Archives Priore
Notes de synthèse :
| Le rapport Bernard-Latarjet | Les souris anglaises | La commission de 1960 | La commission de 1969 |
| L'Académie des sciences | Leroy-Somer | S.O.V.I.R.E.L. | Les finances de l'Affaire Priore |
| La D.R.M.E. et la D.G.R.S.T. | I.N.S.E.R.M. | La thèse universitaire d'Antoine Priore | Le Comité de soutien d'Antoine Priore |
| Diverses rumeurs | La Mairie de Bordeaux | La Radio et T.V. | Le laboratoire P.I.O.M. |
| I.R.S.C. de Villejuif | La Presse et l'Affaire Priore | Bibliographie : électro-thérapie |
# Affaire Priore/Construire un appareil Priore ?

Cette page est en travaux. Tant que cet avis n'aura pas disparu, veuillez en considérer le plan et le contenu encore incomplets, temporaires et sujets à caution. Si vous souhaitez participer, il vous est recommandé de consulter sa page de discussion au préalable, où des informations peuvent être données sur l'avancement des travaux.
Construire un appareil Priore ?
* L'Affaire Priore
* L'histoire d'un rendez-vous scientifique manqué un ouvrage collectif
* Résumé du livre
* Avant propos
* CHAPITRES
* L'enquête sur l'Affaire Priore
* L'Affaire Priore en 25 étapes
* Historique de l'Affaire
* Les appareils d'Antoine Priore
* Les observations biologiques
* Les problèmes « humains » de l'Affaire
* L'après-Priore
* Construire un appareil Priore ?
* ANNEXES
* Le Calendrier de l'Affaire Priore
* Personnalités cités dans les Archives Priore
Notes de synthèse :
| Le rapport Bernard-Latarjet | Les souris anglaises | La commission de 1960 | La commission de 1969 |
| L'Académie des sciences | Leroy-Somer | S.O.V.I.R.E.L. | Les finances de l'Affaire Priore |
| La D.R.M.E. et la D.G.R.S.T. | I.N.S.E.R.M. | La thèse universitaire d'Antoine Priore | Le Comité de soutien d'Antoine Priore |
| Diverses rumeurs | La Mairie de Bordeaux | La Radio et T.V. | Le laboratoire P.I.O.M. |
| I.R.S.C. de Villejuif | La Presse et l'Affaire Priore | Bibliographie : électro-thérapie |
# Affaire Priore/I.N.S.E.R.M.

Cette page est en travaux. Tant que cet avis n'aura pas disparu, veuillez en considérer le plan et le contenu encore incomplets, temporaires et sujets à caution. Si vous souhaitez participer, il vous est recommandé de consulter sa page de discussion au préalable, où des informations peuvent être données sur l'avancement des travaux.
* L'Affaire Priore
* L'histoire d'un rendez-vous scientifique manqué un ouvrage collectif
* Résumé du livre
* Avant propos
* CHAPITRES
* L'enquête sur l'Affaire Priore
* L'Affaire Priore en 25 étapes
* Historique de l'Affaire
* Les appareils d'Antoine Priore
* Les observations biologiques
* Les problèmes « humains » de l'Affaire
* L'après-Priore
* Construire un appareil Priore ?
* ANNEXES
* Le Calendrier de l'Affaire Priore
* Personnalités cités dans les Archives Priore
Notes de synthèse :
| Le rapport Bernard-Latarjet | Les souris anglaises | La commission de 1960 | La commission de 1969 |
| L'Académie des sciences | Leroy-Somer | S.O.V.I.R.E.L. | Les finances de l'Affaire Priore |
| La D.R.M.E. et la D.G.R.S.T. | I.N.S.E.R.M. | La thèse universitaire d'Antoine Priore | Le Comité de soutien d'Antoine Priore |
| Diverses rumeurs | La Mairie de Bordeaux | La Radio et T.V. | Le laboratoire P.I.O.M. |
| I.R.S.C. de Villejuif | La Presse et l'Affaire Priore | Bibliographie : électro-thérapie |
# Affaire Priore/IRSC

Cette page est en travaux. Tant que cet avis n'aura pas disparu, veuillez en considérer le plan et le contenu encore incomplets, temporaires et sujets à caution. Si vous souhaitez participer, il vous est recommandé de consulter sa page de discussion au préalable, où des informations peuvent être données sur l'avancement des travaux.
I.R.S.C. de Villejuif et Antoine Priore
* L'Affaire Priore
* L'histoire d'un rendez-vous scientifique manqué un ouvrage collectif
* Résumé du livre
* Avant propos
* CHAPITRES
* L'enquête sur l'Affaire Priore
* L'Affaire Priore en 25 étapes
* Historique de l'Affaire
* Les appareils d'Antoine Priore
* Les observations biologiques
* Les problèmes « humains » de l'Affaire
* L'après-Priore
* Construire un appareil Priore ?
* ANNEXES
* Le Calendrier de l'Affaire Priore
* Personnalités cités dans les Archives Priore
Notes de synthèse :
| Le rapport Bernard-Latarjet | Les souris anglaises | La commission de 1960 | La commission de 1969 |
| L'Académie des sciences | Leroy-Somer | S.O.V.I.R.E.L. | Les finances de l'Affaire Priore |
| La D.R.M.E. et la D.G.R.S.T. | I.N.S.E.R.M. | La thèse universitaire d'Antoine Priore | Le Comité de soutien d'Antoine Priore |
| Diverses rumeurs | La Mairie de Bordeaux | La Radio et T.V. | Le laboratoire P.I.O.M. |
| I.R.S.C. de Villejuif | La Presse et l'Affaire Priore | Bibliographie : électro-thérapie |
# Affaire Priore/La D.R.M.E. et la D.G.R.S.T.

Cette page est en travaux. Tant que cet avis n'aura pas disparu, veuillez en considérer le plan et le contenu encore incomplets, temporaires et sujets à caution. Si vous souhaitez participer, il vous est recommandé de consulter sa page de discussion au préalable, où des informations peuvent être données sur l'avancement des travaux.
* L'Affaire Priore
* L'histoire d'un rendez-vous scientifique manqué un ouvrage collectif
* Résumé du livre
* Avant propos
* CHAPITRES
* L'enquête sur l'Affaire Priore
* L'Affaire Priore en 25 étapes
* Historique de l'Affaire
* Les appareils d'Antoine Priore
* Les observations biologiques
* Les problèmes « humains » de l'Affaire
* L'après-Priore
* Construire un appareil Priore ?
* ANNEXES
* Le Calendrier de l'Affaire Priore
* Personnalités cités dans les Archives Priore
Notes de synthèse :
| Le rapport Bernard-Latarjet | Les souris anglaises | La commission de 1960 | La commission de 1969 |
| L'Académie des sciences | Leroy-Somer | S.O.V.I.R.E.L. | Les finances de l'Affaire Priore |
| La D.R.M.E. et la D.G.R.S.T. | I.N.S.E.R.M. | La thèse universitaire d'Antoine Priore | Le Comité de soutien d'Antoine Priore |
| Diverses rumeurs | La Mairie de Bordeaux | La Radio et T.V. | Le laboratoire P.I.O.M. |
| I.R.S.C. de Villejuif | La Presse et l'Affaire Priore | Bibliographie : électro-thérapie |
# Affaire Priore/La Mairie de Bordeaux

Cette page est en travaux. Tant que cet avis n'aura pas disparu, veuillez en considérer le plan et le contenu encore incomplets, temporaires et sujets à caution. Si vous souhaitez participer, il vous est recommandé de consulter sa page de discussion au préalable, où des informations peuvent être données sur l'avancement des travaux.
* L'Affaire Priore
* L'histoire d'un rendez-vous scientifique manqué un ouvrage collectif
* Résumé du livre
* Avant propos
* CHAPITRES
* L'enquête sur l'Affaire Priore
* L'Affaire Priore en 25 étapes
* Historique de l'Affaire
* Les appareils d'Antoine Priore
* Les observations biologiques
* Les problèmes « humains » de l'Affaire
* L'après-Priore
* Construire un appareil Priore ?
* ANNEXES
* Le Calendrier de l'Affaire Priore
* Personnalités cités dans les Archives Priore
Notes de synthèse :
| Le rapport Bernard-Latarjet | Les souris anglaises | La commission de 1960 | La commission de 1969 |
| L'Académie des sciences | Leroy-Somer | S.O.V.I.R.E.L. | Les finances de l'Affaire Priore |
| La D.R.M.E. et la D.G.R.S.T. | I.N.S.E.R.M. | La thèse universitaire d'Antoine Priore | Le Comité de soutien d'Antoine Priore |
| Diverses rumeurs | La Mairie de Bordeaux | La Radio et T.V. | Le laboratoire P.I.O.M. |
| I.R.S.C. de Villejuif | La Presse et l'Affaire Priore | Bibliographie : électro-thérapie |
# Gambas 3/Gambas3LeLangage/Les collections
## Les collections

Jusqu'à maintenant, nous avions utilisé des types simples : des valeurs ayant un type.
Petite révolution : nous allons commencer à utiliser des objets !
Une collection est un objet et pour pouvoir utiliser un objet, il faut qu'il existe. Il faut donc créer une nouvelle instance de collection avec le mot New.
Sans cela, l'objet n'existe pas et rien ne fonctionne !
Revenons à notre sujet :
Une collection et un conteneur, une liste d'éléments.
Chaque élément a une clé de type String et une valeur de type Variant. Le type Variant est un type qui peut contenir n'importe quel autre type. En gros, vous mettez la valeur que vous voulez !
Le code ci-dessous est une démonstration d'utilisation d'une liste générique.
Il y a plus d'informations sur le wiki officiel ici et ici si nécessaire.
En particulier, la syntaxe pour saisir une collection en ligne améliore le code (voir ci-dessous) et les performances :
Au début de votre apprentissage, je vous conseille d'utiliser uniquement les collections. Si vous en ressentez le besoin, vous pouvez aussi utiliser les tableaux dynamiques.

## Les tableaux dynamiques

Lorsque tous les objets stockés ont le même type et si vous n'avez pas besoin de clé pour identifier un élément, vous pouvez utiliser un tableau dynamique.
Le fonctionnement est légèrement différent car il n'y a pas de clé de type String mais il y a un index typé Integer. La tableau évoluant dynamiquement, un élément ne conservera PAS son index initial.
Vous pouvez consulter les informations sur le wiki officiel ici, ici et ici si nécessaire.

## Autres structures de données

Il existe d'autres structures de données. En cas de besoin, je vous invite à regarder la documentation du module gb.data. En guise d'exemple, les piles ou queues, le Radix tree, le Heap, l'AVL tree ont été portés sur Gambas.
Il faudra créer une collection personnalisée si votre programme nécessite des tris sur votre collection, des fonctions de recherche, etc.
# Gambas 3/Gambas3LeLangage/Les sous-routines
## Les sous-routines

Les sous-routines ou procédures sont des bouts de code qu'on appelle à chaque fois qu'on en a besoin.
La sous-routine Main est appelée automatiquement au début du programme.
Rien ne nous empêche d'en créer d'autres. Observez le code suivant :
La routine nommée "RoutineOne" a été créée en copiant bêtement la Routine "Main". La routine nommée "RoutineTwo" est un peu plus complexe car il y a un argument. Ici l'argument est obligatoire et il doit être typé String !
Cool. Nous passons une valeur à une autre routine ! La prochaine wikipage va vous montrer comment récupérer une valeur après avoir appelé une fonction !
# Gambas 3/Gambas3LeLangage/Les boucles WHILE
## Les boucles WHILE

Nous avons vu la boucle For qui est utilisée lorsque vous connaissez à l'avance le nombre d'itérations à faire.
Parfois vous ne saurez pas combien de fois la boucle devra être exécutée. Dans ce cas, vous utiliserez une des structures suivantes :
* While ... WEnd pour While End (littéralement la fin de While)
* Repeat ... Until
* Do ... Loop
Ces structures font le même travail mais le Do ... Loop est la version la plus moderne, la plus aboutie.
Si vous ne devez retenir qu'un chose, utilisez Do ... Loop qui est la structure la plus polyvalente et moderne !

### WHILE

D'un point de vue algorithmique, cela donne : Tant que la condition est vraie, exécute le code suivant ... fin de la boucle.
Observez le code ci-dessous :
L'application va fonctionner jusqu'à ce que l'heure atteigne 55 secondes !
La structure Do ... Loop étant souple peut s'utiliser de la même façon :
Toutefois, la structure de contrôle Do ... Loop vous permet d'exécuter le code au moins une fois comme ceci :

### REPEAT ... UNTIL

Il existe une structure appelée Repeat ... Until qui fonctionne comme ceci :
Là aussi, Do ... Loop fait le job :
Voilà, j'ai fini mon plaidoyer pour Do ... Loop !
# Gambas 3/InstallationStandardLinuxMint
## Installation standard sur Linux Mint

Je rappelle que Gambas n'est porté sur Windows. Quelques surdoués ont réussi à faire fonctionner Gambas sur l'OS de Microsoft mais ce n'est pas à la portée de tous. Une solution peut être d'installer une machine virtuelle sur laquelle vous mettez une distribution Linux par exemple Ubuntu.
Les procédures ci-dessous couvrent l'installation sur Linux Mint.

### Linux Mint 19 Tara (distribution basée sur Ubuntu 18.10 LTS)

Le gestionnaire de logiciel n’inclut pas de paquet Gambas 3 en standard sur Linux Mint 19 Tara. C'est l'occasion d'installer la toute dernière version.
Pour commencer, ouvrez un terminal avec le raccourci clavier Ctrl+Alt+T !
Lorsque le terminal est affiché, exécutez les commandes suivantes l'une après l’autre :
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3
Plus d'informations [ici] et [ici]
Chez moi, l’installation a durée une dizaine de minutes.

### Linux Mint 17.3 Rosa (distribution basée sur Ubuntu 14.04 LTS)

La version qui sera installée ne sera pas la toute dernière version de Gambas mais ça ira très bien pour débuter. Si vous êtes sur Linux Mint depuis plusieurs mois et que vous vous sentez capable de faire mieux consultez le wiki et trouvez comment installer la version de votre choix !
Voici comment installer simplement Gambas :
Ouvrez le gestionnaire de logiciels ! Voici une parmi plusieurs manières de faire :
* Alt+F2
* mintinstall
* Entrée
Le gestionnaire de logiciels vous demandera le mot de passe pour administrer votre PC.
Faites une recherche en saisissant "gambas" en haut à droite !
Après avoir appuyé sur la touche "Entrée" ou "Retour", une liste de paquets s'affiche.
* Sélectionnez le paquet gambas3 !
* Faites un double-clic sur le paquet gambas3 !
* Cliquez sur installer !
C'est tout. Gambas est installé.

### Autres systèmes

Pour les autres systèmes d'exploitation et pour les autres distribution Linux, vous pouvez chercher les informations sur le wiki de Gambas. Je vous conseille de prendre le paquet tout fait pour votre distribution.
[Wiki officiel de Gambas]