Proglab − Doc

Équivalences entre différents langages pour les principales instructions

Avec la participation de mathazay.

Que ce soit pour démarrer l'algorithmique ou pour s'adapter à un changement (de classe, de prof, de lycée), il est toujours utile d'avoir une liste de ce qu'on peut demander et de la façon de le réaliser. Voici un récapitulatif de tous les éléments d'algorithmique demandés au lycée, et comment les réaliser dans 6 langages : Algobox, Javascript, Python, R, et les calculatrices Texas Instruments et Casio.
L'ambition n'est pas d'être complet, chacun de ces langages étant bien plus riche que ce qui est à peine effleuré dans ce résumé, mais de se concentrer sur l'essentiel dans l'optique du bac.

Partie 1 : variables, commentaires, structure générale du programme
Déclaration des variables
Noms de variables
Séparation des instructions
Insertion de commentaires
Références
Partie 2 : affectations, entrées/sorties, calculs
Partie 3 : tests, conditions et boucles

Déclaration des variables et de leur type

Au programme du lycée, les variables utilisées dans les algorithmes sont toujours des nombres. Dans la pratique on a besoin aussi de manipuler du texte (les variables correspondantes sont appelées des chaînes de caractères), et des listes (parfois appelées tableaux, même si ça n'a rien à voir avec ce qu'on appelle un tableau dans le langage courant).

Au bac La liste des variables utilisées, ainsi que leur type (entier, entier naturel, réel) est en général annoncée en début d'algorithme ou juste avant.
Algobox Types disponibles :
  • NOMBRE
  • CHAINE (texte)
  • LISTE (liste de nombres)
Les variables et leur type sont obligatoirement annoncées en début d'algorithme dans une section VARIABLES spéciale.
Javascript Les noms des variables sont déclarés en début de programme avec le mot-clé var, mais ce n'est pas une obligation.
Le type des variables ne se déclare pas, il est attribué automatiquement selon le contexte.
Python Pas de déclaration.
Le type des variables est attribué automatiquement selon le contexte.
R Pas de déclaration.
Le type des variables est attribué automatiquement selon le contexte.
Casio Pas de déclaration.
Le type des variables (nombre ou chaîne de caractère) est donné sans ambiguïté par leur nom.
TI-Basic Pas de déclaration.
Le type des variables (nombre, chaîne de caractère ou liste) est donné sans ambiguïté par leur nom.
Xcas Pas de déclaration.
Le type des variables est attribué automatiquement.
XLogo Pas de déclaration.
Le type des variables est attribué automatiquement.

Noms de variables

La façon de nommer les variables peut varier fortement d'un langage à l'autre. Par exemple Δ ou différenceDesCarrés sont des noms de variables valides dans certains langages mais pas d'autres.
Pour les langages qui acceptent à la fois les minuscules et majuscules dans les noms de variables, elles sont considérées comme des lettres différentes (donc a et A représentent deux variables différentes).
Un nom de variable ne peut pas commencer par un chiffre.
À noter : le langage Python a évolué et est plus ouvert sur les caractères spéciaux et les alphabets internationaux depuis sa version 3, publiée fin 2008.

Au bac Une lettre, éventuellement avec un indice.
Algobox Une suite de :
  • lettres de n'importe quel alphabet mondial1
  • chiffres de n'importe quel alphabet mondial
  • tiret de soulignement _
  • symbole $
(plus de 10 000 caractères autorisés)
Javascript Une suite de :
  • lettres de n'importe quel alphabet mondial1
  • chiffres de n'importe quel alphabet mondial
  • tiret de soulignement _
  • symbole $
(plus de 10 000 caractères autorisés)
Python 2 Jusqu'à la version 2.7 : uniquement une suite de
  • lettres a à z et de A à Z
  • chiffres 0 à 9
  • tiret de soulignement _
Python 3 À partir de la version 3.0 : une suite de
  • lettres de n'importe quel alphabet mondial1
  • chiffres de n'importe quel alphabet mondial
  • tiret de soulignement _
(plus de 10 000 caractères autorisés)
R Une suite de :
  • lettres européennes, y compris grecques
  • chiffres 0 à 9
  • tiret de soulignement _
  • point .
Casio Nombres : 1 lettre majuscule de A à Z
Chaînes de caractères : Str 1 à Str 20
TI-Basic Nombres : 1 lettre majuscule de A à Z, ou Θ
Chaînes de caractères : Chaîne0 à Chaîne9
Listes : L1 à L6
Xcas Lettres (y compris accentuées) et chiffres, sauf mots-clés réservés (attention à i qui peut représenter le nombre complexe)
XLogo Lettres (y compris accentuées) et chiffres.
1 Y compris de la catégorie lettres modificatives avec chasse qui comprend les caractères ʹ (prime) et ʺ (seconde). Ces caractères ne sont pas disponibles au clavier, mais on peut les obtenir comme les lettres grecques : soit par copier-coller, soit dans les tables de caractères (sous Windows dans accessoires/outils système/table des caractères. Code 02b9 pour prime, et 02ba pour seconde, avant les lettres grecques).
Ne pas confondre avec les apostrophes et guillemets, présents sur le clavier mais qui ne peuvent pas être utilisés dans les noms de variables.

Séparation des instructions qui forment le programme

Certains langages permettent d'écrire plusieurs instructions sur une même ligne, d'autres pas. Les instructions ne sont pas toujours séparées de la même façon.

Au bacUne instruction par ligne
AlgoboxUne instruction par ligne
Javascript Une instruction se termine généralement par un point-virgule ;
Pour la lisibilité, il est préférable de garder une instruction par ligne.
Python Une instruction par ligne.
Il est possible de mettre plusieurs instructions sur une même ligne, en les séparant par un point-virgule ;
RLes instructions sont séparées par des points-virgules ; ou des retours à la ligne.
Casio Les instructions sont séparées par deux-points :, la commande d'affichage ou un retour à la ligne
TI-BasicUne instruction par ligne, précédée par deux-points :
Xcas Les instructions sont séparées par des points-virgules ; ou des retours à la ligne.
XLogo Les instructions sont séparées par des espaces ou des retours à la ligne.

Insertion de commentaires dans le programme

Les commentaires dans un programme sont ignorés par la machine au moment de l'exécution. Ils servent à améliorer la lisibilité en apportant des expliquations et des précisions au lecteur humain.

Au bacLes commentaires ne sont pas écrits dans le texte de l'algorithme.
AlgoboxDeux slashes // marquent le début d'un commentaire, jusqu'à la fin de la ligne.
Javascript Deux slashes // marquent le début d'un commentaire, jusqu'à la fin de la ligne.
De plus, tout ce qui est compris entre /* et */ est aussi un commentaire (éventuellement plusieurs lignes).
PythonLe caractère # marque le début d'un commentaire, jusqu'à la fin de la ligne.
RLe caractère # marque le début d'un commentaire, jusqu'à la fin de la ligne.
CasioUne instruction qui commence par une apostrophe est un commentaire.
TI-Basic Il n'y a pas de codage spécifique pour les commentaires sur les TI, mais on peut commencer une ligne par " suivi du commentaire, ce qui revient presque au même.1
Xcas Deux slashes // marquent le début d'un commentaire, jusqu'à la fin de la ligne.
De plus, tout ce qui est compris entre /* et */ est aussi un commentaire (éventuellement plusieurs lignes).
XLogoLe caractère # marque le début d'un commentaire, jusqu'à la fin de la ligne.
1Par exemple la ligne
:"mon commentaire
permet d'écrire ce qu'on veut. Mais cela empêche d'utiliser la variable Ans, puisqu'elle contiendra la chaîne de caractères "mon commentaire".

Références

Algobox : manuel officiel
Javascript : Référence Javascript en français sur le Mozilla Developer Network.
Python : Python sur wikipedia
R :
Aide-mémoire R
Support de cours sur le logiciel R (Master Statistiques Appliquées, université de Rennes 2)
R short refcard (anglais)
Xcas :
Aide-mémoire XCas au lycée
Site officiel (Bernard Parisse, Institut Fourier, université de Grenoble I)
Algorithmique et traduction pour Xcas (Renée De Graeve)
XLogo : Site officiel
Calculatrices :
Le Basic des calculatrices graphiques Texas Instruments sur wikipédia
mode d'emploi de la TI-82 stats.fr (voir le chapitre 16 : programmation)
Programmes sous TI sur le site de l'académie de Rouen
mode d'emploi des calculatrices Casio (la programmation est au chapitre 8)
Programmes sous CASIO sur le site de l'académie de Rouen
Licence Creative Commons
Ce texte est mis à disposition selon les termes de la Licence Creative Commons Attribution - Partage dans les Mêmes Conditions 3.0 non transposé.
Dernière modification le 6 mars 2013
commentaires avec Disqus