Vous êtes sur la page 1sur 5

L’algorithmique ::::Généralité

Qu'est ce que l'algorithmique ?

Un algorithme est une "spécification d'un schéma de calcul sous forme d'une suite finie
d'opérations élémentaires obéissant à un enchaînement déterminé", ou encore : la description des
étapes à suivre pour réaliser un travail.

problème
analyse

algorithme

programmation

programme évolué

compilation

programme en langage machine

édition des liens

programme exécutable

tests

( fonctionne correctement ? rapide ? ...)

solution acceptable

Un programme est (donc) la description d'un algorithme dans un langage accepté par la
machine.

Un algorithme, à l'inverse d'un programme, est indépendant du langage de programmation


(et donc de la machine).

Le langage algorithmique

Pour communiquer, deux personnes utilisent un langage commun. Les informaticiens ont
aussi besoin d'un langage plus ou moins codifié pour se comprendre, il faut donc se définir un
langage algorithmique. Ce langage doit être :
- spécialisé (pour écrire des algorithmes) .
- de haut niveau (déchargé de détails techniques, ce n'est pas un langage de programmation
- concis ("si ça ne tient pas en une page, c'est que c'est trop long")
-(donc) modulaire
- typé

1
L’algorithmique ::: la démarche de résolution des problèmes.

Les étapes de résolution d’un problème :


● Formuler le problème
● Prés-Analyse : Spécification en détails du problème :
Reposer le problème en détails.
Dégager les résultats à atteindre.
Définir les méthodes de résolution.
Définir les structures de données nécessaires
● Analyse du problème :
Il s’agit de trouver la solution optimale. Il existe plusieurs approches pour analyser un
problème. Il est courant de parler de la méthode descendante et la méthode ascendante.
Analyse descendante : Cette méthode consiste à partir du problème initiale « Résultat » et à
descendre étape par étape, vers des combinaisons de sous problèmes de plus en plus simple à
résoudre.
Analyse ascendante : la démarche proposée consiste à partir du niveau le plus bas
« Données » et à remonté pas à pas vers les problèmes à résoudre.
● Elaboration d’un Algorithme :
Def1 : Un algorithme est une suite structuré et finie d’actions ou d’instructions pour résoudre
un problème.
Def2 : Un algorithme c’est la suite des séquences qui permettent de préciser la démarche que
doit suivre l’ordinateur pour résoudre le problème posé.
Def3 : Un algorithme, c'est une suite d'instructions, qui une fois exécutée correctement,
conduit à un résultat donnée. Si l'algorithme est juste, le résultat voulu. si l'algorithme est faux, le
résultat est, disons, aléatoire.

L’analyse Modulaire :
Elle consiste à divisé, le problème posé, en sous problèmes de difficulté moindre. Ces derniers
sont aussi assujettis à (concernés) cette division jusqu’à ce qu’on arrive à un niveau abordable de
difficulté.

L’intérêt de l’analyse modulaire :


L’approche modulaire a plusieurs intérêts :
Sur le plan organisationnel il est plus efficace de séparer les difficultés et les taches.
La solution du problème est abordée plus facilement.
Permet de savoir lequel des sous programme est à corriger.
Facile à faire évoluer le programme.
Eviter la répétition d’un même traitement.

Structure général d’un algorithme :


Entête de l’algorithme « Algorithme Nom_de_l’algorithme »
…..
…… Partie déclarative
…..
Debut
……
….. Corps de l’algorithme
…..
…..
Fin

2
Structures de données Simples

Un algorithme est une suite finie d’actions, qui manipulent des entités qu’on appelle des objets : ces
objets peuvent être
- Des constantes.
- Des variables de type simple.
- Des variables de type structurées.
Les Constantes :
Def : On appelle constante un objet ayant une valeur inchangée tout le long d’un algorithme.
Une constante est caractérisée par : son nom (un identificateur unique) et sa valeur
Exemple PI= 3,14 durée = 12
Les variables :
Def : on appelle variable tout objet pouvant prendre différentes valeurs tout le long d’un algorithme.
Une variable est un nom symbolique (identificateur) attaché à un emplacement mémoire.
Une variable est caractérisée par :
- Son nom (commence impérativement par une lettre)
- Son type
- Son contenu.
Exemple : var X, Y , Z : entier
Activité : Donnez le résultat de l’exécution de cette séquence :
X  15
Y10
ZX
XY
YZ
Rep : Il s’agit de permuter les valeurs des deux variables de même type X et Y
On dit que Z est utilisé comme une variable intermédiaire.
Les types des variables :
Remarque : chaque déclaration d’une variable définit son type.
Le type permet :
- De déterminer l’ensemble des valeurs qui peuvent être affectées à la variable en question.
- De fixer implicitement l’ensemble des opérateurs valides sur ces variables.
Un type est désigné par un identificateur ou « un nom ».
Les types numériques :
Le type Entier : les valeurs du type Entier forment un sous ensemble de l’ensemble
des nombres entiers relatifs Z

3
Entier simple -32768 à 32767
Entier long -2 147 483 648 à 2 147 483 647

Z … [ . . . . . ] …
Min -2 –1 0 1 2 Max

Lorsqu’on manipule une variable de type Entier, il faut faire attention au risque de
débordement. Si il y a débordement au-delà des valeurs min et max, les calcules deviennent erronés.
Les opérateurs applicables sur les Entiers :
- Les opérateurs arithmétiques usuels ( - , + , * , ^ )
- DIV donne le quotient de la division entière 20DIV6 vaut 3
- MOD donne le reste de la division entière 20DIV6 vaut 2
- Les opérateurs relationnels : < , > , =< , >= , <> , = .
Le type Réel :
Les valeurs du type réel forment un sous ensemble de l’ensemble des réels R
Réel simple -3,40E38 à –1,40E-45 pour les valeurs négatives
E E
3,40 -45 à 1,40 38 pour les valeurs positives
Réel double 1,79E308 à -4,94E-324 pour les valeurs négatives
4,94E-324 à 1,79E308 pour les valeurs positives

R … [ ] …
Min Max

Les opérateurs applicables sur les Réels :


- Les opérateurs arithmétiques usuels ( - , + , * , ^ )
- Les opérateurs relationnels : < , > , =< , >= , <> , = .
Le type Booléen :
Domaine des valeurs : deux valeurs logiques VRAI / FAUX
Les opérateurs applicables sur les Booléens :
NON : Négation X Y NON (X) X ET Y X OU Y X Ouex Y
ET : Conjonction
V V F V V F
OU : Disjonction
V F F F V V
Ouex : Ou exclusif
F V V F V V
F F V F F F

Soient X .Y.Z trois variables de type booléen


Commutativité : X OU Y=Y OU X ; X ET Y=Y ET X ; X OUex Y= Y OUex X
4
Associativité :
(X ET Y) ET Z = X ET (Y ET Z ) = X ET Y ET Z
(X OU Y) OU Z = X OU (Y OU Z ) = X OU Y OU Z
Distributivité :
X ET (Y OU Z) = (X ET Y) OU (X ET Z)
X OU (Y ET Z) = (X OU Y) ET (X OU Z)
Les lois de Morgan :
NON (X ET Y) = NON(X) OU NON(Y)
NON (X OU Y) = NON(X) ET NON(Y)
Ces lois permettent de simplifier certaines expressions logiques.
Ex : (X OU Y) ET NON Y = (X ET NON Y) OU (Y ET NON Y)
= (X ET NON Y) OU FAUX
= (X ET NON Y)
Type alphanumérique :
Dans une variable de ce type, on stocke des caractères, qu’il s’agisse de lettres, de signes de
ponctuation, d’espaces, ou de chiffres. Le nombre maximal de caractères pouvant être stockés dans
une seule variable dépend du langage utilisé.
Le type caractère :
Un caractère est représenté par le caractère lui même placé entre apostrophes.
Tous ces caractères sont ordonnés selon leur code ASCII
‘’0’’ < ‘’1’’ < …<’’9’’< ………’’A’’ < ‘’B’’ <.....<’’Z’’< .....<’’a’’<…<’’z’’ <…..
Remarques :
- une variable de type caractère contient impérativement un caractère et un seul.
- ‘’A’’ <’’B’’ est une proposition VRAI.
- ‘’y’’ > ‘’D’’ est une proposition VRAI.
- L’espace est un caractère blanc.
- On peut utiliser les fonctions prédéfinies tel que :
ORD(c) : renvoie le code ASCII du caractère c
CHR(n) : renvoie le caractère dont le code ASCII es l’entier n
Ex : Ord (‘’A’’) vaut 65
Ord (‘’a’’) vaut 97
Chr(65) vaut ‘’A’’
Chr(97) vaut ‘’a’’
Ord (Chr(65)) vaut 65
Chr(ord(‘’A’’)) vaut ‘’A’’

Vous aimerez peut-être aussi