Vous êtes sur la page 1sur 19

COMPLEXE DE FORMATION HAY ENNAHDA RABAT

MODULE 09 : TECHNIQUES DE
PROGRAMMATION STRUCTUREE
ANALYSE d'un problème
en vue de sa résolution
TDI 1 GB
informatique.
2007/2008
TECHNIQUES DE DEVELOPPEMENT INFORMATIQUE PAR Mr AZZI

1. On effectue une analyse 2. Description de l'enchaînement des


descendante. actions ( algorithme ) :
Décomposition en modules :
• Il faut réfléchir à la façon de résoudre
le problème.
• On découpe le problème en
modules de
difficulté moindre( si nécessaire ). • Décrire l'enchaînement des actions
en utilisant une écriture algorithmique
ou à l'aide d'un organigramme.
• Et l'on assemble les modules à
la fin.

1
3. Faire une liste des données, avec
leurs caractéristiques.
N.B. On regroupe sous le nom de Une donnée est caractérisée
DONNEES ( ou VARIABLES ) :
par son nom, son type, son
les données, au sens strict : usage, sa valeur.
ENTREES.

• les résultats : SORTIES.

• les variables intermédiaires : variables


INTERNES.

. Le nom : ( ou identificateur ) c'est le


mnémonique qui permet de Le type : variable numérique
désigner une donnée.
- En général, il doit commencer ( entier signé, non signé,
par une lettre. booléen, réel,...)
- le nombre de caractères est variable caractère, ou
limité. chaîne de caractères,
- Certains mots sont réservés, et
aussi certains caractères. variables indicées
N.B. Il est bon de choisir un nom qui ( vecteurs, tableaux
indique à quoi va servir la variable d'entiers, ...)
( ex : cumul, position, ... )

2
l' usage : entrée, sortie, Exemple d'algorithme.
entrée/sortie, interne. On désire acquérir 10 nombres au clavier,
Avec un commentaire sur calculer la moyenne de
ces nombres, et afficher le résultat à l'écran.
l'utilisation de la variable.

• Ecriture algorithmique :
ORGANIGRAMME
• Début
somme <-- 0
pour k=1 à 10 avec un pas de 1, faire
lire x ( au clavier )
somme <-- somme + x
fin pour
moyenne <-- somme / 10
écrire moyenne ( écran )

Fin

3
• Remarques ( 1 ) : • Remarques ( 2 ) :
• Les mots clefs sont, en principe, soulignés • Cette analyse est indispensable dès que l'on
veut écrire un programme complexe. Elle doit
( début, fin, pour, finpour, si, alors, sinon, finsi, être faite avant l'écriture du
lire, écrire, faire, appel, répéter, jusqu'à, programme.
tant que, fin tant que, selon, ....).
<-- est le symbole d'affectation. L'algorithme est indépendant du langage que
l'on va utiliser pour écrire ensuite le programme.
somme <-- somme + x veut dire : additionner le ( en principe ! )
contenu L'écriture algorithmique est bien indiquée pour
de la variable somme et de la variable x, le les programmes qui seront écrits dans un
résultat langage évolué : Basic, Pascal, C, ...
( la traduction de l' algorithme vers le langage
est rangé dans la variable somme. est immédiate ).
L'organigramme est préférable lorsque l'on
Il n'y a pas de règles strictes, le principal, c'est programme en langage de bas niveau ( langage
d'être machine, Assembleur ).
clair.

C’EST QUOI UN ALGORITHME


Avez-vous déjà ouvert un livre de recettes de
cuisine ? Avez vous déjà déchiffré un mode
DEFINITION:
d’emploi d’un appareil? Si oui, sans le
savoir,vous avez déjà exécuté
des algorithmes. Un algorithme, c’est une suite d’instructions, qui
une fois exécutée correctement, conduit à un
Avez-vous déjà indiqué un chemin à quelqu’un ?
résultat donné.
Avez vous fait chercher un objet à quelqu’un par
téléphone ? Le terme algorithme est issu du nom du
mathématicien arabe ALKHAWARIZMI(820 après
Si oui, vous avez déjà fabriqué – et fait JC).
exécuter – des algorithmes.

4
FONCTIONNEMENT C’EST UN POINT DELICAT POUR LES
REDACTEURS DES MODES D’EMPLOI.
Pour fonctionner, un algorithme doit donc
contenir uniquement des instructions
compréhensibles par celui qui devra l’exécuter.
HEUREUSEMENT, EN INFORMATIQUE LES
CHOSES AUXQUELLES ON DOIT DONNER
LES INSTRUCTIONS SONT LES
ORDINATEURS QUI ONT LE MEME DEGRE
D’ASSIMILATION.

COMMENT MAITRISER LE
DEUX QUALITES SONT REQUISES:
LANGAGE
ALGORITHMIQUE?

5
1) Il faut avoir une 2) Il faut être méthodique et
rigoureux. En effet, chaque fois
certaine intuition, car qu’on écrit une série d’instructions
aucune recette ne qu’on croit justes, il faut
systématiquement se mettre
permet de savoir a priori mentalement à la place de la
quelles instructions machine qui va les exécuter, armé
d'un papier et d'un crayon, afin de
permettront d’obtenir le vérifier si le résultat obtenu est bien
résultat voulu. celui que l’on voulait.

Enfin, les ordinateurs, ne sont fondamentalement


capables de comprendre que quatre
catégories d'ordres (d'instructions).
cet apprentissage est long, et demande Ces quatre familles d'instructions sont :
des heures de travail patient. Aussi,
dans un premier temps, évitez de 9l’affectation de variables
sauter les étapes : la vérification
méthodique, pas à pas, de chacun de 9la lecture / écriture
vos algorithmes représente plus de la
9les tests
moitié du travail à accomplir
9les boucles

6
1°une représentation graphique, avec des
CONVENTIONS DE REDACTION carrés, des losanges, etc. qu’on appelait des
D’UN ALGORITHME organigrammes.
Aujourd’hui, cette représentation est
2 MODELES DE REPRESENTATION quasiment abandonnée.

1) Une représentation graphique, avec des 2) Une série de conventions appelée


carrés, des losanges, etc. qu’on appelait des « pseudo-code », qui ressemble à un langage
organigrammes. de programmation authentique.
Aujourd’hui, cette représentation est
quasiment abandonnée. C’est un langage humain, aucune machine
n’est censée le reconnaître.
C’est pourquoi on admettra des différences
de syntaxe.

7
les étapes de travail et les outils conceptuels à utiliser lors d’un
processus de programmation descendante.

ETAPES PRATIQUES Matériel et moyens techniques à disposition.

Analyse Papier, Crayon, Intelligence, Habitude.


Détermination des données d’entrées et les résultats de sorties.
Mise en forme de
l’algorithme
C’est l’aboutissement de l’analyse,
esprit logique et rationnel. Partie 1
Les Variables
Description Utilisation pratique des outils d’une méthode de
programmation, ici la prog. structurée.

Traduction Transfert des écritures algorithmiques en langage de


Programmation.
Tests et mise au point Mise au point du programme sur des valeurs tests
. ou à partir de programmes spécialisés.

Exécution Phase finale : le programme s’exécute sans erreur


.

On utilise une variable dés qu’on a besoin de


stocker une information au cours d’un
programme.
Physiquement, sur l’ordinateur il y a un
emplacement mémoire repérée par une 1. Déclaration des
adresse binaire.
Ce qui revient à créer une boîte (espace
variables
mémoire) et lui attaché une
étiquette(adresse).

8
La première chose à faire tout au début de
l’algorithme, avant de pouvoir utiliser des La syntaxe d’une déclaration de variable est la
variables, c’estde faire la déclaration des suivante:
variables.
Lorsqu’on déclare une variable, on lui attribue un VARIABLE nom : TYPE
nom et on lui réserve un emplacement mémoire.
La taille de cet emplacement mémoire dépend du OU
type de variable. C’est pour cette raison qu’on VARIABLES nom1, nom2,… : TYPE
doit préciser lors de la déclaration le type du
variable.

1.1 Types numériques classiques :


Type Numérique Plage Quelqu’un peut se demander pourquoi pas
Byte (octet) 0 à 255 déclarer toutes les variables en réel double?
Entier simple -32 768 à 32 767 Un bon algorithme ne se contente pas de
« marcher » ; il marche en évitant de gaspiller
Entier long -2 147 483 648 à 2 147 483 647
les ressources de la machine.
Réel simple -3,40x1038 à -1,40x1045 pour les valeurs
négatives
Sur certains programmes de grande taille,
1,40x10-45 à 3,40x1038 pour les valeurs l’abus de variables surdimensionnées peut
positives
Réel double 1,79x10308 à -4,94x10-324 pour les valeurs
entraîner des ralentissements notables à
négatives
4,94x10-324 à 1,79x10308 pour les valeurs
l’exécution, voire un plantage pur et simple de
positives l’ordinateur.

9
1.2 Types alphanumériques
En pseudo-code, une déclaration de variables Dans une variable de ce type, on stocke des
aura la forme suivante : caractères, qu’il s’agisse de lettres, de signes
de ponctuation, d’espaces, ou même de
Variable g en Numérique chiffres.
ou encore
Variables PrixHT, TauxTVA, PrixTTC en ATTENTION: En pseudo-code, une chaîne de
Numérique caractères est toujours notée entre guillemets.

1.3 Autres types numériques 1.4 Type booléen


Certains langages autorisent d’autres types Le dernier type de variables est le type booléen :
numériques, notamment : on y stocke uniquement les valeurs logiques
le type monétaire (avec strictement deux chiffres VRAI et FAUX (ou 0 et 1).
après la virgule)
le type date (jour/mois/année).

10
2. L’instruction d’affectation:
2.1 syntaxe:
Après avoir créer une variable on peut faire une En pseudo-code, l'instruction d'affectation se note
et une seule chose: avec le signe
C’est qu’on puisse l’affecter, c’est-à-dire lui
attribuer une valeur. C à d , on peut remplir la
boîte.

2.2 ordre des instructions:


L’ordre de succession des instructions affecte le résultat
généré par un algorithme.
Exemples d’affectation: Exemple1:
Variable A en Numérique
Début
A 10; on attribue à la variable A la valeur 10. A ← 34
A ← 12
Fin
A B ;on attribue à la variable A la valeur B.
Exemple 2
Variable A en Numérique
A 10+B; la somme 10+B est attribuée à A. Début
A ← 12
A ← 34
Fin

11
1.Introduction
Soit l’algorithme suivant:
Variable A en Numérique
Début
Partie 2 A ← 12^2
Fin
Lecture et Ecriture
D’une part, ce programme nous donne le carré
de 12. C’est bon.
Mais si l’on veut le carré d’un autre nombre que
12, il faut réécrire le programme. Casse tête!!!

D’autre part, le résultat est calculé par la


machine. Mais elle le garde pour elle, l’utilisateur
De là vient l’utilité des
qui fait exécuter ce programme, lui, ne saura instructions qui permettent à
jamais quel est le carré de 12. l’utilisateur de dialoguer avec la
machine.

12
Dans un sens, ces instructions permettent à Dans l’autre sens, d’autres instructions
l’utilisateur de rentrer des valeurs au permettent au programme de communiquer
clavier pour qu’elles soient utilisées par le des valeurs à l’utilisateur en les affichant à
programme. l’écran.
Cette opération est la lecture. Cette opération est l’écriture.

2. Les instructions de lecture et


d’écriture Dans le sens inverse, pour écrire quelque chose
Pour que l’utilisateur entre la(nouvelle)valeur de A, à l’écran,
c’est aussi simple que :
on mettra :
Ecrire A
Lire A
Avant de Lire une variable, il est très fortement
Dès que le programme rencontre une instruction conseillé d’écrire des libellés à l’écran,
Lire, l’exécution s’interrompt, attendant la frappe afin de prévenir l’utilisateur de ce qu’il doit
d’une valeur au clavier.
frapper.
Dès lors, aussitôt que la touche Entrée a été
frappée, l’exécution reprend.

13
EXEMPLE:

Partie 3
Ecrire "Entrez votre nom : "
Expressions et opérateurs
Lire Nom

Priorité des opérateurs


Expressions et opérateurs
• Pour les opérateurs arithmétiques donnés ci-dessus, l'ordre de
• Une expression peut être une valeur, une variable ou une priorité est le suivant (du plus prioritaire au moins prioritaire) :
opération constituée de variables reliées par des opérateurs
exemples: 1, b, a*2, a+ 3*b-
3*b-c, … – ^ : (élévation à la puissance)
– * , / (multiplication, division)
• L'évaluation de l'expression fournit une valeur unique qui est – % (modulo) on désigne par modulo l'opération de calcul du reste de la
le résultat de l'opération division euclidienne. Si a est un entier quelconque et n un entier
strictement positif, on écrira a mod n pour représenter le reste dans {0, …,
• Les opérateurs dépendent du type de l'opération, ils peuvent n−1} de la division de a par n. Par exemple, 26 mod 12 = 2.
être : – + , - (addition, soustraction)
– des opérateurs arithmétiques: +, -, *, /, % (modulo), ^ (puissance) exemple: 2+3*7 vaut 23
– des opérateurs logiques: NON, OU, ET
– des opérateurs relationnels: =, ≠ , <, >, <=, >=
– des opérateurs sur les chaînes: & (concaténation) • En cas de besoin (ou de doute), on utilise les parenthèses pour
indiquer les opérations à effectuer en priorité exemple:
• Une expression est évaluée de gauche à droite mais en
tenant compte de priorités (2 + 3) * 7 vaut 35

14
» Structure générale des fonctions
Une fonction est donc constituée de trois
parties :
Partie 4 » le nom proprement dit de la fonction.
Exemple:SIN(sinus).
» deux parenthèses, une ouvrante, une
Les Fonctions fermante. Ces parenthèses sont
toujours obligatoires, même lorsqu'on
Prédéfinies n'écrit rien à l'intérieur.
» une liste de valeurs, indispensables à
la bonne exécution de la fonction. Ces
valeurs s’appellent des arguments, ou
des paramètres. Certaines fonctions
exigent un seul argument, d’autres
deux, etc. et d’autres encore aucun.

Une catégorie privilégiée de


fonctions est celle qui nous
2. Les fonctions de texte permet de manipuler des chaînes
de caractères.

15
•Len(chaîne) : renvoie le nombre de caractères d’une
chaîne
•Mid(chaîne,n1,n2) : renvoie un extrait de la chaîne,
commençant au caractère n1 et faisant n2 caractères de
Tous les langages presque, long.
Ce sont les deux seules fonctions de chaînes réellement
proposent peu ou prou les indispensables. Mais il y a d’autres:
fonctions suivantes, même si le •Left(chaîne,n) : renvoie les n caractères les plus à
gauche dans chaîne.
nom et la syntaxe peuvent varier •Right(chaîne,n) : renvoie les n caractères les plus à
d’un langage à l’autre : droite dans chaîne
•Trouve(chaîne1,chaîne2) : renvoie un nombre
correspondant à la position de chaîne2 dans chaîne1. Si
chaîne2 n’est pas comprise dans chaîne1, la fonction
renvoie zéro.

Exemples : Il existe aussi dans tous les langages une fonction qui
renvoie le caractère correspondant à un code Ascii
Len("Bonjour, ça va ?") vaut 16 donné (fonction Asc), et (fonction Chr) :
Len("") vaut 0
Mid("Zorro is back", 4, 7) vaut "ro is b"
Mid("Zorro is back", 12, 1) vaut "c" Asc("N") vaut 78
Left("Et pourtant…", 8) vaut "Et pourt" Chr(63) vaut "?"
Right("Et pourtant…", 4) vaut "t…"
Trouve("Un pur bonheur", "pur") vaut 4
Trouve("Un pur bonheur", "techno") vaut 0

16
1.INTRODUCTION
Soit l’algorithmique du touriste égaré :
« Allez tout droit jusqu’au prochain carrefour, puis
prenez à droite et ensuite la deuxième à gauche, et vous
y êtes ».Mais en cas de doute,

Partie 5 cela pourrait devenir : « Allez tout droit jusqu’au


prochain carrefour et là regardez à droite.
Si la rue est autorisée à la circulation,

Les tests alors prenez la et ensuite c’est la deuxième à gauche.


Mais
si en revanche elle est en sens interdit,
alors continuez jusqu’à la prochaine à droite, prenez
celle-là, et ensuite la première à droite ».
Cela suppose que l’interlocuteur (le touriste) sache
analyser la condition que nous avons fixée à son
comportement (« la rue est-elle en sens interdit ? »)

2. Structure d’un test


Il n’y a que deux formes possibles pour un test ; la
Mais les ordinateurs possèdent cette aptitude, sans première est la plus simple, la seconde la plus
laquelle d’ailleurs nous aurions bien du mal à les complexe.
programmer. 1.structure simple
Nous allons donc pouvoir donner des séries Si booléen Alors
d’instructions à effectuer selon que la situation se Instructions
présente d’une manière ou d’une autre. Finsi
Cette structure logique répond au nom de test. 2.structure complexe
Si booléen Alors
On parle aussi de structure alternative. Instructions 1
Sinon
Instructions 2
Finsi

17
Explication 2. Condition:
Un booléen est une expression dont la valeur est Une condition est une comparaison
VRAI ou FAUX.
Deux cas de figures se présentent: Cette définition est essentielle ! Elle signifie qu’une
• une variable (ou une expression) de type booléen condition est composée de trois éléments :
• une condition • une valeur
• un opérateur de comparaison
1. Variable booléen: • une autre valeur
Dans la forme simple, arrivé à la première ligne Les valeurs peuvent être a priori de n’importe quel type
(Si… Alors) la machine examine la valeur du (numériques, caractères…). Mais si l’on veut que la
booléen. Si ce booléen a pour valeur VRAI, elle comparaison ait un sens, il faut que les deux valeurs
exécute la série d’instructions. de la comparaison soient du même type !
En revanche, dans le cas où le booléen est faux,
l'ordinateur saute directement aux instructions
situées après le FinSi.

3. Conditions composées
Les opérateurs de comparaison sont : Certains problèmes exigent parfois de formuler
•égal à… des conditions qui ne peuvent pas être exprimées sous
•différent de… la forme simple.
•strictement plus petit que… Soit le cas « X est compris entre 5 et 8 ».
•strictement plus grand que… En fait cette phrase a deux conditions.
•plus petit ou égal à… Car elle revient à dire que
•plus grand ou égal à… « X est supérieur à 5
NB: la comparaison concerne aussi les caractères: ET
“t” < “w” VRAI X est inférieur à 8 ».
“Maman” > “Papa“ FAUX Il y a donc bien là deux conditions, reliées par ce qu’on
“maman” > “Papa” VRAI (vérifier) appelle un opérateur logique(ET).
Il existe opérateurs logiques : ET, OU,NON et XOR.

18
Ces opérateurs logiques peuvent être regroupés dans 4.Tests imbriqués
des tables de vérité (C1 et C2 représentent deux
conditions, et on envisage à chaque fois les quatre cas EXEMPLE 1:
possibles) Variable Temp en Entier
Début
C1 ET C2 C1 VRAI C1 FAUX Ecrire "Entrez la température de l’eau :"
Lire Temp
C2 VRAI VRAI FAUX Si Temp =< 0 Alors
Ecrire "C’est de la glace"
C2 FAUX FAUX FAUX FinSi
Si Temp > 0 Et Temp < 100 Alors
C1 OU C2 C1 VRAI C1 FAUX Ecrire "C’est du liquide"
Finsi
C2 VRAI VRAI VRAI Si Temp > 100 Alors
C2 FAUX VRAI FAUX Ecrire "C’est de la vapeur"
Finsi
NON C1 Fin

C1 VRAI FAUX On test la même valeur 3 fois. C’est lourd!!!

C1 FAUX VRAI

EXEMPLE 2: Nous avons fait des économies : au lieu de devoir


Variable Temp en Entier taper trois conditions, dont une composée, nous
Début n’avons plus que deux conditions simples. Mais
Ecrire "Entrez la température de l’eau :" aussi, et surtout, nous avons fait des économies sur
Lire Temp le temps d’exécution de l’ordinateur. Si la
Si Temp =< 0 Alors température est inférieure à zéro, celui-ci écrit
Ecrire "C’est de la glace" dorénavant « C’est de la glace » et passe
Sinon directement à la fin, sans être ralenti par l’examen
Si Temp < 100 Alors d’autres possibilités (qui sont forcément fausses).
Ecrire "C’est du liquide" Cette deuxième version n’est donc pas seulement
Sinon plus simple à écrire et plus lisible, elle est également
Ecrire "C’est de la vapeur" plus performante à l’exécution.
Finsi Les structures de tests imbriqués sont donc un outil
Finsi indispensable à la simplification et à l’optimisation
Fin des algorithmes.

19

Vous aimerez peut-être aussi