Cours1 Asd
Cours1 Asd
Cours1 Asd
données I
Cours 1:
2021 / 2022
Semestre I
1
PLAN
1. INTRODUCTION
1.1 Qu’est ce qu’un algorithme?
1.2 Caractéristiques d’un algorithme
1.3 Etapes de résolution d’un problème
1.4 Algorithme et programmation
2. COMPOSITION D’UN ALGORITHME
2.1 Structure d’un algorithme
2.2 Objets d’un algorithme
2.3 Expression et opérateurs
2.4 Actions élémentaires
3. APPLICATIONS
2
1.INTRODUCTION
3
Avez-vous déjà ouvert un livre de recettes de cuisine ?
ou déjà indiqué un chemin à un touriste?
4
1.1Qu’est ce qu’un algorithme?
5
1.1 Qu’est ce qu’un algorithme?
La maîtrise de l’algorithmique requiert des qualités, très complémentaires :
7
1.3 Etapes de résolution d’un problème
La résolution d un problème donné consiste à:
1. Comprendre l’énoncé du problème.
2. Decomposer le problème en sous-problèmes plus simples à
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
8
1.4 Algorithme et programmation
9
1.4 Algorithme et programmation
Un programme (code) : la réalisation (l’implémentation) d’un
algorithme au moyen d’un langage donné (sur une architecture
donnée). Il s’agit de la mise en œuvre du principe.
Informations Résultats mis
du problème en forme
machine
Obtention
Données de résultats
structurées
Traitement
10
1.4 Algorithme et programmation
11
2.COMPOSITION D’UN ALGORITHME
12
2.1 Structure d’un algorithme
Schéma général d’un algorithme :
13
2.1 Structure d’un algorithme
Algorithme NombreAucarre
14
2.2 Objets d’un algorithme
15
2.2 Objets d’un algorithme
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
const PI= 3.14
MAX= 100
•Par convention, les constantes sont notées en lettres majuscules.
•La déclaration des constantes permet de réserver de l’espace
mémoire pour stocker des données dont la valeur est fixée pour
tout l’algorithme
•La seule opération possible sur une constante est la consultation. 16
2.2 Objets d’un algorithme
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
Var x: entier
moyenne: réel
•La déclaration des variables permet de réserver de l’espace
mémoire pour stocker provisoirement des données.
17
2.2 Objets d’un algorithme
Variables
•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
Var moyenne_etudiant: réel
moyenneEtudiant: réel
18
2.2 Objets d’un algorithme
Type de variables
•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.
•Il existe des types simples et des types dérivés.
Exemples de types simples: entier, réel, booléen,
caractère, chaîne de caractères.
Exemples de types dérivés: énuméré, intervalle,
tableau.
Remarque: On ne peut pas faire un traitement sur un
objet si on ne connait pas son type.
19
2.2 Objets d’un algorithme
Types simples
Le type entier
• Il désigne les valeurs des nombres entiers relatifs Z.
•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: 13 Div 5 = 2
– Mod: Retourne le reste de la division entière. Exemple: 13 Mod 5 = 3
• 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).
20
2.2 Objets d’un algorithme
Types simples
Le type réel
•Il désigne les valeurs des 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.
– 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).
– Alea( ) permet de générer un nombre choisi au hasard (entre 0 et 1). 21
2.2 Objets d’un algorithme
Types simples
Le type caractère
•Dans une variable de type caractère, on stocke des :
Lettres (minuscules et majuscules)
caractères spéciaux (‘*’, ‘£’, ‘%’, ...),
Espaces: ‘ ‘
Chiffres: ‘0’... ‘9’
•Un caractère est toujours noté entre apostrophes.
Par exemple: ‘A’ , ‘5’, ‘b’ …
•Les opérateurs définis sur les données de type caractère sont : =, ≠, <,
<=, >, >=.
La comparaison entre les caractères se fait selon leur code ASCII:
‘ ‘ < ‘0’ < ‘1’ < ‘A’ < ‘a’ < ‘{‘
22
2.2 Objets d’un algorithme
Types simples
Le type caractère: Table des codes ASCII
23
2.2 Objets d’un algorithme
Types simples
Le type caractère
•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.
– 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.
Exemples
– ‘p’ > ‘e’ – ‘?’ < ‘A’
– SUCC (‘b’) = ‘c’ – PRED (‘M’) = ‘L’
– MAJUS (‘d’) = ‘D’ – MINUS (‘A’) = ’a’
24
2.2 Objets d’un algorithme
Types simples
Le type chaîne de caractères
•Une chaîne de caractères est un groupe de caractères (y compris un groupe de
un, ou de zéro caractère).
•Une chaine de caractère se termine par le caractère ‘\0’.
•Elle est toujours notée entre guillemets pour éviter de confondre une chaîne de
caractères avec le nom d’une variable.
Par exemple: " chaîne de caractères ", " Bonjour " .
•Une chaine de caractère est déclarée comme suit:
Nom_chaine: chaîne de caractères
Exemple:
Var
CH: chaîne de caractères
25
2.2 Objets d’un algorithme
Types simples
Le type chaîne de caractères:
•Fonctions prédéfinies de manipulation de chaînes:
26
2.2 Objets d’un algorithme
Types simples
Le type chaîne de caractères:
•Fonctions prédéfinies de manipulation de chaînes:
27
2.2 Objets d’un algorithme
Types simples
Le type booléen
•Il désigne exactement deux valeurs logiques qui sont des constantes prédéfinies.
•Une variable logique ne peut prendre que les valeurs VRAI (1) ou FAUX (0)
•Elle intervient dans l’évaluation d’une condition.
•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
28
2.2 Objets d’un algorithme
Types dérivés
Le type énuméré
•Il définit un ensemble de valeurs désignées par des identificateurs.
Exemples
– 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)
• La déclaration d’un type énuméré est comme suit:
Type
nom_type = (constante1, ….,constante n)
Var
nom_variable: nom_type
Exemple de déclaration
Type
Jour= (lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche)
Var
J: Jour 29
2.2 Objets d’un algorithme
Types dérivés
Le type intervalle
•Un intervalle est un 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 se fait dans la partie Type 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
Type
Indice: 1..9;
Seconde: 0..59;
Salon: chaise..fauteuil;
30
2.2 Objets d’un algorithme
Types dérivés
Le type tableau
•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_elems
Exemple:
Les moyennes de 8 élèves sont stockées dans un tableau de taille 8.
– Déclaration dans la partie Type du type Tab
Type Tab = tableau [1..8] de réel
– Déclaration dans le champ des variables d’un tableau dont le nom est
Moy:
Var Moy: Tab
– Accès à un élément du tableau à la position i: Moy [i]
31
2.3 Expressions et opérateurs
Définition:
•Une expression est une combinaison de variables et/ou de
constantes reliées par des opérateurs (arithmétiques (+, -, *, ...),
logiques (NON, ET, OU, …), relationnels (<, >, =, <>…) ,
manipulation de chaînes (concat, long, … ).
•Elle exprime un calcul (expression arithmétique) ou une relation
(expression logique).
Exemples
– a*2
– a+ 3*b-c
– (x < y) OU (z > m)
Priorité Opérateurs
1 ()
2 - Signe négatif (unaire)
3 ^
4 *, /, Div, Mod
5 +, -
34
2.3 Expressions et opérateurs
Expressions logiques
•Les expressions logiques sont des combinaisons entre des variables et des
constantes à l’aide d’opérateurs relationnels (=, <, ...) et/ou des combinaisons
entre les variables et des constantes logiques à l’aide d’opérateurs logiques
(NON, ET, OU).
•L’application des opérateurs logiques se fait selon la table de vérité suivante:
A B NON (A) A ET B A OU B
Vrai Vrai Faux Vrai Vrai
Vrai faux Faux Faux Vrai
Faux Vrai Vrai Faux Vrai
Faux faux vrai faux faux
35
2.3 Expressions et opérateurs
Expressions logiques
L’ordre de priorité des opérateurs relationnels et logiques est le suivant:
Priorité Opérateurs
Priorité Opérateurs
1 >
1 NON
2 >=
2 ET
3 <
4 <= 3 OU
5 =
6 ≠
Remarque:
En absence de parenthèses, les operateurs relationnels sont plus
prioritaires que les opérateurs logiques.
Les parenthèses sont toujours de priorité majeure.
36
2.4 Actions élémentaires
37
2.4 Actions élémentaires
Affectation
L’action d’affectation consiste à attribuer une valeur donnée à une
variable, en utilisant le symbole ‘←’.
Syntaxe: Variable1 ← Variable2 | Expression | Constante
• Variable1 est appelée variable réceptrice et Variable2 est appelée
variable émettrice.
•Il faut que l’expression située à droite de la flèche (Variable émettrice)
soit du même type ou de type compatible que la variable à gauche de la
flèche (la variable réceptrice).
Un type est dit compatible s’il est inclus dans le type de Variable1.
– Exemple: REEL ← ENTIER
Exemples
• A ← B; (Affectation d’une variable)
• A ← 3.14; (Affectation d’une constante)
• A ← X * Y; (Affectation d’une expression)
38
2.4 Actions élémentaires
Affectation
Comparons maintenant les deux algorithmes suivants :
Exemple n°1
Début
Riri ← "Loulou"
Fifi ← "Riri"
Fin
Exemple n°2
Début
Riri ← "Loulou"
Fifi ← Riri
Fin
Que contient la variable Fifi dans chacun des deux exemples?
39
2.4 Actions élémentaires
Affectation
Règles à respecter
• Toute variable utilisée dans un algorithme doit être déclarée au
début de l’algorithme, une et une seule fois.
(Si X Y, alors X et Y doivent être déclaré).
• L’affectation ne vide (efface) pas la variable émettrice (à droite du
symbole ←) de sa valeur.
Par contre, le contenu de la variable réceptrice (à gauche du
symbole ←) est écrasé et remplacé par la valeur de la variable
émettrice.
40
2.4 Actions élémentaires
Affectation
Règles à respecter
• La variable émettrice doit obligatoirement contenir une valeur, qui
lui a été affectée auparavant (par initialisation ou saisie), autrement
la valeur est indéfinie, et le résultat de l’affectation ne sera pas
défini.
• L’affectation de valeur à une variable peut être effectuée autant de
fois au cours d’un algorithme. La valeur de la variable sera alors
modifiée après chaque opération d’affectation.
41
2.4 Actions élémentaires
Action d’entrée/Sortie :
Affichage : Ecrire
•L’action Écrire permet de communiquer à l’utilisateur un résultat (valeur,
contenu d’une variable, message) en l’affichant sur un périphérique de sortie
(écran ou imprimante).
•Instruction permettant de visualiser les informations placées en mémoire.
• Syntaxe:
Écrire(paramètre_1, paramètre_2, .. Paramètre_n)
Paramètre: variable | expression | constante
Constante: message sous forme de chaînes de caractères.
•Exemples:
- écrire(val, "est différent de 0")
- écrire (x)
- écrire (" Bonjour")
- écrire ("La moyenne est: ", MOY)
42
2.4 Actions élémentaires
Action d’entrée/Sortie :
Saisie des données: Lire
•L’action Lire permet d’acquérir des données, à partir d’un
périphérique d’entrée (clavier) saisies par l’utilisateur.
•Instruction permettant de placer en mémoire les informations
fournies par l’utilisateur.
•L’action de lecture consiste à donner une valeur à une variable.
•La donnée à saisir doit avoir le même type que celui de la variable
réceptrice (ou de type compatible).
• Syntaxe:
Lire(variable_1, variable_2, .. Variable_n)
• Exemple:
- Lire (A, B) <-> Lire(A); Lire(B);
- Lire (nom)
43
3.APPLICATIONS
44
Applications
Application-1: Quel nombre est stocké dans les variables A, B, C ?
45
Applications
Application-2: Écrire un algorithme qui permet de déclarer deux variables
entières A et B, de saisir deux valeurs pour A et B, puis permuter les valeurs se
trouvant dans les deux variables et enfin afficher le contenu final des deux
variables.
ALGORITHME Permutation
Var
A, B, Aux : entier
Début
écrire (‘’donner la valeur initiale de la variable A ’’)
lire (A)
écrire (‘’donner la valeur initiale de la variable B ’’)
lire (B)
Aux ← A
A←B
B ← Aux
écrire (‘’la valeur finale de la variable A est:’’, A)
écrire (‘’la valeur finale de la variable B est:’’, B)
FIN 46
Applications
Application-3:Écrire un algorithme qui consiste à calculer l’aire S d’un cercle
selon la formule S = Pi * R2.
• Rappel : Pi = 3.14159 et R le rayon du cercle
ALGORITHME Calcul_Aire
CONST
PI = 3.14159
VAR
Rayon, Surface : réel
DEBUT
Écrire(‘’Donner le rayon du cercle’’)
Lire(Rayon)
Surface ← PI * (Rayon * Rayon)
Écrire(’’l’aire du cercle est:’’, Surface)
FIN
47
FIN
48