Académique Documents
Professionnel Documents
Culture Documents
1
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
Nous dirons donc que l’ensemble des éléments nécessaire à l’exécution du travail (préparation du
gâteau) est appelé environnement de ce travail.
La partie 2 est constituée d’une série de tâche qui, une fois accomplies, aboutissent à l’obtention
d’un kouign-amann. Chaque tâche sera désignée par le terme action.
Si on applique les mêmes actions sur le même environnement en tout lieu et à tout instant, on obtient
toujours le même résultat.
On vient de définir ce que l’on appelle un algorithme de confection d’un kouign-amann.
C’est donc l’énoncé d’une séquence d’action réalisant la confection de ce gâteau.
Algorithme= environnement + action
Le kouign-amann se déroule en 1h 10mn) 10mn pour préparer la pâte, 30mn de pause et 30mn de
cuisson). C’est lent mais c’est un temps fini.
Un algorithme doit aboutir à un résultat en un temps fini.
L’algorithme ainsi défini est écrit en français. Il aurait par l’être en breton, en arabe, en chinois
le résultat ne serait pas modifié pour autant . On appelle cette langue le langage algorithmique
Nous dirons donc qu’un algorithme est écrit dans un langage.
Le processus ou l’algorithme ainsi défini s’adresse à tout individu comprenant ce langage, et
ayant à sa disposition tous les objets de l’environnement et étant capable d’accomplir toutes les
actions de la préparation. Cet individu sera appelé le processeur.
Processeur= exécuteur de l’algorithme.
1.1. Définition de quelques concepts :
- L’environnement : ensemble des objets nécessaires à l’élaboration d’un algorithme.
- Objet : Un élément de l’environnement pris individuellement.
- Action : évènement qui modifie l’environnement.
- Algorithme : un moyen de description des étapes à suivre pour résoudre un problème ou
encore l’ensemble des actions appliquée à un environnement bien précis afin d’obtenir un
résultat.
- Processeur : Toute entité capable de comprendre l’énoncé d’un problème et
d’exécuter le travail demandé.
- Programmer = écrire des algorithmes.
- Un programme est une suite d’instructions enregistrées dans la mémoire d'un ordinateur lui
permettant d'exécuter des tâches données.
1.2. Historique
Le mot algorithme n’est pas dérivé d’un mot latin ou grec, mais d’une contraction et d’une
dérivation du nom du mathématicien arabe al-Khawarizmi qui publia deux livres importants : l’un
sur l’arithmétique et l’autre sur « l’action de faire passer et d’agencer les parties d’un tout » (titre
original : Kit ab al-jabrwalmuqabala). Trois siècles plus tard, le livre, traduit en latin, porta le
nom Algorismus. La première définition du mot algorithme, dans son sens actuel, a été donnée par
le mathématicien russe Markov : « Tout ensemble de règles précises qui définit un procédé de
calcul destiné à obtenir un résultat déterminé à partir de certaines données initiales. »
Les algorithmes sont constitués par un ensemble de règles précises et compréhensibles par tous.
Ils s’appliquent à des données qui peuvent changer et élaborent les résultats en fonction des
données initiales.
1.3. Lien entre Algorithme, Programme et langage de programmation :
Pour expliquer les liens qui se trouvent entre ces trois notions il serait judicieux de passé à un
schéma.
4
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
5
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
Un algorithme manipule des données. Pour les utiliser, il faut réserver des emplacements mémoire
dont la taille dépend de leurs types. Le processeur s’en charge de la représentation interne des
données.
2.1.1. Classification des types de données
On distingue en générale deux catégories :
- Les caractères
- Les numériques
- Les booléens
2.1.2. Définition
Un type est un attribut qui nous renseigne sur la nature d’un objet et sur tout le genre d’action
qu’on peut lui appliquer. En d’autres termes les types de donnée représentent le domaine de
définition des variables.
Il existe deux catégories de types : les types de bases ou prédéfinis et les types construits
Ce sont les types qui sont directement reconnus par le processeur pendant la déclaration des
objets. Nous avons comme types de base :
2.1.3.1. Les Caractères :
Un caractère est un élément de l’alphabet du processeur. A chaque caractère est associée une
valeur dans son code choisi. Il faut distinguer les caractères de contrôle des caractères ayant une
représentation graphique. Pour ces derniers, le symbole graphique n’est pas toujours obtenu
depuis le clavier.
Donc on peut différencier :
- Les caractères ayant une représentation graphique :
Manipulable directement à partir du clavier tels que :
- Les lettres majuscules, minuscules et accentués
- Les chiffres de 0 à 9
- Les symboles de ponctuation et d’autres caractères spéciaux tels que : + - * /, & ; # | \ { }
[ ] (=) @ ’^….
Non manipulable à partir du clavier
- Les caractères semi graphiques qui permettent de dessiner un tableau par exemple.
6
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
Problème :
Il existe une infinité de nombres. En mathématique, on distingue :
- Les entiers naturels : 0 1 2 3 4 …
- Les entiers relatifs : -4 -3 -2 -1 0 1 2 3 4…
- Les réels : 1 1.1 1.11 1.111…
- Entre deux nombres quelconques, il existe une infinité de nombres réels
Solution : il faut adopter un codage différent pour les entiers et pour les réels :
Il arrive souvent aux programmeurs de se poser des questions pour lesquelles ils s’attendent à
une réponse sous la forme de « Oui » ou de « Non ». Il serait donc commode de disposer d’un
équivalent qui sera représenté par les booléens. L’ensemble des booléens comporte deux valeurs
notées : VRAI et FAUX.
Table2.1
A chaque caractère est associé un numéro correspondant au rang de ce symbole dans la séquence
conventionnelle du code utilisé par la machine.
7
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
Table2.2
Table 2.3
2.1.4.3. Les réels
Notation du type Réel
Ensemble de valeurs Représentation approchée d’une partie des nombres
réels
Notation des valeurs Exemple -3; 3.14 ; 1.12E+4 ; 314E-2
Opérateurs + ;-,*,/
Puissance ** ou ^
Opérateurs de relation =,<>,<,>,<=,>=
Fonctions abs() ; Carré() ; Rac2() ; sin() ; cos(); Tang() ;
arrondi() ; tronc() arrondi (4.45)=4 ; arrondi
(4.56)=5 tronc (4.45)=4 ; tronc (4.56)=4
arrondi (-2.77)=-3 tronc (-2.77)=-2
Table2.4
2.1.4.4. Les booléens
Ce type, appelé aussi type logique dans d’autres langages n’apparait pas d’emblée comme aussi
nécessaire comme les autres types simples que nous venons d’étudier.
Notation du type booléen
Ensemble de valeurs Vrai ou Faux ; Oui ou Non ; 0 ou 1
Opérateurs logiques Non, ET, OU,…..
Opérateurs de relation =,<>
8
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
Table2.5
Opérateur NON Opérateur ET Opérateur OU
P NON(P) P Q P et Q P Q P ou Q
V F V V V V V V
F V V F F V F V
F V F F V V
F F F F F F
9
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
Table 2.6
➢ Les fonctions de longueur et de positionnement
Fonctions Résultat Exemple
Long (ch) Entier Long(ABCD)=5 ; long (‘’)=0
Pos (ssch, ch) Entier Pos (‘AB’,’AACABAB’)=4 ; Pos (‘x’,’abcd’)=0
La fonction long (ch) examine la chaine ch et donne la taille sous forme d’entier correspondant
au nombre de caractères contenus dans ch.
La fonction Pos (ssch, ch) correspond à un entier égal à la position du premier caractère de la
première apparition de la sous chaine recherchée dans la chaine examinée. Cet entier vaut 0 si la
sous chaine n’est pas présente
Table2.
➢ Les fonctions d’extraction :
Fonctions Résultat Exemple
Gauche (ch, lg) Chaine Gauche (‘ABCDE’,3)=’ABC’
Droite (ch, lg) Chaine Droite (‘ABCDE’,3)=’CDE’
Milieu (ch, deb, Chaine Milieu (‘ABCDE’, 3,2)=’CD’
lg)
Suppr (ch, deb, Chaine Suppr (‘ABCDE’, 2,3)=’AE’
lg)
Gauche : extrait, en partant du début, une sous chaine de longueur donnée
Droite : extrait en partant de la fin, une sous chaine de longueur donnée
Milieu : extrait, à partir d’une position donnée, une sous chaine de longueur donnée
Suppr : supprime, à partir d’une position, une sous chaine de longueur donnée.
Table 2.8
Ces deux fonctions peuvent être utilisées pour rendre compatibles des données de type différent.
10
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
Les opérateurs du type intervalle sont les mêmes que ceux du type hôte.
Type Maj=’A’..’Z’
Jour=lundi..Samedi
Le processeur associe un entier ou rang à chaque valeur en fonction de sa position dans la liste :
A 0;Z 25.
De même que le type énuméré l’opérateur Dans traduit l’appartenance d’un élément à un
ensemble. Les fonctions pred, succ, ord et nomtype() sont aussi définie.
Il nous arrive d’éprouver la nécessité de regrouper plusieurs valeurs pour caractériser une entité
particulière. Nous définissons alors une variable composée (association de plusieurs variables
élémentaires)
11
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
a) Syntaxe :
Type nomtype= structure
Champ1 : type1
Champ2 :type2
…………..........
Champn :typen
Fin struct ;
b) Exemple :
Type resultat=structure
Nom : chaine(23) ;
Matière : chaine(17) ;
Note : réel ;
Fin struct ;
2.1.5.5. Le type tableau
Un tableau est une collection d’objets de même type.
a) Syntaxe
Type nomtype=tableau(1..taillemax) de t.
Où taillemax est une constante déterminant la capacité du tableau ; t est un type quelconque
commun à tous les éléments de ce tableau.
b) Exemple1 Type nombre=tableau (1..20) d’entier
Nombre est un tableau d’entiers.
Exemple2 type collection=tableau(1..50) de resultat ;
Collection est un tableau de type résultat avec resultat comme nom d’une structure.
2.2. OBJET
2.2.1. Définition : un objet est toute unité mémoire manipulé par un langage. Il est caractérisé par
un nom et un type.
- Un objet simple correspond à un emplacement simple
Exemple : Age 26
Contenant Contenu
12
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
c) Règles de nomenclature : Vous pouvez attribuer le nom que vous voulez à vos variables
mais en respectant les règles ci-dessous :
Règle N°1 : Le nom d’une variable ne doit pas commencer par un chiffre mais peut contenir de
chiffres.
14
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
Algo nom_algo ;
Début
Action1 ;
Définition du corps de l’Algo Action2 ;
……..
Fin.
Le mot clé Algo suivi d’un nom significatif annonce le début de l’algorithme.
Le mot Début correspond à la fin des déclarations et au commencement des actions.
Le mot Fin signale la fin de la description de la solution.
2.3.1. Structure
Un algorithme est découpé en deux parties :
- Les déclarations où les objets sont déclarés
- Les actions où les traitements sont décrits. C’est le corps de l’algorithme.
2.3.2. Les mots clés
Les mots clés ne peuvent pas être choisis comme identificateurs. Algo et
Début encadrent les déclarations.
Début et Fin encadrent le corps de l’algorithme. (et)
encadrent les commentaires.
Const, type et var annoncent les types de déclarations.
2.3.3. Nom de l’algorithme
Un algorithme est identifié par un nom judicieusement choisi par le programmeur ; ce mot
apparait après le mot clé Algo
2.3.4. Commentaire
Un commentaire est une partie du programme ignorée par le processeur. Il sert à renseigner le
lecteur. On utilise des commentaires pour :
- Mettre en valeur la structure du programme en plaçant des titres, -
Expliquer des traitements complexes et aider à la maintenance.
15
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
2.3.5. Séquentialité
Les actions s’exécutent par défaut les unes à la suite des autres dans l’ordre de leur description. La
marque de la séquentialité est le point-virgule.
Le point-virgule se place, comme séparateur, après chaque action.
16
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
b) Exemple :
c) Mise en forme
La mise en forme est très différente d’un langage de programmation à l’autre. Il est donc difficile
de dégager les caractéristiques communes. C’est pourquoi on la définit ici de façon très succincte
Don_num [: p1[:p2]]
P1 est le nombre total de positions occupées à l’écran par le nombre. P2 est
le nombre de positions décimales du nombre.
e) Passage à la ligne
Cette instruction permet de placer le curseur sur la première colonne de la ligne suivante et s’écrit
comme suit: A_la_ligne ;
3.2.Ordre d’Entrée : l’instruction lire
Cette instruction permet d’acquérir les données du clavier au cours d’un programme.
17
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
a) Syntaxe
b) Sémantique
Cette action transfère les données saisies à partir du clavier vers la mémoire centrale et permet
donc l’affectation dynamique d’un nom de variable (ou plusieurs)
C’est la seule action nécessitant l’intervention de l’utilisateur qui doit fournir une ou plusieurs
données.
c) Exemple :
Algo saisie ;
Var nb :entier ;
Début
Afficher(‘Donner le nombre’) ;Lire(nb) ;
Afficher(‘vous avez saisi’, nb) ;
Fin.
d) Pratique
Pour des raisons de compréhension à l’exécution, il est conseillé de faire précéder une instruction
saisir ou lire de l’affichage d’un message commentant la valeur à introduire.
18
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
Un opérateur est symbole qui permet d’élaborer une expression en vue d’effectuer un
calcul ou une comparaison.
L’usage des parenthèses est vivement souhaité dans le cas des expressions complexes.
OPERATEUR NEGATION
= <>
<> =
< >=
> <=
<= >
>= <
Soient P et Q des expressions à résultat booléen, la négation des expressions suivantes est :
Non(PETQ)=Non(P) OU Non(Q)
Non(POUQ)=Non(P) ET Non(Q)
4.2. Expression
19
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
4.3.AFFECTATION
a) Syntaxe
b) Sémantique
• Sens du transfert
Contenant contenu
20
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
Partie déclaration
Const X=10 ;
Var Y,Z :entier ; Partie
actions :
X+Y 10 ; une expression ne peut être affectée
10 X ; - une constante ne peut pas avoir une valeur ; X
10 12 ; - une constante ne peut être modifiée ;
Y=20 ; l’opérateur d’affectation n’est pas le symbole « = »mais plutôt le
symbole « »
TRAVAUX DIRIGES N°1
21
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
Syntaxe
Action1
Action2
……….
Actionn
Les structures conditionnelles vont nous permettre de mettre en place des Algorithmes à
déroulement non linéaire.
5.2.1. La structure alternative simple
C’est une instruction qui nous permettra d’exécuter une ou plusieurs actions lorsqu’une condition
est vraie. Lorsqu’une condition n’est pas vraie la structure conditionnelle simple n’agira pas.
a) Syntaxe :
Si condition alors
Actions
Fsi ;
SI repère le début de la structure conditionnelle et Fsi repère la fin de la structure
conditionnelle
Alors marque la fin de l’expression booléenne et le début des actions condition :
expression logique encore appelée expression booléenne, est une expression à résultat
booléen.
Actions : représente une ou plusieurs actions.
22
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
b) Exemple
Ecrire un algorithme qui accorde une remise de 5% si la somme des achats dépasse 100F
Algo prix ;
Const min=100 ; R=0.05 ; Var sa
:réel ;
a) Syntaxe
Si condition Alors
Action1 ;
Sinon
Action2
Fsi ;
SI repère le début de la structure conditionnelle.
Fsi repère la fin de la structure conditionnelle.
Alors et Sinon encadrent la suite des actions exécutées si la condition est vraie.
Sinon et Fsi encadrent la suite des actions exécutées si la condition est fausse.
Expr_log est une expression à résultat booléen.
Actionsi représente une ou plusieurs actions.
Si la condition est vraie, exécuter la suite d’actions correspondante située après le mot Alors ;
Si la condition est fausse, exécuter la suite des actions alternative située après le mot Sinon qui
vient compléter la structure.
b) Exemple
Un permis de conduire est accordé à tout chauffeur dont le nombre de points est supérieur ou égal à
120. Rédige un algorithme de ce travail.
23
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
Algo permis
Const point_min=120 ;
Var points: entier ;
Debut
Afficher(‘Donner les points obtenus’);
Lire(points) ;
Si points>=point_min alors
Afficher(‘Admis’)
Sinon Afficher(‘Refusé’) ;
Fsi ;
24
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
d) Syntaxe
Si (condition1) Alors
Alterne1 Action1
Alterne2 Action2
Alterne3 Action3
…………………………………………………..
Alternen Actionn
Fin Si ;
Fin Si ;
Fin Si ;
Fin Si ;
e) Exemple
Algo mention ;
Var note : réel ;
Début
Afficher (‘Saisir un note’) ;
Lire(note) ;
Si note>=16 C1
Alors afficher (‘Très Bien’) A1
Sinon Si note>= 14 C2
Alors afficher (‘ Bien’) A2
Sinon Si note>= 12 alors C3
a afficher (‘ Assez Bien ’) A3
Sinon Si note>= 10 C4
Alors afficher (‘ Passable’) A4
Sinon afficher(‘Refus’) A5
Fsi ;
Fsi ;
Fsi ;
Fsi ;
25
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
f) Interprétation sémantique
Conditions C1 NonC1 NonC1 NonC1 NonC1
C2 NonC2 NonC2 NonC2
C3 NonC3 NonC3
C4 NonC4
A A1 X
C A2 X
T A3 X
I A4 X
O A5 X
N
S
Remarque
Le décalage augmente la lisibilité pour le programmeur, mais ne présente pas de valeur
sémantique pour le processeur.
La règle du processeur est :
Le Sinon se rapporte au dernier alors non déjà apparié.
Au- delà de 3 imbrications, le programme devient illisible, une solution sera apportée
ultérieurement.
A) B)
Si C1 alors Si C1 Alors
Si C2 Alors Si C2 Alors
A1 A1
Fsi ; Sinon A2 ;
Sinon A2 Fsi ;
Fsi ; Fsi ;
Sans le mot clé Fsi, les 2 structures seraient identiques ; l’interprétation serait ambiguë
Interprétation :
A1 est exécutée si C1 et C2 A1 est exécutée si C1 et C2
A2 est exécutée si C1 et nonC2 A2 est exécutée si non C1
5.2.4. La structure à Choix multiples
C’est un cas particulier de l’emboitement. Elle permet de simplifier la structure d’emboitement en
permettant d’exécuter un ensemble d’instructions selon :
Une Valeur,
Une liste de valeur ou un intervalle de valeur.
On peut analyser les différentes valeurs que peut prendre une variable et les regrouper en fonction
des actions qu’elles conditionnent.
26
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
a) Syntaxe
Cas expr Selon
Val1 : Action1 ;
Val2 : action2
……………….
Valn : actionn
Autre : actionn+1 ;
Fincas ;
Cas et Fin Cas repère le début et la fin de la structure de choix multiple
expr est une expression évaluable.
Vali est une liste ou un intervalle
Actionsi est une ou plusieurs actions
Autre est une close optionnelle.
b) Exemple :
c) Schéma équivalent
On a l’équivalence entre les schémas suivants :
27
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
- Les itérations dont le nombre de tours est inconnu à l’avance mais qu’on pourra calculer après
exécution.
5.3.1. La boucle Répéter…. Jusqu’à…
Cette boucle correspond à l’itération dont le nombre de tours n’est pas connu d’avance. Les
instructions sont exécutées tant que la condition est fausse.
Pour la 1ère itération :
Quelle que soit la véracité de la condition les instructions sont exécutées.
Une action ou groupe d’actions est exécuté répétitivement jusqu’à ce qu’une condition soit
vérifiée.
28
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
a. Syntaxe
Répéter
Action1 ;
Action2 ;
………..
Actionn
Jusqu’à condition ;
Répéter et Jusqu’à condition encadrent la suite d’actions à répéter.
Actioni est une suite de 1 ou plusieurs actions. Ces actions doivent modifier la valeur de la
condition.
Condition est le mot repérant l’expression logique.
b. Sémantique
La structure itérative permet la répétition d’une suite d’actions, un nombre fini de fois.
c. Exemple
Algo multiplication
Var i : entier ;
Début
i 1 ;
Répéter
Afficher(‘2* ’,i ,’= ’,2*i) ;
i i+1;
Jusqu’à i>10;
Fin.
Remarque: la vérification de la condition s’effectue après les actions. Celles-ci sont donc
exécutées au moins une fois.
a. Syntaxe :
Tant Que condition faire
Action1 ;
Action2 ;
………..
Actionn ;
Fintq ;
b. Exemple
Reprenons la table de multiplication avec la boucle tant que
29
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
Algo multiplication
Var i : entier ;
Début i 1 ;
Tant que <=10 faire
Afficher(‘2* ’,i ,’= ’,2*i) ;
i i+1;
Ftq;
Fin.
Remarque la vérification de la condition s’effectue avant les actions. Celles-ci peuvent donc ne
jamais être exécutées.
NB : La condition d’arrêt d’une boucle est très importante en tel point qu’elle évite la présence
d’une boucle infinie dans un programme.
On appelle de variable de condition la variable sur laquelle est basée la condition de la boucle. Au
niveau des deux boucles (Répéter et Tant que) cette variable connait trois étapes dans la boucle à
savoir :
- L’initialisation ;
- L’incrémentation ;
- Le test de la condition de sortie.
Ces trois étapes sont nécessaires pour le bon déroulement de la boucle.
Actions
Finpour ;
30
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
Algo table ;
Var i :entier ;
Début
Pour i de 1 à 10 faire
Afficher (‘2*’, i,’ =’, 2*i); Finpour;
Fin.
31
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
32
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
Algo exemple1;
VAR x, y, t : entier;
{Déclaration de la procédure Echange_xy}
Procedure Echange_xy;
Début
t x; x y; y t;
fin;
Début
x 3; y4;
Afficher(x, ' ', y);
Echange_xy; {1er appel de la procédure}
Afficher(x, ' ', y);
Echange_xy; {2eme appel de la procédure}
Afficher(x, ' ', y);
Fin.
c) Remarques
- Le nom de la procédure est un identificateur.
- On déclare toute procédure avant le Début du programme principal.
Exemple2 :
Procédure politesse ;
Début
Afficher (‘bonjour Monsieur donner deux entiers’);
Finproc ;
N.B Une procédure est considérée comme une instruction faisant partie du
programme principal lors de son n’appel.
Exemple
Algo somme ;
Var a, b, s :entier ;
Debut
Politesse ;
Lire(a,b);
S a+b ;
Afficher (‘La somme est : ‘,s) ;
Fin.
d) Appel de la procédure
On peut très bien appeler une procédure P1 depuis une procédure P2, mais il
faut que la procédure P1 ait été déclarée avant la procédure P2.
Exemple donnant le même résultat.
33
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
Algo exemple2;
VAR x, y, t : entier;
PROCEDURE Affiche_xy;
Début
Afficher(x, ' ', y);
Fin;
PROCEDURE Echange_xy;
Début
{Corps de la procédure}
T x; xy; yt;
Fin;
Début
X 3; y 4;
Affiche_xy;
Echange_xy;
Affiche_xy;
Fin.
Remarque
On peut aussi appeler une procédure depuis elle-même : c'est la récursivité.
6.1.2.2. Les procédures paramétrées
Avant d’approfondir l’étude des procédures paramétrées voyons ce que c’est qu’un
paramètre.
Définition d’un paramètre :
Un paramètre est une fenêtre (variable locale ou globale) qui sert d’interface entre la
procédure et le programme principal c’est-à- dire c’est une variable qui permet à la
procédure et au programme principal d’échanger des informations.
Algo produit_parametrer;
VAR a, b, c, d : réel;
PROCEDURE Produit (E x, y : réel; S z : réel); {paramètres}
Début
Z x * y;
fin;
début
afficher ('a b ? ');
lire (a, b);
Produit (a, b, c); {passage de}
Produit (a-1, b+1, d); {paramètres}
Afficher ('c = ', c, ' d = ', d); fin.
Syntaxea)
procedure nomprocedure(liste des paramètres :type) ;
(déclaration des variables locales)
Début
(corps de la procédure)
Finproc ;
6.1.3. Type de paramètres:
Il existe deux types de paramètres :
6.1.3.1.Les paramètres formels
Les paramètres formels sont des variables qui sont utilisées lors de la création de la
procédure.
Exemple x, y et z sont des paramètres formels.
6.1.3.2.Les paramètres effectifs
Les paramètres effectifs quant à eux sont des variables qui sont utilisées lors de
l’appel d’une procédure.
35
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
Notation :
E nomvar: type
Entrée
Ou
nomvar: type
S nomvar: type
Sortie Ou
nomvar: type
nomvar: type
Lorsqu’un paramètre formel est transmis en mode entrée, son vis-à-vis effectif
peut être une variable, une valeur constante ou une expression.
36
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
{ ... } Fin.
- Une variable déclarée localement n'existe que pendant l'exécution de la procédure,
et ne sert qu’à cette procédure.
- Le programme principal n'a jamais accès à une variable locale de procédure.
- Une procédure n'a jamais accès à une variable locale d'une autre procédure.
6.1.6.2. Variables globales
Une variable est dite globale lorsqu’elle est déclarée dans le programme principal.
Toutefois, cette variable peut être utilisée par une procédure, à cet effet elle est
locale à cette procédure. Les variables X, Y sont des variables globales.
6.1.7. Portée des variables
Les variables déclarées dans le VAR du programme principal sont appelées
variables globales. Elles existent pendant toute la durée du programme et sont
accessibles de partout.
Une variable locale a une procédure P, portant le même nom x qu'une variable
globale, masque la variable globale pendant l'exécution de P.
Exemple
PROGRAM exemple 4 ;
VAR x : entier ;
PROCEDURE Toto;
var x: entier ;
Début
x 4;
Afficher ('toto x = ', x);
Fin;
Début
X 2;
Afficher ('glob x = ', x);
Toto;
Afficher ('glob x = ', x);
Fin.
Ce programme affiche
Glob x = 2
Toto x = 4
Glob x = 2
38
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
6.2.1. Définition :
Une fonction comme une procédure est un sous-programme qui exécute une tâche
spécifique et qui retourne une unique valeur via le nom de la fonction.
6.2.2. Syntaxe :
Fonction Nomfonction(Liste des paramètres): type de retour
(Déclaration des variables locales)
Début
Action
Nomfonction Valeur à retourner ;
Fin
6.2.3. Appel
Contrairement à une procédure, l’appel d’une fonction ne constitue pas à lui seul
une action dans l’algorithme.
L’algorithme attend de la fonction, un résultat typé qui sera utilisé dans une
expression.
Son appel se fait par l’écriture de son nom dans l’endroit voulu du programme.
Nom_fonct (paramètre effectif) ;
Exemple
Algo addition
Var a, b, som : entier ;
Fonction somme(E n1,E n2 :entier) :entier ;
39
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
Var m :entier ;
Début
m a+b ;
Sommem ;
Finfonct ;
Début
Afficher (‘Donner deux entiers’) ;
Lire (a, b) ;
Som somme(a,b) ;
Afficher(‘La somme est ’, som) ;
Fin.
6.2.4. Notion d’homonyme :
Lord de l’écriture d’une procédure les paramètres formels de la procédure peuvent
avoir le même nom que les paramètres effectifs du programme principal sans pour
autant désigné le même emplacement mémoire.
Exemple : Ecrire une fonction qui permet de calculer la somme de deux entiers.
Algo Calcul ;
Majfaux ;
Si age>=18 alors
Maj vrai ;
Fsi ;
Majeur 1_1 maj ;
Fin_fonct ;
b) Fonction majeur1_2(E age : entier):booléen ;
Début
Si age>=18 alors
Majeur1_2 vrai ;
Sinon
Majeur 1_2 faux ;
Fin_fonct ;
La solution la plus simple et tout aussi correcte, strictement équivalente aux
précédentes serait :
c) Fonction majeur1_3(E age : entier) : booléen ;
Début
Majeur1_2 (age>=18);
Fin_fonct ;
En effet l’expression age>=18 prend la valeur « vrai » ou « faux » selon la valeur
de l’age, l’instruction conditionnelle est inutile
42
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
Salnet=i*vpi+i*vpi*taux_r.
Ecrire un algorithme qui calcule et affiche le salairenet d’un employé après avoir
demandé les informations nécessaires.
6. Ecrire un algorithme qui demande à l’utilisateur les valeurs de deux variables
réelles x1 et x2 ; calcule et affiche la valeur de la distance d entre les points A
et B d’abscisse respective x1 et x2. L’algorithme le résultat de la sorte :
d(AetB)=d. (valeur à calculer)
7. Ecrire un algorithme qui demande à l’utilisateur les valeurs des coordonnées
de deux points A et B (A(xa,ya) et B(xb,yb) ) ; calcule la valeur de la
variable d1 mesurant la distance entre les points A,B de coordonnées
respectives xa,ya et xb,yb.
8. a) Etant donné une longueur, demandée à l’utilisateur et exprimée en pied et
pouce ; écrire un programme qui calcule et affiche cette longueur en pouce.
On rappelle que 1 pied=12pouces.
b) Cette fois ci on vous demande d’écrire un algorithme qui calcule et affiche la
longueur en pied et pouce sachant que l’utilisateur saisira un nombre entier en
pouce.
9. Echange du contenu de deux variables
Le but de cet exercice est d’échanger le contenu de deux variables et non
d’en intervertir l’affichage.
L’affichage de ces variables avant et après est seulement fait pour permettre
la vérification de l’échange.
En utilisant deux variables de type entier nommé N1 et N2, écrire un
algorithme qui demande à l’utilisateur un contenu différent pour ces deux
variables ; affiche dans cet ordre N1 et N2.
Intervertit le contenu de ces deux variables, puis affiche à nouveau N1 et N2.
10 Lors d’une opération de promotion, un magasin de composants hardware
applique une réduction de 10% sur tous les composants. Écrire un
programme qui lit le prix d’un composant au clavier et affiche le prix calculé
en tenant compte de la réduction.
11 Une bille de plomb est lâchée du haut d’un immeuble et tombe en chute libre.
Au bout d’un temps t (exprimé en secondes), la bille est descendue d’une
hauteur (en mètres) :
h=1/2*gt² avec g = 9.81 (exprimé en (m. s−2))
a) Écrire un programme qui calcule la hauteur descendue au bout d’un temps
t saisi au clavier.
44
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
45
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
Quantité : 900kg
Prix Unitaire : 5000fg
Taux Remise : 10%
Net à payer : à calculer
NB : ces valeurs affichées sont un exemple, ne faites donc pas un algorithme
statique.
7. Une société d’assurance pratique la méthode de la franchise dite de la
variable. Le principe est simple et consiste à dire que le montant de la
franchise laissé à la charge d’un assuré doit représenter les 10% du montant
des réparations. Toute fois cete franchise ne doit descendre en dessous de
1000fg ni dépasser 4000.
Ecrire un algorithme qui demande le montant des réparations et calcule et
affiche la franchise laissée à la charge de l’assuré.
8. Écrire un programme qui lit deux nombres entiers a et b et donne le
choix à l’utilisateur :
1. de savoir si la somme a + b est paire ;
2. de savoir si le produit ab est pair ;
3. de connaître le signe de la somme a + b ;
4. de connaître le signe du produit ab.
9. Simulation d’une calculatrice très simplifiée
Ecrire un algorithme qui simule le fonctionnement d’une calculatrice très
simplifiée (seules les opérations +,*,- et / sont disponibles)
Cet algorithme saisit l’opération sous la forme
Opérande1 opérateur Opérande2=résultat
Exemple : 12*3=36
Si l’opération demandée est une division par 0, l’algorithme affiche un
message adéquat.
10. Ecrire un algorithme qui peut trouver la somme, le produit, la moyenne, le
minimum et le maximum de trois nombres réels saisis. L’utilisateur fera
son choix à travers un menu qui se présente comme suit :
1………………Somme
2………………Produit
3…………….Moyenne
4…………….Maximum
5………….....Minimum
11. Cet algorithme est destiné à prédire l'avenir, et il doit être infaillible !
46
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
Il lira au clavier l’heure et les minutes, et il affichera l’heure qu’il sera une minute
plus tard. Par exemple, si l'utilisateur tape 21 puis 32, l'algorithme doit répondre :
"Dans une minute, il sera 21 heure(s) 33".
NB : on suppose que l'utilisateur entre une heure valide. Pas besoin donc de la
vérifier.
12. De même que le précédent, cet algorithme doit demander une heure et en
afficher une autre. Mais cette fois, il doit gérer également les secondes, et
afficher l'heure qu'il sera une seconde plus tard.
Par exemple, si l'utilisateur tape 21, puis 32, puis 8, l'algorithme doit répondre :
"Dans une seconde, il sera 21 heure(s), 32 minute(s) et 9 seconde(s)".
NB : là encore, on suppose que l'utilisateur entre une date valide.
LES STRUCTURES ITERATIVES
Dépouillement
Ecrire un algorithme qui permet de compter le nombre de bulletins obtenu
par chaque parti. On suppose que les partis sont les suivants : PUP, PRP,
RDR, UFR, UPG. Nous conviendrons de saisir 1 pour PUP ; 2 pour PRP ;
3 pour RDR ; 4 pour UFR ; 5 pour UPG et 0 pour les bulletins nuls.
L’algorithme doit également afficher :
- Le total des suffrages obtenus ;
- Le nombre de bulletins nuls ;
- Le suffrage valablement exprimé ;
- Le suffrage obtenu par parti ainsi que le % par candidat.
14. On saisit une série de notes terminée par 0. Ecrire un algorithme qui
calcule et affiche la moyenne arithmétique et le nombre de notes saisies.
Le nombre 0 permet d’arrêter la saisie.
15. Soit une suite (Un) définie par : Uo=1 et Un+1=1/2n+1 avec limite
(Un)=0 pour tendant vers l’infini. Ecrire qui calcule et affiche les termes
de cette suite jusqu’à U(n)<10-4
16. Ecrire un algorithme qui affiche les nombres pairs compris entre 2 et 100.
Le programme affichera 10 nombres par ligne.
17. Ecrire un algorithme qui test si un nombre entier positif saisi est un carré
parfait ou non. Le programme affichera la racine carrée de ce nombre si le
nombre est un carré parfait ou la partie entière de la racine carrée de ce
nombre. On obligera l’utilisateur à saisir un nombre positif.
47
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
Un+2= Un+1 + Un
TRAVAUX DIRIGES N° 3
50
Université de Labé Support de Cours d’Algorithmique1- Par M.K. DELAMOU édition 2023 Tel 622088864
6.3.BIBLIOGRAPHIE
1) ALAIN CARDON, CHRISTIAN CHARAS. – Introduction à la
programmation
2) Moussa LÔ et Fatou KAMARA. – Algorithmique et Programmation.
USB Saint Louis
3) Kéba DIOP. – Algorithmique et structures de données. Tome1 et
Tome2, Press de l’université de l’UNIS 4) Microsoft Encarta 2009
51