Vous êtes sur la page 1sur 68

Chapitre 2 :

Notions de base
Objectifs du chapitre :

 Connaître la structure générale d’un


algorithmique.
 Comprendre les notions de base telles que
la notion de variable, de constante et de
type

Cours Algoriyhmique et Programmation 1 2


I- Structure générale d’un Algorithme (1)

 Dans un algorithme, on trouve deux parties essentielles :


 Une partie déclarative contenant tous les objets qui seront
impliqués par les différentes actions de l’algorithme
(constantes, types, variables, etc.).
 Une partie réservée aux actions (ou instructions en
programmation), qui est délimitée par les deux mots-clés
Début et Fin.

 En outre, un algorithme est caractérisé par son nom


qui doit être significatif.
Cours Algoriyhmique et Programmation 1 3
I- Structure générale d’un Algorithme (2)

Partie déclarative

Partie réservée aux actions

Cours Algoriyhmique et Programmation 1 4


II- Le nom de l’algorithme :
 Le nom d’un algorithme et d’une manière générale le nom
d’un objet impliqué dans les actions de l’algorithme, doit
respecter les règles d’un identificateur qui disent :
 Un identificateur doit être significatif.
 Un identificateur doit commencer obligatoirement par
une lettre.
 Un identificateur ne doit pas comporter le caractère
« espace ».
 Un identificateur ne doit pas comporter de caractères
spéciaux autre que le tiret de soulignement (_).
 Un identificateur doit être unique dans un algorithme.
Cours Algoriyhmique et Programmation 1 5
II- Le nom de l’algorithme :
 Exemples d’identificateurs valides:
x, A, _TRUC, Var1, VAR2, X1, Y, FICHE_ETUDIANT,…

 Exemples d’identificateurs non valides:


3, VAR-1, X$, X@Y,...

Cours Algoriyhmique et Programmation 1 6


III- Notion de variable :
 On rappelle que l’exécution d’un programme doit impliquer les
données qui sont liées à ce programme.
 Lors de l’exécution, ces données se trouvent au niveau de la
mémoire centrale et chacune occupe une case mémoire.
 Une variable est donc un espace mémoire qui va contenir des
données au fur et à mesure que le programme avance dans son
exécution.
 Cependant, à un instant donné, une variable ne peut contenir
qu’une seule donnée (valeur).
 Comme son nom l'indique une variable est quelque chose qui varie,
elle peut être considérée comme une boîte dans laquelle on met
des données que l'on peut lire ou écrire.
 Initialement, une variable a une valeur indéterminée jusqu’à ce que
l’on lui
Cours Algoriyhmique affecte
et Programmation 1 une valeur 7
 Variable : Lire ou Ecrire

Cours Algoriyhmique et Programmation 1 8


Remarques:

 Une variable est caractérisée par son nom qui doit être
significatif et respecter les règles d’un identificateur.
 Une variable est également identifiée par son adresse en
mémoire centrale ; cette adresse sera intéressante à un
stade avancé de l’algorithmique (les pointeurs).
 Une variable est caractérisée par son contenu : les
valeurs qu’elle peut prendre lors de l’exécution d’un
programme.

Cours Algoriyhmique et Programmation 1 9


Remarques: (Suite 1)

 Une variable ne peut contenir qu'une seule chose à la fois.


Si vous mettez une seconde donnée dans la variable, la
précédente est effacée.
 Une variable possède un type c’est à dire l’ensemble
contenant toutes les valeurs possibles qu’elle peut
prendre.

Cours Algoriyhmique et Programmation 1 10


Remarques: (Suite 2)

 Attention, il faut distinguer entre variable mathématique


et variable informatique : en mathématiques, la variable
est l’inconnue alors qu’en informatique tout objet qu’on
utilise dans le programme est une variable.

 Exemple : Soit à résoudre l’équation ax+b=0 avec x réel


 Mathématiquement parlant : x est la variable et (a,b) les
coefficients.
 Informatiquement parlant : a, b, x sont des variables.

Cours Algoriyhmique et Programmation 1 11


IV- Notion de constante :

 Une constante est une variable dont l'état reste


inchangé tout le long d'un algorithme. Seule la
consultation est autorisée.
 Une constante est définie par:
 son nom
 sa valeur
 Exemples:
PI = 3.14
ANNEE = 2020

Cours Algoriyhmique et Programmation 1 12


Remarque

 Le nom d’une constante doit respecter les règles


de constitution d’un identificateur.
 Ainsi, on ne peut pas déclarer π = 3.14 comme
constante car le symbole π est un caractère
spécial non permis lors de la définition d’un
identificateur ; c’est pour cette raison qu’on
utilise PI=3.14

Cours Algoriyhmique et Programmation 1 13


V- Notion de type :
 Une variable utilisée dans un algorithme ne peut prendre
qu’un ensemble de valeurs connues à l’avance ; toute
variable possède un domaine de définition.
 En terme informatique, ce domaine est appelé le Type de
la variable.
 Un type est alors caractérisé par :
 son nom
 ses valeurs (intervalle de valeurs)
 L’ensemble des opérations qui peuvent s’effectuer sur des
variables ayant ce type.
Cours Algoriyhmique et Programmation 1 14
Remarque

 On distingue deux familles de types :


 les types simples
 Les types composés ou complexes

Cours Algoriyhmique et Programmation 1 15


Remarque

 les types simples : ce sont des types qui sont supportés


et reconnus par la majorité des langages de
programmation.
 Lors de l’écriture de l’algorithme ou du programme, ce
n’est pas la peine de les déclarer dans la partie
déclarative réservée aux types.
 Une variable déclarée de type simple ne peut contenir, à un
instant donné, qu’une seule valeur parmi l’ensemble de
valeurs du type.

Cours Algoriyhmique et Programmation 1 16


Remarque

 Les types composés ou complexes : ce sont des types qui


sont construits à partir d’autres types simples ou
complexes et qu’il faut, la plus part du temps, déclarer
dans la partie réservée aux types : tableaux, chaînes de
caractères, enregistrements, etc.
 Une variable de type composé peut prendre plusieurs
valeurs à la fois (variable de type tableau par exemple)

Cours Algoriyhmique et Programmation 1 17


Les Types
Objectifs du chapitre :

 Connaître le domaine de définition des différents


types simples.

 Comprendre et manipuler les opérations de base


sur chaque type.

Cours Algorithmique et Programmation 1 19


I- Introduction :

 On a vu dans le chapitre précédent que toute variable


possède un type et on a distingué deux familles de types :
les types simples et les types composés.
 Dans le présent chapitre, on va passer en revue les types
simples qui sont au nombre de quatre :
 Le Type Entier.
 Le Type Réel.
 Le Type Caractère.
 Le Type Booléen ou Logique.
Cours Algorithmique et Programmation 1 20
II- Le Type Entier :

Cours Algorithmique et Programmation 1 21


II.1- Définition :

 Le type Entier comprend un sous ensemble fini de


nombres entiers, il représente une restriction de
l’intervalle mathématique des entiers relatifs Z.
 En effet, on ne peut pas représenter l’intervalle

]-∞ , +∞[
 On représente alors un intervalle beaucoup plus restreint

Cours Algorithmique et Programmation 1 22


 Plage de valeurs:
Z
-∞ [ … -1 0 1 … ] +∞
Min Max

 La taille de l’ensemble (valeurs de Min et Max) varie en


fonction des performances techniques de la machine et
celles du langage de programmation utilisé.
 En langage C :
Min = -32768
Max = +32767

Cours Algorithmique et Programmation 1 23


Les types entiers en C

nombre
définition description domaine min domaine max
d'octets

char caractère -128 127 1

short entier court -32768 32767 2

32767 2 ou
int entier standard -32768
217483647 4
-2147483648

long entier long -9223372036854775808 8


9223372036854775807
Cours Algorithmique et Programmation 1 24
En C, on peut rajouter le préfixe unsigned à la définition d'un
type de variables entières, les domaines des variables sont
déplacés comme suit:
domaine nombre
définition description domaine max
min d'octets

unsigned char caractère 0 255 1

unsigned short entier court 0 65535 2

entier 2 ou
unsigned int 0 65535
standard 4
0 4294967295

unsigned long entier long 0


18446744073709551615 8

Cours Algorithmique et Programmation 1 25


II.2- Déclaration algorithmique :
Variable
Nomvar : Entier

 Nomvar étant le nom de la variable qui sera utilisée dans


l’algorithme

 Si on a plusieurs variables en même temps, ce n’est pas la


peine de les déclarer séparément, on peut les regrouper en les
séparant par une virgule:

Variable
Nomvar1, Nomvar2, ……., NomvarN : Entier
Cours Algorithmique et Programmation 1 26
Partie où
Partie déclarative
déclarer les
variables

Cours Algorithmique et Programmation 1 27


II.3- Les opérations de base sur le type
Entier :
Opération Symbole Exemple

Addition + A=15, B=7 ; A+B renvoie 22

Soustraction - A=15, B=7 ; A-B renvoie –8

Multiplication * A=15, B=7 ; A* B renvoie 105

Division (entière) DIV A=15, B=7 ; A DIV B renvoie 2

Reste de la Division MOD A=15, B=7 ; A MOD B renvoie 1


entière

Cours Algorithmique et Programmation 1 28


III- Le Type Réel :

Cours Algorithmique et Programmation 1 29


III.1- Définition :

 Le type Réel comprend un sous ensemble fini de


nombres réels, dont la taille varie en fonction des
performances techniques de la machine et celles
du langage de programmation utilisé.
 Le type réel représente une restriction de
l’intervalle mathématique des nombre réels R.

Cours Algorithmique et Programmation 1 30


 Plage de valeurs:

-∞ [ … -1.0.. -0.00 0 0.0.. 1.0… ] +∞


Min Max

 La taille de l’ensemble (valeurs de Min et Max) varie en


fonction des performances techniques de la machine et
celles du langage de programmation utilisé.

Cours Algorithmique et Programmation 1 31


III.2- Déclaration algorithmique :
Variable
Nomvar : Réel

 Nomvar étant le nom de la variable qui sera utilisée dans


l’algorithme

 Si on a plusieurs variables en même temps, ce n’est pas la


peine de les déclarer séparément, on peut les regrouper en les
séparant par une virgule:

Variable
Nomvar1, Nomvar2, ……., NomvarN : Réel

Cours Algorithmique et Programmation 1 32


Types réels en C

Type de donnée Signification Taille (en octets) Plage de valeurs acceptée


-38
float Flottant (réel) 4 3.4*10 à 3.4*1038
-308
double Flottant double 8 1.7*10 à 1.7*10308
-4932 4932
long double Flottant double 10 3.4*10 à 3.4*10
long

Cours Algorithmique et Programmation 1 33


III.3- Les opérations de base sur le
type Réel :
Opération Symbole Exemple
Addition + A=5.5, B=7.0 ; A+B renvoie 12.5
Soustraction - A=5.5, B=7.0 ; A-B renvoie –2.5
Multiplication * A=5.5, B=7.0 ; A* B renvoie 38.5
Division normale / A=5.5, B=7.0 ; A / B renvoie 0.79
Fonctions prédéfinies
Carré(X) Retourne le carré de X
RacineCarré(x) Retourne la racine carré de X si X>=0, sinon elle
retourne erreur
Cours Algorithmique et Programmation 1 34
IV- Le Type Caractère :

Cours Algorithmique et Programmation 1 35


IV.1- Définition :

 Le type Caractère est ensemble de caractères comportant :


 Les 26 lettres alphabétiques en majuscules (‘A’ jusqu’à ‘Z’)
 Les 26 lettres alphabétiques en minuscules (‘a’ jusqu’à ‘z’)
 Les 10 chiffres arabes (‘0’ jusqu’à ‘9’).
 Et des caractères spéciaux.

 Remarque : Chaque valeur d’un caractère est délimitée par


deux apostrophes ‘’.

Exemples : ‘A’, ‘a’, ‘+’, ‘1’….


Cours Algorithmique et Programmation 1 36
IV.2- Représentation algorithmique :
 Le type Caractère étant reconnu automatiquement, il n’est pas
nécessaire de le déclarer dans la partie des types. Il suffit d’indiquer
devant le nom de la variable son type.
Variable
Nomvar: Caractère
 Nomvar étant le nom de la variable qui sera utilisé dans l’algorithme

 Si on a plusieurs variables en même temps, ce n’est pas la peine de


les déclarer séparément, on peut les regrouper en les séparant par
une virgule:

Variable
Nomvar1, Nomvar2, ……., NomvarN : Caractère

Cours Algorithmique et Programmation 1 37


IV.3- Ordre d’apparition des éléments du
type Caractère :

 Tous les caractères sont ordonnés selon leurs codes ASCII


 Exemple d’apparition des différentes valeurs du type
caractère :
…‘0’<’1’<’2’<’3’<’4’<’5’<’6’<’7’<’8’<’9’…<’A’<’B’…..<’Y’<’Z’…<’a’<’b’<…....<’y’<’z…

Cours Algorithmique et Programmation 1 38


IV.4- Les Opérations de base sur le type
Caractère :

 Sur le type Caractère, on distingue deux catégories


d’opérations :
 Les opérations propres aux caractères
 Les opérations algorithmiques telles que la lecture, l’écriture,
etc ; elles feront l’objet du chapitre suivant.

Opération Symbole Exemple


Suivant Suiv Si A=’C’ alors Suiv(A) renvoie ‘D’
Précédent Prec Si A=’C’ alors Prec(A) renvoie ‘B’

Cours Algorithmique et Programmation 1 39


IV.4- Les Opérations de base sur le type
Caractère :

 Il existe aussi dans tous les langages de programmation


une fonction qui renvoie le caractère correspondant à un
code Ascii donné (fonction Chr), et l’inverse, qui fournit le
code Ascii d'un caractère (fonction Asc) .

 Exemple:
Asc(‘N’) vaut 78
Chr(63) vaut ‘?’

Cours Algorithmique et Programmation 1 40


V- Le Type Booléen ou Logique :

Cours Algorithmique et Programmation 1 41


V.1- Définition

 Un type Booléen dit également logique est un ensemble


qui est constitué de deux éléments dont la valeur de l’un
contredit celle de l’autre.
 Le type booléen contient deux valeurs logiques Vrai et
Faux

Cours Algorithmique et Programmation 1 42


V.2- Représentation algorithmique
 Le type Booléen étant reconnu automatiquement, il n’est pas
nécessaire de le déclarer dans la partie des types. Il suffit d’indiquer
devant le nom de la variable son type.
Variable
Nomvar: Booléen
 Nomvar étant le nom de la variable qui sera utilisé dans l’algorithme

 Si on a plusieurs variables en même temps, ce n’est pas la peine de


les déclarer séparément, on peut les regrouper en les séparant par
une virgule:
Variable
Nomvar1, Nomvar2, ……., NomvarN : Booléen
Cours Algorithmique et Programmation 1 43
V.3- Opérateurs Logiques :

 Sur le type booléen, on applique des opérateurs logiques


pour constituer une expression logique.
 Ces opérateurs sont :
NON (NOT) : la négation (qui est une opération unaire)
ET (AND) : la conjonction (qui est une opération binaire)
OU (OR): la disjonction (qui est une opération binaire)

Cours Algorithmique et Programmation 1 44


 Soient X et Y deux variables booléennes, en leur
appliquant les opérateurs logiques, on obtient la table de
vérité suivante:

X Y Non X X Et Y X Ou Y
Faux Faux Vrai Faux Faux
Faux Vrai Vrai Faux Vrai
Vrai Faux Faux Faux Vrai
Vrai Vrai Faux Vrai Vrai

Cours Algorithmique et Programmation 1 45


Remarque
 En plus de ces types prédéfinis, le programmeur a la possibilité́ de définir
lui-même de nouveaux types en fonction de ses besoins.
 Exemple
Types
Saison = (”A”,”H”,”P”,”E”)
Tnote = 0 .. 20
Variables
s : Saison
note : Tnote

 La variable s de type saison ne peut prendre que les valeurs ”A”, ”H”, ”P”
ou ”E”.et Programmation 1
Cours Algorithmique 46
VII- Les expressions

Cours Algorithmique et Programmation 1 47


VII.1- Définitions

 Les opérateurs <, ≤, =, <>, >, ≥ permettent de comparer


les valeurs de type entier, réel et caractère.
 Les expressions sont des combinaisons entre des variables
et des constantes à l’aide d’opérateurs.
 Elles expriment un calcul (expressions arithmétiques) ou
une relation (expressions logiques).

Cours Algorithmique et Programmation 1 48


 Ordre de priorité́ des operateurs arithmétiques

 En cas de conflit entre deux operateurs de même priorité́,


on commence par celui situé le plus à gauche.

Cours Algorithmique et Programmation 1 49


VII.3- Les expressions logiques
 Ce sont des combinaisons entre des variables et des constantes à
l’aide d’opérateurs relationnels (=, <, <=, >, >=, #) et/ou des
combinaisons entre des variables et des constantes logiques à l’aide
d’opérateurs logiques (NON , ET, OU, ...).
 Ici encore, on utilise les parenthèses et l’ordre de priorité́ entre les
différents operateurs pour résoudre les problèmes de conflits.

Cours Algorithmique et Programmation 1 50


EXERCICES D’APPLICATION

 1- Quel est l’ordre de priorité́ des différents operateurs


de l’expression suivante :
((3 * a) – x ^ 2) – (((c – d) / (a / b)) / d)

 2- Evaluer l’expression suivante :


5 + 2 * 6 – 4 + (8 + 2 ^ 3) / (2 – 4 + 5 * 2)

Cours Algorithmique et Programmation 1 51


Les actions simples

Cours Algorithmique et Programmation 1 52


Objectifs

 Comprendre les actions algorithmiques


simples (les actions de lecture, d’écriture
et celle d’affectation)
 Connaitre la structure générale d’un
algorithme

Cours Algorithmique et Programmation 1 53


4.1- L’instruction d’affectation
 Le rôle de cette instruction consiste à placer une valeur
dans une variable.
 Sa syntaxe générale est de la forme :
Variable ← Expression
 Exemple: l’instruction :
A←6
Signifie: mettre la valeur 6 dans la case mémoire identifiée
par A
 Alors que l’instruction :
B ← (A + 4) Mod 3
range dans B la valeur 1 (avec A toujours égale à 6).
Cours Algorithmique et Programmation 1 54
Remarque

 La valeur ou le résultat de l’expression à droite


du signe d’affectation doit être de même type ou
de type compatible avec celui de la variable à
gauche.

Cours Algorithmique et Programmation 1 55


Exemple 1

 Quelles seront les valeurs des variables A, B et C après


l’exécution des instructions suivantes :
A←5
B←3
C←A+B
A←2
C←B–A

Cours Algorithmique et Programmation 1 56


Trace d’exécution

Contenu des variables


Instruction
A B C
(1) A  5 5 - -
(2) B3 5 3 -
(3) CA+B 5 3 8
(4) A2 2 3 8
(5) C B–A 2 3 1

Cours Algorithmique et Programmation 1 57


Exemple 2

 Quelles seront les valeurs des variables A et B après


l’exécution des instructions suivantes :
A←5
B←7
A←A+B
B←A-B
A←A–B

Cours Algorithmique et Programmation 1 58


Trace d’exécution
Contenu des variables
Instruction
A B
(1) A  5 5 -
(2) B  7 5 7
(3) A  A + B 12 7
(4) B  A – B 12 5
(5) A  A – B 7 5

Cette séquence d’instructions permet de permuter les valeurs de A


et B.
Cours Algorithmique et Programmation 1 59
Remarque

 Une deuxième façon de permuter A et B consiste à utiliser


une variable intermédiaire X :

X←A
A←B
B←X

Cours Algorithmique et Programmation 1 60


4.2- L’instruction d’écriture :
communication Programme-Utilisateur

 Pour qu’un programme présente un intérêt pratique, il


devra pouvoir nous communiquer un certain nombre
d’informations (résultats) par l’intermédiaire d’un
périphérique de sortie comme l’écran ou l’imprimante.
C’est le rôle de l’instruction d’écriture.
 La forme générale de cette instruction est :
Ecrire(expression1, expression2, ...)

Cours Algorithmique et Programmation 1 61


Exemple

 Qu’obtient t-on à l’écran après l’exécution des


instructions suivantes :
x←4
Ville ← ”Tunis”
Ecrire(x)
Ecrire(x*x)
Ecrire(”Ville”)
Ecrire(”Ville = ”,Ville)

Cours Algorithmique et Programmation 1 62


Solution

4
16
Ville
Ville = Tunis

Cours Algorithmique et Programmation 1 63


4.3- L’instruction de lecture :
communication Utilisateur-Programme

 Dans certains cas, nous pourrons être amenés à transmettre des


informations (données) à notre programme par l’intermédiaire d’un
périphérique d’entrée comme le clavier.
 Cela est réalisé́ par l’instruction de lecture.
 La forme générale de cette instruction est :
Lire(Variable1, Variable2, ...)
 Ainsi, l’instruction : Lire(A)
signifie « lire une valeur à partir du périphérique d’entrée, qui est le
clavier par défaut, et la ranger dans la variable identifiée par A »

Cours Algorithmique et Programmation 1 64


4.4- Structure générale d’un algorithme

Cours Algorithmique et Programmation 1 65


Remarques
 Les nouveaux types doivent être déclarés dans la partie « Types ».
 Toute variable utilisée dans l’algorithme doit être préalablement
déclarée.
 Les instructions placées entre «Début» et «Fin» forment le corps
principal de l’algorithme.
 Seules les parties « Entête » et «Corps » de l’algorithme sont
obligatoires.
 L’indentation qui consiste à insérer des tabulations avant les objets
déclarés et les instructions offre une meilleure lisibilité́ de
l’algorithme

Cours Algorithmique et Programmation 1 66


4.5- EXERCICE D’APPLICATION

 Donnez toutes les raisons pour lesquelles l’algorithme suivant est incorrecte:

Algoritme Incorrect
x, y : Entier
z : Réel
Début
z←x+2
y←z
x*2 ← 3 + z
y ← 5y + 3
Fin.

Cours Algorithmique et Programmation 1 67


SOLUTION
 Cet algorithme est incorrect pour plusieurs raisons :
 ligne 1 : Le mot Algorithme s’écrit avec un « h » au milieu
 ligne 2: La déclaration des variables commence par le mot
«Variables»
 ligne 5 : La valeur de x est indéterminées
 Ligne 6 : incompatibilité́ de type (un résultat réel affecté à une
variable de type entier)
 Ligne 7 : Le membre gauche d’une affectation doit être une
variable
 Ligne 8 : Il faut écrire 5*y et non 5y.

Cours Algorithmique et Programmation 1 68

Vous aimerez peut-être aussi