spécialité dÉveloppement d’un programme 2/2 i...6.2 langage interprété le langage de...
TRANSCRIPT
DÉVELOPPEMENT D’UN PROGRAMME2/2
Spécialité
Sciences del’Ingénieur
Cours 7 Modéliser et résoudre MR4
1 Introduction
Dans un produit constitué d’une chaîne d’information et d’une chaîne de puissance, c’est le blocTraiter qui, à partir de signaux fournis par des capteurs, délivrera des ordres permettant le pilotaged’actionneurs.
Différentes technologies existent pour réaliser la fonction traitée. Elles peuvent être classées en deuxcatégories :
• la logique câblée ;• la logique programmée.
Cours 7 : Développement d’un programme 2/2_V0 Page 1/11
1.1 Logique câblée
La logique câblée est utilisée (principalement) pour un produit « simple » et/ou ne nécessitant (depréférence) pas de modifications dans le temps. Le produit est constitué de capteurs, d’interrupteurs,etc, agissant directement sur des pré-actionneurs (contacteurs, distributeurs pneumatiques, etc)permettant le pilotage d’actionneurs (lampes, vérins, moteurs, etc).
1.2 Logique programmée
La logique programmée est utilisée autant pour un produit « simple » que « complexe ». Cettecatégorie utilise un ou des processeurs assurant la fonction traitée. Les capteurs, interrupteurs, etc, sont raccordés sur les ports d’entrée du processeur, et lespréactionneurs sur les ports de sortie.
Le pilotage des pré-actionneurs (contacteurs, distributeurs pneumatiques, etc) raccordés sur lesports de sortie du processeur ne dépend pas du câblage du produit mais du programme que vaexécuter le processeur.
Avantages de la catégorie « logique programmée » sur la « logique câblée » :• complexité des opérations et fonctions à réaliser ;• modularité du produit (programme aisément modifiable afin de changer le fonctionnement du
produit) ;• etc.
Ce cours traitera de la catégorie « logique programmée ».
Cours 7 : Développement d’un programme 2/2_V0 Page 2/11
2 Mise au point d’un produit programmé, automatisé
Pour qu’un processeur pilote des pré-actionneurs, réalise des calculs, affiche un message sur unécran, etc, il faut qu’il soit programmé . Le langage que comprend le processeur est le« code machine » aussi appelé « langage machine » . Ce langage n’est pascompréhensible facilement par l’humain et est propre à chaque processeur.Le langage machine est une suite de 0 et de 1, soit un code binaire.L’exécution de ce langage machine est l’aboutissement d’un besoin initial (cahier des charges). Cetaboutissement va passer par trois étapes :
• étape initiale : cahier des charges ;◦ étape 1 : algorithme ou algorigramme ;◦ étape 2 : langage de programmation ;◦ étape 3 : compilation ou interprétation du programme ;
• étape finale : code machine.
L’algorithme ou l’algorigramme permet de restructurer un besoin initial en une suite d’instructions.. Cela permet de préparer la rédaction d’un programme qui sera
ensuite compilé ou interprété en fonction du langage de programmation utilisé. On obtient alors lecode machine permettant au processeur d’exécuter les tâches souhaitées.
3 Algorithme et algorigramme
3.1 Définition d’un algorithme
Un algorithme décrit une suite ordonnée d’actions et de décisions qu’il faut exécuter pour accomplirune tâche donnée.On parle aussi de langage algorithmique.L’algorithme peut être comparé à une recette de cuisine. Il faut suivre une succession d’étapesordonnées afin d’obtenir un plat, un dessert.
3.2 Définition d’un algorigramme
Un algorigramme est la représentation graphique d’un algorithme utilisant des symboles normalisés.
3.3 Variables
Un programme est amené à traiter de l’information venant d’organes divers et variés (capteurs,interrupteurs, clavier alpha-numérique, etc) pouvant varier dans le temps. .Cette information sera enregistrée dans le programme dans une « variable ».
L’action d’enregistrer une information dans une variable est appelée « affectation » Elle est
représentée en algorithme par le symbole « ← ».
Exemple : variable ← information du capteur
Cours 7 : Développement d’un programme 2/2_V0 Page 3/11
3.4 Constantes
Un programme peut être amené à réaliser des calculs pour lesquels la grandeur utilisée ne varie pas.Cette grandeur est appellée une « constante ».
Exemple : nb_pi ← 3,14159
3.5 Structure d’un algorithme
3.5.1 Représentation
L’en-tête Algorithme : nom de l’algorithme
Les déclaration de variables, constantes, etc.
Constantes : liste de variables
Variables :liste de constantes
Autres :liste d’autres
Le corps Débutaction 1 / commentaire /opération 1action 2…action n
Fin
3.5.2 L’en-tête
La zone « en-tête » permet d’identifier l’algorithme.
3.5.3 Les déclarations
La zone « déclaration » permet de déclarer les variables, les constantes, ou d’autres éléments àdéclarer qui seront utilisés dans l’algorithme.
3.5.4 Le corps
La zone « corps » contient la suite ordonnée d’actions et de décisions que l’algorithme va devoirexécuter pour accomplir une tâche.
3.5.5 Éléments représentatifs du langage
Dans le langage algorithmique, on distingue trois familles de mots :• les mots-clés ;• les mots instructions ;• les mots délimiteurs.
Cours 7 : Développement d’un programme 2/2_V0 Page 4/11
3.5.5.1 Mots-clés
Les mots-clés précisent le type de structure algorithmique utilisée.
Exemple : Si _____ Alors _____ Sinon : désignant une structure alternative ;Répéter _____ Jusqu’à _____ : désignant une structure itérative.
Un mot-clé est toujours suivi :• soit d’une expression conditionnelle (a < b) ;• soit d’un ou de plusieurs mots instructions.
3.5.5.2 Mots instructions
Les mots instructions caractérisent la nature des opérations à effectuer. Il font appel à des verbesd’action à l’infinitif.
Exemple : • Lire ;• Écrire ;• Faire ;• Afficher ;• Etc.
Un mot instruction est toujours suivi :• de la désignation de l’objet sur lequel il s’applique ;• éventuellement de la description de l’opération à appliquer à l’objet.
Exemple : Lire capteur_S1Faire age ← age + 1
3.5.5.3 Mots délimiteurs
Les mots délimiteurs fixent :• les bornes d’entrées et de sorties de l’algorithme ;• les bornes d’entrées et de sorties des différentes structures utilisées dans l’algorithme
si ces bornes ne sont pas implicitement définies par la structure elle même.
Exemple : Début /entrée de l’algorithme/
Si condition /entrée de la structure/Alors
Mot instructionFin Si /sortie de la structure/
Fin /sortie de l’algorithme/
Cours 7 : Développement d’un programme 2/2_V0 Page 5/11
3.5.6 L’indentation
Afin de faciliter la lecture d’un algorithme, d’un programme, il est important de l’indenter .Cela consiste à ajouter une tabulation en début de l’instruction qui suit une nouvelle structure et de laretirer à la fin de la structure.
Exemple : Structure indentée : Structure non indentée :
DébutMot instruction 1Mot instruction 2Si condition 1
AlorsMot instruction 3
SinonMot instruction 4
Fin SiFin
DébutMot instruction 1Mot instruction 2Si condition 1AlorsMot instruction 3SinonMot instruction 4Fin SiFin
De l’exemple, on peut conclure qu’il est plus facile de lire un algorithme indenté que non indenté.
3.6 Structure d’un algorigramme
Un algorigramme est un graphique qui se lit de haut en bas et de gauche à droite.Il fait appel à des symbole normalisés.
Symbole : Désignation : Symbole : Désignation :
Début et Fin d’un algorigramme. Test.
Symbole général de traitement, instruction, opération.
Symbole utilisé lorsqu’il n’existe pas de symbole normalisé pour une tâche, une fonction.
Lire ou Écrire sur une entrée ou une sortie.
Sous programme.
Liaison entre les différents symboles d’un algorigramme.
Symbole de renvoi à une autre partie de l’algorigramme quand celui-ci est de taille importante.
Délai, attente Commentaire
Cours 7 : Développement d’un programme 2/2_V0 Page 6/11
3.7 Structures algorithmiques fondamentales
L’enchaînement ordonné d’actions et de décisions dans un algorithme peuvent être organiséessuivant trois familles de structures algorithmiques :
• structure linéaire ;• structure alternative ;• structure itérative (ou répétitive).
3.7.1 Structure linéaire
La structure linéaire se caractérise par une suite d’actions à exécuter successivement dans l’ordreénoncé.
Exemple : Algorithme : Algorigramme :
DébutInstruction 1Instruction 2…Instruction n
Fin
3.7.2 Structure alternative
La structure alternative n’offre que deux issues possibles à la poursuite de l’algorithme. Ces deuxissues s’excluent mutuellement.
Exemple : Algorithme : Algorigramme :
DébutSi condition vraie
FaireInstruction 1
SinonInstruction 2
Fin SiFin
Cours 7 : Développement d’un programme 2/2_V0 Page 7/11
3.7.3 Structure itérative
La structure itérative se caractérise par une répétition de l’exécution d’un traitement, d’une opération.
Il existe trois types de structures itératives pouvant être classées dans deux familles :• famille 1 : le nombre de répétitions n’est pas connu :
◦ structure Répéter _____ Jusqu’à _____ ;◦ structure Tant que _____ Faire _____ ;
• famille 2 : le nombre de répétitions est connu :◦ structure Pour _____ Faire.
3.7.3.1 Structure Répéter Jusqu’à
Dans cette structure le traitement est exécuté une première fois, puis sa répétition se poursuit jusqu’àce que la condition soit vérifiée.
Exemple : Algorithme : Algorigramme :
DébutRépéter
InstructionJusqu’à Condition vérifiée
Fin
3.7.3.2 Structure Tant que Faire
Dans cette structure on commence par tester la condition. Si elle est vérifiée, le traitement estexécuté.
Exemple : Algorithme : Algorigramme :
DébutTant que Condition vérifiée Faire
InstructionFin Tant que
Fin
Cours 7 : Développement d’un programme 2/2_V0 Page 8/11
3.7.3.3 Structure Pour Faire
Dans cette structure, la sortie de la boucle d’itération s’effectue lorsque le nombre souhaité estatteint.
Exemple : Algorithme : Algorigramme :
DébutPour i de Vinitiale à Vfinale par pas de (±)1 Faire
InstructionFin
4 Type de base
Lors de la rédaction d’un programme, il est important de connaître le « type » de la variable ou de laconstante. Cela permet de connaître les opérations que l’on va pouvoir réaliser avec ces variables etconstantes et d’anticiper les résultats. Il existe cinq types de bases :
• l’entier ;• le réel ;• le booléen ;• le caractère ;• la chaîne de caractères.
4.1 L’entier
Le type « entier » est un nombre qui n’a pas de décimale. Il peut être positif ou négatif.
Exemple : 100, 9, 1, 0, -2, -5, etc.
4.2 Le réel
Le type « réel » est un nombre qui peut être entier et qui peut avoir des décimales. Il peut être positifou négatif.
Exemple : 100, 9.75, 1, 0 -2.05, -3.14, -5, etc.
4.3 Le booléen
Le type « booléen » est une variable ne pouvant prendre que deux états : Vrai ou Faux.
Cours 7 : Développement d’un programme 2/2_V0 Page 9/11
4.4 Le caractère
Le type « caractère » est une variable à laquelle est affecté un unique caractère. Il peut être alpha-numérique, ce peut être un symbole de ponctuation, etc.
Exemple : a, Z, *, !, #, 4, etc.
4.5 La chaîne de caractères
Le type « chaîne de caractères » est une suite de symboles alpha-numériques, de ponctuations, etc.
Exemple : « Bonjour tout le monde », « 42*5=210 », « Stop ! », etc.
5 langage de programmation
L’étape qui suit la rédaction de l’algorithme ou de l’algorigramme est l’écriture du programme enutilisant un langage de programmation. Il en existe une multitude : Java, C, Python, PHP, Java Script, Arduino, etc.
6 Compilateur et interpréteur
Les langages de programmation peuvent être classés en deux catégories :• les langages compilés ;• les langages interprétés.
6.1 Langage compilé
Le langage de programmation est dit compilé lorsque le code source (programme informatique écritaprès l’algorithme) sera converti une seule fois par le compilateur (logiciel) afin d’obtenir le codemachine qui pourra être exécuté dans le processeur.
Exemple de langage compilé : C, C++, Arduino, Visual Basic.Net, Java, etc.
Cours 7 : Développement d’un programme 2/2_V0 Page 10/11
6.2 Langage interprété
Le langage de programmation est dit interprété lorsque le code source sera traduit au fur et à mesureen code machine par un interpréteur (logiciel) à chaque exécution du programme.
Exemple de langage interprété : Python, PHP, HTML et CSS, Java, etc.
6.2.1 Avantages inconvénients
Langagecompilé
Langageinterprété :
Rapidité d’exécution :
Rapidité de modification :
Interopérabilité :
Cours 7 : Développement d’un programme 2/2_V0 Page 11/11