Vous êtes sur la page 1sur 8

1ere Année MI Module : Initiation à l’algorithmique Chapitre 2 : Notions algorithmiques

1) Notions de base.
1.1 Définitions.
Algorithme: Un algorithme est un ensemble d'actions écrites en pseudo-code agissant sur des données
pour résoudre un problème. Pour écrire un algorithme on passe par une étape d'analyse.
Programme: est un ensemble d’instructions écrites en un langage de programmation et exécutables
par un ordinateur.
1.2 Caractéristiques d’un algorithme.
Un algorithme doit être:
 Lisible: compréhensible même par un non informaticien;
 De haut niveau: peut être traduit en n'importe quel langage, il ne fait pas appel à des notions
techniques relatives à un langage particulier ;
 Précis: ne comporte aucune ambiguïté;
 Concis : ne doit pas être trop long. Si c'est le cas, il faut décomposer le problème en plusieurs
sous problèmes;
 Structuré: doit être composé de différentes parties facilement identifiables.
1.3 Notion d’Objet.
Les objets sont les informations qu'un ordinateur doit traiter au cours de l'exécution d'un programme.
Les objets de base dans un algorithme ou programme sont: les constantes, les variables et les
expressions. Un objet est parfaitement défini si nous connaissons ses trois (03) propriétés: son
identificateur, sa valeur et son type.
L’identificateur d'un objet est son nom, il doit respecter les conditions suivantes:
 Il est représenté par une suite quelconque de caractères alphanumériques [alphabétiques:
majuscules (A.. Z) ou minuscules (a .. z) et numériques : (0.. 9)], ainsi que le caractère _ ;
 Il commence obligatoirement par une lettre (a .. z) ou (A .. Z);
 Il doit être différent des mots réservés;
 De préférence, le nom est choisi en rapport avec le contenu de l'objet.
La valeur d'un objet peut être constante ou variable, et son type est l’ensemble de valeurs que peut
prendre la donnée qu'il représente.
a) Les constantes : Une constante est un objet qui a un nom fixe, un type fixe et une valeur fixe.
Exemple :
Nom Type valeur
A Entier 3
DVC Réel 2.5
Virg Caractère ‘,’
Pi Réel 3.14
b) Les variables : Une variable est un objet qui a un nom fixe, un type fixe et une valeur variable.
Remarques:
 Pour choisir le nom d'une variable, il faut respecter les mêmes règles de choix d'un
identificateur,
 Pour chaque variable déclarée dans un programme, l'ordinateur lui réserve une place
en MC. La taille de cette place dépend du type de la variable.

Exemple :
Nom Type
Note1,Note2,Note3,y Réel
X Entier

16 bits
X :Entier(2 octets) X
32 bits
Y :Réel(4 octets) Y

1
1ere Année MI Module : Initiation à l’algorithmique Chapitre 2 : Notions algorithmiques

 Pour désigner une variable :


 En langage machine, on utilise les adresses mémoires,
 En langage de programmation, on utilise les noms.
 La valeur d'une variable peut changer plusieurs fois dans le même programme.

Constante C Valeur=nom C n’a pas de place en MC La valeur de C ne change pas


Variable V Valeur ≠nom V possède une place en MC La valeur de V peut changer

c) Les expressions : une expression peut être de type arithmétique ou logique.


Elle est composée de:
 constantes (exemple: 3, 2, 1.5, …),
 variables (exemple: x, y, z, …),
 opérateurs arithmétiques (+, -, *, /….) ou logiques (non, et, ou),
 parenthèses ().
Exemple :

Expression Expression
mathématique algorithmique
b2 – 4ac b*b – 4*a*c

(3*x+2*y)/(x+3)

Les expressions arithmétiques: une expression arithmétique contient des constantes et/ou des
variables reliées par des opérateurs arithmétiques, et des parenthèses.
Syntaxe: X op Y
Tels que: x, y: constante, variable; et op: +, -, *, /, div, mod. (div: le quotient de la division entière)
Exemple: 3+5; (8*x+4*y)/5.
Les expressions logiques: une expression logique est utilisée pour former une condition dans la
programmation, cette condition a une valeur booléenne (vrai ou faux).
On distingue deux types d'expressions logiques:
Les expressions logiques simples: formées d'expressions arithmétiques séparées par des opérateurs de
relation (comparaison).
Syntaxe: E1 op E2
Tels que: E1, E2: expressions arithmétiques, et op: >, <, ≥, ≤, =, ≠.
Exemple: (3+5)> (8*x+6*y)
Les expressions logiques complexes: formées d'expressions logiques simples séparées par des
opérateurs logiques.
Syntaxe: E1 op E2
Tels que: E1, E2: expressions logiques simples, et op: et, ou, non.
Exemple: ((3+5)>(8*x+4*y)) et ((x+1)=0).
On évalue les expressions logiques suivant la table suivante :

A B Non A A ou A et B
B
vrai vrai faux vrai vrai
vrai faux faux vrai faux
faux vrai vrai vrai faux
faux faux vrai faux faux
2
1ere Année MI Module : Initiation à l’algorithmique Chapitre 2 : Notions algorithmiques

Operateurs arithmétiques, operateurs de comparaison et operateurs logiques en C++ :

Nom operateur exemple


Addition + a+b
Soustraction - a-b
Multiplication * a*b
Division (entière / a /b
entre deux entiers,
réelle si l’un des
opérandes est réel)
Modulo (reste de la % a%b
division)
Egal à == a == b
Différent de != a != b
Supérieur à > a>b
Supérieure ou égal >= a >= b
à
Inférieur à < a<b
Inférieur ou égal à < a <= b
Et logique && a && b
Ou logique || a || b
Non logique ! !a

Priorités des opérateurs.


Question: Quelle est la valeur de l'expression arithmétique suivante?
5+4*2= (5+4)*2=18 ou bien 5+(4*2)=13
Pour éviter cette ambiguïté, on associe des priorités aux opérateurs et on respecte l’ordre suivant :

 Les parenthèses, on commence toujours par les parenthèses les plus internes. +
 Non, (-) le moins unitaire
 *, /, div, mod, et
 +, -, ou priorité
 <, >, ≤, ≥, =, ≠. -

En cas d'égalité des priorités, on commence par l'opérateur le plus à gauche.

Exemple :

a) A + 12 – 14 *4 /13 * (Z + 1 – (n + 5))

3
1ere Année MI Module : Initiation à l’algorithmique Chapitre 2 : Notions algorithmiques

b) (A +b) / (c – d)

Exercice 1
Soit I et J deux variables entières de valeur 3 et 10,
Corriger si c’est nécessaire puis évaluer les expressions suivantes:
1) 2 * I ≤ J
2) 2 * I – 1 < J
3) I ≤ 3 et J ≤ 3
4) ( I > 0) ou (I ≤10)
5) I > 0 ou J <0
6) Non I > 100
NB :(On commence par le schéma d'évaluation des expressions puis on donne le résultat (V ou F)
Exercice 2
Donner les schémas d'évaluation des expressions suivantes:
1) A + b * c * d * e – f * (g + h ) – i
2) (a>b) ou (c>a + b * d –e/f)
3) Non (a >0) et (c>b)

1.4 Types d’objets.

Nous ne pouvons pas appliquer de traitement à la valeur d'un objet si nous ne connaissons pas son
type. Un type est défini par un ensemble de constantes et un ensemble d’opérateurs que nous pouvons
lui appliquer. Il existe trois types d'objet:
a) Booléen:
Ensemble des constantes: {vrai, faux}
Ensemble des opérateurs: et, ou, non
un objet est de type booléen si sa valeur est une valeur logique (vrai, faux).
b) Numérique:
Ensemble des opérateurs: tous les opérateurs arithmétiques et trigonométriques…...
Pour les opérateurs les plus utilisés, on peut citer:
 +: addition
 -: soustraction
 *: multiplication
 /: division
 Mod

b.1 Le type entier


Un objet est de type entier si sa valeur est un nombre entier (<0, >0, =0)
{…, -4, -3, -2, -1, 0, 1, 2, 3, 4,…}
Généralement un entier est codé sur 16 bits.
Exemple: L’âge d'une personne, Le nombre de personnes
b.2 Le type réel
Un objet est de type réel si sa valeur est un nombre décimal (>0, <0, =0).
Généralement un réel est codé sur 32 bits.
Exemple: Les notes d'un étudiant, les racines d'une équation, une distance, un poids, ….

4
1ere Année MI Module : Initiation à l’algorithmique Chapitre 2 : Notions algorithmiques

c) Caractère.
Un objet est de type caractère si sa valeur est un caractère quelconque, alphabétique (A..Z, a..z),
numérique (0..9), ou spécial (+, -, $, …)
Question: quelle est la différence entre 'a' et a dans un algorithme?
Réponse:
'a': une valeur d'une constante de type caractère et a : un nom d’une variable de valeur quelconque.
Un caractère est lié à un code numérique (exemple: code ASCII) qui le représente en machine et qui
permet d'établir une relation d’ordre.
Exemple :
'A' < 'a' : le code numérique lié à 'A' est inférieur au code numérique lié à 'a' .
d) Chaine de caractères.
Un objet est de type chaine de caractères si sa valeur est une suite de caractères, ce qui permet de
représenter les phrases, les textes, les noms, …
Un caractère est codé sur un octet; une chaine de N caractères est codée sur N octets.

Exemple de chaînes de caractères :


‘ Je vous souhaite un bon apprentissage’, ‘il est 12 heures 30’

Types élémentaires en C++.

Type Description

int Entiers (au minimum 16 bits, pour des valeurs entre -32768 et 32767)
(d’autres formats existent: long int, short int , unsigned int, unsigned
long….
chr Caractère ( ‘a’,’b’, …………,’A’, ………

float Nombres à virgule flottante


(d’autres formats existent : double, long double……

bool Valeurs booléennes (‘true’, ‘false’)

2) Notions algorithmiques.
2.1 Introduction.
Nous allons définir les actions (instructions) de base d'un algorithme ainsi que la façon d'analyser un
problème pour arriver à écrire un algorithme correcte.
2.2 Structure d’un algorithme.
Un algorithme a la structure suivante :

Entête
Définition de constantes Algorithme nom_algorithme ;
Constantes définition des constantes ;
Déclaration de variables Variables déclaration des variables manipulées par l’algorithme ;
Debut
Corps Instructions ;

Fin

5
1ere Année MI Module : Initiation à l’algorithmique Chapitre 2 : Notions algorithmiques

a) Définition de constantes : permet de définir les constantes utilisées dans l’algorithme.

Syntaxe : En algorithmique EN C++


Constantes nom_const = valeur ; - const type nom_const = valeur ;

Exemple : Constantes PI=3.14; const double PI=3.14 ;


Nbrnotes=3; const int Nbrnotes=3
Lettre='A‘; const char Lettre='A‘
ou - #define nom_const valeur
#define PI 3.14159

b) Déclaration de variables :
Déclarer  (donner le nom + donner le type)
On déclare une variable pour que l'ordinateur lui réserve une place en MC, et pour que le compilateur
prépare le codage approprié.
Syntaxe: En algorithmique EN C++
Variables nom_variable: type; Type nom_variable ;
Exemple:
Variables N1: réel; float N1 ;  float N1,N2 ;
N2: réel; float N2;
N3: réel;  Variables N1, N2, N3, Moy: réel; double N3;  double N3, Moy;
Moy: réel; double Moy ;
NB: entier; int NB ;
N.B: Les variables de même type peuvent être écrites sur la même ligne, séparées par des virgules.
c) Les instructions de base.
Il existe trois instructions de base dans un algorithme (programme): l'Affectation, la lecture et
l'écriture.
1) L'affectation: C’est l’action de charger une valeur dans une variable. Nous représentons cette
opération par une flèche orientée vers la gauche.
Syntaxe: En algorithmique En C++
nom_variable  valeur; nom_variable=valeur;
La valeur peut elle-même être une variable, une constante ou une expression arithmétique ou logique.
Exemple : i 1; ( la variable i reçoit la valeur 1) en C++ i=1 ;
A 2 * i +5 (la variable A reçoit le valeur de l’expression 2*i +5)
2) La lecture:
Pour faire entrer une valeur d'une variable à partir de l'extérieur grâce à un périphérique d'entrée
(généralement le clavier), on utilise l'instruction de lecture suivante :
Syntaxe: En algorithmique EN C++
lire (nom_variable) cin<< nom_variable;
Exemple : Lire (V1)
Lire (V2) lire (V1, V2, V3); cin<<V1<<V2 <<V3 ;
Lire (V3)

Fonctionnement : à la rencontre d’une instruction d’entrée, le processeur suit les étapes suivantes:
 il se bloque (exécution suspendue) ;
 L'utilisateur saisit la valeur qu'il veut affecter à la variable;
 Le processeur met la valeur saisie dans la case mémoire correspondante ;
 Puis il poursuit l'exécution du programme.
3) L‘écriture:
Cette instruction est utilisée pour afficher les résultats produits par un programme sur un
périphérique de sortie (généralement l'écran).

6
1ere Année MI Module : Initiation à l’algorithmique Chapitre 2 : Notions algorithmiques

Syntaxe: En algorithmique EN C++


Ecrire (E) ; E peut être (constante, variable ou expression). cout >> E;

Exemple : Ecrire (E1)


Ecrire (E2)  Ecrire (E1, E2, E3); cout>>E1>>E2>>E3 ;
Ecrire (E3)

3) Analyse d’un problème.

L'analyse d'un problème se fait en plusieurs étapes:


1. Comprendre le problème posé ;
2. Extraire les données et les résultats du problème ;
3. Trouver une solution qui utilise ces données pour arriver aux résultats.
Exemple : Calculer le carré de X
Extraction des données et des résultats et leurs types:
Données: X: réel
Résultats (sorties): Y:réel
Expression de calcul (traitement): Y= X*X

L'écriture de l'algorithme:
Algorithme calcul_carre;
Variables X, Y: réel;
Début
Ecrire ('Donner la valeur de X');
Lire (X);
Y X* X;
Ecrire (‘Le carré de ‘,X,’est ‘,Y);
Fin

Le programme correspondant en C++:


#include <iostream>
using namespace std;
int main ()
{
double X,Y;
cout<<"Donner la valeur de X: ";
cin>>X;
Y=X*X;
cout << "Le carré de "<<X<<" est "<<Y;
}

Trace d'exécution d'un algorithme: c'est un tableau contenant les valeurs des variables durant
l'exécution d'un programme ou d’un algorithme, instruction par instruction.
Exemple: la trace d'exécution de l'exemple précédent pour X=5.

Algorithme calcul_carré;
Variables X, Y: réel; Etape X Y Sortie(ecran)
Début (Instructions)
1) Ercire ('Donner la valeur de X'); 1 Donner la valeur de X
2) Lire (X); 2 5
3) Y X* X;
4) Ecrire (‘Le carré de ’,X,’ est ’, Y); 3 5 25
Fin 4 5 25 Le carré de 5 est 25

7
1ere Année MI Module : Initiation à l’algorithmique Chapitre 2 : Notions algorithmiques

4) Les fonctions standards.


En plus des opérateurs arithmétiques ( *, -, +, /, mod et div) et logique (et, ou, non), on a souvent
besoin de faire des calculs plus complexes tels que x², log(x), sin(x) , etc. En programmation, ces
calculs se font par l'utilisation des fonctions standards.
Il suffit de citer le nom de la fonction suivi d'une expression entre parenthèses.
Exemple: la racine carré d'un nombre entier

Racine(X)
Fonction standard argument de la fonction,

Exemples de fonctions standards


Soit E une expression

Algorithme C++ Description Type


Racine(E) sqrt(E) Racine carré de E E>=0 résultat toujours réel
Carré(E) pow(E,2) Carrée de E E entier résultat entier
E réel résultat réel
Sin(E) sinh(E) Sinus de E E entier ou réel
Cos(E) cosh(E) Cosinus de E Résultat toujours réel
Arctg(E) atan(E) Arc tangente de E E en radian
Exp(E) exp(E) Exponentielle de E Entier ou réel
Ln(E) log(E) Logarithme népérien de E
ABS(E) fabs(E) Valeur absolue de E Entier si E entier
Réel si E réel

5) Les commentaires.
Il est important de commenter son code, c’est à dire d’ajouter des informations non compilées dans
le code source à destination des programmeurs ou utilisateurs afin de mieux faire comprendre et se
souvenir de ce qui a été programmé. Deux styles de commentaire sont disponibles en C++:
Pour commenter une (fin de) ligne : // commentaires
Pour commenter un ensemble de lignes : /* commentaires */

6) Exercices :
1) Ecrire l'algorithme qui permet de calculer la moyenne de trois notes d'un étudiant.
2) Ecrire l'algorithme qui permet de calculer le périmètre d'un cercle.
3) Ecrire l'algorithme qui permet de calculer le discriminant delta d'une équation du second
degré :Ax2+Bx+C=0.
Donner la trace d'exécution de l’algorithme pour A= 2, B=5 et C=1 .

Vous aimerez peut-être aussi