2. Algorithme et Programmation
Objectifs :
➢ Apprendre les concepts de base de l'algorithmique et de la
programmation.
➢ Être capable de mettre en œuvre ces concepts pour analyser des
problèmes simples et écrire les programmes correspondants.
Plan :
➢ introduction à l’algorithmique et à la programmation
➢ Généralités sur l’algorithmique et les langages de programmation
➢ Notion de base de l’algorithmique
1 ére année 2019/2020
2
3. Généralités sur le traitement de
l’information
Les ordinateurs sont utilisés pour :
Le traitement d’informations.
Le stockage d’informations.
Le schéma global d’une application informatique est toujours le même :
1 ére année 2019/2020
3
4. La notion de programme
Tout traitement demandé à la machine, par l’utilisateur, est effectué par
l’exécution séquencée d’opérations appelées instructions. Une suite
d’instructions est appelée un programme.
1 ére année 2019/2020
4
Un programme est une suite d’instructions permettant à un
système informatique d’exécuter une tâche donnée écrit dans
un langage de programmation compréhensible par un
ordinateur.
Retenir
5. Langages informatiques
Un langage informatique est un code de communication, permettant à un
être humain de dialoguer avec une machine en lui soumettant des
instructions et en analysant les données matérielles fournies par le système.
Le langage informatique est l’intermédiaire entre le programmeur et la
machine.
Il permet d’écrire des programmes (suite consécutive d’instructions)
destinés à effectuer une tâche donnée.
Exemple : un programme de résolution d’une équation du second degré
Programmation : ensemble des activités orientées vers la conception, la
réalisation, le test et la maintenance de programmes.
1 ére année 2019/2020
5
6. Compilateur / Interpréteur
Un compilateur est un programme qui traduit un texte écrit dans un
langage de programmation de haut niveau vers un code binaire prêt pour
exécution par l'ordinateur.
1 ére année 2019/2020
6
le schéma de principe de compilation
7. Compilateur / Interpréteur
Le texte initial en langage de programmation est dit code source, et le
binaire généré est dit code objet.
Un interpréteur est un programme qui exécute au fur et à mesure les
instructions d'un programme source (dit aussi script) sans avoir besoin de
traduire le source entier vers un code objet.
1 ére année 2019/2020
7
Schéma de principe de l'interprétation
8. Compilateur vs. Interpréteur
Fonctionnalités :
Un compilateur traduit (tout) le texte d'un programme, et n'assure pas son exécution.
Un interpréteur "exécute" les instruction d'un programme au fur et à mesure. Il peut les
traduire ou pas.
Compilateur conçu pour
Signaler erreur de compilation
Contrôle de type
Développement de logiciel final de façon plus rigoureuse.
Interpréteur conçu pour
Mise au point facile (on voir le résultat du programme au fur et à mesure)
Développement plus souple
Utile pour prototypage
1 ére année 2019/2020
8
9. Langages de programmation
Deux types de langages:
Langages procéduraux : Fortran, Cobol, Pascal, C, …
Langages orientés objets : C++, Java, C#,…
1 ére année 2019/2020
9
10. Notion d’algorithme
Un programme informatique permet de résoudre un problème,
Un algorithme peut se comparer à une recette de cuisine:
✓ le résultat c’est comme le plat à cuisiner
✓ Les données sont l’analogues des ingrédients de la recette
Les règles de transformations se comparent aux directives ou instructions
de la recette
1 ére année 2019/2020
10
11. Étapes de réalisation d’un programme
D’où l’intérêt de l’Algorithmique
1 ére année 2019/2020
11
La réalisation de programmes passe
par l’écriture d’algorithme
D’où l’intérêt de l’Algorithmique
12. Algorithme
Algorithme = méthode de résolution
Algorithme vient du nom du célèbre mathématicien arabe Al Khawarizmi (Abu
Ja'far Mohammed Ben Mussa Al-Khwarismi)
L’algorithme est un terme arabophone systématisé par le mathématicien Al
Khuwarezmi.
Un algorithme est une séquence d’instructions énoncés dans un ordre
séquentiel, appliquée sur un ensemble de données en entrée afin de donner
une solution à un problème donné (un résultat).
Qualités: exact (fournit le résultat souhaité), efficace (temps d’exécution,
mémoire occupée), clair (compréhensible), général (traite le plus grand
nombre de cas possibles)
Un algorithme s’écrit en un langage naturel avec des instructions universelles,
compréhensibles et indépendantes du langage de programmation
1 ére année 2019/2020
12
13. Structure générale d’un algorithme
Dans un algorithme, on trouve deux parties essentielles :
Une partie déclarative contenant tous les objets qui seront impliqués par les
différentes actions de l’algorithme (constantes, types, variables, etc.).
Une partie réservée aux actions (en programmation, on dit les instructions) ;
elle est délimitée par les deux mots-clés Début et Fin.
En outre, un algorithme est caractérisé par son nom qui devrait être
significatif.
1 ére année 2019/2020
13
14. Instructions de base
Un programme informatique est formé de quatre types d’instructions
considérées comme des petites briques de base :
▪ l’affectation de variables
▪ la lecture et/ou l’écriture
▪ les tests
▪ les boucles
1 ére année 2019/2020
14
15. Notion de variable
Une variable sert à stocker la valeur d’une donnée dans un langage de
programmation
Une variable est une étiquette d’une case mémoire servant à stocker
provisoirement une donnée modifiable.
Une variable dont le contenu ne peut être modifié par un algorithme est
appelée constante.
Règle : Les variables doivent être avant d’être utilisées, elle doivent être
caractérisées par :
Nom ou identificateur
Type du contenu de la variable (entier, réel, caractère, chaîne de
caractères, ...)
1 ére année 2019/2020
15
16. Choix des identificateurs
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)
Exemple valide: YEAR2019, YEAR_2019 Exemple invalide: YEAR 2019, YEAR-
2019,YEAR;2019
doit être différent des mots réservés du langage (par exemple en java: int,
float, else, for, main ...)
1 ére année 2019/2020
16
17. Constante
Une constante est une variable dont la valeur ne change pas au cours de
l'exécution du programme, elle peut être un nombre, un caractère, ou une
chaine de caractères.
Exemple : pour calculer la surface des cercles, la valeur de pi est une
constante mais le rayon est une variable.
Constante PI=3.14 : réel, MAXI=32 : entier
Une constante doit toujours recevoir une valeur dès sa déclaration.
1 ére année 2019/2020
17
18. Affectation
L’affectation consiste à attribuer une valeur à une variable (c’est-à-dire
remplir ou modifier le contenu d'une zone mémoire)
En pseudo-code, l'affectation est notée par le signe ←
Var← e : attribue la valeur de e à la variable Var
Exemples : i ←1 ; j ←i
k ←i+j ; x ←10.3
OK ←FAUX ; ch1 ←"SMI"
ch2 ←ch1 ; x ←4 ; x ←j
(avec i, j, k : entier; x :réel; ok :booléen; ch1,ch2 :chaine de caractères)
Exemples non valides: i ←10.3 OK ←"SMI" j ←x
1 ére année 2019/2020
18
19. Exercice sur Affectation
Donner les valeurs des variables A,B et C après exécution des instructions
suivantes:
Variable: A , B , C : entier
Début
A 3
B 7
A B
BA+5
CA+B
CB-A
Fin.
1 ére année 2019/2020
19
20. Notion de Type
1 ére année 2019/2020
20
Le type d’une variable détermine l’ensemble des valeurs qu’elle peut prendre.
En pseudo-code, on va adopter la forme suivante pour la déclaration de
variables:
Variables liste d’identificateurs: type
Les principaux types utilisés en algorithmique sont :
✓ le type entier
✓ le type réel
✓ le type caractère
✓ le type chaîne de caractères
✓ le type logique ou booléen
21. 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)
➢ Byte (codé sur 1octet): de [-27,27[ ou [0, 28[
➢ Entier court (codé sur 2 octets) : [-215,215[
➢ Entier long (codé sur 4 octets): [-231,231[
➢ Réel simple précision (codé sur 4 octets) : précision d’ordre 10-7
➢ Réel double précision (codé sur 8 octets) : précision d’ordre 10-14
Type logique ou booléen: deux valeurs VRAI ou FAUX
Type caractère: lettres majuscules, minuscules, chiffres, symboles,.. Exemples : ’A’, ’b’, ’1’,
’?’, …
Type chaîne de caractère: toute suite de caractères Exemples: " " , " Nom, Prénom", "code
postale: 1000", …
1 ére année 2019/2020
21
22. Les instructions d’entrées et sorties :
lecture et écriture
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 saisie de l’entrée attendue par le clavier et de la
touche Entrée (cette touche signale la fin de l’entrée)
1 ére année 2019/2020
22
23. Les instructions d’entrées et sorties :
lecture et écriture
Les instructions d’entrées et sorties : lecture et écriture
L'écriture permet d'afficher des résultats à l'écran (ou de les écrire dans un
fichier)
En pseudo-code, on note: écrire (liste d’expressions) la machine affiche les
valeurs des expressions décrite dans la liste. Ces instructions peuvent être
des variables ayant des valeurs, des nombres ou des commentaires sous
forme de chaines de caractères.
Exemple : écrire(a)
écrire(b+2)
écrire ("Message")
1 ére année 2019/2020
23
24. Exemple 1 : lecture et é Exemple :
lecture et écriture
Écrire un algorithme qui demande un nombre entier à l'utilisateur, puis qui calcule et
affiche le carré de ce nombre
Algorithme Calcul_du_Carre
Données : un entier
Résultats : le carre du nombre
variables A, B : entier
Début
écrire("entrer la valeur de A ")
lire(A)
B ← A*A
écrire("le carre de ", A, "est :", B)
Fin
1 ére année 2019/2020
24
25. Exemple 2 :
Écrire un algorithme qui permet d’effectuer la saisie d’un nom, d’un prénom et affiche ensuite le
nom complet
Algorithme AffichageNomComplet
…
variables Nom, Prenom, Nom_Complet : chaîne de caractères
Début
écrire("entrez le nom")
lire(Nom)
écrire("entrez le prénom")
lire(Prenom)
Nom_Complet ← Nom & " " & Prenom
écrire("Votre nom complet est : ", Nom_Complet)
Fin
1 ére année 2019/2020
25