Vous êtes sur la page 1sur 52

ALGORITHMIQUE ET STRUCTURES DE

DONNÉES 1

CHAPITRE 1: DÉFINITIONS ET TYPES DE


DONNÉES

Préparé par: Dr. L. Ketari

Année Académique 2019 / 2020


Semestre I
PLAN
• Algorithmique et définitions
• Objets d’un algorithme
• Expression et priorité entre opérateurs
• Structure d’un algorithme

2
ALGORITHMIQUE ET DÉFINITIONS
INTRODUCTION

L’algorithmique est la discipline qui étudie les


algorithmes et leurs applications en Informatique.
Le terme algorithme vient du nom du
mathématicien arabe Al-Khawarizmi (820 après
J.C.).
L’algorithmique aide à manipuler et maîtriser la
structure logique d’un programme informatique
(qui donne la solution à un problème donné)
indépendamment des particularités du langage
qui va le coder.
Un programme informatique est le résultat de la
codification de l’algorithme en utilisant un langage
de programmation. 4
INTRODUCTION

Un algorithme peut être représenté en utilisant:


– L’Organigramme: Représentation graphique
avec des symboles (carrés, losanges, etc.)
• Offre une vue d’ensemble de l’algorithme,
mais cette méthode est quasiment
abandonnée aujourd’hui.
– Le pseudo-code: Représentation textuelle
avec une série de conventions (sans se
soucier de la syntaxe du langage de
programmation) .
• Plus pratique pour écrire un algorithme, et
méthode largement utilisée.
5
INTRODUCTION

Quelques thèmes de l’algorithmique


– Tri : Ordonner des éléments de même nature.
– Recherche : Retrouver un élément particulier
dans une structure (tableau, fichier, etc..).
– Traitement de chaînes de caractères:
Manipulation de chaines, recherche d’un
patron (motif) dans une chaine (pattern
matching), cryptographie.
– Mathématiques: Problèmes traitant de
l’arithmétique des entiers, polynômes, etc.

6
DÉFINITIONS

DÉFINITION-1
«Un algorithme est une suite ordonnée
d’instructions qui indique la démarche à suivre
pour résoudre une série de problèmes
équivalents.» [1]
DÉFINITION-2
« Un algorithme est une suite finie,
séquentielle de règles que l’on applique à un
nombre fini de données, permettant de
résoudre des classes de problèmes
semblables.» [Le Petit Robert]
7
DÉFINITIONS

DÉFINITION-3
– «Suite finie de règles à appliquer dans un
ordre déterminé à un nombre fini de données
pour arriver, en un nombre fini d’étapes, à un
certain résultat.» [Encyclopaedia
Universalis]

8
ÉTAPES DE RÉSOLUTION D’UN
PROBLÈME
La résolution d’un problème donné
consiste à:
1. Comprendre l’énoncé du problème.
2. Décomposer le problème en sous-problèmes
plus simple à résoudre (fonction/procédure).
3. Associer à chaque sous-problème une
spécification:
a. Données nécessaires.
b. Données résultantes.
c. Démarche à suivre pour arriver au résultat
en partant des données.
4. Élaborer l’algorithme.
9
CARACTERISTIQUES D’UN ALGO.

Clair
– L’algorithme doit être non ambigu. Autrement
dit, une étape (instruction) ne doit pas être
interprétée de plusieurs façons.
Déterministe
– Un algorithme doit se comporter toujours de
façon prévisible. Autrement dit, pour les
mêmes données en entrée, il produira toujours
le même résultat.

10
CARACTERISTIQUES D’UN ALGO.

Fini
– L’algorithme doit se terminer. Autrement dit, il
ne doit pas boucler indéfiniment (nombre fini
d’étapes).
Efficace
– L’algorithme doit effectuer le traitement
demandé en consommant le minimum de
ressources (espace mémoire et temps de
calcul).

11
OBJETS D’UN ALGORITHME
INTRODUCTION

• Un algorithme manipule des objets qui


représentent des données ou des résultats.
• Un objet peut être soit une constante (valeur non
modifiable) ou une variable (valeur modifiable),
de type simple ou de type structuré.
• Un objet est décrit par 3 attributs:
– Identificateur: Suite de caractères
alphanumériques (sans espace) qui
commence obligatoirement par une lettre.
– Nature: Constante ou variable.
– Type: Définit l’ensemble des valeurs possibles
et les opérateurs applicables.
13
CONSTANTES ET VARIABLES

Constantes
– Une constante est un objet dont la valeur reste
la même tout le long d’un algorithme.
– Une constante est définie par un identificateur
et une valeur. Elle est déclarée comme suit:
Identificateur_constante = valeur
• Exemple
– PI= 3.14
– Par convention, les constantes sont notées en
lettres majuscules.
– La seule opération possible sur une constante
est la consultation.
14
CONSTANTES ET VARIABLES

Variables
– Une variable est un objet dont la valeur peut
changer suite à une action tout le long d’un
algorithme.
– Une variable est définie par un identificateur,
une valeur et un type. Elle est déclarée comme
suit: Identificateur_variable: type_variable
• Exemples
– x: entier
– moyenne: réel (moyenne ←17,5)

15
CONSTANTES ET VARIABLES

Variables (Suite)
– Par convention, les variables sont notées en
lettres minuscules sachant que “_” ou une
lettre majuscule sépare chaque deux mots
consécutifs composant l’identificateur d’une
variable.
• Exemples
– moyenne_etudiant: réel
– moyenneEtudiant: réel
– La valeur d’une variable peut être consultée ou
modifiée.
16
TYPES D’OBJETS

Définition
– Un type est défini par:
• Un nom.
• L’ensemble des valeurs possibles que peut
prendre un objet de ce type.
• Les opérations qui manipulent les objets du
type.
– Exemples de types
• ‘entier’, ‘réel’, ‘booléen’, ‘caractère’, ‘chaîne de
caractères’
– Remarque: On ne peut pas faire un traitement
sur un objet si on ne connait pas son type.
17
TYPES D’OBJETS

Types simples
– Type ‘entier’: Il désigne les valeurs des
nombres entiers relatifs.
• Ensemble de valeurs: …, -2, -1, 0, 1, 2, …
• Opérateurs
– Opérateurs arithmétiques: +, -, *, ** ou ^ pour
la puissance
– Opérateurs de comparaison: <, >, =, <>, ≤ , ≥
– Div: Retourne le quotient pour la division
entière
Exemple: 51 Div 10 → 5
– Mod: Retourne le reste de la division entière
Exemple: 51 Mod 10 → 1
18
TYPES D’OBJETS

Types simples
– Type ‘entier’
• Autres fonctions prédéfinies
– Abs (X): Retourne la valeur absolue de X.
– Carrée (X): Retourne le carré de X.
– Exp (X): Retourne l’exponentielle de X.
– Ln (X): Retourne le logarithme népérien de X.
– Racine (X): Retourne la racine carrée de X, si
X > 0, sinon erreur.
– Les fonctions géométriques: Sin (X), Cos (X),
Arctg (X).

19
TYPES D’OBJETS

Types simples
– Type ‘réel’: Il désigne les valeurs des nombres
nombres réels R.
• Ensemble de valeurs: …, -2.25, -1.5, 0, 1.75,
2.7, …
• Opérateurs
– Opérateurs arithmétiques: +, -, *, /, ** ou ^
pour la puissance
– Opérateurs de comparaison: <, >, =, <>, ≤ , ≥
• Fonctions prédéfinies:
- Tronc (X): Supprime la partie décimale d’une
variable réelle.

20
TYPES D’OBJETS

Types simples
– Type ‘réel’
• Fonctions prédéfinies: (Suite)
– Arrondi (X): Retourne un entier qui est la
valeur du réel X arrondi à la plus proche valeur
entière.
– Abs (X): Retourne la valeur absolue de X.
– Carrée (X): Retourne le carré de X.
– Exp (X): Retourne l’exponentielle de X.
– Ln (X): Retourne le logarithme népérien de X.
– Racine (X): Retourne la racine carrée de X, si
X > 0, sinon erreur.
– Les fonctions géométriques: Sin (X), Cos (X),
Arctg (X). 21
TYPES D’OBJETS

Types simples
– Type ‘booléen’: Il désigne exactement deux
valeurs logiques qui sont des constantes
prédéfinies.
• Ensemble de valeurs: vrai, faux
• Opérateurs relationnels:
– Pour comparer deux variables de type logique,
on utilise les opérateurs = et <>
• Opérateurs logiques
– Négation: Non
– Conjonction: ET
– Disjonction: OU

22
TYPES D’OBJETS

Types simples
– Type ‘booléen’
• Table de vérité

23
TYPES D’OBJETS

Types simples
– Type ‘caractère’: Il désigne les lettres minuscules
et majuscules, les chiffres et les symboles
(caractères spéciaux). Un caractère est délimité par
deux apostrophes ‘&‘, ‘A‘ ...
• Ensemble de valeurs: ‘0’, ‘1’, ‘2’, .., ‘9’, ‘A’, ‘B’, ..
‘Z’, ‘a’, ‘b’, .. ‘z’, ‘ ?’, ‘&’, ‘*’…
• Opérateurs de comparaison: <, >, =, <>, ≤ , ≥
• Fonctions prédéfinies:
– ORD (C): Retourne le code ASCII du caractère
C.
– CHR (X): Retourne le caractère dont le code
ASCII est X.
24
TYPES D’OBJETS
TABLE ASCII

25
TYPES D’OBJETS

Types simples
– Type ‘caractère’
• Fonctions prédéfinies: (Suite)
– SUCC (C): Retourne le successeur de C s’il
existe, sinon une valeur spéciale indiquant que
le successeur n’existe pas.
– PRED (C): Retourne le prédécesseur de C s’il
existe, sinon une valeur spéciale indiquant que
le successeur n’existe pas.
– MAJUS (C): Convertit C en majuscule, si
possible.
– MINUS (C): Convertit C en minuscule, si
possible.
26
TYPES D’OBJETS

Types simples
– Type ‘caractère’
• Exemples
– ‘p’ > ‘e’
– ‘?’ < ‘A’
– SUCC (‘b’) = ‘c’
– PRED (‘M’) = ‘L’
– MAJUS (‘d’) = ‘D’
– MINUS (‘A’) = ‘’a’

27
TYPES D’OBJETS

Types simples
– Type ‘chaine de caractères’: Une chaîne de
caractères est une succession de n caractères
compris entre 0 et 255. “Bonjour” est un exemple
de chaîne de caractères.
• Une chaîne de caractères est déclarée comme
suit: Nom_chaine: chaîne de caractères
• Une chaîne de caractères est délimitée par
deux guillemets “Bonjour” pour éviter de
confondre une chaîne de caractères avec le
nom d’une variable.
• Les guillemets ne font pas partie de la chaîne.

28
TYPES D’OBJETS

Types simples
– Type ‘chaine de caractères’
• Fonctions et procédures standards de
manipulation de chaînes
Fonctions Définition Exemple
Concat (ch1, ch2,.., chn) Retourne la concaténation des Concat(“Bon”, “jour”) =
chaînes ch1, ch2, .., chn. “Bonjour”
Long (ch) Retourne le nombre de Long (“Bonjour”)
caractères de la chaîne.
Sous-chaîne (ch, p, nbc) Retourne une sous-chaîne d’une Sous-chaîne (“Bonjour”, 4, 4) =
longueur nbc à partir de la “jour”
position p dans ch.
Pos (ch1, ch2) Retourne la position de la chaîne Pos (“Bonjour”, “on”) = 2
ch2 dans ch1. Si ch2 n’est pas
dans ch1, alors elle retourne 0.
29
TYPES D’OBJETS

Types simples
– Type ‘chaine de caractères’
• Fonctions et procédures standards de
manipulation de chaînes
Fonctions Définition Exemple
Efface (ch, p, n) Efface n caractères de ch à partir Efface (“Bonjour”, 1, 3) =
de la position p. “jour”
Insère (ch1, ch2, p) Insère ch1 dans ch2 à partir de la Insère (“Bon”, “jour”, 1) = “Bonjour”
position p.
Convch (n, ch) Convertit un nombre n en chaînes Convch (12, ch) retourne comme
de caractères dans la variable ch. résultat:
ch = “12”
Val(ch, n, err) Convertit une chaine ch en une - Val(“2010”,n,err) retourne le
valeur numérique n. 2010 avec err = 0
- Val(“20A6”,n,err) retourne 0
avec err = 3 30
TYPES D’OBJETS

Types dérivés
– Type énuméré: Il définit un ensemble de
valeurs désignées par des identificateurs.
• Exemples
– Meuble (chaise, table, fauteuil, armoire, lit)
– Sexe: (féminin, masculin)
– Jour: (lundi, mardi, mercredi, jeudi,
vendredi, samedi, dimanche)
– Mois: (janvier, février, mars, avril, mai, juin,
juillet, aout, septembre, octobre, novembre,
décembre)
– Etat_Civil: (Célibataire, Marié, Divorcé,
Veuf)
31
TYPES D’OBJETS

Types dérivés
– Type intervalle: Un intervalle est ensemble de
valeurs défini par deux valeurs ayant un type
prédéfini (entier, réel, type énuméré).
• La déclaration d’un intervalle de fait en
indiquant les limites inférieure et supérieure,
séparées par deux points successifs, et se
terminant par le caractère point virgule ‘;’.
• Exemples
– Indice: 1..9;
– Seconde: 0..59;
– Salon: chaise..fauteuil;

32
TYPES D’OBJETS

Types dérivés
– Type tableau (Vecteur): Un tableau est une
structure linéaire qui permet de stocker des
données de même type. Chaque case du
tableau est référencée par un indice indiquant
la position de l’élément contenu dans la case.
La déclaration d’un tableau est comme suit:
nom_type = tableau [intervalle_indices] de type_elem

33
TYPES D’OBJETS

Types dérivés
– Type tableau (Vecteur)
• Exemple: Les moyennes de 8 élèves sont
stockées dans un tableau de taille 8.
– Déclaration du type Tab
Tab = tableau [1..8] de réel
– Déclaration d’un tableau dont le nom est
Moy:
Moy: Tab
– Accès à un élément du tableau à la position
i: Moy [i]

– 34
EXPRESSION ET PRIORITÉ ENTRE
OPÉRATEURS
EXPRESSION

Définiton
– Une expression peut être une valeur, une
variable ou une opération constituée de variables
reliées par des opérateurs (arithmétiques,
logiques, relationnels, manipulation de chaînes).
• Exemples
– 1
– B
– a*2
– a+ 3*b-c
– L'évaluation de l'expression fournit une valeur
unique qui est le résultat de l'opération.

36
EXPRESSION

Définiton
– Remarques
• On ne peut pas additionner un entier et un
caractère. Mais certains langages autorisent
l’utilisation d’un opérateur avec deux opérandes
de types différents. C’est le cas avec les types
arithmétiques (4 + 5.5)
• La signification d’un opérateur peut changer en
fonction du type des opérandes:
– l’opérateur + avec des entiers effectue l’addition,
3+6 vaut 9.
– avec des chaînes de caractères il effectue la
concaténation "bonjour" + " tout le monde" vaut
"bonjour tout le monde".
37
RÉSUMÉ

38
PRIORITÉ DES OPÉRATEURS

Ordre de Priorité
– Les opérateurs suivants sont ordonnés du plus
prioritaire au moins prioritaire dans l’évaluation
d’une expression arithmétique:
1. Parenthèses
2. ‘-’ un aire (exp: -5)
3. Fonctions
4. Opérateur de puissance: ** ou ^
5. Opérateurs: *, /, Div, Mod
6. Opérateurs: +, -
7. Opérateurs relationnels
8. Opérateurs logiques: ET, OU, OUex
39
STRUCTURE D’UN ALGORITHME
SCHÉMA GÉNÉRAL D’UN ALGO.

41
SCHÉMA GÉNÉRAL D’UN ALGO.

Exercice: Écrire un algorithme qui consiste à


calculer l’air S d’un cercle selon la formule:
- S = Pi * R2
Rappel : Pi = 3.14159 et R le rayon du cercle

Méthodologie à suivre

- constantes : Pi = 3.14159
- Variables : Rayon, Surface
- Types : Rayon, Surface : réel
- Expressions et affectation : Surface = Pi * (Rayon)2
- Structures conditionnelles et les boucles : ------
- Opérations d’entrée-sortie : Lire (Rayon),
Écrire (Surface) 42
SCHÉMA GÉNÉRAL D’UN ALGO.

Solution
ALGORITHME Calcul_Aire
CONST
Pi = 3,14159
VAR
Rayon, Surface : réel
DEBUT
Lire(Rayon)
Surface ← Pi * Carre(Rayon)
Écrire(Surface)
FIN

43
EXERCICES
EXERCICES

Application-1: Déterminer la valeur des variables


X et Y après chaque opération.

X = vrai
Y = NON (X)
X = X Et Y
Y = Y Ou X

45
EXERCICES

Application-2: On suppose qu’on a une chaîne de


caractères Ch dont le nombre de caractères est
impair.
Question: Écrire les instructions qui permettent de :
1. Déterminer la longueur de la chaîne.
2. Déterminer le premier caractère de la chaîne.
3. Déterminer le dernier caractère de la chaîne.
4. Déterminer le caractère du milieu.
5. Déterminer la sous chaîne à partir de la position 1
et de longueur 3.
6. Déterminer la sous chaîne résultante en
supprimant le premier et le dernier caractère.
7. Déterminer la sous chaîne en insérant la chaîne
‘‘Isamm’’ dans la chaîne Ch à la position 4.
46
EXERCICES

Application-3: À l’issue de l’algorithme suivant,


quel nombre est stocké dans la variable A ? Dans la
variable B?

47
EXERCICES

Application-3 (Suite): Quel nombre est stocké


dans les variables C, B, A ?

48
EXERCICES

Application-4 : Que fait l’algorithme suivant?

49
EXERCICES

Application-4 (Suite): Que fait l’algorithme


suivant?

50
EXERCICES

Application-5
1. Écrire un algorithme qui convertit des
secondes en heures, minutes et secondes.
2. Écrire un algorithme qui convertit des
heures en jours et heures.

51
RÉFÉRENCES

• [1] http://www.enib.fr/~tisseau/pdf/course/info-S1.pdf

52

Vous aimerez peut-être aussi