Académique Documents
Professionnel Documents
Culture Documents
Algorithmique
2021-2022
Objectifs
Définir les concepts clés
❑ Algorithme
❑ Programme
❑ Ordinateur
❑ Information
2
Ch. 1
⮚ 1.L'algorithme :
Est une suite finie d’instructions élémentaires
permettant de résoudre un problème quelconque.
Origine
⮚ 2.L'algorithmique :
4
Ch. 1
⮚ 3.Le programme :
Est une suite finie d’instructions élémentaires
permettant de résoudre un problème quelconque,
exécutable par un ordinateur.
5
Ch. 1
6
Ch. 1
⮚ 4.L’ordinateur :
Est un système de traitement de l'information
programmable, composé entre autres de :
• Unité centrale de traitement (UCT, CPU,
Processeurs)
• Mémoire pour stocker les données à traiter (RAM)
• Unités d’entrées et de sorties (E/S) pour
communiquer avec l’extérieur à travers des
périphériques ( Clavier, Scanner, disque dur,
imprimante, souris …)
7
Ch. 1
⮚ 5.L’information :
Est une donnée interprétée portant sur un objet, on
peut aussi la définir comme étant une donnée avec un sens.
8
Ch. 1
9
Ch. 2 Initiation à l'algorithmique
Objectifs
Maîtriser les concepts clés:
❑ Données
❑ Variables
❑ Constantes
❑ Instructions
10
Ch. 2
Exemple d'algorithme :
Algorithme: ElèveAuCarré
{Algorithme qui calcule le carré du nombre que lui fournit l’utilisateur}
{Déclarations :
Variables Nombre, Carre : entiers Réservation d'espace mémoire}
{Préparation du traitement}
Début
Ecrire("Quel nombre voulez vous élever au carré?")
Lire(unNombre) {Traitement: Calcul du carré}
▪ Préparation du traitement
• Données nécessaires à la résolution du programme
▪ Traitement
• Résolution pas à pas
• Après décomposition en sous problèmes si nécessaire
▪ Edition des résultats
• Impression à l'écran
• Dans un fichier, etc…
12
Ch. 2
Quelques Remarques:
• Il faut avoir une écriture rigoureuse
• Il faut avoir une écriture soignée: respecter l'indentation
• Il est important de commenter les algorithmes
• Il existe plusieurs solutions algorithmiques à un problème posé, il
faut rechercher l'efficacité de ce que l'on écrit.
13
Ch. 2
• A noter que l'on peut utiliser comme noms pour les variables
a, b, c, x, etc… il reste cependant préférable d'utiliser des noms
significatifs
16
Ch. 2
T1 T2
T2 🡨 T1 23.5 23.5
17
Ch. 2
• Exemples :
Constante Max : Entier 🡨10
DeuxFoisMax : Entier 🡨 Max × 2
18
Ch. 2
21
Ch. 2
Notion d'expression :
Une Expression est toute combinaison logique :
• De variables,
• De valeurs,
• D'opérateurs (+, -, /, …)
• D'autres symboles tel que ( )
Exemples : Contre-Exemples :
• 1 2*+3
• 7+3 (2+5*2
• rayon * rayon * pi
• (pi * rayon ) * 2
22
Ch. 2
Les opérateurs :
Un opérateur est une fonction définie par:
• Son arité : désigne le nombre de variables d'entrée
• Sa position : il peut être préfixe (devant) , infixe (milieu),
ou postfixe (derrière)
• Son type : désigne le type de ses entrées et celui de sa
sortie.
Exemple : l'opérateur d'addition sur les entiers : +
• opérateur binaire, infixe, dont le type est :
23
Ch. 2
A B A ET B A B A OU B
Vrai Vrai Vrai Vrai Vrai Vrai
Vrai Faux Faux Vrai Faux Vrai
Faux Vrai Faux Faux Vrai Vrai
Faux Faux Faux Faux Faux Faux
A Non A
Vrai Faux
Faux Vrai
27
Ch. 3 Structures de contrôle
Objectifs
Maîtriser les :
❑ Structures d'alternatives
▪ Si … Sinon …
▪ Selon …
❑ Boucles
▪ Tantque …
▪ Répéter … Tantque…
▪ Pour … 28
Ch. 3
Algorithme: TestPositif
{Algorithme qui nous dit si l'entier saisit par l'utilisateur est positif}
Variables Nombre : entiers
Début
Ecrire("Saisir un entier :")
Lire(Nombre)
Si Nombre > 0 Alors
Ecrire("L'entier saisit est positif")
FinSi
Fin
29
Ch. 3
30
Ch. 3
Si note>=16 Alors
Ecrire("Mention : très bien")
Sinon Si note>=10 Alors
Ecrire("Mention : passable")
Finsi
Finsi
32
Exercices :
▪ Ecrire un algorithme qui demande un nombre à l’utilisateur, et
l’informe ensuite si ce nombre est positif ou négatif ( et si
l'utilisateur rentre un 0, affiche un message personnalisé )
Remarques:
• Le sélecteur (la variable) doit avoir le même type que les valeurs devant
les cas.
• Dans le cas d'utilisation d'une liste de valeurs, les listes doivent être
disjointes.
35
Ch. 3
Sélection choix multiples : Selon …
Exemple : Un programme qui affiche le mois correspondant au nombre saisi par
l'utilisateur
En utilisant si sinon : En utilisant selon :
Si Mois=1 Alors Selon (Mois)
Ecrire("Janvier ") Cas 1 : Ecrire("Janvier ")
FinSi Cas 2 : Ecrire("Février ")
Si Mois=2 Alors Cas 3 : Ecrire("Mars")
Ecrire("Février ") Cas 4 : Ecrire("Avril")
FinSi Cas 5 : Ecrire("Mai ")
. Cas 6 : Ecrire("Juin")
. Cas 7 : Ecrire("Juillet")
. Cas 8 : Ecrire("Août")
Cas 9 : Ecrire("Septembre")
Si Mois=12 Alors Cas 10 : Ecrire("Octobre")
Ecrire("Décembre") Cas 11 : Ecrire("Novembre")
FinSi Cas 12 : Ecrire("Décembre")
FinSelon
36
Exercices (selon) :
37
Ch. 3
Structures itératives ( Boucles ) : Introduction
Définition:
Une boucle est une suite d'instructions qui itèrent ( se
répètent) jusqu'à satisfaire une condition ou un nombre de fois
défini.
38
Ch. 3
Structures itératives : Tantque … faire
Syntaxe :
Initialisation des variables utilisées
<Initialisation>
dans la condition
Tantque <Condition> faire
Instruction1;
Bloc d'instructions à exécuter Tant que
Instruction2;
la condition est vraie
..
Instruction de relance;
On doit avoir une instruction qui
FinTantque
modifie la variable de la condition,
pour pouvoir sortir de la boucle.
Fonctionnement:
La condition est une expression logique évaluée dès le début:
• Si la condition est vraie, le bloc d'instructions est exécuté.
• Si la condition est fausse, le bloc d'instruction est sauté.
• à la fin du bloc d'instructions, le programme retourne sur la ligne de la
condition
39
Ch. 3
Structures itératives : Tantque … faire
Syntaxe :
<Initialisation>
Tantque <Condition> faire
Instruction1;
Instruction2;
..
Instruction de relance;
FinTantque
Quelques remarques:
• Les variables utilisées dans la condition doit être initialisée avant le "Tantque"
• Si la condition est toujours vraie , le programme tombe dans une boucle infinie :
il continuera à n'exécuter que la boucle sans passer aux instruction suivantes,
d'où l'intérêt de l'instruction de relance (qui peut être un simple compteur
incrémenté de 1 à chaque itération pour s'arrêter à un certain seuil par
exemple)
40
Ch. 3
Structures itératives : Tantque … faire
Algorithme: BoucleSomme
{Algorithme qui continue à faire la somme de nombres introduits par l'utilisateur, s'arrête à la lecture de -1}
Variables Valeur, Total : entiers
Début
Total 🡨0
Ecrire("Saisir une valeur, -1 pour finir:")
Lire(Valeur)
Tantque Valeur != -1 faire
Total 🡨 Total + Valeur
Ecrire("Saisir une autre valeur, -1 pour finir:")
Lire(Valeur)
Fintantque
Ecrire(" La somme des valeurs saisies est : ", Total)
41
Fin
Exercices (Boucles):
42
Ch. 3
Structures itératives : répéter … Tantque
Syntaxe :
répéter
Instruction1;
Bloc d'instructions à exécuter Tant que
Instruction2;
la condition est vraie
..
Instruction de relance; On doit avoir une instruction qui
Tantque <condition> modifie la variable de la condition,
pour pouvoir sortir de la boucle.
Fonctionnement:
La condition est évaluée à la fin:
• Le bloc d'instructions est exécuté une fois.
• La condition est évaluée : si elle est vrai, on retourne exécuter le bloc
d'instructions
• Si elle est fausse, on continue l'exécution des lignes après la boucle.
43
Ch. 3
Structures itératives : répéter … Tantque
Syntaxe :
répéter
Instruction1;
Instruction2;
..
Instruction de relance;
Tantque <condition>
Remarque:
• Etant donné que l'évaluation de la condition se fait à la fin , le bloc d'instruction
est toujours exécuté au moins une fois.
44
Ch. 3
Structures itératives : répéter … tantque
Algorithme: BoucleSomme
{Algorithme qui continue à faire la somme de nombres introduits par l'utilisateur, s'arrête à la lecture de -1}
Variables Valeur, Total : entiers
Début
Total 🡨0
répéter
Ecrire("Saisir une valeur, -1 pour finir:")
Lire(Valeur)
Si Valeur != -1 Alors
Total 🡨 Total + Valeur
Finsi
Tantque Valeur != -1
Ecrire(" La somme des valeurs saisies est : ", Total)
45
Fin
Ch. 3
Structures itératives : pour …
Syntaxe :
pour <var_compteur> 🡨 <val_début> à <val_fin> faire
Instruction1;
Instruction2;
..
Finpour
Fonctionnement:
répète les instructions un certain nombre de fois :
1. Le compteur est initialisée à la valeur initiale.
2. Les instructions sont exécutées.
3. Le compteur est incrémenté de 1.
4. l'algorithme vérifie si la variable <= val_fin , si oui, les instructions sont ré-
exécutées, si non la boucle s'arrête.
La boucle s'arrête quand le compteur dépasse la borne supérieure (val_fin).
46
Ch. 3
Structures itératives : pour …
Exemple :
Algorithme: Affiche:1..10
variables i : entier
Début
pour i 🡨 1 à 10 faire
Ecrire(i)
Finpour
Fin
Remarque:
Le traitement ne doit pas modifier la variable de la boucle
pour i 🡨 1 à 10 faire
i 🡨 10
Finpour
47
Ch. 3
Structures itératives : pour … [avec pas modifié]
Syntaxe :
pour <var_compteur> 🡨 <val_début> à <val_fin> [par <val_pas>] faire
Instruction1;
Instruction2;
..
Le compteur est incrémenté par
Finpour <condition> cette valeur appelée le pas
Remarques:
• Le pas correspond à la valeur avec laquelle on incrémente le compteur à
chaque itération
• [par <valeur_pas>] est optionnelle : Si non spécifiée, le pas par défaut est 1.
48
Ch. 3
Structures itératives : laquelle choisir ?
La 1ère question à se poser : connaît t-on le nombre d'itération?
>Si on connaît d'avance le nombre d'itérations, on préfère utiliser
une boucle pour.
49
Exercices (Boucles):
Utiliser la boucle la plus convenable pour :
▪ Ecrire un algorithme qui demande à l'utilisateur un nombre compris
entre 1 et 3 jusqu'à ce que la réponse convienne
▪ Ecrire un programme qui demande un nombre de départ , et qui
calcule sa factorielle
▪ Ecrire un algorithme qui demande successivement 20 nombres à
l’utilisateur, et qui lui dit ensuite quel était le plus grand parmi ces
20 nombres. Exemple d'exécution:
Entrez le nombre numéro 1 : 12
Entrez le nombre numéro 2 : 14
…
Entrez le nombre numéro 20 : 6
Le plus grand de ces nombres est : 14
50
Exercice :
51
Ch. 4 Les tableaux
52
Ch. 4
Les tableaux:
Définition :
Un tableau est une structure de données qui permet de
stocker un certain nombre de valeurs du même type. Il nous
permet d'accéder à plusieurs cases mémoires à l'aide d'un seul
nom.
Comme toutes les cases portent le même "nom" , elles se
différencient par un indice.
53
Ch. 4
Les tableaux:
Déclaration :
Exemple :
Tableau pour stocker les notes de 10 étudiants :
Variable Tableau Notes[10] : Réel
Réserve l'espace mémoire pour
10 réels
Notes
0 1 2 3 4 5 6 7 8 9
54
Ch. 4
Les tableaux:
Notions et Remarques :
• On doit préciser la taille n du tableau lors de sa création : le
nombre de valeurs qu'on peut stocker dedans.
• l'indice du 1er élément est 0 ( les cases du tableau sont
numérotées à partir de 0)
• L'indice du dernier élément est n-1 : (n étant la taille du
tableau)
55
Ch. 4
Les tableaux:
Manipulation : Affectation
L'accès à un élément du tableau se fait en écrivant le nom du
tableau suivi de l'indice de l'élément entre crochets [ ]
Notes[0] 🡨 20
Notes 20
0 9
56
Ch. 4
Les tableaux:
Manipulation : Lecture
On peut également lire les valeurs saisies et les stocker
directement dans le tableau :
Lire(Notes[3])
Notes 19 14 13 16
0 3 9
57
Ch. 4
Les tableaux:
Manipulation : Affichage
De la même manière on peut afficher les éléments du tableau
qu'on souhaite :
Ecrire(Notes[9])
Notes 19 14 13 16 .. .. .. .. .. 17.5
0 9
58