Vous êtes sur la page 1sur 39

Algorithmique

module 13

BTS DSI Pr. Salwa Baqqali

BTS DSI

ALGORITHMIQUE

Notion dalgorithme

BTS DSI

ALGORITHMIQUE

Structure gnrale dun systme informatique :


Un ordinateur comprend cinq lments fondamentaux :  lunit dentre.  lunit de sortie.  lunit de mmoire.  lunit de contrle.  lunit arithmtique.
BTS DSI ALGORITHMIQUE 3

BTS DSI

ALGORITHMIQUE

 

Les units dentre sortie sont des lments qui permettent lordinateur de recevoir ou dmettre de linformation (clavier, imprimante, CD-Rom, cl USB,). Les trois autres units (Lunit de mmoire, lunit de contrle et lunit arithmtique) constituent lunit centrale (UC). Lunit de mmoire est llment o sont stockes les donnes et les rsultats, elle est constitue de trs nombreuses cases (cases mmoires). Lunit de contrle coordonne toutes les activits des divers lments de lordinateur. Elle met des commandes, contrle les signaux et dtermine les squences des diverses instructions. Lunit arithmtique est constitue de circuits lectriques qui excutent les diverses oprations arithmtiques et logiques.

BTS DSI

ALGORITHMIQUE

Mthodologie de programmation


Les diffrentes tapes du processus de programmation

BTS DSI

ALGORITHMIQUE

BTS DSI

ALGORITHMIQUE

Lanalyse dun problme pos consiste dfinir les diffrentes tapes de sa rsolution. Lensemble de ces spcifications reprsente lalgorithme. La phase suivante consiste traduire lalgorithme dans un langage de programmation donn. Dans le cas derreur, le programme produit des faux rsultats : les retours vers lanalyse (algorithme) sont alors ncessaires.

BTS DSI

ALGORITHMIQUE

Algorithme :
dfinition : Un algorithme cest une suite ordonne dordre ou de tache excuter par la machine pour obtenir un rsultat dfinie par le cahier de charge. Algorithme = mthode de rsolution Algorithme vient du nom du clbre mathmaticien arabe Al Khawarizmi (Abu Jaafar Mohammed Ben Mussa Al-Khawarizmi).

BTS DSI

ALGORITHMIQUE

Lalgorithmique dsigne aussi la discipline qui tudie les algorithmes et leurs applications en Informatique. Une bonne connaissance de lalgorithmique permet dcrire des algorithmes exacts et efficaces.

BTS DSI

ALGORITHMIQUE

10

La conception dun algorithme passe par plusieurs tapes :  Analyse: dfinition du problme en termes de squences doprations de calcul de stockage de donnes, etc.  Conception: dfinition prcise des donnes, des traitements et de leur squencement.  Implantation: traduction et ralisation de lalgorithme dans un langage prcis.  Test: Vrification du bon fonctionnement de lalgorithme.
BTS DSI ALGORITHMIQUE 11

Structure dun algorithme : Dbut Instruction 1 .

Les instructions sont excutes en ordre de 1 N les limites dalgorithmes sont dfinis par dbut et fin.

. . Instruction N

BTS DSI

ALGORITHMIQUE

12

Organisation dun algorithme


            

Exemple dun programme : Algorithme monAlg /* Constantes: initialisation obligatoire */ CONST const1 : entier const2 : chane // Les variables VAR varReel1, varReel2 : rels varChaine : chane DEBUT Instruction1 Instruction2 FIN

BTS DSI

ALGORITHMIQUE

13

Les donnes :
Donnes = ensemble des informations manipules par un programme Les donnes d'un programme sont mmorises en mmoire centrale dans des variables (sortes de cases) Donne : valeur stocke
variable ou constante Type
BTS DSI ALGORITHMIQUE 14

Traitement : oprations sur les donnes


instructions

Donnes initiales

Traitements

rsultats

BTS DSI

ALGORITHMIQUE

15

Analyse du problme
Dcomposer la tche  Exemple simple : moyenne de 10 notes


BTS DSI

ALGORITHMIQUE

16

Variables


Dans un programme informatique, on va avoir en permanence besoin de stocker provisoirement des valeurs. Il peut sagir de donnes issues du disque dur, fournies par lutilisateur (frappes au clavier). Ces donnes peuvent tre de plusieurs types : elles peuvent tre des nombres, du texte, etc. Ds que lon a besoin de stocker une information au cours dun programme, on utilise une variable.

BTS DSI

ALGORITHMIQUE

17

Notion de variable :
Une variable possde :
une valeur contenue par la case mmoire. un identificateur : nom unique par lequel on peut accder son contenu. un type qui dfinit la taille de la place occupe.


Ne pas confondre la variable et son contenu


Une variable est un contenant (case ou bote). Le contenu d'une variable est une valeur numrique, alphanumrique
BTS DSI ALGORITHMIQUE 18

On utilisera diffrents types de variables (pour le moment):

Par exemple, dfinit 2 variables de type entires n'ayant aucune valeur (pour l'instant).
BTS DSI ALGORITHMIQUE 19

Types numriques classiques


Entier : une variable est dite entire si elle prend ses valeurs dans Z et quelle peut supporter les oprations suivantes :  Addition, soustraction, multiplication, division.  Division entire note div :  N div p=q : la division entire de n par p donne la partie entire du quotient q.  Division modulo note mod :  N mod p=r : la division modulo de n par p donne le reste r.  Exemples :  12 div 3=4  13 div 3=4  12 mod 3=0  13 mod 3=1
BTS DSI ALGORITHMIQUE 20

Rel :


Si la variable prend ses valeurs dans IR (ensemble des nombres rels). Il existe deux reprsentations des rels :
 

la forme usuelle avec les points : 0.426 , 342.78 , -12.5 la notation scientifique ayant la forme suivante : aE+b ou :

 

Exemple : 247=2.4 E2=0.247 E3= 2470 E-1 Les oprations dfinies sur les rels : Addition, soustraction, multiplication, division.
BTS DSI ALGORITHMIQUE 21

BTS DSI

ALGORITHMIQUE

22

Autres types numriques


Certains langages autorisent dautres types numriques, notamment :


le type montaire (avec strictement deux chiffres aprs la virgule) le type date (jour/mois/anne).

BTS DSI

ALGORITHMIQUE

23

Type alphanumrique

Le type alphanumrique caractrise les valeurs caractres (notes Car) ou chane de caractres (notes chane). Caractre : peut appartenir au domaine des chiffres de 0 9, des lettres de A Z (majuscules ou minuscules) et des caractres spciaux (+, -, 4,, , ;, ., (, ), }, ], %, $, Un caractre sera toujours not entre des apostrophes.  Chaine : est une suite finie des caractres quelconques. Exemple : bonjour television Var A : chaine Debut A bonjour Ecrire(A) Fin Dans une variable de ce type, on stocke des caractres, quil sagisse de lettres, de signes de ponctuation, despaces, ou mme de chiffres. Le nombre maximal de caractres pouvant tre stocks dans une seule variable string dpend du langage utilis. Un groupe de caractres (y compris un groupe de un, ou de zro caractres), quil soit ou non stock dans une variable est donc souvent appel chane de caractres.

BTS DSI

ALGORITHMIQUE

24

Type boolen
Le dernier type de variables est le type boolen : on y stocke uniquement les valeurs logiques VRAI et FAUX.

On peut reprsenter ces notions abstraites de VRAI et de FAUX par tout ce qu'on veut : de l'anglais (TRUE et FALSE) ou des nombres (0 et 1).

BTS DSI

ALGORITHMIQUE

25

Affectation, expression et oprateurs


Laffectation est laction lmentaire dont leffet est de donner une valeur une variable (ranger une valeur une place). L'affectation est ralise au moyen de l'oprateur (ou = en C et := en Pascal) Exemple: A 4

BTS DSI ALGORITHMIQUE 26

Oprateurs :
Un oprateur est un signe qui relie deux valeurs, pour produire un rsultat.  Oprateurs numriques :  Ce sont les quatre oprations arithmtiques :  + Addition  soustraction  * multiplication  / Division
BTS DSI ALGORITHMIQUE 27

Lire et crire
Soit le programme suivant : Variable A : entire Dbut A 12^2 Fin Ce programme nous donne le carr de 12 soit 144. On remarque que :
BTS DSI ALGORITHMIQUE 28

Si on veut connatre le rsultat dun calcul ou le contenu dune variable X, lalgorithme doit contenir linstruction qui commande la machine de fournir ce rsultat. Cette instruction est crire(X) qui signifie : mettre sur lcran (organe de sortie de la machine) le contenu de la case X. Cette action ne modifie pas le contenu de X. Exemple : soit le morceau dalgorithme suivant : A tant une donne, X un rsultat lire (A) X A^2 crire (X)

BTS DSI

ALGORITHMIQUE

29

BTS DSI

ALGORITHMIQUE

30

BTS DSI

ALGORITHMIQUE

31

Structure slective

Si condition alors inst1 Si la condition est vrai lordinateur excute linst1. Si elle est fausse lordinateur excute linst2. Sialorssinon Fin si
BTS DSI ALGORITHMIQUE 32

BTS DSI

ALGORITHMIQUE

33

Solution

BTS DSI

ALGORITHMIQUE

34

Structure slective choix multiple


               

Choisir expression parmi Exp1 : inst1 Exp2 : inst2 . . ExpN : instN Fch Optionnellement Choisir exp parmi V1 : exp 1 V2 : exp 2 . . VN : exp N Sinon exp N+1 Fch

BTS DSI

ALGORITHMIQUE

35

autre forme de laction slective le choix multiple


        

Syntaxe : Selon variable Dbut Val1 : action 1 Val2 : action 2 Val N : action Fin Si variable est gale val i, on excute action i, et on passe la suite de lalgorithme, sinon on excute action et on passe la suite de lalgorithme.
BTS DSI ALGORITHMIQUE 36

Laction itrative la forme rptitive :




       

Il y a trois sortes de formes rptitives permettant de rpter lexcution dun bloc dinstruction, le nombre de rptition est dfini dans linstruction. 1re forme rptitive : Tant que condition faire Inst 1 Inst 2 Bloc des instructions rpter Inst N Fin Tq Tant que la condition est vrifie on excutera le corps de la boucle, on sarrtera ds que la condition nest plus vrifie.

BTS DSI

ALGORITHMIQUE

37

2re forme rptitive


La boucle rpter  La boucle Rpter permet de rentrer dans la boucle quelque soit la condition et ritre lexcution jusqu ce que la condition soit vrifie.  Rpter   Action   Jusqu condition
38

BTS DSI

ALGORITHMIQUE

3re forme rptitive :


 

La boucle Pour Syntaxe ... Traitement ... Fin Pour La boucle pour permet de rpter une instruction un nombre connu de fois.
BTS DSI ALGORITHMIQUE 39

Pour compteur allant de valeur initiale pas de incrment faire