Vous êtes sur la page 1sur 22

1

LSI 1

• Structure d’un algorithme


• Notion d’objets
• Les actions algorithmiques simples
• affichage, saisie, affectation
• Les types de données simples
• entier, réel, caractère, logique
2

LSI 1

Structure d’un algorithme

• Un algorithme est composé de deux parties


▫ L’entête : définissant l’ensemble des types personnalisés et/ou objets à utiliser. Elle peut être assimilée à
un ensemble d’outils nécessaires à résoudre le problème en question
▫ Le corps : contenant une suite d’actions qu’on devra effectuer pour arriver, en un temps fini, à un résultat
déterminé à partir d’une situation donnée
3

LSI 1

Notion d’objets
• Définition
▫ Un objet est un "emplacement mémoire" caractérisé par un identificateur et un type, pouvant contenir
une valeur et subir des actions spécifiques

• Identificateur d’objet
▫ L’identificateur d’un objet est son nom, constitué de lettres de l’alphabet, de chiffres et éventuellement du
caractère « _ » et doit commencer par une lettre

• Type d’objet
▫ Un type : définit l’ensemble des valeurs que peut prendre un objet et les actions autorisées sur cet objet
▫ Un type peut être
 Simple / Composé
 Prédéfini / Personnalisé
4

LSI 1

Notion d’objets
• Utilisation d’un objet
▫ Un objet peut être utilisé selon l’une des façons suivantes
 objet en entrée : il représente l’objet dont la valeur est utilisée comme une donnée au problème à résoudre
 objet en sortie : c’est l’objet dont la valeur est la solution du problème
 objet de travail : c’est un outil de travail qui joue le rôle d’intermédiaire entre objets en entrée et objets en
sortie

▫ Exemple : pour l’équation de second degré


 Objet en entrée : a, b et c
 Objet en sortie : x1 et x2
 Objet de travail : Delta
5

LSI 1

Notion d’objets
• Nature d’un objet
▫ Un objet peut être de nature constante ou variable (il ne peut pas être les deux à la fois)
▫ Il est dit variable si sa valeur change au cours d’un même algorithme
▫ Il est dit constante si valeur est fixée tout au long de l'algorithme

• Déclaration d’un objet


▫ C’est la spécification des objets à utiliser au cours d’un même algorithme. Elle se présente dans la partie entête
de l’algorithme
▫ Tout objet utilisé dans un algorithme doit être déclaré une et une seule fois soit dans le bloc VAR soit dans le
bloc CONST
6

LSI 1

Notion d’objets
• Déclaration d'une constante
Identif_cst = valeur
▫ Le type d’une constante est déduit à partir de sa valeur

• Déclaration d'une variable

Identif_vble : type_de_la_variable
• Exemple
▫ Partie déclarative d’un algorithme qui permet le calcul de la moyenne d’un étudiant pour une matière
CONST
CoefDevoir = 0,4
CoefExamen = 0,6
VAR
NoteDevoir : réel
NoteExamen : réel
7

LSI 1

Les actions algorithmiques simples


• L’affichage
▫ Définition
 Cette action permet de communiquer un message ou le contenu d’une ou de plusieurs
variables à l’utilisateur sur écran (ou imprimante)

▫ Syntaxe
Ecrire (ARG1, ARG2, … , ARGn)

Où ARGi peut être :


 l’identificateur d’un objet (constante ou variable)
 une expression arithmétique ou logique
 un message
8

LSI 1

Les actions algorithmiques simples


• L’affichage
▫ Exemple : On suppose qu’on dispose de deux variables A et B contenant respectivement les
valeurs 1 et 2,5

Instruction Affichage à l’écran


Ecrire (Fss ) Fss
Ecrire (A) 1
Ecrire ( A = , A) A=1
Ecrire (La somme de , A , et de , B,  La somme de 1 et de 2,5 est égale à 3,5
est égale à , A+ B)
9

LSI 1

Les actions algorithmiques simples


• La saisie
▫ Définition
 Cette action permet de placer dans la case mémoire correspondante à une variable une
valeur communiquée par l’utilisateur à l’ordinateur. L’exécution de cette action implique
l'arrêt momentané de l'exécution de l'algorithme en attente d’une valeur donnée par
l'utilisateur

▫ Syntaxe
Lire (ARG1, ARG2, … , ARGn)
▫ Exemple
 Lire (A)
 Lire(A,B,C)
10

LSI 1

Les actions algorithmiques simples


• L’affectation
▫ Définition
 Cette action permet de mettre une valeur dans une case mémoire relative à une variable. La valeur peut être le
contenu d’une autre variable, le contenu d'une constante, une valeur donnée, ou le résultat d'une expression
arithmétique ou logique

▫ Syntaxe
NomVariable  Expression

 NomVariable (membre gauche de l’affectation) est le nom de la variable cible qui va recevoir la valeur
 Expression (membre droit de l’affectation) peut être
 une valeur,
 un identificateur
 ou une expression arithmétique ou logique.

▫ Dans une opération d’affectation, il s’agit d’évaluer le membre droit, et puis ranger le résultat de l’évaluation
dans le membre gauche
11

LSI 1

Les actions algorithmiques simples


• L’affectation
▫ Au moment de l’affectation, le type du résultat de l’expression (membre droit de l’affectation) doit être le
même que celui de la variable cible (membre gauche de l’affectation) ou de type compatible

▫ L’affectation de valeurs à une variable peut être effectuée plusieurs fois. La valeur de la variable sera alors
modifiée à chaque affectation, et la valeur initiale sera perdue. On aura enfin, la dernière valeur dans la variable
affectée

▫ Une constante ne peut jamais figurer à gauche d’une affectation puisqu'on n'a pas le droit de changer sa valeur

▫ Lorsqu’une variable existe en partie droite d’une action d’affectation, c’est que l’on suppose qu’elle contient une
valeur. Cette valeur devra lui avoir été affectée auparavant (lecture ou affectation), autrement, on dira que la
valeur est indéfinie et le résultat de l’affectation sera aussi indéfini
12

LSI 1

Les actions algorithmiques simples


• L’affectation
▫ Exemples

A3
BA*5
AB–2
CA
CB+6
BB+1

Attention : il est interdit d’écrire :

A+13 : A+1 n’est pas un identificateur de variable


AB : sans que B n’ait déjà une valeur (indéfinie)
13

LSI 1

Les actions algorithmiques simples


• Application
▫ Ecrire l’algorithme permettant de permuter deux entiers A et B
 en utilisant une variable C supplémentaire
 sans utilisation de variable supplémentaire Solution 1 Solution 2
14

LSI 1

Les types de données simples


• Le type entier
▫ Définition
 Ce type est associé aux objets prenant leurs valeurs dans un intervalle d'entiers relatifs fini, avec borne inférieure et borne supérieure prédéfinies,
inclus dans l'ensemble (Z)
 Un objet de type entier pourra donc être positif, négatif ou nul

▫ Syntaxe de la déclaration
identificateur1, identificateur2, … , identificateurN : Entier
▫ Opérations de manipulation
 Les actions algorithmiques simples (saisie, affichage et affectation)
 Les opérations classiques : la division réelle (/), l’addition (+), la soustraction (-) et la multiplication (*)
 La puissance, notée « ** », telle que « N**P » donne NP
 La division entière, notée « DIV », telle que « N DIV P » donne la partie entière du résultat de la division de N par P
 Le modulo, noté « MOD », tel que « N MOD P » donne le reste de la division entière de N par P
 Les opérateurs de comparaison (<, <=, >, >=, <>, =)
15

LSI 1

Les types de données simples


Exemple
Ecrire un algorithme qui permet de lire un nombre entier (supposé de 3 chiffres) et d'afficher ses chiffres d'unités, de dizaines et
de centaines

Solution

ALGORITHME Décomposition
VAR
N, U, D, C : entier
DEBUT
Ecrire ("Donnez un entier de trois chiffres :")
Lire (N)
C ← N DIV 100
D ← (N MOD 100) DIV 10
U ← N MOD 10
Ecrire (" Le chiffre d'unités est ", U)
Ecrire (" Le chiffre de dizaines est ", D)
Ecrire (" Le chiffre de centaines est ", C)
FIN
16

LSI 1

Les types de données simples


• Le type réel
▫ Définition
 Ce type correspond aux objets qui prennent leurs valeurs dans un ensemble fini de nombres réels,
avec borne inférieure et borne supérieure prédéfinies, inclus dans l'ensemble (IR)

▫ Syntaxe de la déclaration

identificateur1, identificateur2, … , identificateurN : réel

▫ Opérations de manipulation
 Les opérations autorisés sur ce type sont les mêmes que sur le type "Entier" à l’exception des
opérateurs MOD et DIV
17

LSI 1

Les types de données simples


• Le type caractère
▫ Définition
 Ce type permet de définir les objets représentant un élément pris dans l’ensemble des caractères (lettres majuscules, minuscu les,
caractères de ponctuation, le blanc, chiffres, etc.)
▫ Syntaxe de la déclaration
identificateur1, identificateur2, … , identificateurN : car
▫ Opérations de manipulation
 Les actions algorithmiques simples (Saisie, affichage et affectation)
 ORD : de manière que ORD( C ) donne le code ASCII (ordre dans la table ASCII) du caractère existant dans l’objet C. Le résultat est de type entier
 CHR : de manière que CHR( N ) donne le caractère correspondant au code ASCII du contenu de l'objet N (N étant de type entier). Le résultat est
de type caractère

 Les opérateurs de comparaison (<, <=, > ,>=, =,<>) : La comparaison de deux caractères revient à comparer leurs codes ASCII
respectifs
 SUIVANT : de manière que SUIVANT(C) donne le caractère qui suit celui existant dans l’objet C
 PRECEDENT : de manière que PRECEDENT(C)donne le caractère qui précède celui existant dans l’objet C
18

LSI 1

Les types de données simples


Application
▫ Ecrire un algorithme qui permet de saisir un caractère et d’afficher son suivant et sont précédent (sans utilisation des fonctions
SUIVANT et PRECEDENT)

Solution

ALGORITHME Prec_Suiv
VAR
C, P, S: car
DEBUT
Ecrire ("Donnez un caractère :")
Lire (C)
S  CHR ( ORD(C) +1)
P  CHR ( ORD(C) -1)
Ecrire (" Le caractère suivant est ", S)
Ecrire (" Le caractère précédent est ", P)
FIN
19

LSI 1

Les types de données simples


• Le type Logique
▫ Définition
 Il s’agit d’un type associé à un objet prenant ses valeurs dans l’ensemble Vrai, Faux
▫ Syntaxe de la déclaration
identificateur1, identificateur2, … , identificateurN : logique
▫ Opérations de manipulation
 La négation (notée « NON » ou « »)
 L’intersection : (notée « ET » ou « . » ou «  »)
 L’union : (notée « OU » ou « + » ou «  »)

A A ET Vrai Faux OU Vrai Faux


Vrai Faux Vrai Vrai Faux Vrai Vrai Vrai
Faux Vrai Faux Faux Faux Faux Vrai Faux
20

LSI 1

Les types de données simples


• Le type Logique
▫ Propriétés des opérateurs logiques
 Commutativité du ET et OU
 A ET B = B ET A
 A OU B = B OU A

 Associativité du ET et OU
 A ET ( B ET C) = ( A ET B) ET C
 A OU (B OU C) = ( A OU B ) OU C

 Distributivité
 A ET ( B OU C )  ( A ET B ) OU (A ET C)
 A OU ( B ET C )  ( A OU B ) ET (A OU C)

 Théorème de DE MORGAN
  ( A OU B ) =  A ET  B
  ( A ET B ) =  A OU  B
21

LSI 1

Les types de données simples


• Le type Logique

▫ Théorèmes fondamentaux

 Vrai ou A = Vrai

 Faux OU A = A
 A OU  A = Vrai

 A OU A = A

 Vrai ET A = A
 Faux et A = Faux
 A ET  A = Faux
 A ET A = A
22

LSI 1

Ordre de priorité des opérateurs


• A chaque catégorie d'opérateurs est associé un ordre de priorité
• L'évaluation d'une expression se fait en respectant l'ordre de priorité croissant des
opérateurs
• Si les parenthèses n’existent pas dans une expression à évaluer, et les opérateurs ont le
même ordre de priorité, l’évaluation doit se faire alors de gauche à droite
Priorité Catégories d’opérateurs Opérateurs
1 Les parenthèses (,)
2 Les opérateurs "Unaires" +,-
3 Les opérateurs multiplicatifs * , / , MOD , DIV
4 Les opérateurs additifs +,-
5 Les opérateurs comparatifs = , <> , < , > , <= , >=

6 La négation logique NON


7 L'intersection ET
8 L'union OU