Académique Documents
Professionnel Documents
Culture Documents
CHAPITRE 1 : ALGORITHMIQUE
LEÇON
ETAPES DE RESOLUTION D’UN PROBLEME
1
Compétences visées :
➢ En se basant sur la documentation, internet, et les problèmes de vie réelle, chaque élève
de première ESTP sera capable à la fin de cette leçon de 2h de décrire les étapes de
résolution d’un problème.
Situation problème :
Votre petit frère de 6e Idriss, rentre des classes avec un devoir dont l’énoncé est le suivant : «
Étant donnés deux nombres entiers positifs, identifier le plus grand de ces deux nombres. »
ensuite, nécessite votre aide pour la résolution de ce problème. En vous basant sur la
documentation ou internet, donner lui les étapes de résolution de ce problème.
Introduction
Chaque jour, l’homme est face à des nombreux problèmes auxquels il doit apporter des
solutions. Pour résoudre ces problèmes il est important de bien présenter les différentes étapes
de résolutions du problème. Au cours de cette leçon nous étudierons ces étapes pour la
conception d’un algorithme.
Compétences Visées :
L’élève à la fin de cette leçon devrait être capable de :
• Définir la notion de variable.
• Définir la notion de constante.
• Donner la structure générale d’un algorithme.
Introduction
Un algorithme s’écrit suivant un certain langage appelé Langage de Définition
Algorithmique (LDA). Ce langage utilise un vocabulaire et des règles de construction des
phrases.
I. LES ELEMENTS CONSTITUTIFS D’UN ALGORITHME
1-1 Les identificateurs
Les identificateurs servent à designer les différents « objets » manipulés par l’algorithme.
Comme objet nous pouvons avoir les variables, les constantes, les fonctions, etc.…pour une
structure algorithmique de base nous nous intéresserons aux variables et aux constantes.
➢ Les variables
On appelle variable est un objet dont le contenu peut changer au cours de l’exécution de
l’algorithme.
La syntaxe est la suivante : Var NomVariable : Type de la variable ;
Exemple : Var rayon : entier ; Var surface : réel ;
➢ Les constantes
On appelle constante un objet dont le contenu reste invariant lors de l’exécution d’un
algorithme c’est-à-dire on ne peut le changer pendant l’exécution de l’algorithme.
La syntaxe de déclaration est la suivante : const NomConstante = Valeur ;
Exemple : const pi = 3.14 ; const N = 100 ;
De façon générale, un « objet » a trois caractéristiques à savoir : Son identificateur (qui
est le nom qui l’identifie), son type et sa valeur
Les types sont les caractéristiques des constantes et des variables utilisées dans l’écriture
d’un algorithme. On distingue cinq types de base :
• Entier : C’est un nombre négatif ou positif sans virgule ;
• Réel : C’est un nombre négatif ou positif avec virgule ou pas ;
• Booléen : C’est une donnée qui ne peut prendre que deux états ;
• Le caractère : C’est une donnée alphabétique, ou un symbole ;
• Chaine de caractères : c’est un assemblage de données alphabétique, numérique, un
Symbole.
1-2 Les séparateurs
Dans le langage naturel, les mots sont séparés par un espace, un signe de ponctuation
ou une fin de ligne. Il en est de même pour le langage algorithmique dont les règles vont paraître
naturelles. Les caractères séparateurs comprennent tous les opérateurs (+, -, *, =, ==, < =, >=,
<, >, etc.) ainsi que les caractères dits de ponctuation : ( ) [ ] , . : etc.
1-3 Les commentaires
Les commentaires sont des textes explicatifs destinés au lecteur de l’algorithme et qui n’ont
aucun incident sur l’exécution de l’algorithme. Ils sont placés entre les symboles (/* */) et
peuvent apparaître à tout endroit de l’algorithme cependant, on se limitera à des emplacements
propices à une bonne lisibilité. Les commentaires sont utilisés pour permettre une interprétation
aisée de l’algorithme. Leur utilisation est vivement conseillée. De ce fait, tout texte placé entre
les symboles /* */ sera considéré comme un commentaire. Un commentaire peut s’étendre
sur une ou plusieurs lignes.
II. STRUCTURE D’UN ALGORITHME
La structure d’un algorithme est un schéma qui illustre de façon générale les différentes
articulations ou parties du squelette d’un algorithme. On peut la représenter sous forme
graphique (Algorigramme ou Organigramme) ou sous forme littérale (notation algorithmique)
dans laquelle les mots clés sont soulignés et commencent par une lettre majuscule, ainsi que
des instructions terminées par un point-virgule (;).
LEÇON
LES STRUCTURES SIMPLES EN ALGORITHME
3
I. 3 INSTRUCTIONS SIMPLES
Une instruction est un ordre que l‘on donne à la machine.
1- L‘Affectation
L‘Affectation est une opération qui consiste à donner une valeur à une variable.
Sa syntaxe est la suivante : Identificateur de la variable valeur à affecter.
Exemple r 5 ou r = 5
L‘affectation n‘est pas commutative c‘est-à-dire que a=b est différent de b=a ;
Elle est instantanée et valable à un moment donné ;
2- L‘incrémentation et décrémentation
L‘incrémentation est opération qui consiste à augmenter d‘une unité le contenu d‘une
variable. Cette opération peut se faire de deux façons différentes. Soit x la variable à
incrémenter :
x=x+1 : ici on ajoute une unité de façon explicite.
x++ , ++x : ici on ajoute une unité de façon implicite.
On peut aussi vouloir diminuer une variable d‘une unité c‘est la décrémentation. Soit y
la variable à décrémenter :
y=y-1 ; ici on diminue une unité de façon explicite.
y- - , - -y : ici on diminue une unité de façon implicite.
Compétences visées
➢ En se basant sur la documentation, chaque élève de 1ère ESTP sera capable à la fin de cette
leçon de 2h d’identifier les structures de contrôle, d’utiliser les structures itératives.
Situation problème :
Après avoir décrit les étapes de résolution d’un problème à votre petit frère Idriss,
catégorisez son problème en identifiant quelle structure de contrôle est adéquate à la résolution
de son problème sachant qu’il vous a dit ceci : « pour trouver le plus grand des deux nombres,
on vérifie si le nombre1 est supérieur au nombre2 si oui écrire le plus grand est nombre1 sinon
c’est le contraire ». Après cela, montrez lui comment utiliser une structure itérative pour dire
bonjour à 100 personnes.
Introduction
Pour fonctionner, un algorithme doit contenir uniquement des instructions
compréhensibles par celui qui devra l’exécuter (l’ordinateur). Les ordinateurs eux-mêmes ne
sont fondamentalement capables d’exécuter que quatre opérations logiques : l’affectation de
variables ; la lecture / écriture ; les tests ; les boucles. Dans cette leçon nous nous limiterons
aux deux dernières opérations à savoir les tests et les boucles. Les opérations élémentaires
relatives à la résolution d’un problème, peuvent en fonction de leur enchainement, être
organisées suivant une famille de structures algorithmiques fondamentales :
•Les structures séquentielles ;
•Les structures alternatives ;
•Les structures itératives ou répétitives.
La résolution de certains problèmes nécessite parfois la mise en place d’un test pour effectuer
une tâche :
•Si le test est positif, on effectue un certain traitement ;
•Sinon, c’est-à-dire si le test est négatif, on effectue un autre traitement. En algorithmique,
on traduit cette situation par des structures alternatives à l’aide d’instructions conditionnelles.
Une structure alternative est une situation dans laquelle on ne peut choisir qu’entre deux
solutions possibles. Si l’une des conditions est réalisée, l’autre ne s’exécute pas et vice-versa.
On distingue la structure alternative complète et la structure alternative réduite. On distingue
alors deux types de structures alternatives : la structure alternative complète et la structure
alternative réduite.
Si condition Alors
Traitement 1 ;
(Instructions à effectuer si la condition est vérifiée)
Sinon traitement 2 ;
(Instructions à effectuer si la condition n’est pas vérifiée)
FinSi
Selon le cas, il se peut que, si la condition n’est pas vérifiée, il n’y ait pas à effectuer de
traitement 2. On écrira ainsi la structure alternative « réduite »
Si condition Alors
Traitement 1 ;
(Instructions à effectuer si la condition est vérifiée)
FinSi
Compétences visées :
➢ A la fin de cette leçon de 2h, chaque élève de première ESTP sera capable à partir d’un
problème simple, d’écrire un algorithme simple de l’exécuter à la main et d’élaborer son
algorigramme.
Introduction
Un algorigramme ou organigramme : est une représentation graphique de l’algorithme
utilisant des symboles normalisés. les symboles d’organigramme de base sont:
Compétences visées :
➢ Définir programmation, langage de programmation et programme informatique
➢ Citer quelques exemples de langage de programmation
Situation problème :
Votre papa est propriétaire d’un supermarché. Il rencontre beaucoup de difficultés pour
effectuer ses calculs et faire le bilan de ventes d’une journée. Son voisin du marché lui suggère
de se procurer un programme informatique pour automatiser ses calculs.
•D’après vous c’est quoi un programme informatique ?
•Quel est l’avantage d’un programme informatique ?
•Citez-en quelques exemples
•Donner les étapes de création d’un programme informatique.
I. DEFINITIONS
Un programme informatique est un ensemble d'opérations destinées à être exécutées par
un ordinateur.
Un langage de programmation est une notation conventionnelle destinée à produire des
programmes informatiques.
La programmation est le processus par lequel un informaticien crée un programme à travers
un langage de programmation.
II.QUELQUES EXEMPLES DE LANGAGES DE PROGRAMMATION
L’ordinateur est une machine automatique qui ne comprend qu’un seul langage : le binaire.
Toute opération effectuée dans celui-ci est transformée en une suite de 0 et 1. On distingue deux
types de langage de programmation : les langages compilés et les langages interprétés. Comme
exemple de langage compilé nous pouvons citer : Le C, Le C+ +, Java, Visual Basic,
Delphi...Comme langage interprété nous pouvons citer : le SQL, le HTML, le JavaScript, le
ASP...
III.INSTALLATION D’UN IDE C
Pour écrire et exécuter un programme C, le programmeur a besoin de trois outils
fondamentaux : l’éditeur de texte, le compilateur et le débuggeur.
•Un éditeur de texte pour écrire le code source du programme. Exemple : Bloc-Notes,
Notepad++...
•Un compilateur pour transformer ("compiler") le code source en binaire.
•Un débogueur qui aide à traquer les erreurs dans le programme. Ces trois outils sont
regroupés dans un logiciel appelé IDE (Integrated Développent Environnent ou Environnement
de développement intégré en français). Parmi les IDE les plus connus, on peut citer :
CodeBlocks, Dev C++, Visual++ Dans le cadre de ce cours, nous utiliserons l’IDE CodeBlocks
dont l’installation se fait en cliquant juste sur l’exécutable et en suivant les étapes. La fenêtre
principale est:
Il reste juste à cliquer sur la création d’un projet pour commencer la saisie du code.
LEÇON ECRITURE D’UN PROGRAMME EN C
2
Compétences visées :
➢ Écrire la structure d’un programme C ;
➢ Traduire un algorithme simple en C ;
➢ Déclarer les variables et constantes ;
➢ Utiliser les opérateurs (arithmétiques, logique, comparaison);
➢ Inclure les bibliothèques stdio.h, stdlib.h, math.h et conio.h ;
➢ Utiliser les fonctions d’entrée/sortie classiques (scanf, printf);
➢ Utiliser un IDE C (Codeblocks, DevC++)
Situation problème
Il vous a été demandé d’écrire un programme en langage C pour l’addition de deux
nombres entiers.
•Ecrire l’algorithme correspondant.
•Quel sera la structure de votre programme C ?
•Quel est l’opérateur utilisé pour additionner deux nombres entiers.
2.Les constantes
Ce sont des emplacements mémoires dont le contenu reste invariant tout au long de l’exécution
du programme. Leur déclaration se fait de la manière suivante:
const type nom_de_la_constante = valeur;
Exemple : const float pi = 3.14;
Exercice d’application : Ecrire un programme en langage C qui lit deux nombres entiers au
clavier, effectue l’addition et affiche le résultat à l’écran.
LEÇON LES STRUCTURES DE CONTROLE EN C
3
Compétences visées :
Situation problème :
Exemple 3 : écrire le programme C qui prend en entrée un nombre puis affiche le message « ce
nombre est positif » si ce nombre est supérieur à 0.
• Structure complète
Syntaxe : if (condition) {
bloc instructions 1
} else
{
bloc instructions 2
}
Exemple 1 : écrire le programme C qui étudie la parité d’un nombre saisi par l’utilisateur.
Exemple 2 : écrire le programme C qui vous demande d’entrée une note et vous dit si vous avez réussi
ou pas, sachant que l’on réussit si la note est supérieure ou égale à 10.
Exemple 3 : écrire le programme C qui calcule la table de multiplication d’un nombre saisi.
• Boucle while
Parfois, pour réaliser une tâche, on doit effectuer plusieurs fois les mêmes instructions,
sans que le nombre de fois soit déterminé à l’avance. Dans ce cas l’on utilise la boucle while.
Dans cette structure, le même traitement est effectué tant qu’une condition reste valide ; la
boucle s’arrête quand celle-ci n’est plus remplie. Sa syntaxe est :
while (condition vraie) {
Bloc instructions ;
}
Exemple 1 : écrire un programme C qui affiche les 20 premiers nombres en utilisant la boucle
while.
Conclusion
Cette leçon nous a permis d’utiliser les structures alternatives et itératives en
programmation C, grâce à ceux-ci l’on peut désormais écrire les programmes plus complexes
en C
Exercice de consolidation
Ecrire un programme C qui lit un nombre n et affiche n fois à l’écran le message « bienvenu
en Première ».
-