Cours Algo
Cours Algo
Cours Algo
I. Définitions :
L'algorithme est le résultat d'une démarche logique de résolution d'un problème pour
la mise en œuvre pratique sur ordinateur et afin d'obtenir des résultats concrets il faut
passer par l'intermédiaire d'un langage de propagation.
Un algorithme est une suite d'actions que devra effectuer un automate pour arriver en
un temps fini, à un résultat déterminé à partir d'une situation donnée. La suite d'opérations
sera composée d'actions élémentaires appelées instructions.
données.
ALGORITHME nom_de_l'algorithme
CONST
Définition des constantes
TYPE
Définition de types
VAR
Déclaration de variables
DEBUT
Suite d'instructions
FIN
a. Les variables
Une variable est un objet dont la valeur change c’est à dire qu’elle peut être modifiée au
cours de l’exécution. Toute variable est définie par :
- un nom qui sert à la distinguer et qui commence par une lettre,
- un type qui décrit l’utilisation possible de la valeur.
Exemple : Y : entier ; Montant : réel ; Prénom : caractère...
b. Les constantes
Une constante est un objet de valeur invariable c’est à dire qu’elle ne change pas au cours de
l’exécution.
Exemple : Y=5 ; B= "Ali"....
a. Le type entier
Ce type est associé aux objets prenant leurs valeurs de l’ensemble des entiers relatifs. Un
objet de type entier peut être positif, négatif ou nul.
Exemple : -69 ; +3 ; -15 ; 0 ;....
b. Le type réel
Il correspond aux objets qui prennent leurs valeurs de l’ensemble des nombres réels.
Exemple : 36,258 ; 0,59 ; ...
c. Le type caractère
Ce type permet de définir des objets représentant un élément pris de l’ensemble des
caractères éditables (lettres majuscules, minuscules, de ponctuation...).
Exemple : ‘ C’ ; ‘ ? ‘ ; ‘ ‘ ; ...
d. Le type chaîne
Ce type est une extension du précédent. Un objet de type chaîne est constitué d’une suite
d’objets de type caractère.
Exemple : "Client" ; "Bonjour"
e. Le type logique
C’est l’ensemble des 2 valeurs logiques vrai et faux (1 ou 0). Une variable de type logique
a toujours l’une de ces deux valeurs.
V. Les opérateurs
- La fonction MOD (Modulo), permet de donner le reste de la division entière d'un entier
par un autre. 7 MOD 2 = 1
- La fonction ENT (se lit partie entière) permet d’extraire la partie entière d’un réel.
ENT (3,5) =3
- La fonction ** permet d'élever un nombre à la puissance d'un autre.
2 ** 3=8
Les opérateurs
Addition : + ; soustraction : - ; division : / ; multiplication : *
Ordre de priorité
Les opérateurs suivants sont ordonnés du plus prioritaire au moins prioritaire dans
l'évaluation d'une expression arithmétique.
1- Les parenthèses
2- "- " le signe moins
3- Les fonctions
4- Les opérateurs de multiplication " * " et de division " / "
5- Les opérateurs d'addition " + " et de soustraction " - "
Remarque :
Si l'ordre entre les opérateurs dans une expression est le même, on évalue l'expression de
gauche à droite.
Exemples :
3**2+4 = 9+4=13
3**(2+4)=3**6 car les parenthèses sont plus prioritaires
17 MOD 10 DIV 3=(17MOD10)DIV3=7DIV3=2
1) L'affichage : ECRIRE
Cette action permet de communiquer un résultat ou un message sur écran ou sur
imprimante pour l'utilisateur.
Syntaxe
ECRIRE (paramètre1 [[,paramètre2]…])
Paramètre = variable | expression | constante
Constante = nombre | message
Exemples
ECRIRE(" La valeur de 3*2 est égale à ", 3*2)
message , expression
ECRIRE(" La moyenne est = ", MOY)
Message , Variable
2) La saisie des données : LIRE
L'ordre LIRE permet à l'ordinateur d'acquérir des données à partir de l'utilisateur, dans
des cases mémoire bien définies (qui sont les variables déclarées).
Rappel : Les variables sont des cases mémoire, supposées contenir un type de
données, nommées par le nom de variable.
Syntaxe
LIRE(variable1 , variable2 …)
Remarque :
• La saisie se fait uniquement dans des variables. Ce sont les cases (cellules) qui
pourront accueillir les données correspondantes.
• La donnée à introduire doit être de même type que la variable réceptrice.
5. L'affectation
C'est l'action de charger une valeur dans une variable. Cette valeur peut elle-même être
une variable, le résultat d'une expression arithmétique ou logique ou une constante.
Syntaxe
Variable1 ← variable2 | expression | constante
Remarque
L'affectation ne vide pas la variable émettrice (à notre droite) de sa valeur. Par contre,
le contenu de la variable réceptrice est écrasé Supposons qu'on ait deux récipients A et B
où A contient un liquide coloré en jaune et B contient un liquide rouge.
Peut-on échanger les contenus de A et de B (c-à-d mettre le liquide rouge dans A et le
liquide jaune dans B).
Résultat
Cette opération n'est possible que si on utilise un troisième récipient qu'on appelle
récipient auxiliaire.
Avec des variables réelles, cette opération d'échange de contenu se fait entre cases
mémoires qui représentent les conteneurs (récipients).
Remarques Importantes
Toute variable utilisée dans un algorithme doit être déclarée au début de
l'algorithme, une fois et une seule.
L'affectation de valeur à une variable peut être effectuée autant de fois que l'on veut
au cours d'un algorithme. La valeur de la variable sera alors modifiée à chaque affectation.
Lorsqu'une variable apparaît en partie droite d'une action d'affectation, c'est que
l'on suppose qu'elle contient obligatoirement une valeur. Cette valeur devra lui avoir été
affectée auparavant (par initialisation ou saisie), sinon l'on dira que la valeur est indéfinie,
et le résultat de l'affectation ne sera pas défini.
La variable réceptrice d'une affectation doit être de même type que de la valeur à
affecter ou de type compatible. Le type est dit compatible s'il est inclus dans le type de la
variable réceptrice. Exemple : REEL ENTIER est possible mais pas l'inverse.
Les structures de choix permettent d’exprimer la possibilité de choisir parmi deux ou plusieurs
possibilités en fonction des valeurs de certains paramètres.
a) Structure Si … Alors … Fin Si
Cette structure est dite alternative simplifiée.
Syntaxe :
Si <condition>
Alors
<Actions >
Fin si
Organigramme équivalent
Condition
Oui Non
Vrai
Action
Suite du programme
Syntaxe :
Si <condition >
Alors
<Suite d’actions 1>
Sinon
<Suite d’actions 2>
Fin Si
Organigramme équivalent
Condition
Oui Non
Vrai
Suite section 1 Suite section 2
Suite du programme
Syntaxe :
SELON ( sélecteur ) Faire
cas 1 : < traitement 1>
cas 2 : < traitement 2 >
.......
cas n : < traitement n >
SINON
< Autre traitement >
FIN SELON
Le sélecteur peut être une variable de type scalaire ou une expression arithmétique ou
logique.
La structure SELON évalue le "sélecteur", passe à comparer celui-ci respectivement avec les
valeurs dans les listes. En cas d'égalité avec une valeur, le traitement correspondant, sera
exécuté.
Devant "Cas", il peut y avoir une seule valeur, une suite de valeurs séparées par des virgules
et/ou un intervalle de valeurs. Après avoir traité la suite d'actions correspondante, l'exécution se
poursuit après le FINSELON.
Application (Selon)
Ecrire un algorithme qui permet d’afficher à partir du numéro du mois de l’année (1 à 12)
d’afficher le nom de ce mois en toute lettre.
Solution:
ALGORITHME Nom mois
VAR
Num-m : entier
DEBUT
Ecrire ("donner le numéro du mois")
Lire (Num-m)
Selon (Num-m) Faire
1 : Ecrire ("Janvier")
2 : Ecrire ("Février")
........
12 : Ecrire ("Décembre")
Sinon
Ecrire ("votre numéro est incorrect")
Fin Selon
FIN
Application
Donner la somme des 15 premiers entiers naturels positive et afficher la somme.
Solution
ALGORITHME Somme
VAR
I, S: entier
DEBUT
S 0
Pour I de 1 à 15 Faire
S S+I
Fin Pour
Ecrire ("la somme est :", S )
FIN
Remarque :
1. Dans cette boucle, le traitement peut ne pas être exécuté aucune fois, c'est lorsque la
condition d'exécution est fausse dés le départ.
2. Les paramètres de la condition doivent être initialisés par lecture ou par affectation
avant la boucle.
3. Il doit y avoir une action dans le <Traitement> qui modifie la valeur de la condition.
4. il est toujours possible de remplacer la structure Pour par la structure Tant que.
Application : Refaire l’exemple précédent en utilisant la boucle Tant que.
Solution :
ALGORITHME Somme
VAR
I, S: entier
DEBUT
S 0
I 1
Tant Que I <= 15 Faire
S S+I
I I +1
Fin faire
Ecrire ("la somme est :", S)
FIN
c) Structure « Répéter ...... Jusqu’à »
Cette structure est similaire à la précédente. La seule différence réside dans le fait que
l’évaluation et le test de la condition sont réalisés après l’exécution de l’action. Il en résulte
que le traitement est exécuté au moins une fois.
Syntaxe :
Répéter
<Traitement >
Jusqu’à (condition d’arrêt)
Remarque :
1. Dans cette boucle, le traitement est exécuté au moins une fois avant l'évaluation de la
condition d'arrêt.
2. Il doit y avoir une action dans le <Traitement> qui modifie la valeur de la condition.
Application :
Refaire l’exemple précédent en utilisant la boucle Répéter .....Jusqu’à.
Solution :
ALGORITHME Somme
VAR
I, S: entier
DEBUT
S 0
I 1
Répéter
S S+I
I I +1
Jusqu’à ( I >15)
Ecrire ("la somme est :", S)
FIN
2) Les tableaux
Un ensemble de valeurs portant le même nom de variable et repérées par un nombre, s’appelle
un tableau, ou encore une variable indicée. Le nombre qui, au sein d’un tableau, sert à repérer
chaque valeur s’appelle « l’indice ». Chaque fois que l’on doit désigner un élément du
tableau, on fait figurer le nom du tableau, suivi de l’indice de l’élément, entre parenthèses.
Lorsque les données sont nombreuses et de même nature, et pour éviter de multiplier le nombre
de variable devant rester directement accessibles lors de l’exécution d’un programme, il est
plus pratique de ranger ces données dans un tableau.
Prenons l’exemple du tableau des longueurs des mois de l’année :
Mois 31 28 31 30 31 30 31 31 30 31 30 31
1 2 3 4 5 6 7 8 9 10 11 12
3) Syntaxe
Un tableau T de longueur (dimension) N (N = (b – a + 1)) est une suite de N variables
T[i]
(avec i étant l’indice et qui prend ces valeurs de [1, N]).
La valeur T[i] s’appelle élément d’indice i
T T[a] T[a+1] T[a+2] ... ... T[x-1] T[x] ... ... T[b]
a a+1 a+2 x-1 x b
Tab : TABLEAU [ a .. b] DE ENTIER
Tab : nom du tableau
a : premier indice
b : dernier indice
entier : type des contenus des cases du tableau