Vous êtes sur la page 1sur 7

CHAPITRE 1.

INTRODUCTION A L’ALGORITHMIQUE

Chapitre 1
Introduction à l’Algorithmique

1.1 Généralités
1.1.1 Algorithme
C’est un terme d’origine arabe, il vient du nom du mathématicien « Al-Kâwarizmi ». C’est
une suite d’instructions qui est une fois exécutée correctement, conduit à un résultat
donnée. Un algorithme doit être : exact (fournit le résultat souhaité), efficace (temps
d’exécution, mémoire occupée), clair (compréhensible) et général (traite le plus grand
nombre de cas possibles).

Données Sortie
Programme
Entrées Résultat
Algorithme

Exemples :

 Une recette de cuisine est un algorithme

Ingrédients Recette Gâteau


Algorithme

 Le plus court chemin dans un graphe


 Préparation des emplois du temps.

Figure 1: Schéma d'exécution d'un programme


CHAPITRE 1. INTRODUCTION A L’ALGORITHMIQUE

Pour communiquer avec un ordinateur, il nous faudra utiliser des systèmes de


traduction automatiques (compilateur ou interpréteur), capables de convertir en
nombres binaires des suites de caractères formant des mots-clés qui seront plus
significatifs pour nous.

Figure 2: Compilation / interprétation d’un algorithme

1.1.2 Algorithmique
L’ensemble des règles et des techniques qui sont impliquées dans la définition et la
conception d'algorithmes.

1.1.3 Différence entre un algorithme et un programme


Un algorithme est souvent exprimé avec une notation indépendante de tout langage de
programmation alors qu'un programme est écrit dans un langage de programmation
particulier.

Langage Algorithmique Programmation (ex :C++)


Procedure Moyenne (A,B : integer, float Eleve::Moyenne(int A, int B, float M)
var M :real) {
{ M=(A+B)/2 ;
Begin return M ;
M:=(A+B)/2; }
End;
}
1.4. Les Types des variables simples et prédéfinis

Pour construire un programme on doit passer par l’algorithme : d’où l’intérêt de


l’algorithmique.

1.1.4 Représentation d’un algorithme


Il existe deux façons pour représenter un algorithme

Organigramme Pseudo-code
C’est une représentation C’est une représentation textuelle avec une
graphique avec des symboles série de conventions ressemblant à un
(carrés, losanges, etc.) langage de programmation (sans les
- Offre une vue d’ensemble de problèmes de syntaxe)
l’algorithme -Plus pratique pour écrire un algorithme
-Représentation quasiment -Représentation largement utilisée
abandonnée aujourd’hui

Squelette d’un algorithme :


La convention à adopter est la suivante :

1.1.5 Types d’algorithmes


Un algorithme = une série d’opérations à effectuer :
 Opérations exécutées en séquence ⇒ algorithme séquentiel. †
 Opérations exécutées en parallèle ⇒ algorithme parallèle. †
1.4. Les Types des variables simples et prédéfinis

 Opérations exécutées sur un réseau de processeurs ⇒ algorithme réparti ou


distribué.

1.1.6 Evaluation de performance d’un algorithme


Tous les algorithmes ne sont pas équivalents. On les différencie selon 2 critères :
 Temps de calcul : lents vs rapides
 Mémoire utilisée : peu vs beaucoup
⇒on parle de complexité temporelle (vitesse) et complexité spatiale (espace mémoire)

1.1.7 Structure de données


Une structure de données est un format spécial destiné à organiser, traiter, extraire et
stocker des données. Il existe plusieurs types de structures plus ou moins complexes,
tous visent à organiser les données pour répondre à un besoin précis, afin de pouvoir y
accéder et les traiter de façon appropriée.

1.2 Composants d’un algorithme


Pour chaque algorithme, on distingue :
 Les paramètres ou les objets d’entrée: Ce sont les données fournies à l’algorithme
 Les paramètres ou les objets de sortie: Ce sont les résultats fournis par
l’algorithme
 Les variables locales ou les objets internes: Ce sont les objets de manœuvre de
l’algorithme servant à la manipulation interne (compteur, stockage, des résultats
intermédiaires)
Pour chaque variable, on doit préciser son nom, son sens, son type. En pseudo-code, on

utilise la forme suivante pour la déclaration de variables :

Var nom_variable : type_variable ; {sens}

1.2.1 Nom et sens d’un objet ou une variable


1.2.1.1 Nom d’un objet
Le nom sert à désigner l’objet dans l’algorithme (identificateur), il doit être un nom
significatif.

Exemple: prix, vitesse, poids…

Le choix des noms de variables est soumis à quelques règles qui varient selon le langage,
mais en général:

 Un nom doit commencer par une lettre alphabétique


Exemple valide: A1
Exemple invalide: 1A
1.4. Les Types des variables simples et prédéfinis

 Doit être constitué uniquement de lettres, de chiffres et du soulignement _


(Eviter les caractères de ponctuation et les espaces)
valides: SMIP2018, SMP_2018
invalides: SMP 2005,SMP;2007
 Doit être différent des mots réservés du langage (par exemple en Java: int, float,
else, switch, case, default, for, main, return, …)
 La longueur du nom doit être inférieure à la taille maximale spécifiée par le
langage utilisé.

Remarque: Pour la lisibilité du code, on doit choisir des noms significatifs qui décrivent
les données manipulées.

1.2.1.2 Sens d’un objet


Le sens d’un objet est sa signification, son rôle ou son utilité, le sens est défini par une
phrase courte qui explique l’objet

Exemple :

 Température : integer ; {température ambiante en °c}


 Vitesse : real ; {vitesse du vent en Km/h}

1.2.2 Type d’un objet


Le type de l’objet caractérise :

 Les valeurs que peut prendre cet objet


 L’espace mémoire nécessaire à la représentation de cet objet à l’intérieur de
l’ordinateur
 Les actions autorisées sur cet objet

On distingue des types simples et des types structurés.

Exemple: la vitesse, le prix, l’âge, etc. sont des objets simples (il renferme une seule
information). Un élève, un enseignant est un objet structuré (il est composé d’une
collection d’informations réparties en plusieurs champs accessibles individuellement ou
collectivement.

1.3 Les Types des variables simples et prédéfinis


Les principaux types utilisés en algorithmique sont :

 Le type entier
 Le type réel
 Le type caractère
 Le type chaîne de caractères
 Le type logique ou booléen.
1.4. Les Types des variables simples et prédéfinis

1.3.1 Le Type entier et le type réel


Les opérations définies sur les variables numériques sont les opérations arithmétiques
(+,-,*,/) et les opérations de comparaison {<,>,=>,=<,…}.

Un réel sera noté comme suit : -3.2467, 12.7, 36.49

1.3.2 Le Type caractère


Une variable de type caractère à une valeur dans l’ensemble des codes ASCII (American
Standard Code for Information Interchange) : en fait, il n'existe pas de méthode pour
stocker directement les caractères. Chaque caractère possède donc son équivalent en
code numérique.

La table ASCII est ordonnée ce qui autorise la comparaison entre les caractères :

Exemple : « A » < « B » : true

On peut aussi effectuer les opérations suivantes :

 Succ(c) : donne le caractère suivant de c dans la table


 Pred (c): donne le caractère précédent de c dans la table
 Ord (c) : donne le code ASCII de C (le rang)
1.4. Les Types des variables simples et prédéfinis

Figure 3: Table des codes ASCII

1.3.3 Le Type Booléen ou logique


Un objet de type booléen peut prendre une seule valeur « True » or « false ».
Les principales opérations définies sur les variables de type logique sont : la négation
(NON), l’intersection (ET) et l’union (OU).
a b Not a a and b a or b
False False True False False
False True True False True
True False False False True
True True False True True

1.3.4 Définition des nouveaux types


En plus de ces types simples et prédéfinis, le programmeur à la possibilité de définir lui-
même de nouveaux types en fonction de ces besoins.
Exemple :
Types
Saison=(« A », « H », « P », « E »)
Tnote=0..20
Var
S : Saison
Note : Tnote

Vous aimerez peut-être aussi