Vous êtes sur la page 1sur 48

ALGORITHMIQUE &

PROGRAMMATION
DÉFINITION DE L’ALGORITHME:

Un algorithme est une suite finie


d’opérations élémentaires constituant
un schéma de résolution d’un
problème.
ÉTAPES DE RÉSOLUTION INFORMATIQUE
D’UN PROBLÈME :
A- définition du problème ANALYSE

b- division du problème en sous problèmes

c- recherche d’algorithme pour chaque problème CONCEPTION

d- validation de l’algorithme

e- codage PROGRAMME

f- mise au point MAINTENANCE


NOTIONS ET INSTRUCTIONS DE
BASE
NOTION DE VARIABLE:

• Une variable est un objet qui peut prendre une ou plusieurs valeurs
durant son existence dans un programme donné
• Une variable désigne en fait un emplacement mémoire dont le
contenu peut changer au cours d’un programme (d’où le nom
variable)
• Elle est caractérisée par les trois éléments suivants :
• Son nom : (identification ou désignation de l’emplacement mémoire
de la variable)
• Son type : qui spécifie le domaine de valeurs que peut prendre la
variable.

• Sa valeur : c’est le contenu actuel de l’emplacement mémoire


de la variable
NOTION DE VARIABLE:
• Le choix des noms de variables est soumis à quelques règles qui
varient selon le langage
• Le type d’une variable détermine l’ensemble des valeurs qu’elle
peut prendre, les types offerts par la plus part des langages sont:
• Type numérique (entier ou réel)
• Type logique ou booléen: deux valeurs VRAI ou FAUX
• Type caractère: lettres majuscules, minuscules, chiffres, symboles, …
exemples: ’A’, ’a’, ’1’, ’?’, …
• Type chaîne de caractère: toute suite de caractères,
exemples: " Nom, Prénom", "code postale: 1000", …
DÉCLARATION DES VARIABLES:

Toute variable utilisée dans un programme doit avoir


fait l’objet d’une déclaration préalable

Variables liste d’identificateurs: type


Exemple:
Variables i,j,k : entier
x,y: reel
test: booleen
ch1, ch2 : chaîne de caractères
L’INSTRUCTION D’AFFECTATION:
C’est l’attribution d’une valeur à une variable
Notation :
Exemple : x,y,z : entier
test: booleen
ch : chaîne de caractères
test Vrai
Ch "CPGE"
x 2
y x
z (x+y)*2
STRUCTURE GÉNÉRALE D’UN ALGORITHME

Titre de l algorithme

 Déclaration des Constantes


Déclaration des variables

 Déclaration des Variables

Les instructions DEBUT


Instructions
FIN
Application 1
Donnez les valeurs des variables A, B et C après
exécution des instructions suivantes ?
Algorithme Calcul Instructions A B C
Variables A, B, C: Entier Après l’instruction
3 — —
A3
Début
Après l’instruction —
3 7
A←3 B7
B←7 Après l’instruction
7 7 —
AB
A←B
Après l’instruction
7 12 —
B  A+5
B ← A+5
Après l’instruction
7 12 19
C←A+B C  A+B
Après l’instruction
C←B–A 7 12 5
C  B-A
Application 2

Quels résultats produit l’algorithme suivant ? Les types de variables


sont-ils corrects?
Instructions A B C D E
Déclaration

Algorithme Calcul2 Après l’instruction


Variable A : Entier 30 — — — —
A  30
C,B : Réel
Après l’instruction —
D : caractère 30 60 — —
E : Booléen B  A*2
Début Après l’instruction
A ← 30 C  (B+A)/4
30 60 22.5 — —
B ← A * 2
Manipulation

Après l’instruction
C ← (B + A)/4 B  C/5
30 4.5 22.5 — —

B ← C / 5 Après l’instruction Amin


30 4.5 22.5 —
D ← "Amine" D  'Amine' e
E ← (A > 40) Ou (C < B) Après l’instruction
Amin
Fin E  (A>40) OU 30 4.5 22.5 Faux
e
(C<B)
Application 3

Ecrire un algorithme permettant d’échanger les valeurs de


deux variables A et B

A
Variables A, B, C : Entier
Début
A←1
B←2
C←A
A←B

Fin
B←C
B C
LES INSTRUCTIONS D’ENTREE-SORTIE:

Les instructions de lecture et écriture


permettent a la machine de
communiquer avec l’utilisateur
L’INSTRUCTION ECRIRE:
L’écriture permet d’afficher des informations à l’écran.

Écrire (Variable ou ‘ Message’ )


Exemples :
Écrire (" Saisissez la valeur du rayon: ")
Écrire (" Saisissez les valeurs du prix HT : ")
Écrire (" La surface du cercle est :", S )
Écrire (S)
L’INSTRUCTION LIRE:
La lecture permet d’entrer des données a
partir du clavier

lire( variable)
Exemple:
Algorithme Calcul_double
variables A, B : entier
Début
écrire("entrer la valeur de A ")
lire(A)
B ← 2*A
écrire("le double de ", A, "est :", B)
Fin
Application 1
Ecrire un algorithme qui vous demande de saisir votre nom
puis votre prénom et qui affiche ensuite votre nom complet
Algorithme AffichageNomComplet
variables Nom, Prenom, : chaîne de caractères

Début
écrire("entrez votre nom")
lire(Nom)

écrire("entrez votre prénom")


lire(Prenom)
écrire("Votre nom complet est : ", Nom, " " ,Prenom)
Fin
Application 2

Écrire l’algorithme qui permet de déterminer le salaire


mensuel d’un commerçant sachant que ce salaire comporte
un montant fixe de 4000 DHS et

une commission qui représente 10% du chiffre d’affaire


réalisé par mois.
Algorithme Calcul_salaire_mensuel
Constante MF  4000
Variable CA : Réel
Com : Réel
Sal : Réel
DEBUT
Écrire (" Donner le CA mensuel en DHS ")
Lire(CA)
Com  CA * 10/100
Sal  Com + MF
Écrire (" Le salaire mensuel est de : ", Sal, " DHS " )
FIN
STRUCTURES ALTERNATIVES
I-INSTRUCTIONS A STRUCTURE SIMPLE

l'instruction si:

Si condition alors
Actions
Finsi
EXEMPLE
Variable x : entier
Début
Écrire ('Saisir un entier x ')
Lire (x)
Si (x >= 0) alors
Écrire(x,' est un nombre positif ')
Finsi
Si (x < 0) alors
Écrire(x,' est un nombre négatif ')
Finsi
Fin
II-INSTRUCTIONS A STRUCTURE
ALTERNATIVE
l'instruction si:

Si condition alors
Actions 1
Sinon
Actions 2
Finsi
EXEMPLE
Variable x : entier Variable x : entier
Début Début
Écrire ('Saisir un entier x ') Écrire ('Saisir un entier x ')
Lire (x) Lire (x)
Si (x >= 0) alors Si (x >= 0) alors
Écrire(x,' est un nombre positif ') Écrire (x,' est un nombre positif ')
Finsi Sinon
Si (x < 0) alors Écrire (x,' est un nombre négatif')
Écrire(x,' est un nombre négatif') Finsi
Finsi Fin
Fin
Application
Écrire l’algorithme qui permet de trouver le maximum de
deux entiers quelconques.
Algorithme Maximum
Variable a ,b, max : entier
DEBUT
Écrire ('Saisir deux entiers a et b ')
Lire(a, b)
Si (a > b) alors
max  a
Sinon
max  b
Finsi
Écrire ('le maximum de ' , a , ' et de ' , b, ' est : ' , max)
FIN
II-INSTRUCTIONS A STRUCTURE
ALTERNATIVE
Test imbriqué
Les tests peuvent avoir un degré quelconque d’imbrication
Si condition1 alors
si condition2 alors
instructionsA
sinon
instructionsB
finsi
Sinon
si condition3 alors
instructionsC
Finsi
Finsi
EXERCICE

Exercice1:
Ecrire un algorithme qui permet de résoudre l’équation
ax²+bx+c=0 dans IR et qui affiche la solution.
Exercice:2
Ecrire un algorithme qui affiche la valeur absolue d’un réel
Exercice:3
Ecrire un algorithme qui demande un nombre entier a
l’utilisateur puis qui teste et affiche s’il est divisible par 3
Algorithme Equa2D
Variable a,b,c,x1,x2,delta : reel
Début
Ecrire "donner a,b et c"
Lire(A,b,c)
deltab*b-4*a*c
SI delta<0 alors
Ecrire("Pas de sol en IR")
Sinon
SI delta=0 alors
x1(-b)/(2*a)
Ecrire("une solution :",x1)
sinon
x1(-b-sqrt(delta))/(2*a)
x2(-b+sqrt(delta))/(2*a)
Ecrire("deux solutions :",x1," et ",x2)
Finsi
Finsi
Fin
EXERCICE 4:
Écrire l’algorithme qui reçoit un nombre réel (Nb)
de l'utilisateur puis affiche l'un des messages
suivants:

• Si Nb>0  msg: Nombre positif


• Si Nb=0  msg: Nombre nul
• Si Nb<0  msg: Nombre négatif
EXERCICE 5:

Le prix de photocopies dans une reprographie varie selon le


nombre demande: 0,5 dh la copie pour un nombre de copies
inferieur a 10,0,4dh pour un nombre compris entre 10 et 20 et
0,3 au-delà.
Ecriver un algorithme qui demande a l’utilisateur le nombre de
photocopies effectuées, qui calcule et affiche le prix a payer
EXERCICE 5:
Un professeur note les résultats d’un test portant sur 50 questions
en utilisant la table suivante
bonnes réponses 0-10 11-20 21-30 31-40 41-50

note E D C B A

Ecrire un algo qui affiche note étant donne bonnes réponses


EXERCICE 5:

• Un club de sport désire automatiser sa gestion. Les tarifs


annuels d’inscription sont définis ainsi :
• De 0 à 3 ans ne sont pas autorisés à s’inscrire
• De 3 à 6 ans : gratuit
• De 6 à 12 ans: 1000 DHS
• De 12 à 26 ans : 1500 DHS
• Plus de 26 ans : 2000 DHS
• Ecrire un algorithme permettant d’automatiser cette gestion
STRUCTURES REPETITIVES
I- INTRODUCTION :
Écrire un algorithme permettant d’afficher 300 fois le
message : ‘‘ bonjour tout le monde’’.
Solution Classique :
DEBUT
Écrire (' Bonjour tout le monde ') 1
Écrire (' Bonjour tout le monde ') 2
.
.
Écrire (' Bonjour tout le monde ')
300
FIN
II-INSTRUCTIONS À STRUCTURE RÉPÉTITIVE

1-L’instruction Tant que :


On utilise cette instruction pour exécuter des actions tant
qu’une condition est réalisée

Syntaxe :

Tant que Condition Faire


Instructions
FTQ
Solution de l’exercice précédent :
Algorithme affichage_répété_d_un_texte
Variable i : Entier
DEBUT
i  1
Tant que (i <=300) Faire
Écrire (' Bonjour tout le monde ')
i  i+1
FTQ
FIN
INSTRUCTIONS À STRUCTURE
RÉPÉTITIVE
Sémantique : Si condition = C
 Tant que Valeur(C)=Vrai le bloc d'instructions sera exécuté.
 Si valeur(C)=Faux on passe à l'instruction suivante.
Remarques:
 Avec TANT QUE le test est fait à PRIORI.
 Il se peut que l'on ne rentre jamais dans la boucle.
 Parfois, on ne connaît pas à l’avance le nombre d'itérations.
Application 1

Afficher tous les multiples de 9 inférieurs à 485

Algorithme Multiples de 9
Variable M, i : Entier # i: variable intermédiaire: compteur
DEBUT
i  0 # initialisation de la boucle
M  0
Tant que (M <= 485) Faire
Écrire (M , ' est un multiple de 9 ' )
i  i+1 # incrémentation du compteur
M  i * 9
FTQ
FIN
Application 2

Quel résultat produira l'algorithme suivant?


Algorithme Boucle1
Variable i , y : Entier
Début i = variable intermédiaire
i  = compteur
i i+1 = incrémentation
y0 du compteur
Tant Que (i<7) faire
i i+1
y  y+i
Écrire (' y = ' , y)
FTQ
Fin
Application 3

Dans cet algorithme combien de fois la boucle est- elle


exécutée ?

Variable n : Entier
Début
n 15
Tant Que (n<>0) faire
Écrire (n)
n n-2
FTQ
Fin
INSTRUCTIONS À STRUCTURE RÉPÉTITIVE
2- Boucle « Pour »:
Syntaxe :
Pour compteur allant de vi a vf (pas valeur) faire

Instructions

Fin Pour
Application 1
Pour i allant de 1 a 300 faire
Ecrire(‘bonjours tout le monde ’)
finpour

i  1
Tant que (i <=300) Faire
Écrire (' Bonjour tout le monde ')
i  i+1
FTQ
Application 2

Quels résultats produiront les 2 algorithmes suivants?


Pour i allant de 1 a 5 faire
ii-1
ecrire(‘i=‘,i)
finpour
Pour i allant de 1 a 5 faire
ii-1
ecrire(‘i=‘,i)
finpour
Algorithm Ordre
Variables A, B: reel
Début
Ecrire ( "A: ") Lire (A)
Ecrire ( "B: ") Lire (B)
Si A< 0 Alors
Si B< 0 Alors
Ecrire ( "positif ")
Sinon
Si B=0 Alors
Ecrire ( "Nul")
Sinon
Ecrire ( "Négatif")
Finsi
Sinon
Si A= 0 Alors
Ecrire ( "Nul")
Sinon
Si B< 0 Alors
Ecrire ( "Negatif")
Sinon
Si B=0 Alors
Ecrire ( "Nul")
Sinon
Ecrire ( "Positif")
Finsi
Finsi
Finsi
Finsi
Variable age : entier
Debut
Lire(age)
Si age<6 alors
Ecrire(" Petit ")
Sinon
si age<=7 alors
Ecrire(" Poussin")
sinon
si age<=9 alors
Ecrire(" Pupille ")
sinon
si age<=11 alors
Ecrire("Minime")
sinon
Ecrire("Cadet")
FinSi
FinSi
FinSi
FinSI
Fin
Variable a,b,c,D,x1,x2 : reel
Debut
Lire(a,b,c)
D b^2-4*a*c
Si D<0 alors
Ecrire(" Pas de solution en IR ")
Sinon
si D=0 alors
x1 -b/(2*a)
Ecrire(" X= ", x1)
sinon
x1 (-b+sqrt(D))/(2*a)
x2 (-b-sqrt(D))/(2*a)
Ecrire(" X1= ",x1, " X2= ",x2)
FinSi
FinSi
Fin
Algorithm factoriel1
Variables P, i, n : entier
Debut
Ecrire (" Donner N= ")
Lire(n)
i←1
P← 1
TantQue (i <=n)
P← P* i
i ← i +1
FinTantQue
Ecrire (" Le factoriel est = ", P)
Fin
Algorithm factoriel2
Variables P, i, n : entier
Debut
Ecrire (" Donner N= ")
Lire(n)
P← 1
Pour i de 1 a n faire
P← P* i
FinPour
Ecrire (" Le factoriel est = ", P)
Fin
Algorithm Puissance
Variables X,n,P,i: entier
Debut
Ecrire (" Donner N= ")
Lire(n)
Ecrire (" Donner X= ")
Lire(X)
P← 1
Pour i de 1 à n Faire
P← P* X
FinPour
Ecrire (" La puissance est = ", P)
Fin

Vous aimerez peut-être aussi