ALGORITHMIQUE
INTRODUCTION
PARTIE N° 0
I - ORDINATEUR
Un ordinateur est une machine électronique programmable servant au
traitement de l’information codée sous forme binaire, c’est-à-dire sous
forme de tout ou rien (soit le courant passe, soit il ne passe pas).
traitement
Données Ordinateur Résultats
I - ORDINATEUR
Contrairement aux autres machines qui sont dédiées à un nombre limité
de tâches, l'ordinateur est potentiellement capable d’effectuer une
infinité de tâches concernant le traitement rationnel de l’information.
On dit que c'est une machine universelle
UNE MACHINE PROGRAMMABLE
En fait, un ordinateur doit être préalablement programmé pour qu'il
puisse traiter les données.
Il effectue les traitements en suivant à la lettre un programme
d’exécution développés et installés par des spécialistes.
Program
Mémoire
Données Résultats
UCT
Ordinateur
II - PROGRAMME
Un programme est un enchaînement d’instructions élémentaires écrit dans
un langage de programmation, et exécuté par un ordinateur afin de traiter
les données d’un problème et renvoyer un ou plusieurs résultats.
1. Instruction n° 1
2. Instruction n° 2
3. Instruction n° 3
4. Instruction n °4
5. ….
.......
……
m. Instruction n° m
(fin du programme)
Programme
QUESTION ?
Pourquoi donc utiliser un ordinateur puisque que c’est l’Homme qui lui
donne la suite d’actions à exécuter ?
Réponse:
Comme l'ordinateur a l'avantage d'exécuter très rapidement et sans
erreurs les ordres qu'on lui donne (les instructions), il exécute beaucoup
de traitements complexes plus vite et plus sûrement qu'un homme.
III - PROGRAMMATION
• Exprimer une tâche complexe par un ensemble d’opérations
exécutables (instructions) par l’ordinateur( Algorithme)
• Traduire cette suite d’instructions dans un langage interprétable par
l’ordinateur (programmation)
EXEMPLE CONCRET
• Supposant une machine à calculer dont la touche de multiplication
est abimée.
• Pour réaliser une opération de multiplication ex: 5×8, il est plus
judicieux de la décomposer à un ensemble fini d’opérations
relativement simple, dans notre cas l’addition.
• Et on peut écrire : 5×8 = 8 + 8 + 8 + 8 + 8
5 – 1 opérations
d’addition
Alors pour effectuer l’opération de multiplication, il faut effectuer
l’opération de l’addition 8 + 8 4 fois
IV - ALGORITHME
D’où
1ère opération : 8+8
2ème opération : Résultat opération 1 + 8
3ème opération : Résultat opération 2 + 8
4ème opération : Résultat opération 3 + 8
Cette suite d’actions finies peut être définie comme
Algorithme
IV - ALGORITHME
• Un algorithme est une suite d’actions élémentaires qui doivent être
exécutées dans un ordre déterminé en vue de la résolution d’un
problème.
• En informatique, Un algorithme représente l'enchaînement des actions
(instructions) nécessaires pour faire exécuter une tâche à un ordinateur
• Un algorithme s'écrit le plus souvent en pseudo-langage de
programmation (appelé langage algorithmique)
• 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 (TURBO PASCAL, C, JAVA, BASIC, ….)
V - RÉSOLUTION D’UN PROBLÈME
La méthode informatique de résolution d’un problème peut être
représentée par le schéma simplifié suivant.
Tâches réalisées par le programmeur
Problème Algorithme Programme Résultat
Analyse Traduction exécution
Ou
codage
Tâches réalisées par
l’ordinateur
VARIABLES ET EXPRESSIONS
PARTIE N° 1
I - NOTION DE DONNÉE
Les programmes ont pour but de traiter différentes données afin de
produire des résultats. Les résultats peuvent eux-mêmes être des
données pour d'autres programmes.
données Programme résultats
I – NOTION DE DONNÉE
Une donnée peut être:
• Texte
• Valeurs numériques
• Images
• Sons
• Vidéos
Ensemble de Fichier
• ….
fichiers compressé
II - TYPES DE DONNÉES
En algorithmique on distingue 5 types principaux :
• les caractères (lettres, chiffres, ponctuation …)
Ex : ‘A’ ‘@’ ‘0’ , remarquez que le caractère est entouré par les apostrophes.
• les chaînes de caractère (suites de caractères)
Ex : ‘’bonjour’’ ‘’1234’’ ‘’www.monsite.com’’
• les entiers (les nombres sans virgule)
Ex : 1 8 45 6
• les réels (les nombres à virgule et sans virgule)
Ex : 1,123 -5,45 4,00
• les booléens (qui n'ont que deux valeurs possibles: soit VRAI, soit
FAUX)
Les opérations possibles sur les variables dépendent de leur type.
I - NOTION DE VARIABLE
Les données d'un programme doivent être chargées en mémoire
centrale, pour pouvoir les utiliser ultérieurement durant le traitement par
le processeur. Ainsi, toutes les données d'un programme sont
mémorisées en mémoire centrale, dans des sortes de « cases » que l'on
appelle variables.
Par exemple, on peut avoir en mémoire une variable prix et une variables quantité qui
contiennent les valeurs 10.2 et 5
10,2 5
Prix Quantité
CONCRÉTISONS !
• Une variable peut être représentée par une ou plusieurs case mémoire,
qui contient la valeur d'une donnée.
• Chaque variable possède un nom unique appelé identificateur par
lequel on peut accéder à son contenu.
• Deux variables peuvent avoir la même valeur, mais une variable ne
peut pas avoir plusieurs valeurs en même temps.
• la valeur d'une variable peut varier au cours du programme. L'ancienne
valeur est tout simplement écrasée et remplacée par la nouvelle
• Les variables dont la valeur ne change pas au cours de l'exécution du
programme sont appelées variables constantes ou plus simplement
constantes.
III - OPÉRATEURS ARITHMÉTIQUES ET LOGIQUES
opérateurs Symbole de Types concernés Nature de
l’opérateur l’opérateur
Addition + Entier, réel Arithmétique
Soustraction - Entier, réel Arithmétique
Multiplication * Entier, réel Arithmétique
Division / Entier, réel Arithmétique
Exposant ^ Entier, réel Arithmétique
Division entière DIV Entier Arithmétique
Pourcentage % Entier, réel Arithmétique
Comparaisons < <= >= > = ≠ Entier, réel ,caractère, Comparaison
booléen Logique
Reste de la division E MOD Entier Arithmétique
Concaténation & Chaine
Négation NON Booléen Logique
Conjonction ET Booléen Logique
Disjonction OU Booléen Logique
ECLAIRCISSEMENT
• L’opérateur div est appelé opérateur de la division entière :
Ex: 7 div 2 = 3
7 mod 2 = 1 reste de la division entière de 7 par 2
Par contre 7 / 2 = 3,5 c’est la division réelle
• Les caractères sont comparés selon le code ASCII
A < B < C < D < …..
• L’opérateur & sert à concaténer des chaînes de caractère, ce qui
signifie : transformer plusieurs chaînes en une seule en les ajoutant les
unes à la suite des autres.
Ex : ‘’Bonjour‘’ & ‘’à tous’’ donne ‘’Bonjour à tous’’
III.I - PRIORITÉ DES OPÉRATEURS
Question : quel est le calcul correct ?
6 + 6 / 3 * 2 – 1 = 12 / 3 * 2 – 1
= 12 / 3 * 1
=4*1
=4
ou bien
6+6/3*2–1 =6+2*2–1
=6+4-1
=9
III.I - PRIORITÉ DES OPÉRATEURS
• Dans le premier calcul on a commencé par l’addition et le résultat
était 4
• Tandis que, dans le deuxième calcul, on a commencé par la division
et le résultat était 9
Conclusion : le calcul dépend de l’opération avec laquelle on a
commencé.
III.II - ORDRE DE PRIORITÉ
Opérateurs Ordre de priorité
décroissant
^ 1
* / MOD DIV 2
+- 3
< > = <= >= ≠ 4
NON 5
ET OU 6
III.III - RÈGLES DE PRIORITÉ
• Un opérande placé entre deux opérateurs de priorité différente sera
lié à celui possédant la priorité la plus élevée.
• Un opérande placé entre deux opérateurs de la même priorité sera
lié à celui se trouvant à gauche.
• Les expressions contenues entre parenthèses sont évaluées en
premier, afin de traiter leur résultat comme un simple opérande.
IV. EXPRESSIONS ARITHMÉTIQUES ET LOGIQUES
On distingues 3 types d’expressions :
• Expression arithmétique
• Expression logique simple
• Expression logique
IV.I - EXPRESSIONS ARITHMÉTIQUES
Une expression arithmétique est une expression dont son évaluation
donne un résultat numérique (entier ou réel)
Opérateurs
arithmétiques
Ex : A + B/2 – (C +4)
Opérandes
EXERCICES
Evaluer les expressions arithmétiques suivantes :
• 24 + 31 * 5 – (9 +4 * 3) / 7
• (13 – 15 / (3 + 2) * 3) / 4 – 1
• 14 – 24 mod 5 * 6
• (12 * 4) div (9 – 6) * 3
• 33 div 2 div 2 div 2 div 2 div 2
• N mod (N – 1)
EXERCICES
Evaluer les expressions arithmétiques suivantes :
• 24 + 31 * 5 – (9 +4 * 3) / 7 rép : 176
• (13 – 15 / (3 + 2) * 3) / 4 – 1 rép : 0
• 14 – 24 mod 5 * 6 rép : -10
• (12 * 4) div (9 – 6) * 3 rép : 48
• 33 div 2 div 2 div 2 div 2 div 2 rép : 1
• N mod( N – 1 ) rép : 1
IV.II - EXPRESSIONS LOGIQUES SIMPLES
Une expression logique simple est une comparaison entre deux
opérandes ou deux expressions arithmétiques, son évaluation donne un
résultat logique (booléen vrai ou faux)
Ex : A >= B
D -1 = 5 – 3*C
Ces expressions peuvent être vraies au fausses, selon les valeurs de A, B,
C et D
IV.III - EXPRESSIONS LOGIQUES
Une expression logique est la composée d’expressions logiques simples
par les opérateurs logiques (ET,OU et NON) , son évaluation donne un
résultat logique
Ex A > 2 ET A <=13
NON( X = 1) OU D>=14
Ces expressions peuvent être vraies au fausses, selon les valeurs de A, D
et X
EVALUATION D’EXPRESSIONS LOGIQUES
• Soit P et Q deux expressions logique :
ET OU NON
P Q P ET Q P Q P OU Q P NON P
Vrai vrai Vrai Vrai vrai Vrai Vrai Faux
Faux Faux Faux Faux Faux Faux Faux Vrai
Vrai Faux Faux Vrai Faux Vrai Ex : NON ( 6 ≠ 7)
Faux Vrai Faux Faux Vrai Vrai Expression fausse
Ex : X > 7 ET X < 2 Ex : X > 0 OU X <=0
Expression fausse Expression vrai
EXERCICES
Evaluer les expressions logiques suivantes :
• 17 < 14 ET 2 > (3 – 2)
• (17 – 4 < 3 + 6) OU (6 = 6)
• NON ( A * B ^ C -14 / 78 = 14 – 12 ^ 14) OU (A = A)
• NON(NON(NON(NON(7 = 7000 / (1000 – 1 / 10)))))
• Vrai ET Faux OU Vrai ET Faux ET NON(FAUX) OU Vrai
Vérifier que :
• NON ( X >1 ET X < 10 ) = (X <= 1 OU X >= 10)
EXERCICES
Evaluer les expressions logiques suivantes :
• 17 < 14 ET 2 > (3 – 2) rép : Faux
• (17 – 4 < 3 + 6) OU (6 = 6) rép : Vrai
• NON ( A * B ^ C -14 / 78 = 14 – 12 ^ 14) OU (A = A)
rép : Vrai
• NON(NON(NON(NON(7 = 7000 / (1000 – 1 / 10)))))
rép : Faux
• Vrai ET Faux OU Vrai ET Faux ET NON(FAUX) OU Vrai
rép : vrai
Vérifier que :
• NON ( X >1 ET X < 10 ) = (X <= 1 OU X >= 10)
V - DÉCLARATION DES VARIABLES
Pour qu'un programme puisse utiliser une variable, il faut au préalable
que cette variable ait été déclarée, c'est-à-dire que le programme lui
ait réservé une place en mémoire et ait attribué l'identificateur à cette
place.
Donc la déclaration d'une variable indique deux choses:
• son identificateur (son nom qui ne doit pas contenir un espace ou
commencer par un chiffre)
• son type (pour connaitre la taille)
V - DÉCLARATION DES VARIABLES
• Pour déclarer une variable on écris :
Var id_var1, id_var2, …,id_varN : Type de données
Ex : Var N,P : entier
Rst, To : réel
• Pour déclarer une constante
Const id_const valeur
Ex : Const Pi 3,14
VI - STRUCTURE GÉNÉRALE D’UN ALGORITHME
Programme toto
Const x 14
y ‘’bonjour’’ Déclaration
Var L, M : Entier
C : Chaine
DEBUT
// ceci est un commentaire
/* Les instructions */ Corps du programme
FIN
INSTRUCTIONS DE BASE
PARTIE N° 2
I - INSTRUCTION DE BASE
Les instructions élémentaires les plus courantes sont :
• l'affectation : le fait de donner une nouvelle valeur à une variable
• l'affichage sur l'écran
• la saisie à travers le clavier
A savoir, Les données manipulées par ces instruction :
• Des variables
• Des constantes
• Des valeurs littérales Ex : ‘’bonjour’’ , 45
• Des expressions
I - INSTRUCTIONS DE BASE
Affichage
Mémoire
45
‘’ok
’’
Saisie
‘T’
12,1
Affectation
USER
UCT
I.I - L’AFFECTATION
L’affectation consiste tout simplement à placer une valeur dans une
variable (ce qui revient à changer le contenu de cette variable)
Et on écris :
A val ;
Se lit A reçoit la valeur val
La valeur d’affectation peut être soit :
• Une valeur littérale Ex: D 5; mes ‘’ok’’; C ‘@’;
• Une valeur d’une autre variable Ex: X Y;
• Une valeur d’une expression Ex: Total A + B + C/2;
I.I - AFFECTATION
• Cette écriture n’a pas de sens
A + B 12 ;
• On peut écrire :
AA+3;
cela veut dire que la variable A reçoit son ancienne valeur + 3
• Lorsqu’on affecte une valeur à une variable contenant une ancienne
valeur, celle-ci sera écrasée (effacée)
ILLUSTRATION
VAR a, b : entiers
//a et b ont une valeur indéterminée
DEBUT
a3 // a reçoit 3 et b non initialisée
ba+2 // b reçoit 5
ab*3 // a reçoit 15
bb+1 // b reçoit 16
FIN
EXERCICE
Indiquer sur le tableau les valeurs des variables a, b, c, d après
l’exécution des instructions
Instruction a b c d
DEBUT N.I N.I N.I N.I
a5
ba-3
d a mod b
bb-2
c c div 2
ca–b+d
N.I désigne non initialisé
EXERCICES
Indiquer sur le tableau les valeurs des variables a, b, c, d après
l’exécution des instructions
Instruction a b c d
DEBUT N.I N.I N.I N.I
a5 5 N.I N.I N.I
ba-3 5 2 N.I N.I
d a mod b 5 2 N.I 1
bb-2 5 0 N.I 1
c c div 2 5 0 N.I 1
ca–b+d 5 0 6 1
INITIALISATION DES VARIABLES
• Au début d’un programme, les variables n’ont pas encore reçues de
valeur ; on dit qu’elles sont indéfinies. Toute variable doit recevoir une
valeur initiale, avant son utilisation , sinon, son contenu sera ni vide, ni
nul, il sera quelconque (indéterminé).
• L’initialisation s’effectue généralement au début du programme, juste
après les déclarations. Elle prend la forme d'une simple affectation ou
d’une saisie au clavier.
EXEMPLE D’INITIALISATION
Programme initialisation // on peut trouver le mot Algorithme
/*déclarations*/ au lieu de programme
VAR x , y : entiers
a : chaîne
DEBUT
/*initialisation*/
x0
y 10
a "hello"
/* autres instructions */
FIN
PERMUTATION DE DEUX VALEURS
Ecrire la suite d’instruction permettant la permutation des valeurs de
deux variables entières a et b dont leurs valeurs initiales sont
respectivement 5 et 6
PERMUTATION DE DEUX VALEURS
Ecrire la suite d’instruction permettant la permutation des valeurs de
deux variables entières a et b dont leurs valeurs initiales sont
respectivement 5 et 6
Solution :
Programme Permutation
VAR a , b , c : entiers
DEBUT
/*initialisation*/
a5
b6
/* Permutation*/
ca
ab
bc
FIN
I.II – LA SAISIE DES DONNÉES
L’instruction de saisie permet de communiquer des données au
programme. Cette instruction assigne une valeur entrée au clavier
dans une variable. Tant que l'utilisateur n'entre rien au clavier, le
déroulement du programme est stoppé.
C’est équivalant à : variable clavier
Syntaxe :
Saisir Var1, Var2, ….. (Ou bien Lire var1, Var2,…)
I.II – LA SAISIE DES DONNÉES
Saisir x
Cette instruction va lire la valeur saisie au clavier et l'affecte à la
variable x
Saisir x, y
Cette instruction lit la première valeur saisie au clavier et l'affecte à x,
puis lit la deuxième valeur saisie et l'affecte à y
I.III – AFFICHAGE
La plupart des programmes nécessitent de communiquer à l’utilisateur
un certain nombre de résultats par l’intermédiaire d’un périphérique.
Pour cela, ils utilisent des instructions d'affichage.
L'instruction d'affichage permet de fournir des résultats sous forme
compréhensible pour l'utilisateur à travers l'écran.
Syntaxe :
Afficher Expression1, Expression2 …..
(Ou bien: Ecrire Expression1, Expression2 ….. )
CONCRÉTISATION
• Afficher toto
Cette instruction permet d'afficher la valeur de la variable toto à l'écran
• Afficher "Bonjour!"
Celle-ci permet d'afficher la chaîne littérale Bonjour! à l'écran
• Afficher a, b
Quand on veut afficher deux objets à la suite, on les sépare d'une virgule. Si a vaut 5
et b vaut 10, on obtient alors à l'écran : 5 10
• Afficher " Voici les résultats : x = " , x, " et y = " , y
Ils apparaîtront dans l’ordre. Nous aurons donc à l’écran (en supposant que les
valeurs de x et y sont respectivement 5 et 10) : Voici les résultats : x = 5 et y = 10
EXERCICE
Indiquer les valeurs qui seront affichées à l’écran après l’exécution des
instructions.
Les variable x et y ont pour valeurs initiales 4 et 6
Instructions Ecran
bonjour
Afficher x , y
Afficher x + y
Afficher ‘’la somme est’’ , x + y
x + y = 10
Afficher ‘’ Félicitation! Vous
avez réussi la’’, y , ’’ème
opération’’
EXERCICE
Indiquer les valeurs qui seront affichées à l’écran après l’exécution des
instructions,
Les variable x et y ont pour valeurs initiales 4 et 6
Instructions Ecran
Afficher ‘’ bonjour ‘’ bonjour
Afficher x , y 46
Afficher x + y 10
Afficher ‘’la somme est’’ , x + y la somme est 10
Afficher ‘’ x + y = ‘’, x + y x + y = 10
Afficher ‘’ Félicitation! Vous Félicitation! Vous avez
avez réussi la’’, y , ’’ème réussi la 6 ème opération
opération’’
I.IV - SYNTHÈSE
• Réaliser un algorithme, c’est exprimer, dans le langage algorithmique
la suite des actions à effectuer pour réaliser un traitement
• Un algorithme n’est pas exécutable il doit être converti dans un
langage de programmation
• Les données d’un programme sont mémorisées dans des variables qui
sont des cases mémoire.
• Une variable est un contenant, qui contient une et une seule valeur à
un moment donné.
I.IV- SYNTHÈSE
Une variable est caractérisée par :
• un identificateur (son nom)
• une valeur (qui peut varier au cours du programme, sauf pour les
constantes)
• un type (qui détermine sa taille et les opérations possibles)
Les instructions de base sont :
• l'affectation permet de changer la valeur d'une variable.
• la saisie permet d'assigner à une variable, une valeur entrée au clavier
• l'affichage permet d'écrire le contenu d'une variable ou d'une expression à
l'écran
I.IV- SYNTHÈSE
Afficher
Résultats
Saisir traitement
Données
USER
UCT
TRAVAUX DIRIGÉS
• Exercice N° 1 : Nom et l’âge
Saisir le nom et l‘âge de l'utilisateur et afficher "Bonjour ..., tu as ... ans."
en remplaçant les ... par respectivement le nom et l‘âge.
• Exercice N° 2 : Moyenne de 3 valeurs
Saisir 3 valeurs, afficher leur moyenne.
• Exercice N° 3 : Surface du rectangle
Demander à l'utilisateur de saisir les longueurs et largeurs d'un
rectangle, afficher sa surface.
• Exercices N°4 : Etant donné 4 nombres A,B,C et D représentant 4
chiffres entre 0 et 9, écriver un algorithme qui retourne nombre
N=ABCD
TRAVAUX DIRIGÉS
• Exercice N° 5 : Permutation de 4 variable
Ecrire un algorithme demandant a l'utilisateur de saisir 4 valeurs A, B,
C, D et qui permute les variables de la façon suivante :
Nom des variables A B C D
Valeurs avant la permutation 1 2 3 4
valeurs après la permutation 4 3 1 2
l’algorithme doit fonctionner quelles que soient les valeurs saisies par
l'utilisateur.
TRAVAUX DIRIGÉS
• Exercice N° 6 : Permutation de 5 variable
Même principe que le précédent :
Nom des variables A B C D E
Valeurs avant la permutation 1 2 3 4 5
valeurs après la permutation 4 3 5 1 2
• Exercice N°7 : Pièces de monnaie
Nous disposons d'un nombre limite de pièces de 100 dh, 50 dh, 20 dh,
10dh, 5dh, 2dh, 1dh . Nous souhaitons, étant donne une somme S, savoir
avec quelles pièces la payer de sorte que le nombre de pièces utilisée
soit minimal