Chapitre 1
Chapitre 1
Tronc commun
Déroulement
Cours : 20h
TD : 10h
Évaluation
Examen : 1h30 <-> 2h
2
Plan
Cours
Chapitre I : Introduction à l’algorithmique
Chapitre II : Structures de contrôle
Chapitre III : Tableaux
Chapitre IV : Fonctions
Chapitre V : Complexité algorithmique
Chapitre VI : Algorithmes de recherche
Chapitre VII : Algorithmes de tri
3
Chapitre I
Introduction à l’algorithmique
Comment résoudre un problème ?
Problème ?
5
Étapes pour résoudre un problème
Problème informel
Langage de
Analyse Algorithme programmation
(code)
Compilation Exécutable
Exécution Résultat
6
Qu’est ce qu’un algorithme?
Origine
La notion d'algorithme est donc historiquement liée aux manipulations numériques, mais elle s'est
progressivement développée pour porter sur des objets de plus en plus complexes, des textes, des
images, des formules logiques, des objets physiques, etc.
7
Qu’est ce qu’un algorithme?
Définition
Un algorithme est une suite d’opérations élémentaires (instructions), qui une fois exécutée correctement,
conduit à un résultat final qui résout un problème déterminé.
✓ Le pseudo-code
8
Qu’est ce qu’un algorithme?
Pseudo-code
En programmation, le pseudo-code est une façon de décrire un algorithme sans référence à un langage
de programmation en particulier.
L'écriture en pseudo-code permet souvent de bien prendre toute la mesure de la difficulté de la mise en
œuvre de l'algorithme, et de développer une démarche structurée dans la construction de celui-ci.
9
Qu’est ce qu’un algorithme?
Pseudo-code: exemple
Algorithme moyenne
Variables N1, N2, N3 en Entier
Variable Moyenne en Réel
Début
Ecrire ("entrer les notes")
Lire (N1, N2, N3)
Moyenne ←(N1+N2+N3)/3
Ecrire ("La moyenne est égale à", Moyenne)
Fin
10
Qu’est ce qu’un algorithme?
Organigramme
L’organigramme est une représentation graphique qui permet la lecture aisée des algorithmes.
11
Qu’est ce qu’un algorithme?
Organigramme: exemple
12
Structure d’un algorithme
Début
Bloc d’instructions
Fin
13
Instructions d’entrée-sortie
14
Instructions d’entrée-sortie
Algorithme Salutation
Début Bonjour tout le monde !
Fin
15
Instructions d’entrée-sortie
Algorithme : Salutation
Début Bonjour tout le monde !
Saisir le nombre d’élèves
Fin
?
16
Les variables
Une variable désigne un emplacement mémoire qui permet de stocker une valeur.
17
Les variables
Début
Bloc d’instructions
Fin
18
Les variables
Déclaration des variables : nom
19
Les variables
Déclaration des variables : type
Le type de la variable (appelé aussi domaine de définition) indique l’ensemble des valeurs que la variable
peut prendre.
✓ Les types composés (ou structurés) statiques : Tableaux, chaînes de caractères et enregistrements.
✓ Les types structurés dynamiques : Pointeurs, piles, files, arbres, graphes et fichiers.
20
Les variables
Déclaration des variables : type
Type numérique
Les variables de type numérique utilisées dans l’algorithme ont comme domaines usuels ceux fournis par
les mathématiques : réel ou entier.
21
Les variables
Déclaration des variables : type
Type caractère (alphanumérique)
Il s’agit du domaine constitué des caractères alphabétiques, numériques et de ponctuation.
22
Les variables
Déclaration des variables : type
Exemple : le caractère c
C en majuscule vaut l’expression suivante: ‘c’+(‘A’ – ‘a’)
‘c’ vaut 99
‘A’ vaut 65
‘a’ vaut 97
‘c’+(‘A’ – ‘a’) = 99+(65-97)=67 qui est équivalent à ‘C’
Type booléen
Le domaine des booléens est l’ensemble formé des deux seules valeurs logiques VRAI ou FAUX
23
Les variables
Déclaration des variables
Exemple :
Variable X en Entier simple RAM
Variables Y , Z en Réel simple
20 21
Y
2 octets
45 46 47 48
X
4 octets
78 79 80 81
4 octets
Z
24
Les variables
Déclaration des variables
Algorithme Salutation Bonjour tout le monde !
Lors de la déclaration
d’une variable, elle prend Saisir le nombre d’élèves
Variable N en Entier une valeur aléatoire. _30
Début
N: 30
Fin
RAM
25
Les variables
Déclaration des variables
Algorithme Salutation
Bonjour tout le monde !
Saisir le nombre d’élèves
Variable N en Entier 30
Début Le nombre saisi par l’utilisateur est: 30
N: 30
Fin
Comment les variables changent-elles de valeur sans passer par
l’instruction Lire() ?
RAM
26
Instruction d’affectation
L’affectation est une opération qui fixe une nouvelle valeur à une variable. Elle est représentée par une flèche orientée
à gauche. Le symbole de l’affectation est
Exemple :
A 15 (1)
B 2 (2)
A B+3 (3)
A A+5 (4)
Algorithme Salutation
Bonjour tout le monde !
Saisir le nombre d’élèves
Variable N en Entier 30
Début Le nombre modifié par l’utilisateur est:
200
RAM
28
Instruction d’affectation
Exercice
Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ?
Variables A, B en Entier
Début
A←5
B←2
A←B
B←A
Fin A: 2
! B: 2
RAM
29
Instruction d’affectation
Exercice
Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ?
Algorithme Permutation
Variables A, B, C en Entier
Début
A←5
B←2
C←A
A←B
B←C A: 2
Fin
B: 5
C: 5
RAM
30
Instruction d’affectation
Expressions et opérateurs
Une expression est un ensemble de valeurs, reliées par des opérateurs, et équivalent à une seule valeur.
Un opérateur est un signe qui relie deux valeurs, pour produire un résultat.
Exemple :
Expression
A ← 5+(D%3)*24
Opérateur
31
Instruction d’affectation
Expressions et opérateurs
Opérateurs arithmétiques
Opération Opérateur
Addition +
Soustraction -
Multiplication *
Division /
Puissance ^
Changement de signe -
Modulo %
32
Instruction d’affectation
Expressions et opérateurs
Opérateurs logiques
Opérateur Opération
NON Négation
ET Conjonction
OU Disjonction
XOR (OU exclusif) Disjonction exclusive
33
Instruction d’affectation
Expressions et opérateurs
Opérateurs logiques
Exemple :
NON VRAI FAUX C ←3
FAUX VRAI B ← VRAI
A ← NON B
D ← A OU C
E ← B ET NON D
34
Instruction d’affectation
Expressions et opérateurs
Opérateurs de comparaison
Opérateur Opération
= Égal à
< Inférieur à
> Supérieur à
<> Différent de
Exemple :
C ←3
B ←2
A ← C <> B
35
Instruction d’affectation
Ordre de priorité des opérateurs
Ordre de priorité décroissante des opérateurs arithmétiques et de concaténation :
Les parenthèses
« ^ » (la puissance)
« - » (changement de signe)
« x », et « ÷ »
«%»
« + » et « - »
Remarques :
- La question de l’ordre de priorité des opérateurs de comparaison ne se pose pas.
- Les opérations entre parenthèses sont prioritaires.
36
Les constantes
Les constantes désignent des références à des valeurs invariantes au cours du déroulement de l’algorithme.
37
Les constantes
Début
Bloc d’instructions
Fin
38
Les constantes
Exemple
RAM
39
Exercices
Donner le type et la valeur des expressions suivantes :
40
Exercices
Donner le type et la valeur des expressions suivantes :
41
Exercices
En utilisant des tables de vérité, démontrer les lois suivantes, appelées lois de Morgan.
a = NON( NON( a ) )
NON( a ET b ) = NON(a) OU NON (b)
NON( a OU b ) = NON(a) ET NON (b)
42
Exercices
En utilisant des tables de vérité, démontrer les lois suivantes, appelées lois de Morgan.
a = NON( NON( a ) )
a NON( a ) NON(NON( a ))
VRAI FAUX VRAI
FAUX VRAI FAUX
En utilisant des tables de vérité, démontrer les lois suivantes, appelées lois de Morgan.
44
Exercices
Indiquer si les algorithmes suivants sont incorrects, si tel est le cas donner toutes les raisons pour lesquelles
ils le sont :
Algorithme A1 Algorithme A2 Algorithme A3
Variables x, y en Entier Variables a, b, c en Booléen Variables x, y, w en Entier
Début Début Début
x 5 a Vrai x 7. 65
5 y b Faux z x
Fin ca*b x*2 3+z
Fin y x+5*w
Fin
45
Exercices
Indiquer si les algorithmes suivants sont incorrects, si tel est le cas donner toutes les raisons pour lesquelles
ils le sont :
Algorithme A1 Algorithme A2 Algorithme A3
Variables x, y en Entier Variables a, b, c en Booléen Variables x, y, w en Entier
Début Début Début
x 5 a Vrai x 7. 65
5 y b Faux z x
Fin ca*b x*2 3+z
Fin y x+5*w
Fin
46
Exercices
47
Exercices
Fin
RAM
48
Exercices
RAM
51
Exercices
Ecrire un algorithme qui demande un nombre à l’utilisateur puis il calcule et affiche le carré ainsi que le
cube de ce nombre.
52
Exercices
Ecrire un algorithme qui demande un nombre à l’utilisateur puis il Donner un nombre
calcule et affiche le carré ainsi que le cube de ce nombre. 3
Le carré du nombre 9
Le cube du nombre 27
Algorithme Le carré et le cube d'un nombre
Variables n en Entier
Début
Ecrire("Donner un nombre ")
Lire(n)
Ecrire("Le carré du nombre",n^2)
n: 3
Ecrire("Le cube du nombre",n^3)
Fin
RAM
53
Exercices
Ecrire un algorithme qui réalise la permutation de deux variables numériques :
1. Sans avoir utiliser une troisième variable.
2. En utilisant une troisième variable.
54
Exercices
Ecrire un algorithme qui réalise la permutation de deux variables numériques :
1. Sans avoir utiliser une troisième variable.
Algorithme Permutation de deux variables
Variables a, b en Entier
Début
Ecrire("Donner la valeur de la première variable")
Lire(a)
Ecrire("Donner la valeur de la deuxième variable")
Lire(b)
a a+b
b a-b
a a-b
Ecrire("La valeur de la première variable ",a)
Ecrire("La valeur de la deuxième variable ",b)
Fin
55
Exercices
Ecrire un algorithme qui réalise la permutation de deux variables numériques :
2. En utilisant une troisième variable.
Algorithme Permutation de deux variables
Variables a, b, c en Entier
Début
Ecrire("Donner la valeur de la première variable")
Lire(a)
Ecrire("Donner la valeur de la deuxième variable")
Lire(b)
ca
ab
bc
Ecrire("La valeur de la première variable ",a)
Ecrire("La valeur de la deuxième variable ",b)
Fin
56
Exercices
Ecrire un algorithme qui fait la permutation circulaire des trois variables A,B et C.
57
Exercices
Ecrire un algorithme qui fait la permutation circulaire des trois variables A,B et C.
Algorithme Permutation circulaire des trois variables
Variables A, B, C, D en Entier
Début
Ecrire("Donner les valeurs de A,B et C")
Lire(A,B,C)
DA
AB
BC
CD
Ecrire("A=",A, "B=",B, "C=",C)
Fin
58
Exercices
Ecrire un algorithme qui demande à l’utilisateur une lettre en majuscule et l’affiche en minuscule.
59
Exercices
Ecrire un algorithme qui demande à l’utilisateur une lettre en majuscule et l’affiche en minuscule.
60
Exercices
61
Exercices
62
Exercices
Ecrire un algorithme qui demande à l’utilisateur le rayon R d’un disque C et qui calcule par la suite le
diamètre D, le périmètre et la surface du disque C.
63
Exercices
Ecrire un algorithme qui demande à l’utilisateur le rayon R d’un disque C et qui calcule par la suite le
diamètre D, le périmètre et la surface du disque C.
64
Exercices
Ecrire un algorithme qui demande à l’utilisateur les dimensions d’un parallélépipède rectangle. Puis, il
calcule son volume.
65
Exercices
Ecrire un algorithme qui demande à l’utilisateur les dimensions d’un parallélépipède rectangle. Puis, il
calcule son volume.
66
Exercices
Une grande surface accorde à tous ses clients, une réduction de 3% sur le montant d’achat.
Ecrire un algorithme permettant de saisir le montant d’achat (MA) et de calculer le montant de la remise
(R) ainsi que le montant à payer (MP).
67
Exercices
Une grande surface accorde à tous ses clients, une réduction de 3% sur le montant d’achat.
Ecrire un algorithme permettant de saisir le montant d’achat (MA) et de calculer le montant de la remise
(R) ainsi que le montant à payer (MP).
Ecrire un algorithme qui lit le prix HT d’un article, le nombre d’articles et le taux de la TVA, et qui calcule et
affiche le prix total TTC à payer.
69
Exercices
Ecrire un algorithme qui lit le prix HT d’un article, le nombre d’articles et le taux de la TVA, et qui calcule et
affiche le prix total TTC à payer.
71
Exercices
1. Ecrire un algorithme qui permet de lire les notes de trois matières ensuite il calcule et affiche leur
moyenne.
72
Exercices
2. Modifier l’algorithme dans le cas où les matières ont des coefficients qui doivent être donnés avec les notes.
Algorithme La moyenne de trois matières
Variables M1,C1, M2,C2, M3,C3, moy en Réel
Début
Ecrire("Donner la note de la première matière")
Lire(M1)
Ecrire("Donner le coefficient de la première matière")
Lire(C1)
Ecrire("Donner la note de la deuxième matière")
Lire(M2)
Ecrire("Donner le coefficient de la deuxième matière")
Lire(C2)
Ecrire("Donner la note de la troisième matière")
Lire(M3)
Ecrire("Donner le coefficient de la troisième matière")
Lire(C3)
moy (M1*C1+M2*C2+M3*C3)/(C3+C2+C3)
Ecrire("La moyenne est:",moy) 73
Fin
Exercices
Ecrire l'algorithme qui, pour une variable entière A lue, permet le calcul et l'affichage des variables B, C, D, E,
F, G et H où :
• B=A/2
• C= (A+B)/2*A
• D= ( B> A) ou (C<A)
• E= 125 +12
• F= "125"
• G= "Vrai"
• H= 'O'
74
Exercices
Ecrire l'algorithme qui, pour une variable entière A lue, permet le calcul et l'affichage des variables B, C, D, E,
F, G et H où : B=A/2, C= (A+B)/2*A, D= ( B> A) ou (C<A), E= 125 +12, F= "125",G= "Vrai" et H= 'O'
Algorithme Exercice
Variables A, B, C, E en Entier
Variable D en Booléen
Variables F, G en Chaîne de caractères
Variable H en Caractère
Début
Ecrire("Donner la valeur de A")
Lire(A)
B A/2
C (A+B)/2*A
D ( B> A) ou (C<A)
E 125 +12
F "125"
G "Vrai"
H 'O'
Ecrire("A=",A , "B=",B, "C=",C , "D=",D, "E=",E , "F=",F, "G=",G , "H=",H) 75
Fin
Exercices
Ecrire un algorithme qui convertit un nombre de secondes au format heures minutes secondes, puis l’affiche.
Exemple :
Si C = 3665, alors l’affichage sera 1h 1min 5s.
76
Exercices
Ecrire un algorithme qui convertit un nombre de secondes au format heures minutes secondes, puis l’affiche.
77
Exercices
Ecrire l’algorithme permettant de calculer et d’afficher le salaire net d’un employé.
Sachant que :
✓ Salaire net = Salaire brut – Valeur de l’impôt – Valeur de CNSS
✓ Salaire brut = (Salaire de base + Prime de technicité + Prime de transport + Prime des enfants) * Taux
de travail
✓ Taux de travail = Nombre de jours travaillés / 26
✓ Prime des enfants = Prime d’un enfant * Nombre d’enfants
✓ Valeur de l’Impôt = Taux de l’Impôt * Salaire Brut
✓ Valeur de CNSS = Taux de CNSS * Salaire Brut
✓ Taux CNSS = 26,5%
✓ Taux Impôt = 2%
78
Exercices
Ecrire l’algorithme permettant de calculer et d’afficher le salaire net d’un employé.
Algorithme Le salaire net d’un employé
Variables SB, SN, salBase, pTech, pTrans, pEnfant en Réel
Variables nbrJours, nbrEnfants en Entier
Constante tCNSS=0.265, tImpot=0.02
Début
Ecrire("Donner le salaire de base ")
Lire(salBase)
Ecrire("Donner la prime de technicité ")
Lire(pTech)
Ecrire("Donner la prime de transport")
Lire(pTrans)
Ecrire("Donner le nombre de jours travaillés ")
Lire(nbrJours)
Ecrire("Donner le nombre d’enfants")
Lire(nbrEnfants)
Ecrire("Donner la prime d’un enfant ")
Lire(pEnfant)
SB (salBase + pTech+ pTrans + pEnfant * nbrEnfants)* nbrJours/26
SN SB - SB * tImpot - SB * tCNSS
Ecrire("Le salaire net est :",SN) 79
Fin