Concepts
Fondamentaux
d’Algorithmique
ZOUAOUI Saad
2 Objectif et plan du cours
Comprendre les concepts de base de
l'algorithmique et de la programmation
3 Qu’est-ce qu’un programme ?
Assemblage et enchaînement d’instructions
élémentaires
Écrit dans un langage de programmation
Exécuté par un ordinateur afin de traiter les
données d’un problème
et renvoyer un ou plusieurs résultats
Langages de Programmation
4
Langage de programmation :
ensemble de règle de vocabulaire
et de grammaire compréhensible
par un ordinateur
Langages de Programmation
5
Fortran.
COBOL.
BASIC.
Java.
Langage C.
C++
C#
PHP.
Python.
Ruby.
…
7 Algorithmique
Le terme algorithme vient du nom du mathématicien arabe
Al-Khawarizmi (820 après J.C.)
Un algorithme est une description complète et détaillée des
actions à effectuer et de leur séquencement pour arriver à un
résultat donné
Introduction à l’algorithmique
Un algorithme est une description complète et
détaillée des d'instructions et d'opérations
élémentaires ,réalisées dans un ordre précis, sur des
données afin de produire un résultat, et souvent
résoudre un problème plus ou moins complexe.
Par exemple, une recette de cuisine est un algorithme
permettant d'obtenir un plat à partir de ses ingrédients et des
étapes de préparation ….!
Organisation d’un algorithme
L’algorithme d’un programme est organisé en
plusieurs parties :
Déclaration des constantes
Déclaration des variables
Définition des fonctions et procédures
Définition du programme principal
Les structures algorithmiques
Les structures algorithmiques sont réparties en 3
catégories :
structures linéaires / Séquence
structures alternatives (ou conditionnelles) ou de choix : en
fonction d'une condition, le programme exécute des opérations
différentes
structures itératives ou répétitives: sous contrôle d'une condition,
une séquence d'opérations est exécutée répétitivement.
Cas de base pour concevoir un algorithme
• Une séquence est une
suite d’actions qui possède
La séquence un début et une fin
Début
A0
B2
CA+B
Afficher C
Fin
Cas de base pour concevoir un algorithme
• L’alternative correspond
L’alternative à une condition menant
à un choix.
Début
X5
Si X < 10
alors
XX–2
Sinon
X0
Fin de Si
Fin
Cas de base pour concevoir un algorithme
• La répétitive consiste à répéter
une action plusieurs fois
La répétitive jusqu’à ce que la réponse à
une condition soit oui
Début
Tant que le clou PAS enfoncé
Répéter
Frapper le clou
Fin répéter
Fin
15 Représentation d’un algorithme
Le pseudo-code: représentation textuelle avec
une série de conventions ressemblant à un
langage de programmation (sans les problèmes de
syntaxe)
plus pratique pour écrire un algorithme
représentation largement utilisée
1. Notion de variable
16
Dans les langages de programmation une variable sert à stocker
la valeur d’une donnée
Une variable désigne en fait un emplacement mémoire dont
le contenu peut changer au cours d’un programme (d’où le
nom variable)
Règle : Les variables doivent être déclarées avant d’être utilisées,
elle doivent être caractérisées par :
un nom (Identificateur)
un type (entier, réel, caractère, chaîne de caractères, …)
17
Choix des identificateurs (1)
Le choix des noms de variables est soumis à quelques règles
qui varient selon le langage, mais en général:
Un nom doit commencer par une lettre alphabétique
exemple valide: A1 exemple invalide: 1A
doit être constitué uniquement de lettres, de chiffres et du
soulignement _ (Eviter les caractères de ponctuation et les
espaces) valides: SMIP2007, SMP_2007
invalides: SMP 2005,SMI-2007,SMP;2007
18
Choix des identificateurs (2)
Conseil: pour la lisibilité du code choisir des noms
significatifs qui décrivent les données manipulées
exemples: TotalVentes2018, Prix_TTC, Prix_HT
Remarque: en pseudo-code algorithmique, on va
respecter les règles citées, même si on est libre dans la
syntaxe
19 Types des variables
Le type d’une variable détermine l’ensemble des valeurs qu’elle
peut prendre, les types offerts par la plus part des langages
sont:
Type numérique (entier ou réel)
Entier
Réel
Type logique ou booléen: deux valeurs VRAI ou FAUX
Type chaîne de caractère:
exemples: ’A’, ’a’, ’1’, ’?’, …
exemples: " Nom, Prénom", "code postale: 1000", …
Exemples de variables
20
Mémoire centrale
(mémoire vive)
Identificateur : X
Type : entier
Valeur : 25
X 25
Identificateur : Y
Type : réel
Valeur : 3,7 Y 3,7
21 Déclaration des variables
Rappel: toute variable utilisée dans un programme doit avoir
fait l’objet d’une déclaration préalable
En pseudo-code, on va adopter la forme suivante pour la
déclaration de variables
Variables liste d'identificateurs : type
Exemple:
Variables i, j,k : entier
x, y : réel
OK: booléen
ch1, ch2 : chaîne de caractères
Remarque: pour le type numérique on va se limiter aux
entiers et réels sans considérer les sous types
22
2. L’instruction d’affectation
l’affectation consiste à attribuer une valeur à une variable
(ça consiste en fait à remplir où à modifier le contenu d'une zone mémoire)
En pseudo-code, l'affectation se note avec le signe ←
Var ← e : attribue la valeur de e à la variable Var
- e peut être une valeur, une autre variable ou une expression
- Var et e doivent être de même type ou de types compatibles
- l’affectation ne modifie que ce qui est à gauche de la flèche
Ex valides: i ←1 j ←i k ←i+j
x ←10.3 OK ←FAUX ch1 ←"SMI"
ch2 ←ch1 x ←4 x ←j
(voir la déclaration des variables dans le transparent précédent)
non valides: i ←10.3 OK ←"SMI" j ←x
23 Exercices simples sur l'affectation (1)
Donnez les valeurs des variables A, B et C après
exécution des instructions suivantes ?
Algo ex1
Variables A, B, C: Entier
Début
A←3
B←7
A←B
B ← A+5
C←A+B
C←B–A
Fin
24 Exercices simples sur l'affectation (2)
Variables A, B : Entier
Début
A←1
B←2
Ecrire un algorithme permettant d’échanger les valeurs de
deux variables A et B :
?
25 Exercices simples sur l'affectation (3)
Ecrire un algorithme permettant d’échanger les
valeurs de deux variables A et B :
Fin
26 Exercices simples sur l'affectation (3)
Ecrire un algorithme permettant d’échanger les
valeurs de deux variables A et B :
Algorithme echange
Variables A, B , C : Entier
Début
A←3
B←7
CA
AB
BC
Fin
Fin
27 Expressions et opérateurs
Une expression peut être une valeur, une variable ou une opération
constituée de variables reliées par des opérateurs , …
L'évaluation de l'expression fournit une valeur unique qui est le résultat de
l'opération
Les opérateurs dépendent du type de l'opération, ils peuvent être :
des opérateurs arithmétiques: +, -, *, /, % (modulo), ^ (puissance)
des opérateurs logiques: NON, OU, ET
des opérateurs relationnels: =, , <, >, <=, >=
des opérateurs sur les chaînes: ….
Une expression est évaluée de gauche à droite mais en tenant compte
de priorités
28 Priorité des opérateurs
Pour les opérateurs arithmétiques donnés ci-dessus, l'ordre de
priorité est le suivant (du plus prioritaire au moins prioritaire) :
^ : (élévation à la puissance)
* , / (multiplication, division)
% (modulo)
+ , - (addition, soustraction)
exemple: 2 + 3 * 7 vaut 23
En cas de besoin (ou de doute), on utilise les parenthèses pour
indiquer les opérations à effectuer en priorité
exemple: (2 + 3) * 7 vaut 35
29 Les instructions d'entrées-sorties:
lecture et écriture (1)
Les instructions de lecture et d'écriture permettent à la
machine de communiquer avec l'utilisateur
La lecture permet d'entrer des donnés à partir du clavier
En pseudo-code, on note: lire (var)
la machine met la valeur entrée au clavier
dans la zone mémoire nommée var
Remarque: Le programme s'arrête lorsqu'il rencontre une
instruction Lire et ne se poursuit qu'après la frappe d’une
valeur au clavier et de la touche Entrée
30 Les instructions d'entrées-sorties:
lecture et écriture (2)
L'écriture permet d'afficher des résultats à l'écran (ou de les
écrire dans un fichier)
En pseudo-code, on note: écrire (var)
la machine affiche le contenu de la
zone mémoire var
Conseil: Avant de lire une variable, il est fortement conseillé
d’écrire des messages à l’écran, afin de prévenir
l’utilisateur de ce qu’il doit frapper
31 Les instructions d'entrées-sorties:
lecture et écriture (2)
Variables A : entier
A 10
Écrire (A)
Écrire ("A")
32 Structure d’un Algorithme
Algorithme Nom_Algo
Déclaration de Variables
Début
Instruction 1
Instruction 2
.
Instruction n
Fin
33 Exo 1
Ecrire un algorithme qui calcule et
affiche le total et la moyenne des trois
nombre saisis.
Algorithme
Algorithme Calcul_
variables A, B,C,Som,Moy :reel
34
Début
écrire(« PROGRAMME MOYENNE DE 3 NOMBRES : ")
écrire("entrer la 1ere valeur : ")
lire(A)
écrire("entrer le nombre 2 : ")
lire(B)
écrire("entrer le nombre 3 : ")
lire(C)
Som A+B+C
Moy Som / 3
écrire(" La Somme est : “,Som)
écrire(Som)
écrire(" La moyenne est : “,Moy)
écrire(Moy)
35 Exemple (lecture et écriture)
Ecrire un algorithme qui demande un nombre entier à l'utilisateur, puis qui
calcule et affiche le double de ce nombre
Algorithme Calcul_double
variables A, B : entier
Début
écrire("entrer le nombre ")
lire(A)
B ← 2*A
écrire("le double de ", A, "est :", B)
écrire("le double de ", A, "est :", 2*A)
Fin
36
Exercice (lecture et écriture)
Ecrire un algorithme qui vous demande de saisir votre nom puis
votre prénom et qui affiche ensuite votre nom complet
Algorithme AffichageNomComplet
variables Nom, Prenom, Nom_Complet : chaîne de caractères
Début
écrire("entrez votre nom")
lire(Nom)
écrire("entrez votre prénom")
lire(Prenom)
Nom_Complet ← Nom & Prenom
écrire("Votre nom complet est : ", Nom_Complet)
Fin