Bases sur la programmation Ce cours est destiné à vous permettre de vous initier à la programmation en (re)découvrant les notions fondamentales qui lui sont liées. Introduction Qu’est-ce que la programmation ? La programmation consiste à élaborer une suite d’instructions à faire exécuter par un ordinateur qui est une machine dédiée au traitement de l’information. Cette suite d’instructions est déterminée par un algorithme et est contenue dans une entité appelée communément programme (on verra par la suite qu’un programme désigne quelque chose de bien particulier en informatique mais nous allons garder cette définition élémentaire pour l’instant). Un algorithme représente d’une manière plus ou moins précise la procédure à suivre pour obtenir un résultat à partir d’un ensemble d’informations dans le but de répondre à une problématique. Un être humain va construire un algorithme sous une forme qui lui parait naturelle en utilisant par exemple des phrases simples présentées de la manière la plus claire qui soit. On peut ainsi assimiler un algorithme à une recette de cuisine qui présente de manière synthétique la suite d’opérations à effectuer pour préparer un plat à partir d’ingrédients. Cependant, cet algorithme n’étant pas directement compréhensible par l’ordinateur, on va donc devoir le traduire dans un langage qui lui est adapté. L’ordinateur étant finalement qu’un assemblage de composants électroniques appelés transistors — dont le rôle est de laisser passer ou non un courant électrique à la manière d’un interrupteur — les instructions qu’il reconnait sont ‘rudimentaires’. L’ensemble des ces instructions ‘rudimentaires’ constitue le seul et unique langage compris par un ordinateur (où plus précisément par le microprocesseur qui constitue le cerveau de l’ordinateur): c’est le langage machine. Traduire directement un algorithme en langage machine est certes possible mais très, très pénible ! Croyez-moi car c’est comme ça que j’ai appris l’informatique à l’école et, même si ça fait très longtemps, je m’en souviens encore ! Pour se faire comprendre de l’ordinateur de manière plus aisée, une multitude de langages intermédiaires entre le langage humain et le langage machine ont été créés. Celui de ce cours s’appelle donc Javascript mais il en existe d’autres comme C/C++, Java, C#, Rust, Perl, PHP, Ruby, Fortran, Cobol, Basic, Smalltalk… L’utilisation de ce langage intermédiaire apporte un confort indéniable mais nécessite forcément une étape supplémentaire de traduction : La 1ière étape est réalisée par l’être humain pour traduire son algorithme dans le langage intermédiaire (Javascript, Python, Java…) ; La 2ième étape consiste à passer du langage intermédiaire au langage machine. Cependant, comme le langage intermédiaire est très structuré, la 2ième étape peut s’opérer de manière automatique en recourant à un programme qui porte un nom différent selon le langage choisi : interpréteur ou compilateur. Finalement, la procédure pour faire exécuter un traitement à un ordinateur est toujours la suivante : Élaborer un algorithme Traduire, dans un fichier ou une ligne de commande, l’algorithme dans le langage “intermédiaire” de son choix (Javascript dans cette activité). Le résultat de cette traduction correspond à ce que l’on appelle le code source Lancer le processus de traduction du code source en langage machine Faire exécuter par l’ordinateur le programme obtenu Les 2 dernières étapes s’enchaînent automatiquement avec Javascript lorsqu’on exécute le programme. L’utilisateur a donc l’impression qu’elles n’en forment qu’une mais les deux étapes sont bel et bien effectuées. Vous pouvez vous donner une idée des différentes étapes pour passer d’un code source à un exécutable avec visualisation de leur résultats en consultant ce document Constitution d’un programme Comme il a été expliqué plus haut, un programme est une suite d’instructions informatiques. Ces instructions peuvent être de différents types. Par exemple, les langages informatiques proposent tous des instructions de : calcul (Ex. : Additionner 3 et 2) test (Ex. : SI <condition remplie> ALORS <suite d’instructions> ) répétition (Ex. : REPETER <suite d’instructions> TANT QUE <condition remplie>) Ces instructions opèrent souvent sur des données qui représentent des informations issues du monde réel (ex.: température extérieure, prix de l’essence, nom d’un étudiant…). Les données peuvent être de différentes natures. Par exemple, elle peuvent représenter : des nombres (entiers, décimaux, relatifs…) → 1789, 3.14, -273.15 ; du texte (composé de caractère alphanumériques) → "3, 2, 1… Partez !"; des ensembles de nombres ou de textes (→ tableaux) → {1, 2, 3}, {"euro(s)", "dollar(s)"} . Au moment de l’exécution d’un programme, les valeurs des données sont stockées dans des endroits bien précis de la mémoire de l’ordinateur. Les données, quels que soient leur type (texte, nombre…), sont toujours stockées sous forme binaire dans la mémoire de l’ordinateur. Le binaire est un système de codage qui permet de représenter une valeur sous la forme d’une suite ordonnée de 0 et de 1 appelés bits (pour Binary digIT ). Chaque bit code, selon sa position, une puissance de 2 différente. Ainsi, la valeur décimale 13 (→ 13|10) sera stockée sous la forme binaire 1101 (→ 1101|2). En effet : 1 * 23 + 1 * 22 + 0 * 21 + 1 * 20 = 1*8 + 1*4 + 0*2 + 1*1 = 13. Afin de pouvoir accéder simplement à ces données depuis un code source, on attribue un nom à chacun de leur emplacement dans la mémoire. Cet emplacement de la mémoire — caractérisé par un nom et une valeur — s’appelle une variable. En dehors, des instructions et des variables, on va aussi souvent trouver dans un code source ce que l’on appelle des fonctions. Une fonction est simplement un ensemble d’instructions que le programme est souvent amené à exécuter. Ainsi, au lieu de retaper cet ensemble d’instructions dans le code source à chaque fois que l’on désire l’exécuter, on va se contenter de l’écrire une fois pour toute dans une fonction. Ensuite, à chaque fois que l’on souhaite exécuter cet ensemble d’instructions, on exécute la fonction en réalisant un appel de fonction. Ce qui précède n’a pas la prétention d’être exhaustif. Cependant, ce qui a été expliqué a un caractère “universel” et s’applique à n’importe quel langage de programmation. Il est donc essentiel de bien l’avoir compris. On retiendra particulièrement ce qu’est : un algorithme une donnée informatique une variable une instruction informatique une fonction Il est également indispensable de se souvenir des étapes allant de la conception à l’exécution d’un programme : élaboration de l’algorithme ; saisie du code source correspondant à l’algorithme ; lancement du processus de conversion en langage machine ; exécution du programme. Conclusion Ce document a présenté les concepts généraux de la programmation informatique. Ces concepts seront largement développés au cours de votre formation. Cependant, il faut dès maintenant, commencer à bien comprendre le processus de création d’un programme et la façon dont il s’exécute sur la machine. 🞄 🞄 🞄 Généralités Python