Académique Documents
Professionnel Documents
Culture Documents
Initiation à l’algorithmique
Sciences & techniques
1ère Année ST
ANNEE 2008-2009
UNIVERSITE MENTOURI DE CONSTANTINE INITIATION A L’ALGORITHMIQUE
I. NOTIONS GENERALES
1. Algorithme
De ce fait, un algorithme doit être lisible et compréhensible par plusieurs personnes, il s'écrit
le plus souvent en pseudo-langage de programmation afin de faciliter ultérieurement sa
traduction dans un langage de programmation.
Un algorithme n'est donc exécutable directement par aucune machine. Mais il a l'avantage
d'être traduit facilement dans tous les langages de programmation.
2. Programme
3. Langage de programmation
4. Organigramme
Symbole Désignation
Début ou fin de l’organigramme.
Oui
Instruction conditionnelle.
Non
Remarque : les différents symboles sont reliés entre eux par des lignes de liaisons.
1. Présentation
…
Instruction n
Fin
Exemple :
Algorithme somme
Variables : a, b : entier
Début :
Lire (a,b)
C a+b
Ecrire (c)
Fin
2. Déclaration de variables
Une variable représente une entité stockant une information, elle peut être de type entier,
réel, booléen, caractère, chaine de caractères, …etc.
Variables :
Ident : Type
Exemple :
Variables :
A, B : entier
Val1, Val2 : réel
Test : booléen
3. Déclaration de constantes
Les constantes sont des entités dont leur valeur ne peut pas être modifiée au cours de
l’exécution de l’algorithme, elles peuvent être de différentes natures : entière, réelle,
booléenne, caractère, …etc.
Constantes :
Ident = Valeur
Exemple :
Constantes :
D= 55
QTE1= 45 .05
ElemTRV= Vrai
Ch= ‘K’
Un algorithme peut avoir des interactions avec l’utilisateur, Il peut afficher un résultat
comme il peut demander à l’utilisateur de saisir une information afin de la stocker dans une
variable.
Structure générale :
Lire (variable)
Lire (variable1, variable2, …)
Exemple :
Lire(s)
Lire (a, b, c)
Lire (X, Y)
b. Instruction d’écriture (sortie)
Structure générale :
Écrire (variable)
Écrire (‘message’)
Écrire (‘message’, variable)
Exemple :
Écrire (s)
Écrire (‘ entrer les valeurs’)
Écrire (‘la somme=’, som)
2. L’instruction d’affectation
L’instruction d’affectation, comme son nom l’indique, permet d’affecter une valeur à une
variable.
Structure générale :
Ident expression
L’expression est une suite d’opérations sur des constantes ou variables déjà déclarées.
Exemple 1 :
Exemple 2 :
Comment ?
T A
A B
B T
3. Les instructions conditionnelles
Si (Condition) Alors :
Instruction1
Instruction2
…
Instruction N
Fin si
Exemple :
Si (A > B) alors :
A A+2
B 3
Fin si
Ce type d’instructions incorpore deux blocs d’instructions dont un et un seul bloc sera
exécuté, de manière alternative, en fonction de la condition. Cette structure a la forme
suivante :
Si (Condition) Alors :
Instruction1
…
Instruction N
Sinon
Instruction1
…
Instruction M
Exemple : Fin si
Si (B≠ 0) Alors :
A 3
C B*4
Sinon
B B-1
Fin si
Lire (n)
Selon le cas (n) :
n = 1 : écrire ( ‘samedi’)
n = 2 : écrire ( ‘dimanche’)
n = 3 : écrire ( ‘lundi’)
n = 4 : écrire ( ‘mardi’)
n = 5 : écrire ( ‘mercredi’)
n = 6 : écrire ( ‘jeudi’)
n = 7 : écrire ( ‘vendredi’)
Sinon écrire (‘le nombre doit être compris entre 1 et 7’)
Fin selon
Exercices :
Exercice1 : écrire un algorithme qui calcule la valeur absolue d’un nombre réel.
er
Exercice2 : écrire un algorithme qui résout une équation de 1 degré.
- Construire l’organigramme correspondant à cet algorithme.
ème
Exercice3 : écrire un algorithme qui résout une équation de 2 degré.
SOLUTIONS
Exercice1 :
Exercice2 :
Algorithme equaD1
Variables :
A, B, X: réel
Début
Lire(A)
Lire(B)
Si A=0 alors
Si B=0 alors
Ecrire (‘infinité de solutions’)
Sinon
Ecrire (‘Pas de solution’)
Fin si
Sinon
X -B/A
Ecrire (‘X=’, X)
Fin si
Fin
Organigramme :
Lire (A, B)
Ecrire (‘X=’, X)
Fin
Exercice3 :
Algorithme equaD2
Variables :
A, B, C, X, X1, X2, Delta: réel
Début
Lire(A)
Lire(B)
Lire(C)
Si A=0 alors
Si B=0 alors
Si C=0 alors
Ecrire (‘infinité de solutions’)
Sinon
Ecrire (‘Pas de solution’)
Fin si
Sinon
X -C/B
Ecrire (‘X=’,X)
Fin si
Sinon
Delta B*B-4*A*C
Si Delta < 0 alors
Ecrire (‘Pas de solution’)
Sinon
Si Delta=0 alors
X -B/(2*A)
Ecrire (‘solution double=’,X)
Sinon
X1 -(B-SQRT(Delta))/(2*A)
X2 -(B+SQRT(Delta))/(2*A)
Ecrire (‘deux sol dif=’,X1, X2)
Fin si (* fin si de delta=0*)
Fin si (* fin si de delta <0*)
Fin si (* fin si de A=0*)
Fin (* fin de l’algorithme*)
Les instructions répétitives, appelées aussi les instructions itératives ou encore les boucles,
permettent de répéter plusieurs fois l’exécution d’une même suite d’instructions. On en
distingue trois types :
a. La boucle « Pour »
La boucle « Pour» permet de répéter l'exécution d’une suite instructions un nombre de fois
connu d’avance. Pour cela, il faut préciser la valeur initiale et la valeur finale et
éventuellement le pas (lorsqu’il est différent de 1). . Cette boucle a la structure suivante :
VI : valeur initiale.
VF : valeur finale.
Exemple 1 :
Exemple2 :
Ecrire un algorithme qui calcule la somme des N premiers nombres entiers positifs.
Algorithme sommeN1
Variables :
N, Som, i : entier
Début
Lire (N)
Som 0
Pour i allant de 1 à N faire
Som Som+i
Fin pour
Ecrire(Som)
Fin
La boucle « Tant que» permet de répéter l'exécution d’une suite instructions tant qu'une
certaine condition est remplie. Cette boucle a la structure suivante :
La suite d’instructions de la boucle « Tant que » sera ré-exécutée tant que la condition
restera vraie.
Exemple1 :
Exemple2 :
Ecrire un algorithme qui calcule la somme des N premiers nombres entiers positifs.
Algorithme sommeN2
Variables :
N, Som, i : entier
Début
Lire (N)
Som 0
i 1
Tant que (i <=N) faire
Som Som+i
i i+1
Fin TQ
Ecrire(Som)
Fin
c. La boucle « Répéter »
La boucle « Répéter» permet de répéter l'exécution d’une suite instructions tant qu'une
certaine condition n’est pas remplie, c'est-à-dire, on sort de la boucle « Répéter » quand la
condition sera satisfaite. Cette boucle a la structure suivante :
Répéter
Instruction1
Instruction2
…
Instruction N
Jusqu’à (Condition)
Exemple1
Exemple2 :
Ecrire un algorithme qui calcule la somme des N premiers nombres entiers positifs.
Algorithme sommeN3
Variables :
N, Som, i : entier
Début
Lire (N)
Som 0
i 1
Répéter
Som Som+i
i i+1
Jusqu’à ( i>20)
Ecrire(Som)
Fin
Exercices :
Exercice2 : écrire un algorithme qui calcule le PGCD et le PPCM de deux nombres entiers non
nuls.
Algorithme PGCD_PPCM
Variables :
A, B, A1, B1, PGCD, PPCM : entier
Début
Lire (A,B)
A1 A
B1 B
Tant que (A1≠B1) faire
Si (A1>B1) alors
A1 A1-B1
Sinon
B1 B1-A1
Fin si
Fin TQ
PGCD A1
PPCM A*B /A1
Ecrire (‘PGCD=’, PGCD)
Ecrire (‘PPCM=’, PPCM)
Fin
Algorithme Moyenne
Variables :
N, Som, i : entier
Moy : réel
Début
Som 0
Pour i allant de 1 à 20 faire
Lire (N)
Som Som+N
Fin pour
Moy Som/20
Ecrire(Moy)
Fin
Exercice4 : écrire un algorithme qui lit une suite de nombres entiers se terminant par la
valeur zéro, puis il affiche la moyenne des valeurs paires.
Algorithme moyennePaire
Variables :
N, Som, Imp, i : entier
Moy : réel
Début
Lire (N)
Som 0
Imp 0
Tant que (N≠0) faire
Si (N mod 2 = 0) alors
Som Som+N
Imp Imp +1
Fin si
Lire (N)
Fin TQ
Si (Imp=0) alors
Ecrire (‘Aucun nombre pair n’est lu’)
Sinon
Moy Som/Imp
Ecrire (‘Moyenne’, Moy)
Fin si
Fin
Exercice4 : écrire un algorithme qui lit une suite de nombres entiers se terminant par la
valeur zéro, puis il affiche :
Les tableaux représentent une structure de données permettant de stocker des données de
même nature. On les représente souvent par un ensemble de cases contenant chacune une
valeur.
Les tableaux peuvent avoir plusieurs dimensions dont les plus répandus sont les tableaux à
une dimension (vecteurs) et les tableaux à deux dimensions (matrices).
Un vecteur peut être vu comme une liste d’éléments arrangés dans des cases. Chaque case
est référencée par un indice permettant d’identifier sa valeur.
- Un tableau possède un nom (ici Moyenne) et un nombre d'éléments (de cases) qui
représente sa taille (ici 100).
- Tous les éléments d'un tableau ont le même type (ici les éléments sont des réels).
- Pour désigner un élément, on indique le nom du vecteur suivi par son indice (son
ème
numéro) entre crochets : Moyenne [2] représente le 2 élément du tableau
Moyenne et vaut 13.75.
Les tableaux se manipulent à travers leurs éléments représentés par le nom du tableau suivi
d'un indice entre crochets.
- entière
- comprise entre les valeurs minimales et maximales déterminées à la déclaration du
tableau.
Par exemple, avec le tableau Tab [1..50], il est impossible d'écrire Tab [0] et Tab [51]. Ces
expressions font référence à des éléments qui n'existent pas.
Cette opération de lecture consiste en le remplissage des différentes cases qui constituent le
tableau.
Exemple :
Algorithme LectureTableau
Variables :
Tab [1..20] : tableau d’entiers
i : entier
Début
Pour i allant de 1 à 20 Faire
Lire (Tab[i])
Fin pour
Fin
L’édition d’un tableau consiste en l’affichage de ses éléments c'est-à-dire le contenu de ses
différentes cases.
Exemple :
Algorithme LectureTableau
Variables :
Tab [1..20] : tableau d’entiers
i : entier
Début
Pour i allant de 1 à 20 Faire
Ecrire (Tab[i])
Fin pour
Fin
Exercices :
Exercice1 : Ecrire un algorithme qui calcule la moyenne des valeurs d'un tableau de 100 éléments
entiers.
Exercice2 : Ecrire un algorithme qui calcule le nombre d'entiers positifs et le nombre d'entiers
négatifs d'un tableau de 200 éléments.
Exercice3 : Ecrire un algorithme qui permet de trouver la valeur maximale d’un tableau de 20
éléments réels.
Exercice4 : Ecrire un algorithme qui permet de trouver si une valeur « X » appartient à un tableau
de 100 éléments entiers.
SOLUTION
Algorithme exercice1
Variables :
Tab [1..100] : tableau d’entiers
Som, i : entier
Moy : réel
Début
Pour i allant de 1 à 100 Faire
Lire (Tab[i])
Fin pour
Som 0
Pour i allant de 1 à 100 Faire
Som Som+ Tab[i]
Fin pour
Moy Som/100
Ecrire (‘Moyenne=’, Moy)
Fin
Algorithme exercice2
Variables :
Tab [1..200] : tableau d’entiers
Pos, Neg, i : entier
Début
Pour i allant de 1 à 200 Faire
Lire (Tab[i])
Fin pour
Pos 0
Neg 0
Pour i allant de 1 à 200 Faire
Si (Tab[i] < 0) Alors
Neg Neg+1
Sinon
Pos Pos+1
Fin si
Fin pour
Ecrire (‘Le nombre de valeurs positives=’, Pos)
Ecrire (‘Le nombre de valeurs négatives=’, Neg)
Fin
Algorithme exercice3
Variables :
Tab [1..20] : tableau de réels
i : entier
max : réel
Début
Pour i allant de 1 à 20 Faire
Lire (Tab[i])
Fin pour
max Tab [1]
Pour i allant de 2 à 20 Faire
Si (Tab[i] > max) Alors
max Tab [i]
Fin si
Fin pour
Ecrire (‘Valeur max=’, max)
Fin
Algorithme exercice4
Constantes :
N = 100
Variables :
Tab [1..N] : tableau d’entiers
X, i : entier
Trouv : booléen
Début
Lire (X)
1 Pour i allant de 1 à 200 Faire
Lire (Tab[i])
Fin pour
2 i
1
Trouv faux
Tant que ((i <= N) et (non Trouv)) Faire
Si (Tab[i] = X) Alors
3 Trouv vrai
Fin si
4 i i+1
Fin TQ
Si (Trouv) Alors
5 Ecrire (X, ‘appartient au tableau’)
Sinon
6 Ecrire (X, ‘n-appartient pas au tableau’)
Fin si
Fin
I. DEFINITION :
Les matrices sont des tableaux à deux dimensions, c'est-à-dire une structure de données
permettant de stocker des informations, de même nature, référencées par leurs numéros de
ligne et de colonne.
Les matrices présentent les mêmes caractéristiques que les vecteurs. Les éléments d’une
matrice sont arrangés dans des cases référencées par deux indices servant d’identifier sa
valeur.
- Une matrice possède un nom (ici MAT) et un nombre d'éléments qui représente sa
taille (ici 100*200).
- Tous les éléments d'une matrice ont le même type (ici les éléments sont des entiers).
- Pour désigner un élément, on indique le nom de la matrice suivi par ses indices
(indice ligne et indice colonne) entre crochets : MAT [2,3] représente la case située à
l’intersection de la ligne « 2 » et la colonne « 3 » et vaut 23.
Les éléments d’une matrice se manipulent en spécifiant le nom de la matrice suivi des deux
indices ligne et colonne entre crochets.
Similairement aux vecteurs, Les deux indices ligne et colonne peuvent avoir plusieurs formes
: valeur, variable ou expression. Quelque que soit cette forme, la valeur des deux indices
doivent être de type entier et être dans l’intervalle des indices permis.
Cette opération de lecture consiste en le remplissage des différentes cases qui constituent la
matrice.
Exemple :
Ecrire un algorithme qui permet de lire une matrice de 20 lignes et 30 colonnes d’éléments
entiers.
Algorithme LectureMatrice
Variables :
Mat [1..20, 1..30] : matrice d’entiers
i, j : entier
Début
Pour i allant de 1 à 20 Faire
Pour j allant de 1 à 30 Faire
Lire (Mat [i, j])
Fin pour
Fin pour
Fin
VI. EDITION D’UNE MATRICE
L’édition d’une matrice consiste en l’affichage de ses éléments c'est-à-dire le contenu de ses
différentes cases.
Exemple :
Algorithme éditionMatrice
Variables :
Mat [1..20, 1..30] : matrice d’entiers
i, j : entier
Début
Pour i allant de 1 à 20 Faire
Pour j allant de 1 à 30 Faire
écrire (Mat [i, j])
Fin pour
Fin pour
Fin
Exercices :
Exercice1 : Ecrire un algorithme qui lit deux matrices a et b et calcule leur somme.
Exercice2 : Ecrire un algorithme qui permet de trouver la valeur maximale pour chaque ligne
d’une matrice de 20 lignes et 20 colonnes d’éléments réels.
Exercice3 Ecrire un algorithme permettant de rechercher le plus grand élément d’une matrice et
de retourner ses numéros de ligne et de colonne.