Vous êtes sur la page 1sur 29

Algorithmique et structures de données I

Introduction à l’algorithmique

I. Mouakher
Plan

1 Introduction
Définitions
Algorithmique et programmation
Les problèmes fondamentaux

2 Algorithmique
Types
Variables et Constantes
Actions de base
Forme générale de l’algorithme
Trace
Définitions
Introduction
Algorithmique et programmation
Algorithmique
Les problèmes fondamentaux

Définition (Algorithmique)
Science qui étudie l’application des algorithmes à l’informatique.

Définition (Algorithme)
Procédure de calcul bien définie qui prend en entrée une valeur ou un
ensemble de valeurs et qui donne en sortie une valeur ou un ensemble de
valeur. Un algorithme est donc une séquence d’étapes de calcul qui
transforme l’entrée en sortie. Un algorithme s’écrit le plus souvent en
pseudo-langage de programmation (appelé langage algorithmique).

I. Mouakher Généralités (3/29)


Définitions
Introduction
Algorithmique et programmation
Algorithmique
Les problèmes fondamentaux

Problème : trier une suite de n nombre ha1 , a2 , ..., an i


Entrée : suite de n nombre ha1 , a2 , ..., an i
permutation ha10 , a20 , ..., an0 i de la suite donnée en entré de façon que
ha10 , a20 , ..., an0 i soit trié ?

Pour un problème donné, il peut y avoir plusieurs algorithmes différents


ou aucun !

I. Mouakher Généralités (4/29)


Définitions
Introduction
Algorithmique et programmation
Algorithmique
Les problèmes fondamentaux

Structure de données

Définition
C’est un moyen de stocker et organiser des données pour faciliter l’accès
à ces données et leur modification.

⇒ La tâche la plus importante dans l’informatisation d’un problème


réel est la phase de transformation des objets réels en objet logique.

I. Mouakher Généralités (5/29)


Définitions
Introduction
Algorithmique et programmation
Algorithmique
Les problèmes fondamentaux

Un algorithme n’est exécutable directement par aucune machine.


Mais il a l’avantage d’être traduit facilement dans tous les langages
de programmation.
L’algorithmique permet de se focaliser sur la procédure de résolution
du problème sans avoir à se soucier des spécificités d’un langage
particulier.
l’algorithmique c’est :
le choix d’un algorithme
le choix d’une structure de données
⇒ les deux sont indissociables

I. Mouakher Généralités (6/29)


Définitions
Introduction
Algorithmique et programmation
Algorithmique
Les problèmes fondamentaux

Algorithmique et programmation

Définition (Un programme)


Un programme est une séquence d’instructions élémentaires écrite dans
un langage de programmation, et exécutée par un ordinateur afin de
traiter les données d’un problème et renvoyer un ou plusieurs résultats.

I. Mouakher Généralités (7/29)


Définitions
Introduction
Algorithmique et programmation
Algorithmique
Les problèmes fondamentaux

Programme et compilation

Un programme est stocké dans un fichier. On distingue deux types de


fichiers, correspondant à deux versions différentes d’un programme :
fichier source et fichier exécutable
Code source : programme exprimé dans un langage de
programmation compréhensible par un être humain, et ne pouvant
pas être exécuté directement par l’ordinateur.
Code binaire : programme exprimé en langage machine, pouvant être
directement exécuté par l’ordinateur.
Compilation : action de transformer un code source en code binaire, de
manière à obtenir un fichier exécutable à partir d’un fichier source.

I. Mouakher Généralités (8/29)


Définitions
Introduction
Algorithmique et programmation
Algorithmique
Les problèmes fondamentaux

Programme et compilation

La procédure de compilation varie en fonction du langage de


programmation. On s’intéresse ici au cas du langage C :

I. Mouakher Généralités (9/29)


Définitions
Introduction
Algorithmique et programmation
Algorithmique
Les problèmes fondamentaux

Les problèmes fondamentaux en algorithmique

Complexité
En combien de temps un algorithme va -t-il atteindre le résultat
escompté ?
De quel espace a-t-il besoin ?

Calculabilité
Existe-t-il des tâches pour lesquelles il n’existe aucun algorithme ?
Etantdonnée une tâche, peut-on dire s’il existe un algorithme qui la
résolve ?

Correction
Peut-on être sûr qu’un algorithme réponde au problème pour lequel
il a été conçu ?

I. Mouakher Généralités (10/29)


Types
Variables et Constantes
Introduction
Actions de base
Algorithmique
Forme générale de l’algorithme
Trace

Types - Définition

Définition
Classer les objets selon :
Ensemble des valeurs que peut prendre l’objet
Ensemble des opérations permises sur ces valeurs

On peut classer les types :


Prédifinis : Booléen, Naturel, Entier, Réel, Caractère, Chaı̂ne de
caractères
Définis explicitement : intervalle, énuméré, tableaux, structures

I. Mouakher Généralités (11/29)


Types
Variables et Constantes
Introduction
Actions de base
Algorithmique
Forme générale de l’algorithme
Trace

Les types prédifinis


Type Booléen
Représenter une condition : Vrai ou Faux.
Opérations définies : la négation (NON), ET et OU

Type Entier
Ensemble des entiers relatifs : 8, -10, +3 ;
Opérations définies : +, -, *, div, mod

Type Réel
Ensemble R
La forme usuelle avec le point comme symbole décimal : -4.5678 5
13.9 +12.44
Opérations définies : +, -, *, /

I. Mouakher Généralités (12/29)


Types
Variables et Constantes
Introduction
Actions de base
Algorithmique
Forme générale de l’algorithme
Trace

Les types prédifinis

Type caractère
peut prendre comme valeur un et un seul caractère : les lettres (’A’,
’d’), les chiffres (’2’), les caractères spéciaux (’*’, ’ ’)
Opérations définies : =, !=, <, <=, >, >=

Type chaine de caractère


peut contenir plusieurs caractères de manière ordonnée, ex :
”Bonjour”
Opérations définies : =, !=, <, <=, >, >=

I. Mouakher Généralités (13/29)


Types
Variables et Constantes
Introduction
Actions de base
Algorithmique
Forme générale de l’algorithme
Trace

Variables

Récipient pour des objets dont le contenu (= valeur) peut changer


au cours de l’exécution du programme
Abstraction d’un emplacement mémoire
Une variable est caractérisée par :
un identificateur (son nom)
une valeur (qui peut varier au cours du programme, sauf pour les
constantes)
un type (qui détermine sa taille et les opérations possibles)

I. Mouakher Généralités (14/29)


Types
Variables et Constantes
Introduction
Actions de base
Algorithmique
Forme générale de l’algorithme
Trace

Déclaration

La déclaration des variables consiste à leur réserver une place en


mémoire et attribuer l’identificateur à cette place.
La place en mémoire réservée à une variable dépend de son type.
Donc la déclaration d’une variable indique deux choses :
son identificateur (son nom)
son type (sa taille)

Exemple
VAR prix : réels
code : chaı̂ne

I. Mouakher Généralités (15/29)


Types
Variables et Constantes
Introduction
Actions de base
Algorithmique
Forme générale de l’algorithme
Trace

Déclaration

Remarques
Le choix d’un nom d’une variable doit :
respecter certaines conventions (ex : commence par une lettre, pas
d’espace...).
être suffisamment signifiant pour qu’on reconnaisse leur fonction
aisément
Dans certains langages, il est possible de ne pas déclarer le type des
variables. Ce sont des langages faiblement typés. Mais ceci n’est pas
recommandé, c’est pourquoi en algorithmique, nous prendrons
l’habitude de toujours déclarer le type des variables

I. Mouakher Généralités (16/29)


Types
Variables et Constantes
Introduction
Actions de base
Algorithmique
Forme générale de l’algorithme
Trace

Constantes

Entité qui n’évolue pas


Deux types de constantes,
Constante implicite
Valeur de fait : 2, 2.3, ”ABCD”, ’a’
Constante explicite
Par exemple : Constante MAX = 10
Une constante a un type et une valeur

I. Mouakher Généralités (17/29)


Types
Variables et Constantes
Introduction
Actions de base
Algorithmique
Forme générale de l’algorithme
Trace

Actions de base

Action / Instruction
Elément, qui lorsqu’il est interprété, modifie l’état d’un programme

Il y a trois actions de base en algorithmique :



lire
écrire

I. Mouakher Généralités (18/29)


Types
Variables et Constantes
Introduction
Actions de base
Algorithmique
Forme générale de l’algorithme
Trace

Affectation : ←−

←−
Syntaxe : variable ←− expression
But : affecte la valeur de l’expression à la variable. La variable et
l’expression doivent être du même type

L’affectation consiste tout simplement à placer une valeur dans une


variable (ce qui revient à changer le contenu de cette variable)

Exemple
a←5
a←b
a←2∗b+1

I. Mouakher Généralités (19/29)


Types
Variables et Constantes
Introduction
Actions de base
Algorithmique
Forme générale de l’algorithme
Trace

Affectation : ←−

Attention : L’affectation est différente de l’égalité mathématique

Exemple

I. Mouakher Généralités (20/29)


Types
Variables et Constantes
Introduction
Actions de base
Algorithmique
Forme générale de l’algorithme
Trace

La saisie des données : LIRE

LIRE
Syntaxe : LIRE(var1, var2,...)
But : demande à l’utilisateur de saisir des valeurs à partir de l’entrée
standard

L’instruction de saisie permet de communiquer des données au


programme. Cette instruction assigne une valeur entrée au clavier
dans une variable.

Exemple
lire(a,b)

I. Mouakher Généralités (21/29)


Types
Variables et Constantes
Introduction
Actions de base
Algorithmique
Forme générale de l’algorithme
Trace

L’affichage : ECRIRE

ECRIRE
Syntaxe : ECRIRE(expr1, expr2,...)
But : affiche les valeurs des expressions sur la sortie standard

L’instruction d’affichage permet de fournir des résultats sous forme


directement compréhensible pour l’utilisateur à travers l’écran.

Exemple
ecrire(”a = ”,a,” et b = ”,b)

I. Mouakher Généralités (22/29)


Types
Variables et Constantes
Introduction
Actions de base
Algorithmique
Forme générale de l’algorithme
Trace

Syntaxe générale de l’algorithmique

ALGORITHME nom-algorithme =⇒ Entête de l’algorithme


CONST
Liste des constantes avec leurs valeurs =⇒ Définition des constantes
VAR
Liste des variables suivies de leurs types =⇒ Définition des variables
DEBUT
Séquence d’instructions =⇒ Corps de l’algorithme
FIN

I. Mouakher Généralités (23/29)


Types
Variables et Constantes
Introduction
Actions de base
Algorithmique
Forme générale de l’algorithme
Trace

Exemple d’algorithme

ALGORITHME Exemple
VAR
A,B,C : entier
DEBUT
Ecrire(”Entrez le premier entier”)
Lire(A)
Ecrire(”Entrez le deuxième entier”)
Lire(B)
A←A+5
C ←B +A
Ecrire(”le résultat :”,C)
FIN

I. Mouakher Généralités (24/29)


Types
Variables et Constantes
Introduction
Actions de base
Algorithmique
Forme générale de l’algorithme
Trace

Les trois étapes d’un algorithme

1 Préparation du traitement
données nécessaires à la résolution du problème
2 Traitement
résolution pas à pas, après décomposition en sous-problèmes si
nécessaire
3 Editiondes résultats
impression à l’écran, dans un fichier, etc.

I. Mouakher Généralités (25/29)


Types
Variables et Constantes
Introduction
Actions de base
Algorithmique
Forme générale de l’algorithme
Trace

Indentation

Afin de gagner en lisibilité, on doit utiliser les sauts de ligne et espaces


blancs de façon à ce que l’écriture de votre programme mette en valeur
sa structure intrinsèque.

I. Mouakher Généralités (26/29)


Types
Variables et Constantes
Introduction
Actions de base
Algorithmique
Forme générale de l’algorithme
Trace

L’initialisation des variables

Au début d’un programme, les variables n’ont pas encore reçues de


valeur ; on dit qu’elles sont indéfinies.
le contenu d’une variable indifinie n’est pas vide, il n’est pas
forcement nul, il est quelconque.
De là vient la nécessité de toujours bien initialiser les variables avant
d’utiliser leur valeur(à droite d’une affectation ou dans une
expression conditionnelle)
L’initialisation s’effectue généralement au début du programme,
juste après les déclarations. Elle prend la forme d’une simple
affectation ou d’une saisie au clavier.

I. Mouakher Généralités (27/29)


Types
Variables et Constantes
Introduction
Actions de base
Algorithmique
Forme générale de l’algorithme
Trace

La trace d’un algorithme

Définition
La trace d’un algorithme représente la valeur des différentes informations
d’un programme durant son exécution. Il est vivement conseillé
d’effectuer la trace d’un algorithme afin de vérifier qu’il fonctionne.

I. Mouakher Généralités (28/29)


Types
Variables et Constantes
Introduction
Actions de base
Algorithmique
Forme générale de l’algorithme
Trace

Exemple
Effectuons la trace de l’algorithme précédent avec les données suivantes :
A = 5 et B= 10
ALGORITHME Exemple
VAR A B C
A,B,C : entier ? ? ?
DEBUT
Ecrire(”Entrez le premier entier”) ? ? ?
Lire(A) 5 ? ?
Ecrire(”Entrez le deuxième entier”) 5 ? ?
Lire(B) 5 10 ?
A←A+5 10 10 ?
C ←B +A 10 10 20
Ecrire(”le résultat :”,C) 10 10 20
FIN

I. Mouakher Généralités (29/29)