CHAPITRE 6 NOTION DE PROGRAMME. 6.1 Résolution de problème et algorithme

Dimension: px
Commencer à balayer dès la page:

Download "CHAPITRE 6 NOTION DE PROGRAMME. 6.1 Résolution de problème et algorithme"

Transcription

1 CHAPITRE 6 NOTION DE PROGRAMME Comme nous l'avons vu dans les chapitres précédents, le rôle essentiel de l'ordinateur est de traiter l'information. Pour y parvenir, il faut se donner, dans un premier temps, une bonne représentation de celle-ci en mémoire et, dans un deuxième temps, une structuration convenable à des fins de manipulation. L'atteinte de ces deux objectifs conduit naturellement à la notion de programme, intimement liée au traitement automatique de l'information. Afin de mieux comprendre cette notion, nous allons étudier, dans ce chapitre, la résolution de problème et l'algorithme, le programme, les instructions et les opérateurs, les approches de programmation et, enfin, l'ingénierie des logiciels. 6.1 Résolution de problème et algorithme Résoudre un problème consiste à préciser une démarche systématique permettant, à partir d'un jeu de données disponibles, d'élaborer une réponse à la situation décrite par ce problème. Pour illustrer notre propos, considérons le problème de la détermination de la paye des employés d'une entreprise (situation décrite), qui correspond à la question suivante : Quel montant doit être versé directement à chaque employé, pour une période donnée de travail? La réponse à cette question (solution du problème) sera le résultat final de l'exécution d'une série d'étapes bien définies (démarche systématique), en considérant des données telles que le nombre d'heures de travail pour la période, le taux horaire, le taux d'imposition, entre autres. On appelle algorithme la démarche suivie pour résoudre un problème, qui consiste à obtenir un résultat certain en exécutant seulement les opérations indiquées dans la séquence d'énoncés définissant cette démarche. Nous pourrions être tentés de croire que, disposant d'un ordinateur d'une certaine puissance, nous serions capables de résoudre tous les problèmes : il n'en est rien. En effet, d'un point de vue informatique, il existe deux classes de problèmes : celle des «indécidables» et celle des «décidables». Un problème est dit indécidable lorsqu'il n'existe aucun algorithme pour le résoudre. Il s'ensuit que les seuls problèmes qu'on sait résoudre par ordinateur sont les décidables, c'est-à-dire ceux pour lesquels il existe au moins un algorithme permettant de les résoudre. Lorsqu'un problème est décidable, il est intéressant d'identifier et d'évaluer les ressources nécessaires à sa résolution. Dans un système informatique, le temps de calcul et l'espace de mémoire vive ou de masse sont considérés comme des ressources critiques dont il faut optimiser l'utilisation. Ceci nous amène à subdiviser la classe des problèmes décidables en problèmes faciles et problèmes difficiles, selon la quantité de ressources qu'ils requièrent pour leur résolution. La plupart des problèmes résolus par ordinateur sont décidables et faciles : leur algorithme de résolution fait appel à peu de ressources (temps de calcul et espace de mémoire) pour leur mise en œuvre. C'est le cas du problème de détermination de la paye des employés d'une entreprise, formulé précédemment. Cependant, on retrouve, de temps à autre, des problèmes décidables, mais difficiles; il importe de bien les identifier avant de choisir une stratégie de résolution.

2 CHAPITRE 6 : NOTION DE PROGRAMME Programme La notion de programme est bien plus vieille que l'informatique. En effet, on utilise depuis longtemps déjà dans bien des domaines, entre autres en recherche opérationnelle, les termes programmation linéaire et non linéaire pour désigner la technique à utiliser pour résoudre certaines classes de problèmes d'optimisation, ce qui est quelque peu différent de la notion de programme en informatique. Un programme d'ordinateur, ou tout simplement programme, est une séquence d'énoncés ou d'instructions conformes à un langage de programmation donné, dont l'exécution conduit à la solution d'un problème. Ainsi, lorsqu'on veut résoudre un problème, la première démarche consiste à s'assurer de la décidabilité de ce dernier. S'il s'agit d'un problème décidable, il importe alors de se poser la question : Est-il facile ou difficile? C'est seulement après avoir obtenu la réponse à cette question que l'on pourra entreprendre la conception d un algorithme de résolution, puis le programme d'ordinateur correspondant. Considérons le problème suivant qui consiste à lire un tableau contenant un nombre N de valeurs et à les afficher à l'écran. Ce problème est évidemment décidable. De plus, il est facile, puisque sa résolution requiert peu d'espace de mémoire et peu d'opérations de base (lecture et affichage). L algorithme de résolution peut se définir par les étapes suivantes : 1. Lire la première valeur du tableau 2. Afficher la valeur lue 3. Si «le tableau n'est pas vide» Alors «lire la valeur suivante et retourner à l'étape 2» 4. Sinon «Arrêt» Notons ici que l'instruction Arrêt est nécessaire pour indiquer à la machine quand s'arrêter. Pour mieux visualiser une démarche algorithmique, on utilise souvent un organigramme (ou ordinogramme), sorte de représentation graphique de cette démarche. Un organigramme est construit à partir d'un formalisme comprenant les six éléments suivants : lndicateur de début et de fin Boîte de traitement Boîte de décision Boîte de jonction Interaction entrée-sortie Appel de procédure

3 CHAPITRE 6 : NOTION DE PROGRAMME 3 Voici l ordinogramme du problème précédent : Début Lire 1 re valeur Imprimer la valeur lue Tableau vide? Oui Fin Non Lire la valeur suivante FIGURE 1 Ordinogramme du problème de lecture et d impression des éléments d un tableau. 6.3 Instructions et opérateurs Quel que soit le langage informatique utilisé, un programme d'ordinateur se compose d'instructions et d'opérateurs. Il existe trois types d'instructions : Les instructions inconditionnelles indiquant une ou plusieurs opérations à effectuer à une étape donnée de la recherche de solution (exemple : Lire la première valeur du tableau). Dans cette catégorie, on retrouve les instructions d'affectation qui, comme leur nom l'indique, permettent d'affecter une valeur à une adresse de mémoire. Les instructions conditionnelles ou logiques dont le format est le suivant : Si «cela se produit» alors «fait telle chose» Sinon «fait autre chose» On les appelle aussi des sélections. Il existe deux types de sélection : la sélection simple et la sélection multiple. Contrairement à la sélection simple qui met en cause au plus deux possibilités, la sélection multiple met en jeu plus de deux possibilités. En voici un exemple sous la forme d'algorithme ou pseudo-code : Si Total supérieur à 90 alors Note = A Sinon si total supérieur à 80 alors Note = B Sinon si total supérieur à 70 alors Note = C Sinon si total supérieur à 60 alors Note = D Sinon Note = E

4 CHAPITRE 6 : NOTION DE PROGRAMME 4 Dans ce pseudo-code, «Note» est une variable. Une variable est un élément déclaré dont la valeur peut changer au cours de l exécution d un programme contrairement à une constante qui ne change pas de valeur. «Note = A» est appelée expression. Voici le même exemple sous la forme d'un ordinogramme. Total > 90 non oui Note = A Total > 80 non oui Note = B Total > 70 non oui Note = C Total > 60 non Note = E oui Note = D FIGURE 2 Ordinogramme du problème de traitement des notes. Les instructions itératives ou boucles, dont l'un des formats est le suivant : Tant que «telle condition n'est pas réalisée» Exécuter «telle action ou suite d'actions» Ces dernières peuvent être considérées comme une catégorie particulière d'instructions conditionnelles. Étant donné que la machine n'est dotée d'aucune intelligence, quand on veut l'instruire de la démarche à suivre pour résoudre un problème, il faut se demander à quel niveau de détails on doit se limiter. Cela dépend des données d entrée dont on dispose et de l information qu on désire obtenir à la sortie (affichage d impression). Il existe deux types d'opérations de base : Les opérations arithmétiques élémentaires telles que l'addition, la soustraction, la multiplication et la division. Les opérations logiques qui permettent d'exécuter les instructions conditionnelles impliquant des opérateurs de comparaison et des connecteurs logiques. Toute opération logique donne lieu à un résultat binaire (vrai ou faux).

5 CHAPITRE 6 : NOTION DE PROGRAMME 5 Les opérateurs de comparaison sont : égal à (A = B) inférieur à (A < B) inférieur ou égal à (A < B) supérieur à (A > B) supérieur ou égal à (A > B) Comme nous l'avons vu précédemment, le concept de programme est intimement lié à la notion de résolution de problème. En effet, pour résoudre un problème donné au moyen de l ordinateur, il importe préalablement de spécifier et d'analyser ce problème. Dans ce contexte, la programmation apparaît comme une étape d'un processus plus complexe débouchant sur la solution d'un problème. 6.4 Spécifications d'un problème On désigne par spécifications d'un problème un ensemble de données et de contraintes dont il faut tenir compte pour atteindre un objectif : la solution d un problème. Par exemple, si on désire préparer la paye des employés d'une entreprise, les spécifications de ce problème seront : les données nécessaires à la réalisation de cette tâche, soit, pour chaque employé, son nom, le nombre d'heures de travail fourni, le taux horaire, le nombre de personnes à sa charge; les contraintes, qui peuvent porter sur la présentation des résultats ou sur la façon de traiter les heures supplémentaires; l'objectif, qui est de pouvoir fournir dans un certain format les relevés de paye pour l'entreprise. D'une manière générale, on peut distinguer deux types de problèmes : ceux qui sont bien formalisés et qui proviennent généralement du champ des sciences exactes et appliquées, comme la résolution d'une équation du second degré ou la multiplication de deux matrices; ceux qui sont moins formalisés et qui prennent leur origine dans la gestion des organisations. C'est en se basant sur une telle classification que l'on en est venu à diviser l'informatique en informatique scientifique et en informatique de gestion. La première aborde généralement des problèmes bien formalisés, pour lesquels une démarche de spécification n'est pas toujours importante. La deuxième, par contre, aborde essentiellement des problèmes de gestion, qui sont pour la plupart peu formalisés et qui nécessitent par conséquent un effort considérable de spécification. Dans la vie d'une organisation, il peut surgir des anomalies de fonctionnement qui conduisent à l'identification de problèmes. Il convient alors de définir celles-ci dans les moindres détails, de manière à bien spécifier le problème. Car, si on ne connaît pas la nature exacte d'un problème, il sera impossible de le résoudre convenablement.

6 CHAPITRE 6 : NOTION DE PROGRAMME Analyse d'un problème L'analyse est une étape importante dans le processus de résolution de problème. On distingue deux niveaux d'analyse : l'analyse fonctionnelle et l'analyse organique. L'analyse fonctionnelle consiste à décomposer un problème spécifié en différentes étapes qui conduisent à des résultats conformes à l'objectif fixé. Chaque étape peut constituer un module, d'où le concept de programmation modulaire. Comme son nom l'indique, l'analyse fonctionnelle est une démarche qui vise à déterminer l'enchaînement logique des modules dont l'exécution fournira la solution du problème. Elle répond à la question : Quoi faire pour résoudre le problème? L analyse organique consiste, de son coté, à organiser des données au moyen d algorithmes pour savoir comment réaliser telle tâche donnée. C est la décomposition d'un problème en ses différentes parties de manière à faciliter la réalisation d'un programme de traitement. La stratégie la plus répandue pour décomposer un problème demeure l'approche descendante. Elle consiste en la décomposition progressive du problème à traiter en sous-problèmes plus simples à résoudre. Ainsi, s'établit une hiérarchie entre les différents niveaux de sous-problèmes et le problème initial, d'où le concept de diagramme hiérarchique schématisant le processus de décomposition. 6.6 Module Selon le langage de programmation utilisé, un module peut prendre différents noms : sousprogramme, procédure ou sous-routine. Lorsque le programme fait appel à un module, il revient toujours à l instruction qui suit l appel, une fois le module exécuté. Pour programmer un ordinateur, il faut lui donner des ordres très précis afin que tout fonctionne bien. Nous parlons alors d algorithme qui est ni plus ni moins qu une série d étapes à dicter à l ordinateur, en utilisant pour ce faire un langage de programmation. Dans ce chapitre, nous utiliserons le langage C pour expliquer les différents processus de la programmation d un ordinateur. 6.7 Notion de hiérarchie Le diagramme hiérarchique, aussi appelé structurogramme, a pour but de définir les grandes étapes de l exécution d un programme. Avant même de commencer l élaboration d un diagramme hiérarchique (structurogramme), il est important de bien comprendre le problème à résoudre. Le but du structurogramme est de décomposer le problème en sous-parties et, par la suite, de placer ces sous-problèmes dans le diagramme hiérarchique, illustrant la façon dont le problème sera résolu en informatique. Le diagramme hiérarchique montre, de façon logique, les grandes étapes que le programme aura à franchir pour résoudre le problème. 6.8 Diagramme hiérarchique et algorithme Il y a une distinction à faire entre diagramme hiérarchique (structurogramme) et algorithme. Pour prendre un exemple simple, considérons l architecte qui dessine les plans d une maison; il existe un parallèle entre son travail et le diagramme hiérarchique. Le plan de l architecte décrit les

7 CHAPITRE 6 : NOTION DE PROGRAMME 7 grandes étapes de la construction, sans les détails. En effet, l architecte n indique pas dans son plan le nombre de matériaux à utiliser. Nous pouvons faire un lien entre algorithme et structurogramme en disant que chacune des grandes étapes indiquées dans le structurogramme aura son algorithme. En concevant un diagramme hiérarchique, il ne faut pas pousser trop loin la décomposition du problème. Le structurogramme doit présenter une vision globale du problème à résoudre et, de ce fait, il offre une possibilité intéressante pour des modifications futures. En effet, c est avec cet outil que l on peut identifier où une intervention nouvelle peut être insérée dans le programme, sans produire des effets non désirés. Le structurogramme est donc une vue d ensemble du problème avant de développer en détail chacune de ses composantes (algorithmes). Notons, et c est important, que la notion de hiérarchie doit être respectée dans la présentation du diagramme; le manque d espace sur une feuille ne doit pas être une excuse pour outrepasser cette règle. Souvent à cause de sa taille et du nombre élevé de modules qu il contient, il faut disposer le diagramme de façon transversale sur les feuilles, en mode «paysage» diraient certains. Précisons que le diagramme hiérarchique est un outil d analyse, tandis que l algorithme est un outil de programmation. Les étapes dans la construction d un programme sont donc : 1. la construction d un diagramme hiérarchique (analyse fonctionnelle); 2. l élaboration des algorithmes pour chacun des modules (analyse organique); 3. la programmation dans le langage désiré. Avant d aller plus loin, examinons la figure 3 pour nous familiariser avec certains concepts de base et le formalisme utilisé. DANS L'ANALYSE FONCTIONNELLE MODULE MODULE DÉJÀ...EXISTANT. DANS L'ANALYSE ORGANIQUE DÉBUT ET FIN CONDITION TRAITEMENT DE MODULE INTERACTION ENTRÉE-SORTIE APPEL DE PROCÉDURE FIGURE 3 Concepts de base utilisés dans la modélisation d'un problème.

8 CHAPITRE 6 : NOTION DE PROGRAMME 8 Le diagramme hiérarchique peut aussi être un outil intéressant dans le découpage du travail. Lors de la programmation, chaque équipe de travail se voit attribuer une ou plusieurs branches du structurogramme La construction d un diagramme hiérarchique (analyse fonctionnelle) Pour bien asseoir la notion d analyse fonctionnelle, utilisons un exemple. Supposons que l on veut concevoir un programme qui permettra d obtenir le montant à remettre à un client à partir du montant qu il verse pour payer un achat. Le programme doit d abord saisir le montant de l achat, puis le montant d argent reçu du client. Il est évident que le montant de l achat doit être égal ou inférieur au montant reçu du client. Le programme doit ensuite indiquer le nombre de pièces de monnaie à remettre au client. Par ailleurs, le programme doit pouvoir arrêter lorsque le commis (usager) entre le chiffre 0 comme montant des achats. Essayons d abord d identifier les grandes étapes du programme, sans nous préoccuper des cas d exception. 1. Saisir le montant des achats. 2. Saisir le montant reçu, versé par le client. 3. Calculer la remise, c'est-à-dire les pièces de monnaie à rendre. 4. Afficher les résultats à l écran. PROGRAMME PRINCIPAL A LIRE MONTANT DES ACHATS B LIRE MONTANT REÇU C CALCULER LES PIÈCES À DONNER D AFFICHER RÉSULTATS À L'ÉCRAN E FIGURE 4 Un exemple de diagramme hiérarchique à deux niveaux. Cette forme pourrait être correcte si nous ne voulions exécuter qu une seule fois le programme, mais tel n est pas le cas. Essayons maintenant d organiser les modules pour que l on puisse redemander le traitement, de façon à sortir du programme seulement si l usager entre «0» comme montant des achats.

9 CHAPITRE 6 : NOTION DE PROGRAMME 9 PROGRAMME PRINCIPAL A LIRE MONTANT DES ACHATS B TRAITER F LIRE MONTANT REÇU C CALCULER LES PIÈCES À DONNER D AFFICHER RÉSULTATS À L'ÉCRAN E LIRE MONTANT DES ACHATS B FIGURE 5 Représentation d'itérations dans un modèle hiérarchique. Dans le diagramme hiérarchique précédent, nous notons que le module B apparaît deux fois (niveaux 2 et 3). Toutefois, lors de la programmation, il ne sera développé qu une seule fois. La programmation structurée permet, en effet, la réutilisation de modules. Nous notons également l ajout d un module F, le module Traiter, qui fait appel aux modules C, D, E et B. Ce module sera appelé seulement si le montant des achats est différent de 0, mais ce n est pas à ce niveau que l on s occupe de cette situation. Il nous reste un autre problème à régler. L énoncé demande de faire une certaine validation des montants saisis par l usager et d émettre un message d erreur si le montant de l achat est supérieur au montant versé par le client. Voyons les modifications à apporter au diagramme. PROGRAMME PRINCIPAL A LIRE MONTANT DES ACHATS B TRAITER F LIRE MONTANT REÇU C VALIDER G LIRE MONTANT DES ACHATS B ERREUR CORRECT H I CALCULER LES PIÈCES À DONNER D AFFICHER RÉSULTATS À L'ÉCRAN E FIGURE 6 Diagramme hiérarchique du système de caisse après l ajout du module «Valider».

10 CHAPITRE 6 : NOTION DE PROGRAMME 10 Pour régler le problème, on ajoute un nouveau module G, le module Valider, qui fait appel soit au module H soit au module I, selon le résultat de la validation. Nous devons savoir qu une programmation modulaire n a pas comme but d être performante à l exécution, mais plutôt d être facilement modifiable, dans le futur, par l ajout de nouveaux modules. Il est certain que le problème à résoudre n'étant pas d une grande complexité, nous aurions pu l approcher sans modularité, soit avec un programme non modulaire. Toutefois, les modifications du programme par la suite seraient plus complexes à apporter. Par exemple, si on nous demande d ajouter les taxes sur le montant de l achat avant de faire le calcul de la remise, nous pouvons facilement apporter les modifications à notre programme pour tenir compte de cette nouvelle contrainte, comme le montre la figure 7 (ajout du module J). PROGRAMME PRINCIPAL A LIRE MONTANT DES ACHATS B TRAITER F LIRE MONTANT REÇU C VALIDER G LIRE MONTANT DES ACHATS B ERREUR CORRECT H I CALCULER LES TAXES J CALCULER LES PIÈCES À DONNER D AFFICHER RÉSULTATS À L'ÉCRAN E FIGURE 7 Diagramme du système de caisse modifié pour ajouter le traitement des taxes. Le diagramme hiérarchique offre une vision globale de notre programme. Il est intéressant de l utiliser pour identifier l endroit où il faut agir pour répondre à un nouveau problème, à une nouvelle contrainte. Mais quelles sont les étapes de développement d un diagramme hiérarchique? De façon générale, les étapes à suivre pour élaborer un diagramme hiérarchique sont les suivantes : 1. Identifier les étapes du problème, en laissant de côté les cas d exception (messages d erreur).

11 CHAPITRE 6 : NOTION DE PROGRAMME Faire boucler l application, s il y a lieu. Dans l exemple précédent, cela pourrait se traduire par l exécution du programme jusqu à ce que les résultats s affichent à l écran. 3. S occuper des exceptions ou erreurs possibles. Pour terminer, il faut identifier les modules en leur attribuant des numéros, tout en prenant soin de garder une certaine représentativité de ce que le module doit faire. Cette façon de procéder permet de se retrouver plus facilement à l intérieur du diagramme hiérarchique. La figure 8 illustre une façon de faire. PROGRAMM EPRINCIPA L A1000LIR_ACH B2000_TRAITER B2100LIR_REC B2200_VALIDER A1000LIR_ACH B2210_ERR 2220_OK B2221_CALC B2222_AFFRES FIGURE 8 Identification des modules par des numéros dans un diagramme hiérarchique L élaboration des algorithmes pour chacun des modules (analyse organique) Algorithme Pour chaque module identifié dans le diagramme hiérarchique, il faudra monter un algorithme détaillé, de façon à faire ressortir tous les éléments du travail à faire dans chacun. Dans les pages qui suivent, nous vous présentons le développement algorithmique de chacun des modules du diagramme hiérarchique. Le plan de notre programme étant produit, il nous reste

12 CHAPITRE 6 : NOTION DE PROGRAMME 12 maintenant à élaborer le détail de chacune des fonctionnalités identifiées dans le programme. Notez que chacune des boîtes du diagramme hiérarchique a son algorithme. De plus, de façon à bien montrer le lien étroit qu'il y a entre l algorithme et le programme, nous présentons du coté droit de chaque algorithme sa traduction en langage Pascal. Module principal Le premier module à développer est le module principal. On doit s'occuper d'appeler le module responsable de lire le montant des achats et d'appeler le module Traiter jusqu'à ce que le montant des achats soit égal à zéro. Voyons maintenant la traduction de ces étapes dans notre algorithme. DÉBUT /*Traduction de cet algorithme en C*/ /*Programme principal*/ main() A1000LIR_A { A1000LIR_ACH(); while (mntach!= 0) MNTAC H <> 0? NON FIN } B2000_TRAITER(); OUI /* Fin du programme principal*/ B2000_TRAI TER FIGURE 9 Algorithme du programme principal. Le module A1000LIR_ACH Le module A1000LIR_ACH sert à écrire une question demandant le montant des achats et, par la suite, la réponse à cette question. On est donc en présence d'interactions en entrées-sorties. Lorsque la réponse à la question a été saisie, le programme remonte dans le module principal pour vérifier si le montant des achats est égal à 0. Chaque fois qu'un module est terminé, le programme revient au module qui a fait l'appel.

13 CHAPITRE 6 : NOTION DE PROGRAMME 13 DÉBUT /*Module pour lire le montant des achats à l écran*/ void A1000LIR_ACH() ÉCRIRE QUESTION { printf( MONTANT D\ ACHAT: n ); LIRE MNTACH scanf( %f, mntach); } FIN FIGURE 10 Algorithme du module de lecture des achats. Le module B2000_TRAITER Ce module a comme seule fonctionnalité l'appel d'autres modules. Nous pouvons le représenter comme suit : DÉBUT /*Prototype qui permet de faire exécuter les modules du troisième niveau*/ B2100LIR_REC void B2000_TRAITER() { B2100LIR_REC(); B2200_VALIDER B2200_VALIDER(); A1000LIR_ACH(); A1000LIR_ACH } FIN FIGURE 11 Algorithme du module de traitement des données.

14 CHAPITRE 6 : NOTION DE PROGRAMME 14 Le module B2100LIR_REC Ce module a pour but de demander le montant reçu du client et de saisir ce montant à l'écran. On remarquera que ce module ressemble grandement au module A1000LIR_ACH. DÉBUT /*Prototype pour lire le montant reçu du client*/ void B2100LIR_REC() ÉCRIRE QUESTION { LIRE MNTREC printf( MONTANT REÇU:\n ) ; scanf( %f, mntrec) ; FIN } FIGURE 12 Algorithme du module d affichage du montant reçu. Le module B2200_VALIDER Ce module sert à vérifier (après avoir saisi le montant reçu du client), si la valeur du montant reçu est plus petite que le montant des achats. Selon la réponse, nous avons un branchement soit vers le module pour envoyer un message d'erreur, soit vers le module qui s occupera de faire le traitement demandé. DÉBUT /*Prototype qui permet de valider les valeurs saisies*/ void B2200_VALIDER() { NO MNTREC<MNTACH OU if (mntrec < mntach) { B2020_OK B2210_E RR B2210_ERR() ; } FIN else B2220_OK() ; } FIGURE 13 Algorithme du module de validation des montants saisis.

15 CHAPITRE 6 : NOTION DE PROGRAMME 15 Le module B2220_OK Ce module s'occupe d'appeler les modules de calcul et d affichage des résultats. DÉBUT /* Module qui fait appel aux modules de calcul et d affichage du résultat*/ B2221_CALC void B2220_OK() { B2222AFF_RES B2221_CALC(); B2222AFF_RES(); FIN } FIGURE 14 Algorithme du module de traitement des calculs et de l affichage. Le module B2210_ERR Ce module s'occupe simplement de l'affichage d'un message d'erreur. DÉBUT /*Procédure qui affiche un message d erreur si l information saisie n est pas logique*/ ÉCRIRE MESSAGE void B2210_ERR() { FIN printf( La valeur des achats doit être inférieure à celle du montant reçu \n ); } FIGURE 15 Algorithme du module d affichage du message d erreur. Le module B2221_CALC C'est ce module qui sert à effectuer le plus de traitements dans cette application. En effet, il a une fonction de traitement. On s'aperçoit, à la lecture de cet algorithme, que la programmation modulaire a un avantage majeur : celui d'isoler le traitement d'une application. S il y a une différence dans le calcul, le programmeur n'a pas à chercher ailleurs dans le programme, car il sait que c'est sûrement à cet endroit que se trouve le problème.

16 CHAPITRE 6 : NOTION DE PROGRAMME 16 Rappelons que C1D, C25, C10, C5 et C1 sont les variables qui accumulent le nombre de pièces pour chaque achat; ces variables sont initialisées à zéro au début du programme. Remarquez, en outre, que certains traitements de ce module effectueront des boucles tant et aussi longtemps que la variable differ sera strictement supérieure ou égale à.01. DEBUT C1D=0 C25=0 C10=0 C5=0 C1=0 DIFFER=MNTREC-MNTACH FIN NON DIFFER>.001 OUI OUI DIFFER>1 NON DIFFER=DIFFER- 1 C1D=C1D+1 OUI DIFFER>=.25 NON DIFFER=DIFFER-.25 OUI DIFFER>=.10 NON C25=C25+1 DIFFER=DIFFER-.10 C10=C10+1 DIFFER>=.05 DIFFER=DIFFER-.05 C5=C5+1 DIFFER=DIFFER-.01 C1=C1+1 FIGURE 16 Algorithme du module de contrôle de la monnaie à remettre.

17 CHAPITRE 6 : NOTION DE PROGRAMME 17 Le module B2222AFF_RES Le but de ce module est de permettre l'impression des toutes les variables calculées dans le programme. DÉBUT /* Procédure qui affiche le résultat des calculs à l écran*/ ÉCRIRE NOMBRE $ void B2222AFF_RES() { LIRE MNTREC printf( Nombre de pièces de 1 dollar :,C1D); printf ( Nombre de pièces de 25 cents :,C25); ÉCRIRE QUESTION printf ( Nombre de pièces de 10 cents :,C10); printf ( Nombre de pièces de 5 cents :,C5); LIRE MNTREC printf ( Nombre de pièces de 1 cent :,C1); } LIRE MNTREC FIN FIGURE 17 Algorithme de la procédure d affichage des valeurs calculées. 6.9 Ingénierie des logiciels La démarche précédente nous a permis de comprendre les mécanismes de développement d un programme modulaire. Un tel processus facilite le développement des programmes et permet surtout de maximiser la réutilisation des codes. Voyons maintenant ce qu est un logiciel et ses caractéristiques. On appelle ingénierie des logiciels ou plus communément génie logiciel un ensemble de techniques qui permettent de concevoir des programmes de qualité et de gérer efficacement tout le cycle de vie des logiciels. Ce dernier regroupe l'ensemble des activités liées à la spécification, la conception, l'implantation, la mise au point et la maintenance des programmes ou logiciels. Dans le cadre de vastes projets, comme la conception d'un compilateur, de telles techniques se révèlent d'une grande utilité Caractéristiques d'un bon logiciel De nos jours, les logiciels d'une certaine taille ne sont plus conçus par un seul individu, mais plutôt par une équipe composée de programmeurs, d'analystes, de gestionnaires et de

18 CHAPITRE 6 : NOTION DE PROGRAMME 18 chercheurs travaillant tous en interaction. Leur souci commun est de produire de bons logiciels, ce qui nous amène à énoncer les qualités d'un bon logiciel : Satisfaire à toutes les spécifications, en accomplissant toutes les tâches auxquelles il est destiné et en donnant des résultats exacts. Être fiable et robuste, c'est-à-dire exempt d'erreurs. Utiliser efficacement les ressources de l'ordinateur en réduisant au minimum l'espace de mémoire et le temps de calcul. Pouvoir être modifié facilement pour répondre aux nouveaux besoins des utilisateurs ou pour s'adapter à un nouvel environnement. Être facile à entretenir, ce qui exige une approche de conception à la fois structurée et modulaire. Être conforme à l'échéancier et au budget fixés pour son développement. Les règles de conception des logiciels varient en fonction des applications visées. Il reste néanmoins un certain nombre de principes de base qui peuvent aider les concepteurs à développer un produit de qualité Modèles de développement Un modèle de développement sert en général à déterminer l ordre des étapes dans un projet de développement d un logiciel. Il s agit de préciser la nature du livrable et ses rapports avec la prochaine étape. De nos jours, les plus connus sont le modèle en cascade, le prototypage, le modèle en spirale, l approche en V et le modèle du cycle de vie par objets. Le modèle en cascade On doit à Royce les fondements du modèle en cascade, mais il fut popularisé par Boehm. Il repose sur une approche séquentielle du développement. Il commence par la spécification des besoins, pour ensuite déboucher sur l analyse, se poursuit par la programmation et les tests et se termine par l implantation. Étude de faisabilité Analyse des besoins Conception préliminaire Conception détaillée Codage Intégration Implantation Maintenance FIGURE 18 Le modèle en cascade.

19 CHAPITRE 6 : NOTION DE PROGRAMME 19 Le prototypage Le prototypage a vu le jour au cours des années 80 et s imposait comme réponse aux problèmes des développeurs qui n arrivaient pas à se retrouver dans les spécifications qui n étaient pas toujours claires. L idée était alors de construire un prototype et de le raffiner de manière itérative. On utilise soit la stratégie construire-jeter, soit la stratégie construire-raffiner. Fin Début Prototype opérationnel Spécification Amélioration du prototype Conception rapide Évaluation du prototype Construction d un prototype FIGURE 19 Le modèle par prototype. Le modèle en spirale En combinant les caractéristiques du modèle en cascade et celles du modèle par prototype, Boehm introduit en 1988 le modèle en spirale. À chaque itération, une version du logiciel est réalisée; on procède ensuite à une analyse de risques qui est sanctionnée par un «Go» pour continuer ou un «No-Go» pour indiquer la nécessité d une révision jusqu à la fin du développement. FIGURE 20 Le modèle en spirale.

20 CHAPITRE 6 : NOTION DE PROGRAMME 20 L approche en V Le modèle du cycle de vie en V introduit par l Association française de normalisation (AFNOR) se fonde sur la complémentarité qui existe entre les étapes de production et de tests pour adapter l idée linéaire du modèle en cascade par une validation explicite de chaque produit. Analyse Tests d installation Architecture Tests d intégration Conception Tests unitaires Mise en production FIGURE 21 Le modèle en V. Le modèle du cycle de vie par objet Dans la perspective d une approche de développement orientée objet, J. M. Nerson (1992) propose d organiser les projets de développement selon un cycle de réutilisation. L idée est de constituer, au sein des entreprises, une bibliothèque de composants réutilisables dont on pourra se servir pour monter les projets futurs. Un tel processus facilitera le développement par la diminution des coûts et la réduction des erreurs puisque les composants sont déjà testés. Besoin des utilisateurs Modèle descriptif Réseau de classes Bibliothèque de composants FIGURE 22 Le modèle du cycle de vie par objets.

21 CHAPITRE 6 : NOTION DE PROGRAMME Cycle de vie des logiciels On vient de voir qu un logiciel dont le but est d'informatiser une tâche quelconque n'est pas une création spontanée : il se conçoit, se développe et se modifie. Pour illustrer la démarche, voyons un exemple. Supposons que Jacques, président directeur général d'une petite entreprise, désire informatiser sa section de comptabilité et désigne Pierre pour le faire. Pierre, le responsable du projet, et Jacques, le directeur de l'entreprise, voudraient définir ce projet d'informatisation de la section de comptabilité, en décrivant de façon plus précise les tâches qu'ils veulent informatiser. Pour ce faire, ils ont besoin du comptable en chef pour les aider à bien définir le projet. Spécification La définition d'un projet consiste à décrire globalement ce qu'on veut que l'ordinateur réalise. Elle ne requiert, en fait, aucune connaissance en informatique. Dans ce contexte, Jacques, Pierre et Luc, le comptable en chef, peuvent décider d'informatiser les comptes clients, les dépenses, les comptes à recevoir et les comptes à payer. Ils peuvent aussi désirer obtenir le bilan de l'entreprise pour l'année précédente, par exemple. Conception L étape de conception renvoie à l'analyse que nous avons définie antérieurement. Elle comprend une analyse fonctionnelle et une analyse organique. C'est à cette étape qu'on précise ce qu'on soumet à l'ordinateur comme information et ce que celui-ci doit transmettre comme résultat, ce qui amène souvent à : modifier ou limiter les tâches définies initialement; fixer un seuil d'erreur acceptable; déduire les contraintes et limites du projet; identifier les éléments dont on aurait besoin (type d'ordinateur utilisé, périphériques d'entrée-sortie nécessaires. Pour la toute petite entreprise de Jacques, un simple ordinateur muni d'un disque dur suffirait, avec comme entrée le clavier et comme sortie un écran et une imprimante. Comme limite du projet, Luc, le comptable en chef, peut accepter de ne pas demander à l'ordinateur le bilan de l'entreprise pour les dix dernières années, parce que conserver toutes les informations nécessaires prendrait trop de place sur le disque. C'est aussi pendant la période d'analyse que l'on évalue la portabilité du logiciel, c'est-à-dire la possibilité qu'il puisse être installé sur des systèmes informatiques différents, ainsi que le coût, la durée du projet et le personnel nécessaire. Le résultat à cette étape est un algorithme détaillé. L étape de conception d'un logiciel n'est jamais vraiment terminée. En effet, tout au long de son développement et pendant sa durée de vie, naissent de nouvelles contraintes ou de nouveaux besoins qui viennent modifier la structure des fonctions initialement décrites. Implantation Un ordinateur ne résout pas de problèmes, il exécute les opérations menant à la solution préalablement élaborée par une personne. Il revient donc à ceux qui sont en charge du projet de trouver la solution (algorithme) de chaque tâche que l'on veut informatiser et d'instruire la machine de la démarche à suivre : c'est ce qu'on appelle l implantation. Plus précisément, cette

22 CHAPITRE 6 : NOTION DE PROGRAMME 22 étape consiste à traduire dans un langage de programmation l'algorithme issu de l'analyse organique. L'implantation ne se résume pas à la seule opération de codification, souvent considérée comme fastidieuse par beaucoup de programmeurs. Il convient aussi d'ajouter aux lignes de code des commentaires appropriés et de faire des choix significatifs pour les noms des variables. C'est ce qu'on appelle la documentation d'un programme, laquelle accroît la lisibilité de ce dernier. Mise au point Une fois l'algorithme implanté, le produit devient un programme qui se doit d'être testé et validé. Le test consiste alors à s'assurer que le programme ne contient pas d'erreurs, tandis que la validation consiste à en vérifier le bon fonctionnement à partir des données soumises et des résultats obtenus. Ces deux opérations contribuent ensemble à la mise au point du logiciel. La mise au point est l étape la plus coûteuse et la plus fastidieuse du cycle de vie du logiciel. Sa réussite dépend à la fois de la qualité de l étape de conception et de l'habileté des programmeurs. De plus, elle détermine la qualité globale du logiciel, dans la mesure où elle sert à identifier et à corriger les erreurs que contient le programme en développement. Maintenance De nouvelles contraintes, des erreurs, de nouveaux besoins peuvent amener le programmeur ou quelqu'un d'autre le remplaçant dans le projet, à effectuer certains changements de la version actuelle du logiciel : c'est ce que l'on appelle la maintenance du logiciel. Pour que cette tâche soit faisable, le programme doit être lisible et compréhensible, donc bien documenté. Pour un programme bien documenté, découlant d'une approche de programmation modulaire, la maintenance est facile Les langages de programmation Pour qu un ordinateur puisse calculer ou exécuter des instructions, le système d exploitation le lui demande par un ensemble d instructions particulières dans un langage constitué de 0 et de 1; ce langage est appelé langage machine parce que c est le premier niveau de langage proche de la machine. Programmer en langage machine s est vite avéré être une tâche fastidieuse. On a donc vu naître successivement les langages assembleurs et, beaucoup plus tard, des langages dits de haut niveau. Pour pallier les difficultés de la programmation en langage machine, les informaticiens ont inventé une forme de langage dit symbolique qui se caractérise par l utilisation de mnémonique. Le langage correspondant est appelé langage assembleur; il représente malgré tout des difficultés quand il faut déceler les erreurs éventuelles qui s y glissent. Puis naquirent les langages de haut niveau. ces langages utilisent des mots en anglais et des opérations de base en mathématiques pour indiquer à l ordinateur quoi faire, comment et quand exécuter des tâches, ainsi que où chercher ou stocker les informations à traiter. Les langages de programmation de haut niveau sont soient interprétés ou compilés. Ils sont interprétés quand le langage traduit et exécute chaque instruction avant de passer à la suivante, ce qui permet de corriger des erreurs au fur et à mesure. Par contre, pour concevoir des programmes informatiques compilés, il faut d abord écrire le programme en utilisant un éditeur de texte. Ce dernier est appelé code source qui est traduit en langage machine par un programme appelé compilateur afin de produire un code objet. Pour produire un programme dit

23 CHAPITRE 6 : NOTION DE PROGRAMME 23 exécutable, le code objet est «relié» à la bibliothèque contenant, entre autres, les fonctions mathématiques ou aux fonctions du système d exploitation. Les langages de programmation de haut niveau interprétés ou compilés peuvent être soit procéduraux, déclaratifs ou orientés objets. Voyons maintenant certains langages de programmation de haut niveau. Le langage FORTRAN Le langage FORTRAN (FORmula TRANslator) a été introduit en Premier langage compilé de haut niveau, il a été spécialement conçu pour les applications scientifiques et d'ingénierie. FORTRAN répond bien aux exigences d'un langage évolué. En effet, il permet de coder de manière plus naturelle les opérations qui doivent être exécutées par l'ordinateur. Par exemple, l'addition de deux nombres peut être réalisée par l'instruction FORTRAN suivante : SOMME=X+Y Reçu avec méfiance par la communauté informatique, ce langage a rendu moins laborieuse la tâche de mise au point des programmes. Aussi, revient-il à FORTRAN le mérite d'avoir été le premier langage utilisé sur plusieurs ordinateurs de fabricants différents : c'est donc le premier langage indépendant de la machine. FORTRAN reste néanmoins un langage fort peu recommandé pour les ordinateurs personnels, car il est trop encombrant. Le langage COBOL COBOL (COmmon Business Oriented Language) est un langage structuré. Il est apparu en 1959, en réponse à des besoins de traitement de données commerciales : il est essentiellement un langage adapté aux applications de gestion. Par ailleurs, il a été conçu pour que son utilisation soit indépendante du type d'ordinateur. COBOL possède deux caractéristiques fondamentales : Il offre à ses utilisateurs la possibilité d'écrire des programmes en employant des expressions très proches des langages naturels; par exemple, l'addition de deux nombres en COBOL pourrait correspondre à l'instruction suivante : ADD X TO Y GIVING Z Il accorde à la description des données une place aussi grande que celle qui est réservée aux instructions exécutables du programme. Si le langage COBOL accuse un certain retard quant à sa concision, il se révèle par contre nettement intéressant pour ce qui est de la prise en compte des données. Cette attention portée aux données présageait déjà des préoccupations modernes : définir le mieux possible ce sur quoi va porter le traitement algorithmique. On trouve des versions de COBOL sur des ordinateurs personnels, mais on le trouve surtout de nos jours sur les minis et les gros ordinateurs. Le langage BASIC BASIC (Beginners All Purpose Symbolic Instruction Code) a été introduit en C'est un langage de haut niveau qui convient aussi bien aux applications de gestion qu'à celles d'ingénierie ou de type scientifique. Même si à l'origine il était conçu particulièrement pour les systèmes à temps partagé, il est devenu très populaire sur les ordinateurs personnels. Sur le plan syntaxique, il demeure assez proche du FORTRAN et procède du même souci de

24 CHAPITRE 6 : NOTION DE PROGRAMME 24 concision dans le codage des opérations. Par exemple, l'addition de deux nombres en BASIC donnerait lieu à l'instruction suivante : 250 Z = X + Y dans laquelle 250 n'est autre que le numéro de ligne où se trouve l'instruction. BASIC est un langage très populaire auprès des programmeurs débutants. Son utilisation s'est de beaucoup accrue avec l'avènement des ordinateurs personnels sur lesquels on prenait soin, dans les premiers temps, d'inclure une version. Une version, dérivée de ce langage, est grandement utilisée présentement dans le développement d'applications. On l'appelle Visual Basic, son nom étant tiré de son approche d'environnement visuel plutôt que terminal. Le langage PASCAL Le langage PASCAL, qui tient son nom de l'écrivain et philosophe français Blaise Pascal, a fait son apparition en C'est un langage évolué, conçu par N. Wirth, dont les domaines d'application sont la gestion, la science, l'ingénierie et l'éducation. Il s'est d'abord développé dans la communauté scientifique, particulièrement dans les universités. Il a été l'un des langages les plus utilisés en éducation, particulièrement sur les ordinateurs personnels. PASCAL est un langage structuré en blocs, relativement facile à apprendre et qui se prête bien à l'enseignement. Les déclarations sont faites d une manière séquentielle. Contrairement aux langages évolués des années 60, une instruction en PASCAL a un format très souple : il n'y a pas de zones prédéterminées ni de numéros de colonne pour la placer. Le langage C C est un langage de programmation déclaratif et procédural qui a fait son apparition en Ses concepteurs n'ont pas voulu, à proprement parler, en faire un langage de très haut niveau, encore moins un langage spécifique à un domaine d'application particulier. Toutefois, son absence de restrictions, alliée à sa généralité, lui donne toutes les propriétés d'un puissant langage de haut niveau. C'est donc un langage recommandé pour les applications scientifiques, d'ingénierie et de développement de logiciels. Aussi, est-il souvent utilisé pour la programmation de systèmes d'exploitation, de systèmes de base de données et de traitement de texte. Le langage C est un langage qui se prête à la programmation modulaire. C'est la raison pour laquelle les programmes écrits dans ce langage sont faciles à maintenir et transportables. Ainsi, deux programmes écrits en C, indépendamment des données soumises, fourniront des résultats identiques sur deux machines différentes. En outre, il existe des versions disponibles pour des ordinateurs de toute taille. Même si C est un langage évolué, certaines de ces instructions demeurent proches de la machine. Dans ce sens, il apparaît comme un compromis entre les langages d'assemblage et les langages de haut niveau La programmation orientée objet Dans cette section, nous abordons spécifiquement la programmation orientée objet parce que tous les nouveaux langages suivent cette tendance, incontournable de nos jours. La programmation structurée, très à la mode dans les années 80, a amélioré globalement la qualité des programmes, mais elle n a pas augmenté la réutilisation de ceux-ci. Depuis toujours, une part importante du coût de développement d un programme consiste à récrire des modules déjà

25 CHAPITRE 6 : NOTION DE PROGRAMME 25 pensés, mais non parfaitement adaptés à un problème semblable. Avec la programmation orientée objet, le développement de nouveaux programmes est maintenant axé principalement sur la réutilisation des modules déjà développés. Il est rare qu un programme n ait besoin que de données de types prédéfinis ou de structures de données homogènes de types prédéfinis. En pratique, pour mieux se coller à la réalité courante, les programmeurs ont plutôt tendance à regrouper les données au contenu d un sujet comme une personne, une facture, un rapport, etc. Pour définir des structures de données adaptées, il faut d abord définir de nouveaux types qu on appelle des types non scalaires. Mais, il ne faut pas perdre de vue que les entités effectivement traitées par un programme sont les données; les types non scalaires n existent que pour définir l organisation logique de ces données. En programmation structurée, il n y a pas de lien entre les données et les traitements. Chaque programme, tout comme chaque module d un programme, est de ce point de vue dépendant des données qu il traite. De ce fait, une même opération de tri ou de consultation dans des programmes qui ne travaillent pas sur le même type de données se fera différemment. Même si cela paraissait logique en programmation structurée, il en va tout autrement en programmation orientée objet. En pratique, la programmation orientée objet vise à rendre les deux entités, que sont les données et les modules de traitement, plus imbriquées les unes les autres, de façon à augmenter la réutilisation partielle ou globale des programmes. Alors qu en programmation structurée l objet est défini comme une donnée, en programmation orientée objet, la notion d objet est généralisée à l ensemble des données et des modules de traitement Concepts de base de la programmation orientée objet La classe À la base de la programmation orientée objet se trouve la notion de classe qui donne au programmeur la possibilité de définir de nouveaux types non scalaires à partir des types déjà définis; les membres d une classe n ont d existence que par un objet déclaré de cette classe. Une classe est une structure logique où sont définis et imbriqués des données et les modules de traitement qui les traitent, puisqu ils ne seraient d aucune utilité s ils étaient appliqués à d autres données. En programmation orientée objet, on ne met donc pas sur un même pied d égalité les modules d enchaînement des traitements et les modules de traitement des objets spécifiques. Une fonction membre d une classe s appelle une méthode. Elle connaît tous les membres donnés de cette classe. Cela diminue grandement l obligation de passer ces valeurs en paramètre. L encapsulation Le concept définissant la propriété de regrouper dans une même classe les données et les modules de traitement, qui leur sont associés, s appelle l encapsulation. Elle permet d interdire l accès extérieur direct aux données d un objet. En pratique, c est l objet lui-même qui est chargé de traiter ces données.

26 CHAPITRE 6 : NOTION DE PROGRAMME 26 L héritage Un autre concept de la programmation orientée objet est celui d héritage; il permet de réutiliser, lors de la définition d un objet, les propriétés d un objet déjà défini. On peut donc définir des classes dérivées à partir de classes existantes, même si certaines constituantes ne font plus notre affaire ou sont absentes. Le polymorphisme Le polymorphisme est un autre concept qui confère aux objets la propriété de pouvoir se modifier afin de s adapter à de nouveaux contextes. Avec l avènement de Windows, la communication avec le PC se fait par un «clic» de la souris. Un objet peut représenter tout ce qui est associé à un programme, autrement dit ce qui est visible et invisible et qui permet de faire exécuter des opérations par l ordinateur. Ce type de programmation consiste à définir des objets (boutons, icônes, fenêtres) et à leur attribuer des propriétés, des événements et des méthodes. Pour donner un exemple de programmation objet, considérons un bouton dans un environnement Windows, qui déclenche la lecture d un répertoire et l apparition de celui-ci à l écran. Il faudra d abord définir les propriétés du bouton (couleur, grosseur, positionnement à l écran); puis il faudra définir l événement qui déclenchera le travail à accomplir à la suite d un clic de la souris sur le bouton; enfin, on devra définir la méthode, c est-à-dire le travail que l ordinateur aura à accomplir pour répondre à cette action Les langages orientés objets Dans cette section, voyons les langages orientés objets Smalltalk, C++ Java et C#. Smalltalk Smalltalk ne ressemble guère aux langages de programmation conventionnels. Il permet de découper les problèmes en sous-problèmes plus facilement accessibles. Il peut être considéré comme l ancêtre des langages orientés objets. Son environnement est complet et fournit, aux programmeurs, des fenêtres, des éditeurs et des facilités de mise au point. C++ Le langage C++ a été développé dans les laboratoires de Bell AT&T à partir du langage de programmation C auquel on a ajouté des caractéristiques orientées objets. La sémantique et la syntaxe de base sont les mêmes pour les deux langages. Le C++ supporte les concepts de classe, d héritage, d encapsulation et de surcharge d opérateurs que nous avons vus précédemment. Voici une implémentation d une classe Temps. class Temps { public: Temps(); void AjusteTemps(int, int, int); void AfficheMil(); void AfficheStandard(); // Constructeur // Fixer heure, minute et seconde // Afficher l heure en format militaire // Afficher l heure en format standard

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5

1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5 1. Introduction... 2 2. Création d'une macro autonome... 2 3. Exécuter la macro pas à pas... 5 4. Modifier une macro... 5 5. Création d'une macro associée à un formulaire... 6 6. Exécuter des actions en

Plus en détail

Chapitre 1 : Introduction aux bases de données

Chapitre 1 : Introduction aux bases de données Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données

Plus en détail

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

COURS WINDEV NUMERO 3

COURS WINDEV NUMERO 3 COURS WINDEV NUMERO 3 01/02/2015 Travailler avec un fichier de données Etude du gestionnaire d analyse, Manipulation des tables mémoires, Manipulation de données, Création d états, Pré requis : Cours WinDev

Plus en détail

Chapitre 2. Classes et objets

Chapitre 2. Classes et objets Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons

Plus en détail

Annexe : La Programmation Informatique

Annexe : La Programmation Informatique GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de

Plus en détail

Le génie logiciel. maintenance de logiciels.

Le génie logiciel. maintenance de logiciels. Le génie logiciel Définition de l IEEE (IEEE 1990): L application d une approche systématique, disciplinée et quantifiable pour le développement, l opération et la maintenance de logiciels. Introduction

Plus en détail

Programmation Objet - Cours II

Programmation Objet - Cours II Programmation Objet - Cours II - Exercices - Page 1 Programmation Objet - Cours II Exercices Auteur : E.Thirion - Dernière mise à jour : 05/07/2015 Les exercices suivants sont en majorité des projets à

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

MEGA ITSM Accelerator. Guide de Démarrage

MEGA ITSM Accelerator. Guide de Démarrage MEGA ITSM Accelerator Guide de Démarrage MEGA 2009 SP4 1ère édition (juin 2010) Les informations contenues dans ce document pourront faire l objet de modifications sans préavis et ne sauraient en aucune

Plus en détail

I. Introduction aux fonctions : les fonctions standards

I. Introduction aux fonctions : les fonctions standards Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons

Plus en détail

MS PROJECT 2000. Prise en main. Date: Mars 2003. Anère MSI. 12, rue Chabanais 75 002 PARIS E mail : jcrussier@anere.com Site : www.anere.

MS PROJECT 2000. Prise en main. Date: Mars 2003. Anère MSI. 12, rue Chabanais 75 002 PARIS E mail : jcrussier@anere.com Site : www.anere. DOCUMENTATION MS PROJECT 2000 Prise en main Date: Mars 2003 Anère MSI 12, rue Chabanais 75 002 PARIS E mail : jcrussier@anere.com Site : www.anere.com Le présent document est la propriété exclusive d'anère

Plus en détail

2. Activités et Modèles de développement en Génie Logiciel

2. Activités et Modèles de développement en Génie Logiciel 2. Activités et Modèles de développement en Génie Logiciel Bernard ESPINASSE Professeur à l'université d'aix-marseille Plan Les Activités du GL Analyse des besoins Spécification globale Conceptions architecturale

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

1 Gestionnaire de Données WORD A4 F - USB / 2014-04-05 / 6020 Alco-Connect

1 Gestionnaire de Données WORD A4 F - USB / 2014-04-05 / 6020 Alco-Connect 1 Gestionnaire de Données WORD A4 F - USB / 2014-04-05 / 6020 Alco-Connect Introduction... 4 Comment décrire le logiciel Cosmos?... 4 Quelles sont les fonctions de ce logiciel PC?... 4 Est-il possible

Plus en détail

Présentation du PL/SQL

Présentation du PL/SQL I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Méthodes de développement. Analyse des exigences (spécification)

Méthodes de développement. Analyse des exigences (spécification) 1 / 16 Méthodes de développement Analyse des exigences (spécification) 1 -Objectifs de l'analyse des exigences... 2 2 - Approfondissement et formalisation du besoin... 2 2.1 Séparation des besoins, contraintes

Plus en détail

Processus d Informatisation

Processus d Informatisation Processus d Informatisation Cheminement de la naissance d un projet jusqu à son terme, deux grandes étapes : Recherche ou étude de faisabilité (en amont) L utilisateur a une idée (plus ou moins) floue

Plus en détail

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

modélisation solide et dessin technique

modélisation solide et dessin technique CHAPITRE 1 modélisation solide et dessin technique Les sciences graphiques regroupent un ensemble de techniques graphiques utilisées quotidiennement par les ingénieurs pour exprimer des idées, concevoir

Plus en détail

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

Plus en détail

1. Création d'un état... 2. 2. Création d'un état Instantané Colonnes... 3. 3. Création d'un état Instantané Tableau... 4

1. Création d'un état... 2. 2. Création d'un état Instantané Colonnes... 3. 3. Création d'un état Instantané Tableau... 4 1. Création d'un état... 2 2. Création d'un état Instantané Colonnes... 3 3. Création d'un état Instantané Tableau... 4 4. Création d'un état avec plusieurs tables... 9 5. Modifier la structure d'un état...11

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Un ordinateur, c est quoi?

Un ordinateur, c est quoi? B-A.BA Un ordinateur, c est quoi? Un ordinateur, c est quoi? Un ordinateur est une machine dotée d'une unité de traitement lui permettant d'exécuter des programmes enregistrés. C'est un ensemble de circuits

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

Cours 1 : Qu est-ce que la programmation?

Cours 1 : Qu est-ce que la programmation? 1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre

Plus en détail

Algorithmique avec Algobox

Algorithmique avec Algobox Algorithmique avec Algobox 1. Algorithme: Un algorithme est une suite d instructions qui, une fois exécutée correctement, conduit à un résultat donné Un algorithme doit contenir uniquement des instructions

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

Chapitre 4 Pierre, papier, ciseaux

Chapitre 4 Pierre, papier, ciseaux Python 3 : objectif jeux Chapitre 4 Chapitre 4 Pierre, papier, ciseaux (version graphique) 4.1. Thèmes abordés dans ce chapitre Le module tkinter : Label, Button Fenêtre Événements Réceptionnaire d'événements

Plus en détail

Chapitre I Notions de base et outils de travail

Chapitre I Notions de base et outils de travail Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement

Plus en détail

Introduction au langage C

Introduction au langage C Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les

Plus en détail

1. Introduction...2. 2. Création d'une requête...2

1. Introduction...2. 2. Création d'une requête...2 1. Introduction...2 2. Création d'une requête...2 3. Définition des critères de sélection...5 3.1 Opérateurs...5 3.2 Les Fonctions...6 3.3 Plusieurs critères portant sur des champs différents...7 3.4 Requête

Plus en détail

Le disque dur. Le disque dur est l'organe servant à conserver les données sous forme de dossiers de manière permanente.

Le disque dur. Le disque dur est l'organe servant à conserver les données sous forme de dossiers de manière permanente. Le disque dur Le disque dur est l'organe servant à conserver les données sous forme de dossiers de manière permanente. Le disque dur Le partitionnement d'un disque dur. Il consiste à créer des zones sur

Plus en détail

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30 Examen intra 20 février 2014 17:30 à 20:30 Nom, prénom : Code permanent : Répondez directement sur le questionnaire. Question #1 5% Quelle influence peut avoir le typage dynamique sur la maintenabilité

Plus en détail

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE» MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE» Du cours Modélisation Semi -Formelle de Système d Information Du Professeur Jean-Pierre GIRAUDIN Décembre. 2002 1 Table de matière Partie 1...2 1.1

Plus en détail

MEGA ITSM Accelerator. Guide de démarrage

MEGA ITSM Accelerator. Guide de démarrage MEGA ITSM Accelerator Guide de démarrage MEGA 2013 1ère édition (janvier 2013) Les informations contenues dans ce document pourront faire l objet de modifications sans préavis et ne sauraient en aucune

Plus en détail

Dossier projet isn 2015 par Victor Gregoire

Dossier projet isn 2015 par Victor Gregoire Dossier projet isn 2015 par Victor Gregoire Plan: I) But du projet: créer un jeu de blackjack fonctionnel et le poster sur une page web mise en ligne. Le jeu sera developpé en C++ a l'aide de code blocks.

Plus en détail

Cours Langage C/C++ Programmation modulaire

Cours Langage C/C++ Programmation modulaire Cours Langage C/C++ Programmation modulaire Thierry Vaira BTS IRIS Avignon tvaira@free.fr «v0.1 Rappel Programmation modulaire (1/2) Le découpage d'un programme en sous-programmes est appelée programmation

Plus en détail

CHAPITRE VIII : Les circuits avec résistances ohmiques

CHAPITRE VIII : Les circuits avec résistances ohmiques CHAPITRE VIII : Les circuits avec résistances ohmiques VIII. 1 Ce chapitre porte sur les courants et les différences de potentiel dans les circuits. VIII.1 : Les résistances en série et en parallèle On

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Logiciel Libre Cours 3 Fondements: Génie Logiciel Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/

Plus en détail

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée

Plus en détail

Cours Informatique Master STEP

Cours Informatique Master STEP Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions

Plus en détail

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Leçon 11 PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Dans cette leçon, nous retrouvons le problème d ordonnancement déjà vu mais en ajoutant la prise en compte de contraintes portant sur les ressources.

Plus en détail

La mémoire. Un ordinateur. L'octet. Le bit

La mémoire. Un ordinateur. L'octet. Le bit Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve

Plus en détail

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis

Plus en détail

Programmes des classes préparatoires aux Grandes Ecoles

Programmes des classes préparatoires aux Grandes Ecoles Programmes des classes préparatoires aux Grandes Ecoles Filière : scientifique Voies : Mathématiques, physique et sciences de l'ingénieur (MPSI) Physique, chimie et sciences de l ingénieur (PCSI) Physique,

Plus en détail

Le modèle de données

Le modèle de données Le modèle de données Introduction : Une fois que l étude des besoins est complétée, deux points importants sont à retenir : Les données du système étudié Les traitements effectués par le système documentaire.

Plus en détail

O b s e r v a t o i r e E V A P M. Taxonomie R. Gras - développée

O b s e r v a t o i r e E V A P M. Taxonomie R. Gras - développée O b s e r v a t o i r e E V A P M É q u i p e d e R e c h e r c h e a s s o c i é e à l ' I N R P Taxonomie R. Gras - développée Grille d'analyse des objectifs du domaine mathématique et de leurs relations

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

Classer et partager ses photographies numériques

Classer et partager ses photographies numériques Classer et partager ses photographies numériques Ce tutoriel a pour objectif de vous donner les bases nécessaires au classement de vos photographies numériques, et de vous donner des moyens simples de

Plus en détail

Cours Informatique 1. Monsieur SADOUNI Salheddine

Cours Informatique 1. Monsieur SADOUNI Salheddine Cours Informatique 1 Chapitre 2 les Systèmes Informatique Monsieur SADOUNI Salheddine Un Système Informatique lesystème Informatique est composé de deux parties : -le Matériel : constitué de l unité centrale

Plus en détail

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece

Plus en détail

Démontage d'un ordinateur

Démontage d'un ordinateur Espaces multimédias Communauté de Communes Moyenne Vilaine et Semnon : Démontage d'un ordinateur 1- A quoi sert-il de démonter son ordinateur? A) Par simple curiosité B) Pour nettoyer C) Pour remplacer

Plus en détail

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

GUIDE Excel (version débutante) Version 2013

GUIDE Excel (version débutante) Version 2013 Table des matières GUIDE Excel (version débutante) Version 2013 1. Créer un nouveau document Excel... 3 2. Modifier un document Excel... 3 3. La fenêtre Excel... 4 4. Les rubans... 4 5. Saisir du texte

Plus en détail

Java 7 Les fondamentaux du langage Java

Java 7 Les fondamentaux du langage Java 184 Java 7 Les fondamentaux du langage Java 1.1 Les bibliothèques graphiques Le langage Java propose deux bibliothèques dédiées à la conception d'interfaces graphiques. La bibliothèque AWT et la bibliothèque

Plus en détail

Gérer ses fichiers et ses dossiers avec l'explorateur Windows. Février 2013

Gérer ses fichiers et ses dossiers avec l'explorateur Windows. Février 2013 Gérer ses fichiers et ses dossiers avec l'explorateur Windows Février 2013 SOMMAIRE 1. Premiers repères : l'explorateur Windows (Vista et Windows 7) 2. Les dossiers : création, déplacement, suppression

Plus en détail

IV- Comment fonctionne un ordinateur?

IV- Comment fonctionne un ordinateur? 1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions

Plus en détail

1 TD 2 : Construction d'une chier Acrobat et envoi par email

1 TD 2 : Construction d'une chier Acrobat et envoi par email 1 TD 2 : Construction d'une chier Acrobat et envoi par email (correction page??) Un professeur de maths a instauré une coutume lors de la dernière séance de la semaine. Le vendredi est consacré à la correction

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation Complexité Objectifs des calculs de complexité : - pouvoir prévoir le temps d'exécution d'un algorithme - pouvoir comparer deux algorithmes réalisant le même traitement Exemples : - si on lance le calcul

Plus en détail

programmation S initier à la la Avec des exemples en C, C++, C#, Java et PHP Avec des exemples en C, C++, C#, Java et PHP Claude Delannoy

programmation S initier à la la Avec des exemples en C, C++, C#, Java et PHP Avec des exemples en C, C++, C#, Java et PHP Claude Delannoy Claude Delannoy S initier à la la programmation Avec des exemples en Avec des exemples en C, C++, C#, Java et PHP C, C++, C#, Java et PHP S initier à la programmation Avec des exemples en C, C++, C#, Java

Plus en détail

Qu'est-ce que le BPM?

Qu'est-ce que le BPM? Qu'est-ce que le BPM? Le BPM (Business Process Management) n'est pas seulement une technologie mais, dans les grandes lignes, une discipline de gestion d'entreprise qui s'occupe des procédures contribuant

Plus en détail

Programmation C++ (débutant)/instructions for, while et do...while

Programmation C++ (débutant)/instructions for, while et do...while Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

2 Grad Info Soir Langage C++ Juin 2007. Projet BANQUE

2 Grad Info Soir Langage C++ Juin 2007. Projet BANQUE 2 Grad Info Soir Langage C++ Juin 2007 Projet BANQUE 1. Explications L'examen comprend un projet à réaliser à domicile et à documenter : - structure des données, - objets utilisés, - relations de dépendance

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

Plus en détail

HelpAndManual_unregistered_evaluation_copy GESTIONNAIRE D'ALARMES CENTRALISE OPTIM'ALARM. Manuel d'utilisation

HelpAndManual_unregistered_evaluation_copy GESTIONNAIRE D'ALARMES CENTRALISE OPTIM'ALARM. Manuel d'utilisation HelpAndManual_unregistered_evaluation_copy GESTIONNAIRE D'ALARMES CENTRALISE OPTIM'ALARM Manuel d'utilisation OPTIMALOG 2008 Table des matières I Table des matières Part I Gestionnaire d'alarmes Optim'Alarm

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Séquence de découverte de SparkAngels Logiciel d entraide numérique

Séquence de découverte de SparkAngels Logiciel d entraide numérique Contributeurs : GUILLEZ Frédéric BANDINI Gérard DENIGOT Michaël FOLCH Janine PERILLAUD Stéphanie PLATEL Carl REANT Franck I. Matériel et préparation Pré requis matériel et logiciel : Ordinateur avec connexion

Plus en détail

Interface PC Vivago Ultra. Pro. Guide d'utilisation

Interface PC Vivago Ultra. Pro. Guide d'utilisation Interface PC Vivago Ultra Pro Guide d'utilisation Version 1.03 Configuration de l'interface PC Vivago Ultra Configuration requise Avant d'installer Vivago Ultra sur votre ordinateur assurez-vous que celui-ci

Plus en détail

Rapidolect Les Productions de la Columelle (1998-2006) Page 1

Rapidolect Les Productions de la Columelle (1998-2006) Page 1 Page 1 Page 2 Logiciel Rapidolect RATIONNEL DU JEU Un bon lecteur possède dans sa tête des images précises des mots écrits qu'il connaît. Lorsqu'il parcourt un texte, ses yeux se déplacent par saccades

Plus en détail

Projet : PcAnywhere et Le contrôle à distance.

Projet : PcAnywhere et Le contrôle à distance. Projet : PcAnywhere et Le contrôle à distance. PAGE : 1 SOMMAIRE I)Introduction 3 II) Qu'est ce que le contrôle distant? 4 A.Définition... 4 B. Caractéristiques.4 III) A quoi sert le contrôle distant?.5

Plus en détail

Gestion de projet. GanttProject Didacticiel V1.0. 23 novembre 2013. Gérard Gervois Frédéric Giamarchi

Gestion de projet. GanttProject Didacticiel V1.0. 23 novembre 2013. Gérard Gervois Frédéric Giamarchi Gestion de projet GanttProject Didacticiel V1.0 23 novembre 2013 Gérard Gervois Frédéric Giamarchi Département G.E.I.I. I.U.T. de Nîmes Université Montpellier II Présentation GanttProject est un logiciel

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

Introduction : Cadkey

Introduction : Cadkey Introduction Cadkey Cadkey est un logiciel de dessin assisté par ordinateur. La fenêtre du logiciel devrait ressembler à quelque chose comme suit: Le menu supérieur: Redraw Autoscale Efface Modifier les

Plus en détail

Cours 3 : L'ordinateur

Cours 3 : L'ordinateur Cours 3 : L'ordinateur Abdelkrim Zehioua 2éme année Licence Gestion Faculté des sciences Économiques et sciences de Gestion Université A, Mehri - Constantine 2 Plan du cours 1.Définitions de l'ordinateur

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude INF 1250 INTRODUCTION AUX BASES DE DONNÉES Guide d étude Sous la direction de Olga Mariño Télé-université Montréal (Québec) 2011 INF 1250 Introduction aux bases de données 2 INTRODUCTION Le Guide d étude

Plus en détail

Chapitre I : le langage UML et le processus unifié

Chapitre I : le langage UML et le processus unifié I. Introduction Les méthodes d analyse orientées objet sont initialement issues des milieux industriels. La préoccupation dominante de leurs auteurs est le génie logiciel, c est-àdire les principes et

Plus en détail

Chapitre 10. Architectures des systèmes de gestion de bases de données

Chapitre 10. Architectures des systèmes de gestion de bases de données Chapitre 10 Architectures des systèmes de gestion de bases de données Introduction Les technologies des dernières années ont amené la notion d environnement distribué (dispersions des données). Pour reliér

Plus en détail

Leica Application Suite

Leica Application Suite Leica Application Suite Macro Editor et Macro Runner (Éditeur de macros et Exécuteur de macros) Personnalisées et automatisées 2 Les instructions peuvent être momentanément suspendues» de manière optionnelle

Plus en détail

Installation et Réinstallation de Windows XP

Installation et Réinstallation de Windows XP Installation et Réinstallation de Windows XP Vous trouvez que votre PC n'est plus très stable ou n'est plus aussi rapide qu'avant? Un virus a tellement mis la pagaille dans votre système d'exploitation

Plus en détail

L informatique en BCPST

L informatique en BCPST L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité

Plus en détail

SOUTIEN INFORMATIQUE DEP 5229

SOUTIEN INFORMATIQUE DEP 5229 SOUTIEN INFORMATIQUE DEP 5229 Le Diplôme d études professionnelles D.E.P. en soutien informatique a une durée totale de 1800 heures à temps plein. Le programme permet de développer les compétences nécessaires

Plus en détail

REALISATION d'un. ORDONNANCEUR à ECHEANCES

REALISATION d'un. ORDONNANCEUR à ECHEANCES REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6

Plus en détail

LOGICIEL ALARM MONITORING

LOGICIEL ALARM MONITORING LOGICIEL ALARM MONITORING Superviseur des centrales Galaxy - 1 - APPLICATIONS 4 Application locale sur le site 4 Application à distance 4 RACCORDEMENTS 4 CARACTERISTIQUES MATERIELLES 5 Centrale Galaxy

Plus en détail

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

Université de Bangui. Modélisons en UML

Université de Bangui. Modélisons en UML Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et

Plus en détail

CPLN 20/08/2009 MBO Service ICT et Pédagogie

CPLN 20/08/2009 MBO Service ICT et Pédagogie La clé USB Présentation De première vue, une clé USB est un simple "morceau de plastique". Hors, elle est très utile et de plus en plus utilisée. Elle permet de stocker des fichiers (et dossiers) tout

Plus en détail