Vous êtes sur la page 1sur 14

ALGORITHMIQUE ET PROGRAMMATION

I- INTRODUCTION
Le langage utilisé par l’ordinateur pour traiter les informations est le langage binaire (constitué par
une suite de 0 et 1) directement compréhensible par la machine. Ce langage est appelé : langage
machine.
Il est très difficile à l’utilisateur de programmer en langage machine, c’est pourquoi des langages dis
évolués ont été créés (pascal, C, C++, Basic, Java, Python…).
Un compilateur ou interpréteur est nécessaire pour traduire un programme écrit en un langage
évolué en langage machine.
II- DEFINITIONS
1- Langage
Un langage est un ensemble de mots clés (instructions ou fonction) et des règles de syntaxe qui
permettent d’écrire un programme exécutable par l’ordinateur.
2-Programme
Un programme est une succession ordonnée d’instructions dont la formulation et la syntaxe
répandent à un langage déterminé et permet d’obtenir de l’ordinateur l’exécution d’une tâche
précise.
3- Algorithme
Un algorithme est une suite finie d'actions à appliquer dans un ordre déterminé sur des données
afin d'obtenir un résultat en un temps fini.
 Exemple
L'algorithme suivant décrit l'usage d'un appareil téléphonique à pièces de monnaie pour effectuer
une communication:
Début
Décrocher l'appareil;
Insérer les pièces nécessaires;
Composer le numéro désiré;
L’interlocuteur décroche l’appareil
Parler;
Raccrocher;
Fin
Remarque :
On a une représentation de la résolution du problème sous la forme d’un algorithme. Mais certains
cas n’ont pas été prévus (numéro occupé), d’où insuffisance de la solution.
Il est nécessaire de détailler de détailler les ordres élémentaires connus par la machine et prévoir
toutes les éventualités. La machine ne peut pas intervenir dans les cas non prévus.
 Représentation d’un algorithme
Un algorithme peut être représenté de deux façons :
a- Le pseudo-code:
Le pseudo-code est une représentation textuelle avec une série de conventions ressemblant à
un langage de programmation (sans les problèmes de syntaxe)
• plus pratique pour écrire un algorithme
• représentation largement utilisée

CPGE-AGADIR -1- M.GUEROIHI


b- Organigramme :
Un organigramme est la représentation graphique d'un algorithme.
Dans un organigramme les instructions sont représentées par des symboles graphiques normalisés qui sont:
Symbole Instruction
DEBUT et FIN

LIRE et ECRIRE

TRAITEMENT ou CALCUL

DECISION ou TEST

Revoie

III- ALGORITHMIQUE :
 Etapes de réalisation d’un programme

Enoncé du problème
Analyse
Algorithme
Codage
Programme source
Compilation
Programme exécutable
Tests et modifications
Version finale et résultats

La réalisation de programmes passe par l’écriture d’algorithmes, D’où l’intérêt de l’Algorithmique


L'algorithmique consiste à concevoir et mettre au point des algorithmes décrivant les solutions
d'un certain type de problèmes.
Exemple:
Problème:
A la vente d'une marchandise, calculer le Montant Net à payer par le client en appliquant un taux
de TVA de 20% sur la marchandise connaissant son prix unitaire et la quantité vendue.
- Analyse:
Analyser le problème et dégager les composantes suivantes:
 Les données à fournir (entrées)
 Les résultats à produire (sorties)
 Le traitement qui permet de transformer les données en résultats.
Données:
o Prix : de type réel;
o Quantité de type entier;
o Taux TVA ( T_TVA): de type réel.
Résultats:
o Net (Net à payer): de type réel;
Traitement:
o Total_HT=Prix * Quantité
o M_TVA= Total_HT*20/100
CPGE-AGADIR -2- M.GUEROIHI
o Net=Total_HT+M_TVA
- Algorithme:
Pseudo-Code Organigramme
Algorithme Calcul;
Variable Prix, Total_HT : Réel Début
M_Tva, Net : Réel
Quantité : Entier
Début "Donner le prix"
Ecrire ("Donner le prix : ")
Prix
Lire (Prix);
Ecrire ("Donner la quantité : ") "Donner la quantité"
Lire(Quantité);
Total_HT ← Prix * Quantité; Quantité
M_Tva ← Total_HT * 0.2; Total_HT ← Prix * Quantité;
M_Tva ← Total_HT * 0.2;
Net ← Total_HT + M_Tva
Net ← Total_HT + M_Tva
Ecrire ("Net à payer :", Net);
Fin
"Net à payer :", Net

Fin

- Codage:
(Programme –Langage Python-)
prix=input("Donner le prix: ")
prix=float(prix) #conversion de la chaine en un nombre réel
quantite=input("Donner la quantité: " )
quantite=int(quantite) #conversion de la chaine en un nombre entier
Total_HT = prix * quantite
M_Tva = Total_HT * 0.2
Net = Total_HT + M_Tva
print ("Net à payer :" , Net)

- Interprétation et exécution : se font sur machine

CPGE-AGADIR -3- M.GUEROIHI


IV- Composants d'un algorithme:
Un algorithme est composé d'un certains nombre d'instructions qui manipulent des données:
1- Données d'un algorithme:
Une donnée est caractérisée par 3 attributs:
14.25
a- Identificateur : Nom symbolique représentant la donnée.
Valeur
Ex : Noteinfo : pour désigner la note d’informatique
Coefinfo : pour désigner le coefficient d’informatiqueNoteinfo
Identificateur Données
Réel
Type
Remarque :
Le choix des identificateurs est soumis à quelques règles qui varient selon le langage, mais en
général:

 Un nom doit commencer par une lettre alphabétique


exemple valide: A1 exemple invalide: 1A
 doit être constitué uniquement de lettres, de chiffres et du soulignement _ (Eviter les
caractères de ponctuation et les espaces)
valides: SMI2007, SMI_2007 invalides: SMI 2007, SMI-2007, SMI;2007

 doit être différent des mots réservés du langage


(par exemple en pascal: integer, real, else, case, if, for, exit, …)

 La longueur du nom doit être inférieure à la taille maximale spécifiée par le langage utilisé

b- Valeur: la valeur de la donnée


Ex: la valeur de Coefinfo est 2
La valeur de Noteinfo d'un élève quelconque est 14.25
c- Type: l'ensemble de valeur que peut prendre une donnée
Les types les plus utilisés sont :
 entier pour manipuler des entiers,
 réel pour manipuler des nombres réels,
 booléen pour manipuler des valeurs booléennes vrai ou faux,
 caractère pour manipuler des caractères alphabétiques et numériques,
 chaîne pour manipuler des chaînes de caractères permettant de représenter des
mots ou des phrases.

Ex: la donnée Noteinfo est de type Réel


La donnée Coefinfo est de type Entier.

Une donnée peut être une variable ou une constante.


a- Variable.: Est une donnée dont la valeur peut être changée au cours du traitement.
Ex: Noteinfo est une variable car à chaque exécution elle peut prendre une valeur.
b- Constante: Donnée dont la valeur ne change pas
Ex: Taux_TVA qui garde toujours la valeur 0.2

CPGE-AGADIR -4- M.GUEROIHI


2- Les instructions:
a- définition
Les actions élémentaires qui composent un algorithme sont appelées Instructions, car elles
représentent des ordres à exécuter dans l'algorithme.
b- Instruction d'entrée : Lire
L'instruction Lire permet d'introduire une donnée
Ex: Lire (Noteinfo)
c- Instruction de Sortie: Ecrire
L'instruction Ecrire permet de restituer (sortir) une donnée
Ex: Ecrire (Moy)
c- Affectation: ←
Une affectation est l'opération qui permet de ranger la valeur d'une expression dans une
variable.
Dans un algorithme l'affectation est symbolisée par: ←
Exemples:
X←20 : La valeur 20 est affectée à la variable X
S←nbr1+nbr2 : La somme (nbr1+nbr2) est affectée à la variable S
X←y : La valeur de la variable Y est affectée à la variable X
Remarques:
- L'identificateur est toujours à gauche du symbole de l'affectation
- Si une variable contenait une valeur, elle ne conservera que la dernière valeur qu'on lui affecte.
Exemple
N1← 20
N2← 30
N1← N2
Quelle est la valeur de N1? .......................................................................

Exercice :
Ecrire un algorithme permettant de saisir 2 nombres puis permute leurs valeurs.

CPGE-AGADIR -5- M.GUEROIHI


- Une Expression est une combinaison d'opérandes et d'opérateurs.
Ex: 2+5-20/2 est une expression dont 2,5,20 et 2 représentent des opérandes et +,- et /
représentent des opérateurs.
Les opérateurs arithmétiques utilisés dans les algorithmes sont:
 opérateurs arithmétiques :
Opérateur Fonction Exemple Langage Python
+ Addition X+Y +
- Soustraction X-Y -
* Multiplication X*Y *
/ Division X/Y / : division ; //division entière
6/41.5 ; 6//41
^ Puissance 2^3 ** : exemple 2**38
Mod Reste division 17 mod 5 (=2) % : 17%52
xor Ou exclusif bit à bit 5 xor 6  3 ^ : 5^6  3
 des opérateurs relationnels (de comparaison):
Opérateur signification Langage Python
= Egal ==
<> ou  Différent !=
< Strictement inférieur <
> Strictement supérieur >
<= Inférieur ou égal <=
>= Supérieur ou égal >=
 des opérateurs logiques:
Opérateur signification Langage Python
NON Non logique not
OU Ou inclusif or
ET Et logique and

Ordre de priorité des opérateurs


 Pour les opérateurs arithmétiques, l'ordre de priorité est le suivant (du plus prioritaire au
moins prioritaire) :
• ^ : (élévation à la puissance)
• * , / (multiplication, division)
• mod (modulo)
• + , - (addition, soustraction)
exemple: 2 + 3 * 7 vaut 23

 En cas de besoin (ou de doute), on utilise les parenthèses pour indiquer les opérations à
effectuer en priorité exemple: (2 + 3) * 7 vaut 35

CPGE-AGADIR -6- M.GUEROIHI


STRUCTURES DE CONTROLE

Introduction
Un algorithme décrit une suite d'instructions dont l'exécution ne se fait pas toujours dans l'ordre de
leur écriture. Il peut y avoir dans certains cas des sauts de blocs d'instructions. Ces sauts sont
contrôlés par une structure appelée structure de contrôle.
Un algorithme peut avoir trois structures:
 Structure séquentielle
 Structure conditionnelle ou alternative
 Structure répétitive
I- Structure séquentielle
a- Définition
On dit qu'un algorithme a une structure séquentielle lorsque les instructions s'exécutent d'une
manière linéaire une après une du début jusqu'à la fin.
b- exemple
Soit l'algorithme suivant:
Algorithme moyenne;
Variables NT1, NT2, NT3, MOY : Réel;
Début
LIRE (NT1);
LIRE (NT2);
LIRE (NT3);
MOY← (NT1+ NT2+ NT3)/3;
ECRIRE (MOY);
Fin
Cet algorithme a une structure séquentielle, les instructions s'exécutent d'une manière linéaire
(l'une après l'autre).

II- Structure conditionnelle ou alternative


a- Définition
Dans un algorithme ayant une structure alternative les instructions s'exécutent selon la réalisation
d'une condition ou non.

 La condition est une expression logique de type X Relation Y


Relation est l'un des opérateurs de comparaison Suivants:
Opérateur signification Langage Python
= Egal ==
<> ou  Différent !=
< Strictement inférieur <
> Strictement supérieur >
<= Inférieur ou égal <=
>= Supérieur ou égal >=

 La condition peut être:


o Condition simple: Exemples: a<2000; Moy<10;
o Condition Composée: Exemples: (Moy>13) ET (Moy <= 16)

CPGE-AGADIR -7- M.GUEROIHI


b- Structures alternatives:
1- Instruction Si……..Alors……..Sinon……..Finsi
Elle exprime le choix entre deux séquences d'actions en fonction de la valeur de la condition:
Syntaxe:

Algorithme Langage Python

Si Condition Alors if Condition :


Séquence1 Séquence1
Sinon else:
Séquence2 Séquence2
Finsi

o La condition (expression booléenne) est tout d’abord calculée


o Si le résultat de la condition donne vraie la séquence1 seule sera exécutée.
o Si le résultat donne Faux la séquence2 seule sera exécutée.
o séquence1 et séquence2 peuvent être une instruction ou un bloc d’instructions
Exemple:

Algorithme ValeurAbs ;
Variable x : réel ;
Début
Ecrire(" Entrez un réel : " ) ;
Lire (x) ;
Si x < 0 alors
Ecrire ("la valeur absolue de ", x, "est:",-x) ;
Sinon
Ecrire ("la valeur absolue de ", x, "est:", x) ;
Finsi
Fin
Organigramme:
Début

Non X< 0 Oui

X -X

Fin

CPGE-AGADIR -8- M.GUEROIHI


Remarque
La partie Sinon n'est pas obligatoire, quand elle n'existe pas et que la condition est fausse,
aucun traitement n'est réalisé
• On utilisera dans ce cas la forme simplifiée suivante:
Si condition alors
Séquence1
Finsi

Exemple (Si…Alors)
Algorithme ValeurAbs ;
Variable x,y : réel ;
Début
Ecrire (" Entrez un réel : ") ;
Lire (x) ;
y← x ;
Si x < 0 alors
y ← -x ;
Finsi
Ecrire ("la valeur absolue de ", x, "est:",y)
Fin
Exercice
Ecrire un algorithme qui permet de résoudre l’équation du premier degré de type AX = B (B<>0)

CPGE-AGADIR -9- M.GUEROIHI


2- Condition composée.

 Une condition composée est une condition formée de plusieurs conditions simples reliées
par des opérateurs logiques: ET, OU, OU exclusif (XOR) et NON
Exemples :
• x compris entre 2 et 6 : (x > 2) ET (x < 6)
• n divisible par 3 ou par 2 : (n mod 3=0) OU (n mod 2=0)
• deux valeurs et deux seulement sont identiques parmi a, b et c :
(a=b) XOR (a=c) XOR (b=c)
 L'évaluation d'une condition composée se fait selon des règles présentées généralement
dans ce qu'on appelle tables de vérité

C1 C2 C1 ET C2 C1 C2 C1 OU C2 C1 C2 C1 XOR C2
V V V V V V V V F
V F F V F v V F V
F V F F V v F V V
F F F F F F F F F

C1 NON C1
V F
F V

3- Structures alternatives imbriquées (complexe)


 Les tests peuvent avoir un degré quelconque d'imbrications
Exemple1 :
Algorithme Langage Python
Si condition1 alors
Si condition2 alors if Condition1 :
instructionsA if condition2 :
Sinon instructionsA
instructionsB
else:
Finsi
Sinon instructionsB
Si condition3 alors else:
instructionsC if condition3 :
Finsi instructionsC
Finsi

CPGE-AGADIR -10- M.GUEROIHI


Exemple2 :
Algorithme Langage Python
if Condition1 alors if Condition1:
instruction 1 instruction 1
instruction 2 instruction 2
instruction 3 instruction 3

instruction n instruction n

SinoSi Condition2 alors elif Condition2:


bloc_instructions bloc_instructions
Sinon else :
autre_bloc_instructions autre_bloc_instructions
Finsi

Exercices d’application :

Voir TD1

CPGE-AGADIR -11- M.GUEROIHI


III- Structure répétitive ou itérative (boucles)
a- Définition
La structure répétitive permet de répéter une action ou une séquence d’actions tant qu’une
condition est vraie.
Une structure répétitive est aussi appelée boucle.
b- exemple

Tant que (la porte est fermée)

Sonner ;

c- Représentation
1- la boucle tantQue …faire

Algorithme Organigramme Langage Python

Tant que (Condition) faire while condition :


non instruction(s);
Instruction(s); Condition
oui
Fin Tantque
Instruction(s)

Exemple
Ecrire un algorithme qui demande à l’utilisateur une note comprise entre 0 et 20 jusqu’à ce que la réponse
convienne.
Algorithme Programme Python
Algorithme controleSaisie ; note=input("Donner la note:")
Variable note : réel ;
Début
note=float(note)
Ecrire ("Donner la note :") ; while note<0 or note>20:
Lire(note) ; print("Erreure de saisie:")
Tantque ((note<0) ou (note>20)) faire note=input("Donner la note:")
Ecrire("Erreur de saisie") ; note=float(note)
Ecrire ("Donner la note :") ;
Lire(note) ;
Fin TantQue
Fin
Remarques :
 Étant donné que la condition est évaluée avant la mise en œuvre des instructions, ce qui est
une sécurité, il est possible que celles-ci ne soient jamais exécutées.
 Si une structure TantQue dans laquelle la condition ne devient jamais fausse. Le programme
tourne dans une boucle infinie et n’en sort plus.
Exemple de boucle infinie. Boucle infinie, le message
Bienvennu s’affiche à l’infinie, car
i 1 ;
la variable i qui est testée dans la
tantQue(i<=10) faire condition n’est jamais incrémentée.
Ecrire(" Bienvennu ") ;
Fin TantQue

CPGE-AGADIR -12- M.GUEROIHI


Solution :
i 1 ; i=1
tantQue(i<=10) faire while i<=10:
Ecrire(" Bienvennu ") ; print ("Bienvennu")
i i+1 i=i+1
Fin TantQue

L’algorithme ci-dessus affiche le message "Bienvennu" 10 fois

Notion de compteur :

Initialisation d’un compteur :


i Vi ;
Exemple i 1; (1 est la valeur initiale du compteur i)

Incrémentation d’un compteur


i i+incrément ;
Exemple : i i+1 (Ajouter la valeur 1 à la valeur précédente de i)

Décrémentation d’un compteur


i i-incrément ;
Exemple : i i-1 (retrancher 1 de la valeur précédente de i)

Exercises:
Exercice 1 : Exercice 2 :
Ecrire un algorithme qui affiche la liste : Ecrire un algorithme qui calcule pour un nombre
entier N (N>=0) saisi au clavier, la somme :
Nombre Carrée S=1+2+3+4+5+6+…..+N
1 1
2 4
3 9
4 16
6 36
7 49
8 64
9 91
10 100

CPGE-AGADIR -13- M.GUEROIHI


2- la boucle Pour ……FinPour
Cette instruction permet la répétition d'un traitement un nombre déterminé de fois. Le nombre de
fois est contrôlé par un compteur allant de la valeur initiale (vi) à la valeur finale (vf). La progression
se fait dans l’ordre croissant ou décroissant.
La structure Pour est utilisée impérativement lorsqu’on connaît à priori le nombre de répétitions à
effectuer.
Algorithme

POUR Compteur ß Vi A Vf [PAS DE Incrément] FAIRE

Instruction(s);

FinPour

Organigramme
i ← Vi

Faux
i < vf
i ← i + pas

Vrai

Instructions

Langage Python

for variable in liste_valeurs :


Instruction(s);

Exemple
Algorithme Langage Python
i : entier for i in range(1,6):
Pour i1 A 5 faire print("Bonjour") ;
Ecrire ("Bonjour")
Fin pour

Remarque :
L’instruction range fournit une liste de valeurs.
Exemples :
range(6) représente la liste des valeurs : 0,1, 2, 3, 4, 5
range (1,6) représente la liste des valeurs : 1, 2, 3, 4, 5
range (1, 6,1) représente la liste des valeurs : 1, 2, 3, 4, 5
range (1,6, 2) représente la liste des valeurs : 1,3,5

Exercices :
Voir TD2

CPGE-AGADIR -14- M.GUEROIHI

Vous aimerez peut-être aussi