2. 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é.
Algorithme = suite d’actions que devra effectuer un automate pour arriver à partir
d’un état initial, en un temps fini, à un résultat.
2
Définition
3. 1) Apprendre les concepts de base de
l'algorithmique et de la programmation
2) Etre capable de mettre en œuvre ces concepts
pour analyser des problèmes simples et écrire
les programmes correspondants
Ce que vous devez savoir sur l'algorithmique
Enoncé du problème
Cahier des charges
Algorithme
Programme source
Programme exécutable
Version finale et résultats 3
Spécification
Analyse
Traduction en langage
Compilation
Tests et modifications
4. 4
Notion de variable
3+4=
3+4 = 7
Problème : Effectuer le calcule de 3+4
Chez un humain Chez une Machine
(Téléphone – Ordinateur – calculatrice…)
A ← 3
B ← 4
C ← A+B
on stocke la valeur 3 dans une variable A
Et 4 dans une variable B
On affiche la valeur de la variable C
???7
5. 5
Notion de variable
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, …)
Identificateur : A,B, Totale ,Prix_TTC, Prix_HT, Test, ch1……..
Type : entier, réel, booléen, chaîne de caractères
Variables A, B, C: Entier
Début
A ← 3
B ← 7
C ← A + B
Fin
Notion de variable
6. 6
L’instruction d’affectation
A ← 3
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 (var)
Ex valides: A ←3 B ←4 C ←A+B
x ←10,5 Test ←FAUX LP ← "ESE"
LF←LP x ←4 x ←C
Question : Quelle est la valeur de x ?
la valeur de LF ?
Affectation
7. 7
Donnez les valeurs des variables A, B et C après exécution des instructions suivantes ?
Variables A, B, C: Entier
Début
A ← 2
B ← 4
A ← B
B ← A+5
C ← A + B
C ← B – A
Fin
Exercice
Instructions A B C
A ← 2
B ← 4
A ← B
B ← A+5
C ← A + B
C ← B – A
2
2
5
44
4 9
94
4 9
4
13
8. 8
Donnez les valeurs des variables A et B après exécution des instructions suivantes ?
Variables A, B : Entier
Début
A ← 1
B ← 2
A ← B
B ← A
Fin
Exercice
Les deux dernières instructions permettent-elles d’échanger les
valeurs de A et B ?
Instructions A B
A ← 1
B ← 2
A ← B
B ← A
1
1 2
2 2
2 2
9. 9
Ecrire un algorithme permettant d’échanger les valeurs de deux
variables A et B
Variables A, B,C : Entier
Début
A ← 1
B ← 2
C ← A
A ← B
B C
Fin
Exercice
10. 10
Expressions et opérateurs
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: & (concaténation)
Une expression est évaluée de gauche à droite mais en tenant compte de priorités
Priorité des opérateurs
Pour les opérateurs arithmétiques donnés ci-dessus, l'ordre de priorité est le suivant
^ : (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
11. 11
Les instructions d'entrées-sorties:
lecture et écriture
Les instructions de lecture et d'écriture permettent à la machine de communiquer avec l'utilisateur
L'écriture permet d’écrire dans un fichier ou d'afficher des résultats à l'écran
NB : 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
écrire (var)
écrire("entrer un nombre ")
écrire("le nombre saisi est ",a)
La lecture permet d'entrer des donnés à partir du clavier
lire (var)
la machine met la valeur entrée au clavier var
dans la zone mémoire nommée var
lire(A)
12. Les instructions d'entrées-sorties:
lecture et écriture
Exemple : 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 est :", B)
écrire("le double de ", A, "est :", B)
Fin
12
13. 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
Ecrire un algorithme qui vous demande de saisir votre nom puis votre prénom et qui affiche ensuite votre nom complet
Exercice
Exercice
13
14. 14
Ecrire un algorithme permettant de saisir un nombre entier au clavier et d’afficher le carré
d'un nombre saisie par un utilisateur
Variables a, Entier
Début
écrire("entrer un nombre ")
lire(a)
b ← a^2 oubien b a*a
écrire("le carée du nombre saisie est :", b) ou bien écrire("le carré de ", a, "est :", b)
Fin
Exercice