GEF 243B Programmation informatique appliquée Organigrammes §Apx C
Revue Quelles sont les trois façons d’utiliser le nom d’une fonction dans un programme? Est-ce que les identificateurs sont requis pour les paramètres dans un prototype de fonction? Peut-on utiliser une fonction void dans une expression d’assignation? Pourquoi/Pourquoi pas Quelle information est-ce que le type d’une variable nous donne? Declaration (prototype), definition (implementation), and call No but it is a good practice in order to further document the intent of a parameter and the function itself; self-documentation No because a void function returns nothing and nothing cannot be an operand. The type of a variable indicates a range of values and the operations that are defined on a type. It provides an intent of use. JGA Beaulieu
Synopsis Représentation du comportement d’un programme Évolution et motivation de l’utilisation des organigrammes (flowcharts) Symboles des organigrammes Auxiliaires Primaires Organigrammes de contrôle de flots if-else switch for while Do-while Organigrammes et GEF243 JGA Beaulieu
Organigrammes (flowcharts) Dans deux cours précédents nous avons vue les structures de contrôle: fonctions, if-else, else-if, switch, while, for et do-while Il y a plusieurs méthodes pour représenter ces structures durant le design Pseudo code – énoncés dans la langue française ou anglaise Organigrammes – Graphique Diagrammes de Chapin– Graphique Tell them that the functions have their own graphical method: The structure chart. Flowcharts, Chapin and pseudo code aim at the lower level design We will not cover Chapin diagrams or pseudo code in this course. JGA Beaulieu
Organigrammes vs Diagrammes de structure Les diagrammes de structure que nous avons discuté avec les fonctions sont aussi une méthode graphique, mais ils sont différents: Les diagrammes de structures représentent l’organisation hiérarchique Les organigrammes décrivent le comportement Dans les organigrammes, chaque structure de contrôle peut être représentée graphiquement Peut importe si vous utilisez les concepts Orienté Objets ou la programmation structurée, les organigrammes peuvent vous aider à visualiser le flot logique de votre programme OOAD at some point must have methods, these methods are structured code and can be represented with flowcharts JGA Beaulieu
Organigrammes Les organigrammes furent l’outil principal pour représenter le flot logique des programmes écrits en langages symboliques Les organigrammes sont tombés de la faveur populaire quand les nouvelles techniques d’analyse et de design ont faits surface Les organigrammes ont été qualifiés comme étant non extensibles pour les projets à grande envergure Avant les outils logiciels pour produire les diagrammes sur ordinateurs, les organigrammes étaient produits en utilisant un crayon et des stencils Design techniques such as data flow diagrams, entity relationship diagrams, control flow diagrams, state machines, OOAD methods and the like were seen as superior to flowcharts because they represent a higher level of abstraction JGA Beaulieu
Organigrammes Ces diagrammes étaient difficiles à produire et gérer pour les gros projets Pour les gros programmes monolithiques, il était commun de voir des ‘murs d’organigrammes’ Donc pourquoi les utilises-t-on encore? Nos programmes ne sont désormais plus d’énormes fichiers monolithiques en assembleur Nous décomposons nos problèmes en morceaux gérables (fonctions) Functions are small and require fewer blocks in each flowchart JGA Beaulieu
Organigrammes - motivation Les organigrammes sont maintenant utilisés pour décrire l’intérieurs des fonctions; pas des programmes entiers Un organigramme décrit un algorithme – une façon de résoudre un problème L’organigramme libère le programmeur de la syntaxe et des détails du langage de programmation et lui permet de se concentrer sur le problème à résoudre Une vue graphique de nos programmes nous permet de penser plus clairement Il y a plusieurs outils logiciels qui peuvent être utilisés pour dessiner des organigrammes PowerPoint a été utilisé pour tous les diapos Visio a aussi un gabarit de symboles Forouzan 13, 787 JGA Beaulieu
Organigrammes – Symboles auxiliaires Symbole Terminal– montre le début et la fin de l’algorithme Lignes de flot – Montre l’ordre des actions Connecteur – Montre la continuité à une autre page si nécessaire Quand on atteint la fin d’une page ou colonne Quand on veut montrer qqc qui ne fait pas dans le flot Début n Tell them that we have already seen some of the symbols for flowcharts. Note that there are some variations in the way some of the shapes are drawn. Here we will use the most common of the symbols. Use stop to replace start at the end of a program The n is a number label that is unique for the current algorithm (between one start and one end) JGA Beaulieu
Organigrammes – Symboles primaires Énoncés E/S Appel à une autre fonction dans un autre module Énoncés composés sum = a + b mult = a * b READ (a) x abs() de math.h Compound statement symbols are dashed in Forouzan, we do not care as long as the label on the symbol indicates what is to happen Note that a statement can be a function call In some flowcharting the arrow can be used for assignments i.e. ( variable <- expression) or you can use an = sign whatever is simpler JGA Beaulieu
Organigrammes – if-else V Quelque chose d’autre Quelque chose JGA Beaulieu
Organigrammes - switch qqc pour o qqc pour m qqc pour n Add as many boxes as required JGA Beaulieu
Organigrammes - for Conditions initiales F Test limite incrémentation V Stuff Note that increment action can be decrement and can be a formula JGA Beaulieu
Organigrammes - while condition F V Stuff JGA Beaulieu
Organigrammes – do-while Stuff condition V F JGA Beaulieu
Organigrammes Vous allez avoir besoin de créer un organigramme pour un de vos labos (à être remit) Je recommande l’utilisation des organigrammes pour capturer la solution de vos problèmes L’étape 4 dans la procédure de résolution structuré des problèmes Les organigrammes sont au même niveau conceptuel que le code en C Mais il est plus facile de voir l’algorithme … c’est une abstraction différente La plus part des étudiants se servent des organigrammes après avoir codé au lieu d’un outils de design C’est pas une bonne approche Pratiquez avec les organigrammes et vous allez avoir beaucoup plus de facilités à résoudre les problèmes complexes. JGA Beaulieu
Quiz Time Pourquoi est-ce que les organigrammes sont utiles? Capture design, and represent it graphically easier to understand. JGA Beaulieu