Initiation à la programmation Chapitre 1 Initiation à la programmation
Différents éléments et outils Introduction Exemple: Monter un meuble (IKEA) Algorithme Paramètres d’entrées Notice de montage Différents éléments et outils Paramètres de sortie Résultat final: meuble monté
Qu’est-ce qu’un programme et qu’est-ce que la programmation? Définition: Un programme est une séquence d’instruction que l’ordinateur exécute afin de traiter des données. Ces instructions sont composées d’énoncés écrits selon les règles d’un langage de programmation (C, C++, JAVA, VISUAL BASIC, etc…). La programmation est l’écriture dans le langage choisi, de cette séquence d’instruction.
Pourquoi l’informatique et les programmes ? Traitement des données numériques Automatiser les tâches longues et répétitives Modéliser, virtualiser, simuler des systèmes Echanger, partager, mutualiser des données Application web, Services Web, Cloud Computing… Dématérialiser, de stocker l’information dans des bases de données Databases
La philosophie du programmeur Problème complexe Difficile à résoudre Diviser pour mieux reigner Sous-problème plus simple à résoudre Sous-problème plus simple à résoudre Sous-problème plus simple à résoudre
I. Comment concevoir un programme? 1.1. Présentation générale La réalisation de la série d’instruction que constitue le programme peut-être réalisée en 6 étapes : 1 Analyse du programme. Que souhaitez-vous que le programme réalise ? Quelles sont les taches que le programme doit réaliser ? Quels sont les paramètres d’entrée et de sortie du programme ? 2 Conception du programme. Comportement du programme Algorithme → schémas blocs 3 Codage du programme. Ecriture de l’algorithme dans un langage de programmation (C, C++, JAVA, PROCESSING, etc…)
4 Mise à l’essai et test du programme. Sur des petits exemples, vérifier que le programme exécute bien ce qui a été défini dans la phase d’analyse du programme. 5 Documenter le programme. Indispensable afin de vérifier la validité de l’algorithme ou faire évoluer le programme. la phase de documentation est naturellement imbriquée dans la phase de codage du programme et indissociable de cette dernière ! 6 Entretient du programme. Améliorations et la réalisation des différentes versions du programme initial
1.2. Analyse du programme 6 étapes 1 Définir les objectifs. Problème à résoudre taches à effectuer 2 Définir les résultats escomptés Exemple: lorsque l’ordinateur reconnaît une image via la webcam → apparition d’un son et d’une nouvelle image 3 Définir les données d’entrée et sortie Exemple précédant: Paramètre d’entrée: Image de référence Paramètres de sortie: Nouvelle image + son
+ BIP Image de référence reconnue en paramètre d’entrée Reconnaissance et traitement + BIP Image de référence reconnue en paramètre d’entrée Apparition d’un monstre en 3D à la place de l’image d’entrée et émission d’un son Paramètre d’entrée Paramètres de sortie
4 Définir les exigences de traitement Différentes taches à réaliser avant d’arriver au résultat escompté Exemple précédant: (1) Capturer l’image issue de la webcam (2) Analyser cette image afin de reconnaître l’image de référence donnée en paramètre d’entrée du programme. (3) Remplacer cette image par une tête de monstre et émettre un son. 5 Bien commenter le programme Définir tous les paramètres et les actions effectuées afin que quiconque puisse comprendre l’objectif du programme.
1.3. Conception du programme Ecriture de l’algorithme, c'est-à-dire l’ensemble des étapes qui mènent à la résolution du problème posé initialement. Exemple 1: « monter un meuble IKEA » Paramètres d’entrée: Toutes les pièces du meuble. Paramètres de sortie: Le meuble monté Algorithme: Procédure à respecter pour monter le meuble correctement. Exemple 1: « vérifier si un triangle ABC est rectangle » C B A a b c Paramètres d’entrée: longueurs a,b et c. Algorithme: (1) Calculer a²,b² et c² (2) Vérifier si la plus grande de ces trois valeurs est égale à la somme des deux autres Paramètres de sortie: VRAI ou FAUX (il s’agit d’un booléen)
II. Comment écrire un algorithme ? 2.1. Présentation générale Il existe plusieurs techniques de programmation structurée pour écrire un algorithme : 1 L’analyse progressive 2 Le pseudo-code 3 Les organigrammes 4 Les structures logiques 5 La programmation orienté objet 6 La programmation événementielle 7 Les outils du génie logiciel
Chaque module a une fonction unique et une tache simple à réaliser. 2.2. Analyse progressive Elle consiste à établir linéairement et chronologiquement les différentes étapes de l’algorithme généralement à l’aide d’un diagramme. Chaque étape est appelé « module » modélisé par un cartouche (encadré) composé des énoncés du programme logiquement reliés entre eux. Chaque module a une fonction unique et une tache simple à réaliser.
Exemple : Analyse progressive de gestion du temps.
Le pseudo-code est la forme narrative de la logique du programme. Il donne les détails des modules élaborés dans l’analyse progressive. Exemple : Pseudo-code détaillant le module « Calculer la facture du client A ».
Les phrases en français constituent une bonne façon de décrire le comportement d’un programme. Dans cette approche il est impératif d’utiliser des phrases simples et concises qui emploient des verbes d’action à l’infinitif. Exemple : « construire une forme géométrique » 1 Acquérir les points de la forme géométrique dans l’espace. 2 Mémoriser les points de la forme géométrique. 3 Construire les segments qui relient les points entre eux. 4 Dessiner la forme à partir des segments.
Représentation graphique de l’algorithme 2.4. Les organigrammes Représentation graphique de l’algorithme Notations conventionnelles: Renvoi Traitement Entrées/ Sorties Test sélectif Début/fin/interruption
Exemple : Logique du module « Calculer les heures travaillées pour les taches du client A » Remarque : chaque étape est scrupuleusement commentée !!
2.5. Les structures logiques Définition : les structures logiques sont des énoncés logiques exécutables permettant de décrire les programmes structurés. Elles sont de trois types : Séquentielles Sélectives Itératives
a. Structure Séquentielle Définition : les énoncés sont exécutés dans l’ordre où ils apparaissent dans le programme : Action i Instruction i Action i+1 Instruction i+1
Exemple: Dans l’organigramme du module « Calculer la facture d’un client », les deux actions « additionner les heures normales » et « additionner les heures supplémentaires » se suivent et s’exécutent l’une à la suite de l’autre. Ces actions ne contiennent ni de décision, ni de question nécessitant la réponse « oui » ou « non » suggérant d’autre conséquences.
b. La structure sélective « si, alors, sinon » Définition : La structure sélective s’impose lorsqu’une condition doit être évaluée et que deux chemins peuvent être empruntés en fonction du résultat de cette évaluation. La syntaxe linéaire est la suivante : Si « condition » Alors « instruction 1 » Sinon « instruction 2 » Organigramme: Instruction 1 Si condition Instruction 2 oui non
« l’heure à laquelle on cesse de travailler dépasse 17h. » (condition) Exemple: Si « l’heure à laquelle on cesse de travailler dépasse 17h. » (condition) Alors « le nombre d’heure sup. est égale au nombre d’heure excédentaires travaillées. » (Instruction 1) sinon « le nombre d’heure sup. est nul. » (Instruction 2)
b. La structure Itérative « Tans que … faire … » ou « faire … tant que … » Définition : Cette structure itérative décrit une action qui doit s’effectuer tant qu’une condition est satisfaite. La boucle itérative s’arrête lorsque la condition n’est plus vérifiée. Deux variantes: La bouche s’effectue au moins 1 fois Tant que « condition » Faire « instruction » Faire « instruction » Tant que « condition »
Pour (i=1 à N) faire « instruction » b. La structure Itérative « faire de i=1 à N, instruction » Définition : Cette structure itérative décrit une action qui doit s’effectuer N fois. Tant que l’indice i n’a pas atteint la valeur de N, l’instruction est effectuée. La syntaxe est la suivante : Pour (i=1 à N) faire « instruction » Remarque: Cette structure itérative peut aussi s’exprimer à l’aide de la structure « tant que... faire »: i=1 // initialisation de l’indice Tant que i≠N faire « instruction ». Schéma bloc: oui non i=N ? Instruction i=i+1 i=1
2.6. La programmation orientée objet a. Présentation générale La programmation orientée objet (POO) permet d’augmenter l’efficacité de la programmation linéaire classique qui utilise les structures logiques décrites précédemment. Conçus de la 1ère à la dernière ligne, comme des entités gigantesques. Programmation linéaire: Matières premières Usinage Etc… processus long et lourd à réitérer à chaque nouvelle voiture
Programmation objet: On conçoit un modèle de voiture à partir de pièces préfabriquées et on duplique le modèle. Modèle de voiture duplication Pièces préfabriquées
Autre exemple: Documents « Word » Document Word Classe (modèle) Instanciation (Duplication) Objets (uniques)
Exemple sur PROCESSINGS Les objets peuvent interagir entre eux… Exemple sur PROCESSINGS Cadre de travail Interaction avec bord du cadre Balle 1 Balle 2 Interaction avec bord du cadre
Conclusion: Un objet est fabriqué à partir d’un modèle appelé « classe ». Le modèle de l’objet (la classe) peut être dupliqué par le processus d’instanciation: Nouvelle copie = « instance ». Chaque objet a une vie indépendante des autres objets. Les instances d’un même objet sont aussi capables de communiquer entre eux, et avec les instances d’autres objets.
Un objet est composé de: caractéristiques appelées variables membres b. Contenu d’un objet Un objet est composé de: caractéristiques appelées variables membres et d’actions appelés méthodes Les valeurs variables membres sont uniques, et il peut effectuer les mêmes actions (c'est-à-dire utiliser les mêmes méthodes) que les autres instances du même objet. Exemple: Architecture de la classe « balle »: Variables membres: Abscisse x (position suivant l’axe x). Ordonnée y (position suivant l’axe y). Couleur. méthodes membres: Afficher la balle à l’écran
Un texte en petit caractère grossit lorsqu’on double-clique dessus 2.7. La programmation événementielle (PE) La POO a donné lieu à l’élaboration du concept de programmation événementielle. On définit la réaction d’un objet pré-créé à un événement donné. Exemple: Un texte en petit caractère grossit lorsqu’on double-clique dessus Un texte en petit caractère grossit lorsqu’on double-clique dessus La PE permet de mettre au point des applications complexes à partir d’interventions ponctuelles facilement contrôlables. Durée de vie d’un programme: Un programme nait lorsqu’on l’exécute et meurt à la fin du traitement. Programme immortel : figé sur une boucle dans l’attente d’un événement Exemple: Interface Homme/Machine Traitement en temps réel d’un événement
2.8. Aide à la programmation: les outils du génie logiciel Rend la programmation plus efficaces, plus rapide et plus fiable. Ecriture automatique Débogage Exécution pas à pas pour vérifier l’algorithme Exemple: ECLIPSE en JAVA PROCESSINGS facilite la programmation JAVA appliqué au traitement de l’information (visuelle, sonore…), et aux animations et dessins multidimensionnels.
2.9. BILAN