CHAPITRE 1
INITIATION À LA PROGRAMMATION
INTRODUCTION
Exemple: Monter un meuble (IKEA)
Résultat final: meuble monté
Paramètres d’entrées
Différents éléments et outils
Algorithme
Paramètres de sortie
Notice de montage
Définition:
Qu’est-ce qu’un programme et qu’est-ce que la programmation?
La programmation est l’écriture dans le langage choisi, de cette séquence d’instruction.
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…).
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 complexeDifficile à résoudre
Sous-problème plus simple à résoudre
Sous-problème plus simple à résoudre
Sous-problème plus simple à résoudre
Diviser pour mieux reigner
I. Comment concevoir un programme?1.1. Présentation généraleLa réalisation de la série d’instruction que constitue le programme peut-être réalisée en 6 étapes :
Analyse du programme.1
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 ?
Conception du programme. 2
Comportement du programme
Algorithme → schémas blocs
Codage du programme.3
Ecriture de l’algorithme dans un langage de programmation (C, C++, JAVA, PROCESSING, etc…)
Mise à l’essai et test du programme.4
Documenter le programme.5
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.
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 !
Entretient du programme.6
Améliorations et la réalisation des différentes versions du programme initial
1.2. Analyse du programme
6 étapes
Définir les objectifs. 1
Problème à résoudre
taches à effectuer
Définir les résultats escomptés2
Exemple: lorsque l’ordinateur reconnaît une image via la webcam → apparition d’un son et d’une nouvelle image
Définir les données d’entrée et sortie3
Exemple précédant:
Paramètre d’entrée: Image de référence
Paramètres de sortie: Nouvelle image + son
Apparition d’un monstre en 3D à la place de l’image d’entrée et
émission d’un son
Image de référence reconnue en
paramètre d’entrée
Reconnaissance et traitement
Paramètre d’entrée
+
Paramètres de sortie
Définir les exigences de traitement4
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.
Bien commenter le programme5
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:
Algorithme:
Toutes les pièces du meuble.
Procédure à respecter pour monter le meuble correctement.
Paramètres de sortie: Le meuble monté
Exemple 1: « vérifier si un triangle ABC est rectangle »
Paramètres d’entrée:
Algorithme:
longueurs a,b et c.
(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)
C
BA
a
b
c
II. Comment écrire un algorithme ?2.1. Présentation généraleIl existe plusieurs techniques de programmation structurée pour écrire un algorithme :
L’analyse progressive1
Le pseudo-code2
Les organigrammes3
Les structures logiques4
La programmation orienté objet5
La programmation événementielle6
Les outils du génie logiciel7
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.
2.3. Le pseudo-code
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 »
Acquérir les points de la forme géométrique dans l’espace.1
Mémoriser les points de la forme géométrique.2
Construire les segments qui relient les points entre eux.3
Dessiner la forme à partir des segments.4
2.4. Les organigrammes
Représentation graphique de l’algorithme
Notations conventionnelles:
Traitement
Entrées/Sorties
Test sélectif
Renvoi
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 »
Instruction 1
Si condition
Instruction 2
oui non
Organigramme:
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:
Tant que « condition » Faire « instruction »
Faire « instruction »Tant que « condition »
La bouche s’effectue au moins 1 fois
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’indiceTant que i≠N faire « instruction ».
oui non
i=N ?
Instruction
i=i+1
i=1Schéma bloc:
2.6. La programmation orientée objet
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.
Programmation linéaire: Conçus de la 1ère à la dernière ligne, comme des entités gigantesques.
processus long et lourd à réitérer à chaque nouvelle voiture
Matières premières
UsinageEtc…
a. Présentation générale
Programmation objet: On conçoit un modèle de voiture à partir de pièces préfabriquées et on duplique le modèle.
Pièces préfabriquées
Modèle de voiture
duplication
Autre exemple: Documents « Word »
Classe(modèle)
Instanciation(Duplication)
Objets(uniques)
DocumentWord
Les objets peuvent interagir entre eux…
Exemple sur PROCESSINGS
Cadre de travail
Balle 1
Balle 2
Interaction avec bord du cadre
Interaction avec bord du cadre
Un objet est fabriqué à partir d’un modèle appelé « classe ».
Conclusion:
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:
b. Contenu d’un objet
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
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.
Exemple:
ECLIPSE en JAVA
PROCESSINGS facilite la programmation JAVA appliqué au traitement de l’information (visuelle, sonore…), et aux animations et dessins multidimensionnels.
Ecriture automatique
Débogage
Exécution pas à pas pour vérifier l’algorithme
2.9. BILAN