Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Algorithmique
TOUHTOUH Samira
Plan
Introduction
Les variables
Les constantes
Fonctions d’entrée-sortie
Les structures
Les tableaux
Les fonctions
Les fichiers
3
Plan
Introduction
Les variables
Les constantes
Fonctions d’entrée-sortie
Les fonctions
Les tableaux
Les fichiers
4
I. Introduction
Introduction à l’algorithme
• Histoire
Le mot algorithme vient du mot latinisé du mathématicien « Al-
Khawarismi », après la traduction du livre « kitâb- aljabr wa al-
muqâbala » par Gherardo di cremona sous le titre « Dixit Algorismi ».
• Définition générale
Une séquences d’instructions logique à suivre pour obtenir un résultat
donné.
5
6
1. Réussir le bac
2. Candidater
3. Passer le concours
4. Réussir le concours
5. Déposer un dossier d’inscription
1. Préparer le café
2. Préparer le lait
3. Mélanger les deux
7
L’ordre des opérations a son importance, mais dans certains cas plusieurs
ordres sont possibles.
Exemple :
1. Préparer le café
2. Préparer le lait
3. Mélanger les deux
En informatique :
Procédure de calcul bien défini qui prend en entrée une valeur, ou un
ensemble de valeurs, et qui donne en sortie une valeur, ou un ensemble de
valeurs.
Exemple :
Algorithme d’Euclide
Etape3: a28 b 12
Etape4:ca b 16
Etape5:a16 b 12
Etape6 :ca b 4
Etape7:a12 b 4
Etape8:ca b 8
Etape9:a8 b 4
Etape9:ca b 4
Etape10:a4 b4
Etape11:a b 4 Fin
10
Exemple 2
Plan
Introduction
Les variables
Algorithme
Les constantes
Les structures
Les fonctions
13
Énoncé du
problème
Algorithme Programme
Langage de programmation
Langages de Langages de
bas niveau haut niveau
Liés au Langages
processeur évolués
CC++ Java
15
• L’organigramme
• Le pseudo-code
16
Algorithme somme_de_deux_nombres
Variables A, B, somme en entier
Début
Lire A
Lire B
somme A+B
Ecrire ‘’La somme de A et B est :’’ , somme
Fin
19
Données :
Données a et b deux entiers positifs
Algorithme
Résultats Résultat :
PGCD de a et b
21
Fin
22
Exemple 1 :
Algorithme algo_bonjour
Début
écrire ‘’bonjour‘’
Fin
23
Exemple 2 :
Ecrire un programme qui demande un nombre à l’utilisateur, puis qui
calcule et affiche le carré de ce nombre,
24
Plan
Introduction
Les variables
Les constantes
Les structures
Les fonctions
Les tableaux
Les fichiers
25
• Ces données peuvent être de plusieurs types : des nombres, du texte, etc.
• Une variable est une boîte, que le programme (l’ordinateur) va repérer par
une étiquette.
Bloc d’instructions
Fin
29
Exemple : Calculer et écrire le double d’un nombre réel donné (exemple : 7).
• L’algorithme nous informe qu’un nombre réel est donné (exemple 7) et que un autre
nombre réel sera calculé (7x2 = 14) puis affiché.
Algorithme double
Début
nombre 7
résultat nombrex2
écrire résultat
Fin
30
• Déroulement de l’exemple :
Algorithme double
Expressions et opérateurs
une constante
une variable
une opération
35
• Une opération est l'association d'un operateur avec ses opérandes qui
permet d'effectuer un calcul.
• Les opérations utilisables sur les éléments de type entier ou réel les
opérations arithmétiques classiques : l’addition (+), la soustraction (-
), le produit (x) et la division (/).
Algorithme type_réel
nombre1 1.5
nombre2 15
var1 2
résultat nombre1 / nombre2 x var1
Fin
38
Conversion :
Algorithme conversion_numérique
nombre 15
Nombre2 nombre1 // nombre2 vaut 15.0
nombre1 nombre2 + 0.5 // erreur : impossible
Fin
39
Le type caractère
• Ne pas confondre le signe ‘3’ (noté entre deux « simples quotes » en tant
que caractère et l’entier 3.
• http://www.table-ascii.com/
40
41
42
Expressions et opérateurs
< > # = ≤ ≥
43
ET : pour le « et logique »;
OU : il est vrai si l’un des deux booléens testés vaut vrai;
NON : pour le « non logique »
44
Exemple1 :
Algorithme type-booleen
Algorithme type_booléen
Variables booleen1, booléen2 : booléen
Début
booléen1 5< 6 // booléen1 prend la valeur Vrai
Fin
45
Exemple 2:
Affectation :
• L’affectation est une opération qui fixe une nouvelle valeur à une
variable. Le symbole de l’affectation est
47
Exemple 1 :
A 2
B A+1
Exemple 2 :
Début Début
Fin Fin
48
Exemple 3 :
Quelles seront les valeurs des variables A et B après exécution des
instructions suivantes ?
Variables A, B : Entier
Début
A←1
B←A+3
A←3
B←5
A←4
Fin
49
Plan
Introduction
Les variables
Les constantes
Les fonctions
Les tableaux
Les fichiers
50
Les constantes
Plan
Introduction
Les variables
Les constantes
Fonctions d’entrée-sortie
Les tableaux
Les fonctions
Les fichiers
52
Fonctions d’entrée-sortie
La fonction lire
• Lire nomDeVariable
La fonction écrire
• Ecrire expression
• Une variable
• Des commentaires écrits sous la forme d’une suite de caractère entre
guillemets.
• A la fois des phrases et des valeurs séparés par une virgule.
55
Algorithme exemple_lire_écrire
Début
Fin
56
Exemple :
Plan
Introduction
Les variables
Les constantes
Fonctions d’entrée-sortie
Les tableaux
Les fonctions
Les fichiers
58
Instruction conditionnelle
• Un algorithme est constitué d’une suite d’instructions qui
s’exécutent les unes après les autres de la première à la dernière.
La conditionnelle
Distribuer un
// L’action « fournir un gobelet » doit
gobelet
être effectuée à chaque exécution de
l’algorithme. La poudre de café doit aussi
Verser le être toujours fournie
café
Sucré ?
// L’action « verser du sucre » n’est
Verser effectuée que si l’utilisateur a choisi un
le sucre café sucré
chaud
?
Si (condition) alors
{
Bloc d’instructions n°1 // exécuté si la condition égale vrai
}
sinon
{
Bloc d’instructions n°2 // exécuté si la condition égale Faux
}
62
Distribuer un gobelet
Verser le café en poudre
Exemple :
Ecrire un algorithme qui lit deux entiers et affiche le plus grand des deux.
64
Applications
La condition simple
• Une version plus simple est utilisée si l’alternative n’a pas lieu. La
syntaxe de cette instruction est alors :
Si (condition) alors
{
Instructions;
}
66
Exemple :
La présentation
Exemple :
La différence entre les deux algorithmes identiques suivants :
Algorithme max_de_deux_entiers Algorithme max_de_deux_entiers
Variables : x, y, max : entier Variables : x, y, max : entier
Début Début
Lire x Lire x
Lire y Lire y
Si x>y alors Si x>y alors
{ {
Max x Max x
} }
Sinon Sinon
{ {
Max y Max y
} }
Ecrire ‘’ le maximum est : ‘’, max Ecrire ‘’ le maximum est : ‘’, max
Fin Fin
69
Variables X, Y, Z : entiers
Début Variables X, Y, Z : entiers
Y 2 Début
Lire X Y 2
Si X > 10 Alors Lire X
Si X > 10 Alors
X X – 10
X X – 10
Y 1 Y 1
Z X*Y Z X*Y
Ecrire Z Ecrire Z
Fin Fin
70
Conditionnelles imbriquées
Il est possible d’imbriquer des blocs de programme les uns dans les
autres.
Exemple :
Instruction de répétition
La boucle
Tant que…………faire :
non Condition
oui
Séquence
suite D’instructions
73
Exemple 1 :
Algorithme affichage_des_entiers_1_à_5
Début
Compteur 1 // initialisation
tant que compteur ≤ 5 faire // condition de poursuite
{ // début du bloc
écrire compteur // traitement
compteur compteur + 1 // incrémentation du compteur
} // fin du bloc
Fin
74
Remarques
Exemple :
Rep ‘’Z’’
Lire Rep
76
Structure pour
pour de à faire
78
Exemple1 :
Exemple 2 :
Ecrire un algorithme qui permet d’afficher la table de multiplication
par 7, présentée à l’ancienne :
7 fois 1 font 7
7 fois 2 font 14
……
7 fois 10 font 70
80
Compteur 1 // initialisation
{
écrire compteur //traitement
compteur compteur + 1 // incrémentation du compteur
}
Exemple 2 :
Soit l’algorithme
Variable x : nombre entier
Début
Ecrire ‘’donnez l’entier de départ’’
Lire x
Tant que x<100 Faire
Ecrire x
x x+20
Fin
Que produit cet algorithme lorsque x vaut 43, 195 ou -7?
Exemple :
Première étape :
Algorithme saisie_note_entier_0et20
Début
écrire ‘’ Entrez une note : ‘’
lire note // l’utilisateur entre la note
tant_que note<0 OU note > 20 faire
{
écrire (‘’ vous avez fait une erreur, essayez encore : ‘’)
lire note // on recommence la saisie.
}
Fin
84
Structures itératifs
Exercice
• Ecrire un algorithme permettant de résoudre une équation du
second degré.
Afficher les solutions :
86
Plan
Introduction
Les variables
Les constantes
Fonctions d’entrée-sortie
Les tableaux
Les fonctions
Les fichiers
87
Introduction
• Dans certains conditions, les variables sont très mal adaptées aux
traitements à effectuer.
7 9
89
Exemple :
Ecrire un algorithme qui permet de calculer la moyenne des
températures de la semaine :
90
• Le principe d'un tableau : on stocke les éléments dans des cases, chaque
case est étiquetée d'un numéro(indice). Pour accéder à un élément
particulier d'un tableau, on donne son indice.
Début
notes[0] 12
notes[1] 14
notes[2] 10
notes[3] 18
Fin
93
L’état de mémoire
12 14 10 18
94
Exemple :
Plan
Introduction
Les variables
Les constantes
Fonctions d’entrée-sortie
Les tableaux
Procédures et fonctions
Les fichiers
100
Procédures
Nous voulons poser plusieurs questions aux quelles nous attendons une
réponse sous la forme O ou N. Un compteur nous permettra de compter le
nombre de réponse positive.
Algorithme : reponseOuiNon
Variables : rep : caractère
Début :
Compteur 0
Ecrire ‘’Peut-on passer au feu rouge ‘’
Lire rep
Tant que rep # ’O’ ET rep # ’N’
{
Ecrire ‘’ répondez O pour oui et N pour non’’
Lire rep
}
Si Rep ‘N’ alors compteur compteur + 1
Ecrire ‘’Doit-on marquer un arrêt au STOP ‘’
Lire rep
Tant que rep # ’O’ ET rep # ’N’
{
Ecrire ‘’ répondez O pour oui et N pour non’’
Lire rep
}
Si Rep ‘O’ alors compteur compteur + 1
Ecrire ‘’points marqués : ‘’, compteur
Fin
102
Pour ne pas avoir à recopier plusieurs fois les mêmes lignes dans l’algorithme,
nous pouvons créer une procédure qui est une partie d’algorithme, écrite à part,
désigné par un nom, et que l’on fait exécuter plusieurs fois, en citant son nom.
103
Procédure maProcédure ( )
Variables var1 : entier
Début
Ecrire ‘’Peut-on passer au feu rouge clignotant‘’
Lire rep
Tant que rep # ‘’O’’ ET rep # ‘’N’’
{
Ecrire ‘’ répondez O pour oui et N pour non’’
Lire rep
}
Fin procédure
104
Procédure reponseOuiNon ( )
Début
Ecrire Question
Lire Rep
Tant que rep # ‘O’ ET Rep # ‘N’ Faire
Ecrire ‘’répondez par O ou par N’’
Lire Rep
Fin
105
Début
Compteur 0
Question ‘’peut-on passer au feu rouge clignotant?’’
reponseOuiNon
Si Rep ‘N’ alors
compteur compteur + 1
Question ‘’doit-on marquer un arrêt au STOP?’’
ReponseOuiNon
Si Rep ‘O’ alors
compteur compteur + 1
Ecrire ‘’points marqués : ‘’, compteur
Fin
106
Paramètres
Exemple :
Début
reponseOuiNon (‘’peut-on passer au feu rouge clignotant?’’)
R[1] Rep
reponseOuiNon(‘’doit-ont marquer un arrêt u STOP’’?)
R[2] Rep
Début
Ecrire Quest
Lire Rep
Tant que (Rep # ‘’O’’) et (Rep # ‘’N’’) Faire
Ecrire ‘’répondez par OUI ou par NON’’
Lire REP
Fin
Début
reponseOuiNon(‘’peut-on passer au feu rouge?’’, R[1])
reponseOuiNon(‘’Doit-on marquer un arrêt au STOP?’’, R[2])
Fin
113
Les fonctions
A sin(35)
117
- Le nom de la fonction.
Le nom d’une fonction commence par une minuscule.
Le nom d’une fonction ne comporte pas d’espace.
Si le nom de la fonction est composé de plusieurs mots, faire
commencer chacun d’eux par une majuscule (par exemple :
sommeDeDeuxEntiers,) et ne pas faire figurer de traits d’union.
• Le code des algorithmes est plus simple, plus clair et plus court.
Dans un algorithme, appeler une fonction se fait en une seule ligne
et la fonction peut être appelée à plusieurs reprises.
• Leur appel ne constitue pas à lui seul une instruction, mais figure dans
une expression.
• L’instruction retourne,
120
Début
écrire ‘’bonjour’’
retourne ( )
Fin
L’arrêt de la fonction
Algorithme utilise_fonction
Début
afficheBonjour ()
Fin
124
Exemple :
Définition
La valeur de retour
Exemple :
Ecrire une fonction qui permet de lire une note entre 0 et 20.
126
Fonctions récursives
La suite des contextes doit tendre vers une solution directe (cas
terminal).
Exemple : La factorielle
127
128
129
130
131
Début
si n 0 alors
résultat 1
sinon
Retourne résultat
Fin fonction
132
• Exemple 2