Vous êtes sur la page 1sur 46

REPUBLIQUE DE GUINEE

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR


ET DE LA
RECHERCHE SCIENTIFIQUE

INSTITUT SUPERIEURE DE TECHNOLOGIE


DE MAMOU

FILIERE : Instrumentation et mesures physiques


Spécialité : Instrumentation et Maintenance

COURS : algorithme

Préparer par M. KEITA Moustapha

En cas de soucie contacter moi au +224657762484


Cours d’algorithme 2

1EREPARTIE

CHAPITRE 1 : Introduction
1) La démarche algorithmique
2) Les compétences attendues
3) Les logiciels
4) Bref historique
CHAPITRE 2 : Qu’est-ce qu’un algorithme ?

1) Définition
2) Squelette d’un algorithme
3) Langage et règles d’écriture
4) Algorigramme

CHAPITRE 3 : Phases d’un algorithme

1) Préparation du traitement
2) Traitement de donnée(s)
3) Sortie de résultat(s)

24 mars 2019
CHAPITRE 4 : Constantes et variables

1) Définitions
2) Conventions de nommage

CHAPITRE 5 : Opérateurs et opérandes

1) Définitions
2) Types d’opérateurs
3) Priorités des opérateurs

CHAPITRE 6 : Instructions de base

moustaphak 367@gmail.com
Cours d’algorithme 3

1) Affectation
2) Entrée / Lecture
3) Sortie / Écriture

CHAPITRE 7 : Structures de contrôle


CHAPITRE 8 : Structures linéaires
CHAPITRE 9 : Structures alternatives ou structure conditionnels

1) Structure alternative complète (si, sinon…finsi)


2) Structure alternative réduite (Si …finsi)
3) Structures alternatives imbriquée (si, sinon, sinon
si,…sinon…finsi)
CHAPITRE 10 : Structures de choix
1) Cas selon

CHAPITRE 11 : Structures répétitives

1) Boucle itérative « POUR … DE … A …, FAIRE »


2) Boucles conditionnelles
« TANT QUE …, FAIRE »

24 mars 2019
« FAIRE …, TANTQUE » ou« REPETER … JUSQU'A … »

CHAPITRE 11 : tableaux et fonction


1) Les tableaux (vecteurs)
2) Les fonctions
2EREPARTIE

CHAPITRE 12 : Algo des circuits électronique programmable

1) Information des circuits programmables


2) Codage d’informations
3) Décodage d’informations

moustaphak 367@gmail.com
Cours d’algorithme 4

 Communication circuit et périphériques


a) Communication en sortie informations
1) Composants discret et systèmes
2) Afficheurs, écran LCD et protocole de communication
3) Capteurs et ses protocoles de communication
b) Communication en entrée d’informations
1) Capteur (analogiques /numériques)
2) Claviers

24 mars 2019

moustaphak 367@gmail.com
Cours d’algorithme 5

1) LA DEMARCHE ALGORITHMIQUE

La DEMARCHE ALGORITHMIQUE est une composante essentielle de


l’activité mathématique et informatique

Apprendre les concepts de base de l'algorithmique et de la programmation


Etre capable de mettre en œuvre ces concepts pour analyser des problèmes
simples et écrire les programmes correspondants

L’usage et le développement des algorithmes font partie de notre quotidien ; ils


sont notamment à la base du fonctionnement des automates, des calculatrices
et des ordinateurs.

De nombreux algorithmes sont connus depuis l’Antiquité, dont l’algorithme


d’Euclide, qui permet de calculer le PGCD de deux nombres entiers non nuls.

2) COMPÉTENCES ATTENDUES

 Ce cours se donne pour objectif la maîtrise des COMPÉTENCES


suivantes :

 Apprendre les concepts de base de l'algorithmique et de la

24 mars 2019
programmation
 Etre capable de mettre en œuvre ces concepts pour analyser des
problèmes simples et écrire les programmes correspondants

 comprendre et examiner un algorithme préexistant, son
fonctionnement ou son but ;

 modifier un algorithme pour obtenir un résultat précis ;
 analyser une situation : identifier les données d’entrée et de sortie, le
traitement, les instructions... ;
 créer une solution algorithmique à un problème donné : comment
écrire un algorithme en « langage courant » en respectant un code,
identifier les boucles, les tests, les opérations d’écriture, d’affichage... ;

moustaphak 367@gmail.com
Cours d’algorithme 6

 valider la solution algorithmique par des traces d’exécution et des


jeux d’essais simples ;
 adapter l’algorithme aux contraintes du langage de programmation :
identifier si nécessaire la nature des variables... ;

3) LOGICIELLE

La mise en œuvre d’algorithmes peut se faire à l’aide de nombreux logiciels :


 des logiciels dédiés : ALGOBOX, SCRATCH, EXECALGO, LINOTTE...
 des logiciels de programmation : PYTHON...
 des logiciels liés au calcul scientifique : SCILAB...
 des logiciels de calcul formel : XCAS, MAXIMA, WIRIS...
Le choix du logiciel (et plus généralement de l’outil informatique) dépend
souvent de la complexité de l’algorithme et notamment du temps de calcul, de la
nature, de la taille ou de la précision des nombres utilisés, de la lisibilité de
l’algorithme ou de la nature de la sortie…

CHAPITRE 2 : Qu’est-ce qu’un algorithme ?

24 mars 2019
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 pour arriver à un résultat donné

 L’algorithme est une suite d’instruction qui peut être traduite dans un
langage informatique dont son écriture (sa syntaxe) est moins rigoureuse
que celui d’un langage est informatique.

 Un algorithme représente un enchainement des actions (instructions)


nécessaires pour faire exécuter une tache à un ordinateur (résoudre un
problème).

moustaphak 367@gmail.com
Cours d’algorithme 7

SQUELETTE D’UN ALGORITHME

Trois phases indissociables structurent un algorithme:


1- La préparation du traitement
2- Le traitement de donnée(s)
3- La sortie de résultat(s)

ETAPES DE REALISATION D’UN PROGRAMME

Enoncé du problème

Cahier des charges


Spécification
Analyse
Algorithme
Programme source
Programme exécutable
Version finale et résultats
La réalisation de programmes passe par l’écriture souvent des
d’algorithmes

Notion de base

24 mars 2019
Représentation d’un algorithme
Il existe deux façons pour représenter un algorithme:
L’Organigramme:
Représentation graphique avec des symboles (carrés, losanges, etc.)
• offre une vue d’ensemble de l’algorithme
• représentation quasiment abandonnée aujourd’hui
Exemples :
 Symbole de traitement
(symbole général)

moustaphak 367@gmail.com
Cours d’algorithme 8

 Symbole de test
(symbole de branchement)

 Symbole auxiliaire
(symbole de début, fin ou interruption
d’algorithme)

• Le pseudo-code: représentation textuelle avec une série de conventions


ressemblant à un langage de programmation (sans les problèmes de syntaxe)
• plus pratique pour écrire un algorithme
• représentation largement utilisée
NB un algorithme ne peut pas être directement exécutable par une machine,
mais il à l’avantage d’être traduit dans n’importe quel langage.

24 mars 2019
 PROGRAMMER C’EST QUOI ?
Se communique avec soit même avec les autres programmes ou avec les
machines ou communique avec les machines pour résoudre des
problèmes.

 QU’EST C’EST QU’UN PROGRAMME ?


C’est une liste d’ordre indiquant une machine (ordinateur) ce quelle doit
faire ; il se présente sous forme d’un ou de plusieurs séquence
d’instructions, comportant souvent des donnes bases devant êtres
exécutées dans un certaine ordre par processeur

C’est une suite d’instructions compréhensible par une machine (ordinateur)


pour traiter les données bases d’un problème.

moustaphak 367@gmail.com
Cours d’algorithme 9

CONCEPT FONDAMMENTAL DE LA PROGRAMMATION

 Le processeur : c’est toute entité capable de comprendre une structure


(l’énonce d’un problème)
Chaque microprocesseur à son jeu d’instruction de base selon sa
technologie
Le langage de machine (binaire) est le langage compris par le
microprocesseur.
 La mémoire : la mémoire RAM contient des données de l’espace utile
au programme mais volatile cet d’espace est organiser en octet et
chaque octet à un adresse.
 Action primitive ou élémentaire : est tout ce que sait faire le processeur
sous forme de l’énonce sans qu’on lui explique.

LES INTRUCTRUCTION DE BASE

CHAPITRE 4 : VARIABLE ET CONSTANTES

Dans un programme informatique, en permanence on à le besoin de stocker


provisoirement des données.

24 mars 2019
Elles peuvent être des nombres, du texte, des données issues du disque dur,
fournies par l’utilisateur (frappées au clavier) etc.
A chaque fois nous avons besoin de stocker une information au cours d’un
programme, on utilise une variable.

Il va de même que pour l’algorithme car un programme est issu souvent d’un
algorithme

VARIABLE

Une VARIABLE est une case mémoire de l’ordinateur qui sera utiliser dans un
l’algorithme a chaque fois le besoin se manifeste.

moustaphak 367@gmail.com
Cours d’algorithme 10

Elle doit avoir un nom explicite qui contiendrais des lettres, des chiffres mais ni
des accents des espaces ; peut être de type entier, un réel, des tableaux, un
booléen, un caractère, une chaîne de caractères… Il ne faut pas confondre
constante et variable.

REMARQUE :

En effet, la variable possède un identificateur (son nom) et une valeur (son


contenu).

 Le type d’une variable détermine l’ensemble des valeurs qu’elle peut prendre
et les opérations réalisables qu’elle peut subir.
 L’utilisation d’une variable doit être précédée de sa déclaration.

Mais il existe des mots qu’on ne peut pas prendre comme variable

Asm Enum Signed


Auto Extern Sizeof
Break Float Static
Case For Struct
Char Goto Switch
Const If Typedef
Continue Int Union
Default Long Unsigned
Do register Void
Double Return Volatile

24 mars 2019
Else Short While

DÉCLARATION DUNE VARIABLE

Règle : Les variables doivent être déclarées avant d’être utilisées

Exemples de déclaration des variables

Pour une seule variable

Syntaxe

Var N1 : Entier ;

moustaphak 367@gmail.com
Cours d’algorithme 11

Pour plusieurs variables

Syntaxe

Var N1, N2, SOM, QUOT :Entier ; // une seul variable

NB elle doit être différente des mots réservés aux langages (par exemple en C:
int, float, else, switch, case, default, for, main, return, …) ; que nous en
perlerons beaucoup en langage C.
La longueur du nom doit être inférieure à la taille maximale spécifiée
par le langage qui sera utilisé

Exemple:
Variables i, j, k : entier;
x, y : réel;
OK: booléen;
ch1, ch2 : chaîne de caractères;
Remarque 1: pour le type numérique on va se limiter aux entiers et réels sans
considérer les sous types.

Remarque 2: Deux remarques pour terminer .

Maintenant que nous sommes familiers des variables et que nous les manipulons
les yeux fermés (mais les neurones en éveil, toutefois), j’attire votre attention sur
la trompeuse similitude de vocabulaire entre les mathématiques et
l’informatique.

24 mars 2019
 En mathématiques, une « variable » est généralement une inconnue, qui
recouvre un nombre non précisé de valeurs.
Lorsque j’écris : y = 3 x + 2
les « variables » x et y satisfaisant à l’équation existent en nombre infini
(graphiquement, l’ensemble des solutions à cette équation dessine une
droite). Lorsque j’écris : ax² + bx + c = 0
la « variable » x désigne les solutions à cette équation, c’est-à-dire
zéro,une ou deux valeurs à la fois….

 En informatique, une variable possède à un moment donné une valeur et une


seule.

A la rigueur, elle peut ne pas avoir de valeur du tout (une fois qu’elle a été
déclarée, et tant qu’on ne l’a pas affectée. A signaler que dans certains langages,

moustaphak 367@gmail.com
Cours d’algorithme 12

les variables non encore affectées sont considérées comme valant


automatiquement zéro).

CONSTANTE

Définition une constante est une donnée informatique contrairement à un


variable ; elle ne change pas de valeur s durant tout le temps de l’exécution du
programme.

Dans un algorithme pour spécifier un élément est une constante on utilise le mot
clé « const » elle ne peut pas être une expression.

Syntaxe « const nom constante = sa valeur ;

Exemple

Const PI=3,14 ;

Exemple

MAX=50 : entier ;

LAFFECTATION :

Définition l’affectation est une opération par laquelle on attribue une valeur, à

24 mars 2019
une variable, on la note par

Une affectation peut prendre lune des trois formes suivantes :

Variable constante

Variable variable

Variable expression

NB on doit être vigilant dans nos affections si non nous affecterons certaines
valeurs à des variable dont le type ne correspondes pas dans ces cas de figures
lalgo auras pas problème mais codage sera difficile non performante.

moustaphak 367@gmail.com
Cours d’algorithme 13

CHAPITRE 5 : OPERANDES ET OPERATEURS

OPERANDES ET OPERATEURS

Définitions
Un operateur est un outil qui permet d’agir sur une variable ou d’effectuer des
calculs.
Un operateur est un symbole qui relie un ou plusieurs éléments (opérandes) pour
en formé une expression.
Il existe plusieurs types d’operateur les plus utilisés nous sont :

 LES OPERATEURS ARITHMETIQUE

+ : Addition (Som N1+N2+ …)

- : soustraction (dif A-B )

* : Multiplication (prod N1*N3 )

/ : Division (div A/B)

% : Mod reste de la division A par B (rest A%B )

24 mars 2019
LES OPERATEURS D’INCREMENTATION ET DE DECREMENTATION

Les opérateurs d’incrémentation ++ et de décrémentation -- s’utilisent aussi bien


en suffixe (i++) qu’en préfixe (++i). Dans les deux cas la variable i sera
incrémentée, toutefois dans la notation suffixe la valeur retournée sera
l’ancienne valeur de i alors que dans la notation
préfixe se sera la nouvelle.

Par exemple1,
int a = 3, b, c;
b = ++a; /* a et b valent 4 */
c = b++; /* c vaut 4 et b vaut 5 */

moustaphak 367@gmail.com
Cours d’algorithme 14

Exemples 2 .
Soient i=3 ,k=10 et j=5

Instruction Equivalent Résultats


i++; i=i+1; i=4
++i; i=i+1; i=4
i--; i=i-1; i= »
--i; i=i-1; i=2
i= ++j; j=j+1; i=j; j=6 et i=6
j= ++i + 5; i=i+1; j=i+5; i=4 et j=9
j= i++ + 5; j=i+5; i=i+1; j=8 et i=4;
K-=5 k=k-5 K1=10 et k2=5
K+=5 k=k+5 K1=10 et k2=15

Les opérateurs d'affectation composée


Les opérateurs d'affectation composée sont
+= -= *= /= %= &= ^= |= <<= >>=

 RELATION DE COMPERAISONS OU DE RELATION

24 mars 2019
Opérateur Nom Notation
== teste strict d’égalité x==y
!= teste de non égalité x!=y
<= teste inférieur ou égal x <= y
>= teste supérieur ou égal x >= y
< teste strict inférieur x<y
> teste strict supérieur x>y

moustaphak 367@gmail.com
Cours d’algorithme 15

LES OPÉRATEURS LOGIQUES


Une variable booléenne est une variable pouvant prendre la valeur vrai ou faux.

Opérateur Nom Notation


&& ET x && y
II OU x II y
! (unaire) NON !x

LES OPERATEURS DE TRAITEMENT DE BITS


Rappel : (opérations logiques)

1&1=1 1|1=1 1^1=0


1&0=0 1|0=1 1^0=1
0&1=0 0|1=1 0^1=1
0&0=0 0|0=0 0^0=0

OPERATEUR DE CONCATENATION

Opérateur alphanumérique : & et ,


Ces opérateurs permettent de concaténer, autrement dit d’agglomérer, deux
chaînes de caractères. Par exemple :

24 mars 2019
Variables A, B, C en Caractère
Début
A ← "Gloubi"
B ← "Boulga"
C←A&B
Fin
La valeur de C à la fin de l’algorithme est "GloubiBoulga

Elles permettent de lie plusieurs valeurs ou expression ,elle sont valables


d’un langage à un autre

«, » Ou « ’» Ou « &»

Exercice 1.8 Que produit l’algorithme suivant ?


Variables A, B, C en Caractères

moustaphak 367@gmail.com
Cours d’algorithme 16

Début
A ← "423"
B ← "12"
C←A+B
Fin
Exercice 1.9 Que produit l’algorithme suivant ?
Variables A, B, C en Caractères
Début
A ← "423"
B ← "12"
C←A&B
Fin

Corrigés des Exercices


Exercice 1.8 Il ne peut produire qu’une erreur d’exécution, puisqu’on ne peut
pas additionner des caractères.
Exercice 1.9 En revanche, on peut les concaténer. A la fin de l’algorithme, C
vaudra donc "42312"

OPERATEUR D’AFFECTION

Elle permette d’attribue une valeur à une variable elle est notée

24 mars 2019
Elle peut se présente sous trois formes

1) Affectant une constante


2) Affectant une variable
3) Affectant une expression (chaines d’expressions)

Notez bien que cette instruction n’a en rien modifié la valeur de Toto : une
instruction d’affectation ne modifie que ce qui est situé à gauche de la flèche.
Tutu ← Toto + 4 ;

Tutu ← Tutu + 1 ;
Si Tutu valait 6, il vaut maintenant 7. La valeur de Tutu est modifiée, puisque
Tutu est la variable située à gauche de la flèche.

moustaphak 367@gmail.com
Cours d’algorithme 17

Remarque :

La deuxième remarque concerne le signe de l’affectation. En algorithmique,


comme on l’a vu, c’est le signe ←. Mais en pratique, la quasi totalité des
langages emploient le signe égal. Et là, pour les débutants, la confusion avec les
maths est également facile. En maths, A = B et B = A sont deux propositions
strictement équivalentes. En informatique, absolument pas, puisque cela revient
à écrire A ← B et B ← A, deux choses bien différentes. De même, A = A + 1,
qui en mathématiques, constitue une équation sans solution, représente en
programmation une action tout à fait licite (et de surcroît extrêmement
courante). Donc, attention ! ! ! La meilleure des vaccinations contre cette
confusion consiste à bien employer le signe ← en pseudo-code, signe qui a le
mérite de ne pas laisser place à l’ambiguïté.

Ordre des instructions


Il va de soi que l’ordre dans lequel les instructions sont écrites va jouer un rôle
essentiel dans le résultat final. Considérons les deux algorithmes suivants :
Exemple 1
Variable A en Numérique
Début
A ← 34 ;
A ← 12 ;
Fin

24 mars 2019
Exemple 2
Variable A en Numérique
Début
A ← 12
A ← 34
Fin
Il est clair que dans le premier cas la valeur finale de A est 12, dans l’autre elle
est 34 .

Exercices
Exercice 1.1
Quelles seront les valeurs des variables A et B après exécution des instructions
suivantes ?
Variables A, B en Entier

moustaphak 367@gmail.com
Cours d’algorithme 18

Début
A←1;
B←A+3;
A←3;
Fin

Exercice 1.2 Quelles seront les valeurs des variables A, B et C après exécution
des instructions suivantes ?
Variables A, B, C en Entier
Début
A←5;
B←3;
C←A+B;
A←2;
C←B–A;
Fin

Exercice 1.3 Quelles seront les valeurs des variables A et B après exécution des
instructions
suivantes ?
Variables A, B en Entier
Début
A←5;
B←A+4;
A←A+1;

24 mars 2019
B←A–4;
Fin
Exercice 1.4 Quelles seront les valeurs des variables A, B et C après exécution
des instructions
suivantes ?
Variables A, B, C en Entier
Début
A←3;
B ← 10 ;
C←A+B;
B←A+B;
A←C;
Fin

moustaphak 367@gmail.com
Cours d’algorithme 19

Exercice 1.5 Quelles seront les valeurs des variables A et B après exécution des
instructions suivantes ?
Variables A, B en Entier
Début
A←5;
B←2;
A←B;
B←A;
Fin
Moralité : les deux dernières instructions permettent-elles d’échanger les deux
valeurs de B et A ? Si l’on inverse les deux dernières instructions, cela change-t-
il quelque chose ?
Exercice 1.6 Plus difficile, mais c’est un classique absolu, qu’il faut absolument
maîtriser : écrire un algorithme permettant d’échanger les valeurs de deux
variables A et B, et ce quel quesoit leur contenu préalable.
Exercice 1.7 Une variante du précédent : on dispose de trois variables A, B et C.
Ecrivez un algorithme transférant à B la valeur de A, à C la valeur de B et à A la
valeur de C (toujours quels que soient les contenus préalables de ces variables)

STRUCURATION GENERALE DUN ALGORITHME

Le squelette dune algorithme se présent comme suit

Algo nom algo ;

Const déclaration des constantes.

24 mars 2019
Types de nouveaux types

Fonction fonction

Procédures des procédures

Vari variable

DEBUT

1. Instruction 1 ;
2. Instruction 2 ;
3. Instruction n ;

FIN

moustaphak 367@gmail.com
Cours d’algorithme 20

LES INSTRUCTIONS D'ENTRÉES-SORTIES:

 ÉCRITURE
L’instruction écriture permet d’affiche sur l’écran (console) ce que
programme en a besoin pour que son exécution progresse ou c’est à partir de
cette instruction que l’utilisateur saura quel type de donnée l’utilisateur doit
introduire sans elle le programme fonctionnera dans l’obscurité du point vu
utilisateur.

Syntaxe
Écrire ("entrez votre nom"); //vous aurez a l’écran entrez votre nom
Ou

Écrire ("entrez nbre1, nbre2 …"); // a l’écran entrez nbre1, nbre2 …

Exemple1

Écrire ("voici les résultats :x= ",x, "et y : =",y )

Nous aurons respectivement sur l’écran si (supposant que les valeurs de x et y

24 mars 2019
sont 6 et10)

voici les résultats :x= 6 et y : =,10

Exemple2

Écrire ("voici les résultats :x= ",x, "et y : =",y ) ;

Si nous voulons A :=10et N :=20 et B+ N :=30

Écrire ("A:= ", 10, "et N : =", 20, B+N := "30) ;

LECTURE
Les instructions de lecture permettra à la machine de comprendre la chose faite

moustaphak 367@gmail.com
Cours d’algorithme 21

doit être utilisé par le programme.


La lecture permet d'entrer des donnés à partir du clavier,

REMARQUE:

Le programme s'arrête lorsqu'il rencontre une instruction Lire et ne se poursuit


qu'après la frappe d’une valeur au clavier et de la touche Entrée

Avant de Lire une variable, il est très fortement conseillé d’écrire des libellés
(messages) à l’écran, afin de prévenir l’utilisateur de ce qu’il doit frapper (sinon,
le pauvre utilisateur passe son temps à se demander ce que l’ordinateur attend de
lui… et c’est très désagréable !) :

ATTENTION aux données saisie elles doivent être conformes aux variables
déclarées.

On note: lire (nb) ; la machine met la valeur entrée au clavier dans la zone
mémoire nommée nb.

Syntaxe
Lire (nb);
Ou
Lire (n1, n2 …); évitez certaines répétitions n1, n2

24 mars 2019
CHAPITRE 7 : STRUCTURES DE CONTRÔLE

Le traitement de données est parfois conditionné et se réalise de manière


spécifique. On parle alors de structures de contrôle.

Ces structures algorithmiques peuvent être organisées suivant quatre


familles principales :

A. les structures linéaires


B. les structures alternatives
C. les structures de choix
D. les structures répétitives

moustaphak 367@gmail.com
Cours d’algorithme 22

Définitions :
 une structure linéaire (ou structure séquentielle) se caractérise par une suite de
traitements à exécuter successivement, dans l’ordre énoncé.
 Une CONDITION est une expression logique booléenne, prenant la valeur «
vrai » ou « faux » (c’est- à-dire « oui » ou « non »).
 Une structure alternative (ou structure conditionnelle) n’offre que deux issues
possibles à la poursuite de l’algorithme, qui s’excluent mutuellement. Selon
qu’une condition est vraie ou fausse, on effectue un traitement ou un autre.

On parle de traitements conditionnels ; une structure alternative est donc une


structure de test.

 Une STRUCTURE DE CHOIX permet, en fonction de plusieurs conditions de


d’exécuter des traitements différents selon les valeurs que peut prendre une
même variable.

 Une structure répétitive (ou structure itérative) répète l’exécution d’un


traitement, dans un ordre précis, un nombre déterminé ou indéterminé de fois.
Une structure itérative est aussi appelée boucle.

24 mars 2019
CHAPITRE 8 : STRUCTURES LINEAIRES

A. les structures linéaires est une suite d’action (d’opérations) successive qui
aboutissent un résultat

Dans une séquence d’action, l’exécution d’une action ne commence que lorsque
l’action qui le précède termine

Exemples :

1) Ecrire un algorithme qui demande un nombre entier à l'utilisateur, puis qui


calcule et affiche le double de ce nombre.

2) Ecrire un algorithme qui vous demande de saisir votre nom puis votre
prénom et qui affiche ensuite votre nom complet.

moustaphak 367@gmail.com
Cours d’algorithme 23

Algorithme Calcul double;

Variables A, B : entier;

Début
écrire ("entrer le nombre ");
Lire(A);
B ← 2*A;
Écrire ("le double de ", A, "est :", B);
Fin.

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);

24 mars 2019
Nom_Complet ← Nom & Prenom;

écrire("Votre nom complet est : ", Nom_Complet);

Fin.

TRAVAUX DE DIRIGER

1. Ecris un algo qui calcul la surface d’un cercle dont le rayon donne en
mètre.
2. Ecris un algo qui convertit la température saisie en degré Celsius et la
couverture en degrés kelvin et qui affiche le résultat.
3. .Écris un algo qui calcule le poids d’un objet connaissant sa masse.
On donne G=9,81.
4. Ecrire un algorithme qui calcule la somme, le produit et la différence de
deux réels saisis au clavier.

moustaphak 367@gmail.com
Cours d’algorithme 24

5. Ecrire un algorithme qui calcul la surface d’un rectangle dont la


longueur et la largeur en mètre.
6. Ecrire un algo qui calcule la moyenne des notes d’un étudiant dans une
matière avec la méthode calcul du système LMD. On rappelled C1=25%;
C2=35%; C3=40%.
7. Etant donné un temps t, demandé à l’utilisateur exprimé par un nombre
entier de secondes.
Ecris un algorithme qui calcule le temps en heure, minute et secondes.
Puis affiche le contenu de ces variables.

CHAPITRE 9 : STRUCTURES ALTERNATIVES

B. les structures alternatives

Je vous avais dit que l’algorithmique, c’est la combinaison de quatre


structures elémentaires(briques de base) . Nous en avons déjà vu deux, voici
la troisième (testes).
De quoi s’agit-il ?
Reprenons le cas de notre « programmation algorithmique dun touriste
égaré ». Normalement, l’algorithme ressemblera à quelque chose comme : «
Allez tout droit jusqu’au prochain carrefour, puis prenez à droite et ensuite
la deuxième à gauche, et vous y êtes ».

24 mars 2019
Mais en cas de doute légitime de votre part, cela pourrait devenir :

« Allez tout droit jusqu’au prochain carrefour et là regardez à droite. Si la


rue est autorisée à la circulation, alors prenez la et ensuite c’est la deuxième
à gauche.
Mais si en revanche elle est en sens interdit, alors continuez jusqu’à la
prochaine à droite, prenez celle-là, et ensuite la première à droite ».

Ce deuxième algorithme a ceci de supérieur au premier qu’il prévoit, en


fonction d’une situation pouvant se présenter de deux façons différentes, deux
façons différentes d’agir. Cela suppose que l’interlocuteur (le touriste) sache
analyser la condition que nous avons fixée à son comportement (« la rue est-
elle en sens interdit ? ») pour effectuer la série d’actions correspondante

moustaphak 367@gmail.com
Cours d’algorithme 25

La résolution de certains problèmes nécessite parfois la mise en place d’un test


pour effectuer une tâche :
 si le test est vrai, on effectue un certain traitement ;
 sinon, c’est-à-dire si le test est fau, on effectue un autre traitement.
En algorithmique, on traduit cette structure alternative à l’aide d’instructions
conditionnelles.

1) structure conditionnelle simple (si)

Syntaxe algorigramme

Si condition
Alors traitement ; Condition

(Instructions à effectuer si la
condition est vérifiée)
Traitements

FinSi

Exemple (Si…Alors)

24 mars 2019
Algorithme AffichageValeurAbsolue (version2)
Variable x,y : réel ;
Début
Ecrire (" Entrez un réel : “) ;
Lire (x);
y← x;
Si (x < 0) alors
y ← -x;
Finsi
Ecrire ("la valeur absolue de ", x, "est:",y);
Fin

moustaphak 367@gmail.com
Cours d’algorithme 26

2) structure alternative complète (si et sinon)

Syntaxe algorigramme

Si (condition) Condition
Alors traitement 1 ;
(instructions à effectuer si la condition est
vérifiée)
Sinon traitement 2 ; Traitements 1 Traitement2
(instructions à effectuer si la condition n’est
pas vérifiée)
FinSi

Exemple (Si…Alors…Sinon)

Algorithme AffichageValeurAbsolue (version1)


Variable x : réel ;
Début
Ecrire (" Entrez un réel : “) ;
Lire (x);
Si (x < 0) alors

24 mars 2019
Ecrire ("la valeur absolue de ", x, "est:",-x);
Sinon
Ecrire ("la valeur absolue de ", x, "est:",x);
Finsi
Fin
3) structures alternatives imbriquées
Plusieurs structures alternatives peuvent être imbriquées, si bien que dans un
traitement peut (peuvent) figurer une ou plusieurs structure(s) alternative(s).
Pour une meilleure lisibilité de l’algorithme, on utilise L’indentation, qui
consiste à écrire les instructions sur des lignes différentes en procédant à des
décalages.

moustaphak 367@gmail.com
Cours d’algorithme 27

Si condition
Alors traitement 1 ;
Sinon1 traitement 2 ;

Sinonsi traitement

Si (condition)Alors traitement 4 ;

FinSi

Sinon3 traitement 6 ;

FinSi

Tests imbriqués: exemple (version 1)


Variable n : entier;
Début
Ecrire ("entrez un nombre : ");
Lire (n);
Si (n < 0) alors
Ecrire ("Ce nombre est négatif") ;
Sinon
Si (n = 0) alors
Ecrire ("Ce nombre est nul");
Sinon

24 mars 2019
Ecrire ("Ce nombre est positif");
Finsi
Finsi
Fin

Variable n : entier;
Début
Ecrire ("entrez un nombre : ");
Lire (n) ;
Si (n < 0) alors

Ecrire ("Ce nombre est négatif");


Finsi
Si (n = 0) alors

moustaphak 367@gmail.com
Cours d’algorithme 28

Ecrire ("Ce nombre est nul");


Finsi
Si (n > 0) alors

Ecrire ("Ce nombre est positif");


Finsi
Fin

Ecrire un algorithme qui demande un nombre entier à l'utilisateur,


puis qui teste et affiche s'il est divisible par 3
Algorithme Divsible_par3
Variable n : entier ;
Début
Ecrire (" Entrez un entier : “);
Lire (n)
Si (n%3=0) alors
Ecrire (n," est divisible par 3");
Sinon
Ecrire (n," n'est pas divisible par 3");
Finsi
Fin

Remarque : dans la version 2 on fait trois tests systématiquement alors que


dans la version 1, si le nombre est négatif on ne fait qu'un seul test

24 mars 2019
Conseil : utiliser les tests imbriqués pour limiter le nombre de tests et placer
d'abord les conditions les plus probables

CONDITIONS COMPOSEES Une condition composée est une condition


formée de plusieurs conditions simples reliées par des opérateurs logiques:
ET, OU, OU exclusif (XOR) et NON

Dans une condition composée employant à la fois des opérateurs ET et


des opérateurs OU, etc. La présence de parenthèses possède une influence
sur le résultat, tout comme dans le cas d’une expression numérique
comportant des multiplications et des additions. Les parenthèses
jouent un rôle fondamental.

moustaphak 367@gmail.com
Cours d’algorithme 29

Exemples :
• x compris entre 2 et 6 : (x > 2) ET (x < 6)
• n divisible par 3 ou par 2 : (n%3=0) OU (n%2=0)
• deux valeurs et deux seulement sont identiques parmi a, b et c :
((a=b) XOR (a=c)) OU ((b=c) XOR (b=a))
L'évaluation d'une condition composée se fait selon des règles présentées
généralement dans ce qu'on appelle tables de vérité

TABLES DE VÉRITÉ

C2 C1 ET C2
C1

1) VRAI 2) VRAI 3) VRAI

6) FAUX
4) VRAI 5) FAUX
9) FAUX
7) FAUX 8) VRAI

10) FAUX 11) FAUX 12) FAUX

C1 C2 C1 OU C2

15) VRAI
13) VRAI 14) VRAI
18) VRAI
16) VRAI 17) FAUX
21) VRAI
19) FAUX 20) VRAI

22) FAUX 23) FAUX 24) FAUX

24 mars 2019

C1 C2 C1 XOR C2 C1 NON C1

25) VRAI 26) FAUX

27) VRAI 28) VRAI 29) FAUX 30) FAUX 31) VRAI

32) VRAI 33) FAUX 34) VRAI 35) C1 36) NON C1

37) FAUX 38) VRAI 39) VRAI 40) VRAI 41) FAUX

42) FAUX 43) FAUX 44) FAUX 45) FAUX 46) VRAI

moustaphak 367@gmail.com
Cours d’algorithme 30

Exemple Tests imbriqués: exercice

1) V1. Le prix de photocopies dans une reprographie varie selon


le nombre demandé: 500FG la copie pour un nombre de copies inférieur à
10, 400FG pour un nombre compris entre 10 et 20 et 300FG au-delà.
Ecrivez un algorithme qui demande à l’utilisateur le nombre de
photocopies effectuées, qui calcule et affiche le prix à payer.

2) Un magasin de reprographie facture à 400FG les 10 premières


photocopies, les 20 suivantes sont facturées à 300FG et à 250FG au-delà.
Ecrire un algorithme qui demande à l’utilisateur le nombre de photocopies
effectuées et qui affiche la facture correspondante.

corrigé de l'exercice V1
Variables nbcopies : entier
prix : réel
Début
Ecrire ("Nombre de photocopies : ") ;
Lire (nbcopies);
Si (copies < 10) Alors
prix ← nbcopies*500;
Sinon Si (nbcopies< 20) alors
prix ← nbcopies*400;
Sinon
prix ← nbcopies*300;

24 mars 2019
Fin
Finsi
Ecrire (“Le prix à payer est : ”, prix) ;
Fin

corrigé de l'exercice V2
Variables nbcopies : entier
prix : réel
Début

Ecrire ("Nombre de photocopies : ") ;


Lire (nbcopies);

moustaphak 367@gmail.com
Cours d’algorithme 31

Si (copies <= 10) Alors


prix ← nbcopies*400;

Sinon Si (nbcopies<=30) alors


prix ← 10*400+(nbcopies-10)*300;
Sinon
prix ← 10*400+20*300+(nbcopies-30)*250;
Finsi
Finsi
Ecrire (“Le prix à payer est : ”, prix) ;

Fin

EXERCICES

1. Ecris un algo qui calcule le quotient de 2 nombres réels


2. Ecris un algorithme qui détermine le minimum de trois nombres entiers
saisis par l’utilisateur.
3. Ecris algo qui explique la gestion d’un système de trois sources dont un
prioritaire.
4. Ecris un algo qui affiche la mention correspondante à la moyenne des
notes d’un étudiant saisie comme suit: entre 8 et 10(excellent), entre 7 et
8 exclus (Très bien), entre 6 et 7exclus (bien), entre 5 et 6exclus
(passable), entre 0 et 5(reprise).

24 mars 2019
5. Ecris un algo qui permet de résoudre une équation du type
Ax2 +Bx +C=0 où A, B et C sont des constants réels saisis par
l’utilisateur.

moustaphak 367@gmail.com
Cours d’algorithme 32

C. les structures de choix

L’INSTRUCTION CAS SELON


Elle réalise un aiguillage vers différentes instructions en fonction du contenu
d'une variable de contrôle.
La variable de contrôle doit être un entier ou un caractère.

Syntaxe :

selon (Variable de contrôle)


{
case Valeur1 : Traitement1 (bloc d'instructions)
break;
case Valeur 2 : Traitement2
break;

case Valeur n: Traitement n

break

Default : Traitement m

24 mars 2019
Exercices

Ecris qui à partir de la somme, le produit, la différence et quotient de deux


nombres suivant le choix de l’utilisateur

CHAPITRE 10 : LES STRUCTURES REPETITIVES

D. les structures répétitives

Les boucles
Les boucles servent à répéter l'exécution d'un groupe d'instructions un certain
nombre de fois sans réexécution du programme.

moustaphak 367@gmail.com
Cours d’algorithme 33

Exemples

La lampe témoin des antennes réseau, le clignotant des avions …

Les boucles peuvent être classe en deux catégories

1) La boucle dont le nombre de répétitions est connue à l’avance

C’est à dire combien de fois, que les actions (instructions) doivent se


répéter avant de s’arrêter le programmeur est informer

 Comptage entier possible entre 0 et10


 Le nombre fois que l’aiguille minute passe par 12 pour faire 1
heure
 Exemple le nombre de jours vous pouvez suivre vous chaines
téléviser pour un abonnement d’un moi
2) La boucle dont le nombre de répétitions n’est pas connue à l’avance

Pour ce cas le programmeur ne sait pas le nombre de fois, que les


actions (instruction) vont se répéter
 Cas dune camera de surveillance
 Exemple le nombre de fois la sirène ou ambulance émets du son
ou son jeux de lumière par jour.
 Le compteur de spectateur dans un terrain de football

NB il existe un élément très important à connaitre

24 mars 2019
À chaque action exécutée l’élément de texte change soit en s’incrémentant ou
en se décrémentant

On distingue trois sortes de boucles en langages de programmation :

• LES BOUCLES TANT QUE :

La structure TANT QUE …, FAIRE


Parfois, pour réaliser une tâche, on doit effectuer plusieurs fois les mêmes
instructions, sans que le nombre de fois soit déterminé à l’avance.

On utilise alors une BOUCLE CONDITIONNELLE. Dans cette structure, le


même traitement est effectué tant qu’une condition reste valide ; la boucle

moustaphak 367@gmail.com
Cours d’algorithme 34

s’arrête quand celle-ci n’est plus remplie. Cette structure répétitive est ainsi
formulée :

Syntaxe :

Début
Tanque (condition) faire

Instruction1
Condit Vrai Instruction
…………
ns
Instruction n Faux

Fin tanque
Fin

Remarques :
 Le nombre de répétitions dépendra de la condition.
 Si la condition n’est pas vérifiée au début, alors l’Instruction 1 ne sera pas
exécuté du tout.
 Si la condition est vérifiée au début et si la condition n’est pas susceptible
d’être modifiée lors de l’instruction 1, alors l instruction 1 sera indéfiniment
exécuté et l’utilisateur sera contraint d’arrêter le programme.

24 mars 2019
Dans ce cas, il s’agit d’une erreur majeure car un programme ne doit pas boucler
indéfiniment mais au contraire s’arrêter automatiquement une fois que la
condition cesse d’être vérifiée.

Un algorithme qui détermine le premier nombre entier N tel que la somme de 1


à N dépasse strictement 100

version 1

Variables som, i : entier;


Debut

i ← 0;

som← 0 ;

moustaphak 367@gmail.com
Cours d’algorithme 35

TantQue (som <=100) faire

i ← i+1;

som ← som+i;

FinTantQue
Ecrire (" La valeur cherchée est N= ", i) ;

Fin.

version 2: attention à l'ordre des instructions et aux valeurs initiales

Variables som, i : entier;


Debut
som ← 0;

i←1;
TantQue (som <=100) faire

som ← som + i;

i ← i+1;

FinTantQue

Ecrire (" La valeur cherchée est N= ", i-1) ;

Fin.

24 mars 2019
LES BOUCLES FAIRE …TANQUE : on y répète des instructions jusqu'à ce
qu'une certaine condition soit réalisée

Syntaxe :
Début

Faire Instruction
Instruction1 ns
…………
Vrai
Condit
Instruction n
Faux
Tanque (condition)
Fin

moustaphak 367@gmail.com
Cours d’algorithme 36

LES BOUCLES POUR :

La structure POUR … DE … A …, FAIRE


Cette structure est une BOUCLE ITERATIVE ; elle consiste à répéter un certain
traitement un nombre de fois fixé à l’avance.
En algorithmique, on traduit cette structure itérative à l’aide des instructions : on
y répète des instructions en faisant évoluer une variable entre une valeur initiale
et une valeur finale (nous avons un intervalle)

Syntaxe : Début

POUR Compteur I variant de M a N par pas I M


« Action »
Instructio
Fin pour I= I+ PAS

I ≥N
Vrai
Faux

Fin

Remarque : le nombre d'itérations dans une boucle Pour est connu avant le
début de la boucle compteur est une variable de type entier (ou caractère). Elle
doit être déclarée.

24 mars 2019
1) La valeur initiale est affectée à la variable compteur

2) On compare la valeur du compteur et la valeur de finale :

3) Si la valeur du compteur est > à la valeur finale dans le cas d'un pas
positif (ou si compteur est < à finale pour un pas négatif), on sort de la
boucle et on continue avec l'instruction qui suit FinPour

4) Si compteur est <= à finale dans le cas d'un pas positif (ou si compteur
est >= à finale pour un pas négatif), instructions seront exécutées

5) Ensuite, la valeur de compteur est incrémentée de la valeur du pas si pas


est positif (ou décrémenté si pas est négatif)

6) On recommence l'étape 2 : La comparaison entre compteur et finale est


de nouveau effectuée, et ainsi de suite …

moustaphak 367@gmail.com
Cours d’algorithme 37

Éléments à maitrise
a) Condition initiale (Initialisation)
b) Pas est un entier qui peut être positif ou négatif.

Le Pas peut ne pas être mentionné, car par défaut sa valeur est égale à 1.

Dans ce cas, le nombre d'itérations est égal à finale - initiale+ 1


Initiale et finale peuvent être des valeurs,

Calcul de x à la puissance n où x est un réel non nul et n un entier positif.

Variables x, puiss : réel ;

n, i : entier;

Debut
Ecrire (" Entrez la valeur de x ");

Lire (x);

Ecrire (" Entrez la valeur de n ");

Lire (n);

puiss ← 1 ;

Pour i allant de 1 à n faire

24 mars 2019
puiss← puiss*x ;
FinPour

Ecrire (x, " à la puissance ", n, " est égal à ", puiss);

Fin

CHOIX D'UN TYPE DE BOUCLE

1) Si on peut déterminer le nombre d'itérations avant l'exécution de la boucle, il


est plus naturel d'utiliser la boucle Pour

2) S'il n'est pas possible de connaître le nombre d'itérations avant l'exécution de


la boucle, on fera appel à l'une des boucles TantQue ou répéter jusqu'à
3) Pour le choix entre TantQue et répéter jusqu'à :

moustaphak 367@gmail.com
Cours d’algorithme 38

4) Si on doit
oit tester la condition de contrôle avant de commencer les instructions
de la boucle, on utilisera TantQue

5) Si la valeur de la condition de contrôle dépend d'une première exécution des


instructions de la boucle, on utilisera répéter jusqu'à

Attention certaines conditions, il vous conduira une boucle infinie

BOUCLES IMBRIQUEES

Les instructions d'une boucle peuvent être des instructions itératives.

Dans ce cas, on aboutit à des boucles imbriquées c’estest des choses


tellement importants que beaucoup de programmeurs
pro électronicien ne font
que répéter chaque jours, la majeur partie des projets réalisés sont ba
basé sur
ces boucles imbriqué (contrôler plusieurs paramètres aléatoire à la fois et
en même temps)

EXERCICES

CHAPITRE 12 LES TABLEAUX ET FONCTIONS

Un tableau est une collection homogène de données, ordonnée et de taille


statique. Il fut un ensemble d'octets permettant de représenter une liste
d'éléments de même type.

24 mars 2019
Chaque élément est repéré par un indice (son rang dans le tableau).

Eléments du tableau
tablea moi Je Contre genre bien toi vous
Indice 0 1 2 3 4 5 6

Ce tableau est composé de 7elements dont est le premier est <moi>

moustaphak 367@gmail.com
367@gmail.
Cours d’algorithme 39

Tableaux a une dimension (vecteurs) déclaration


Syntaxe :
Identificateur [Taille constante] =<éléments du tableau> leurs type;
La Taille du tableau est le nombre de ses éléments. Elle ne peut être une
variable. Elle doit être une constante définie avant ou au moment de la
déclaration

Il possible de créer un tableau multi dimensionnelle

Initialisation
Syntaxe :
Identificateur [Taille constante] = <Valeur1, Valeur2,…,Valeurn>le type;

Remarque Un tableau peut être totalement ou partiellement initialisé.

Exemples

a [taille1]=<0.,1.5,3.> entier ; /*a: tableau de 3 réels initialisés à 0 , 1.5 et 3*/

b [taille1]=<1> entier ; /*seul le premier élément du tableau b est initialisé à 1*/

c [taille1]=<'x', ,'y'> char; /*seuls le 1er et 3ème éléments de c sont initialisés (à x et y)*/

d [ ]=<4,6,8>entier ; /*d: tableau de 3 entiers initialisés à 4 , 6 et 8*

24 mars 2019
Affectation, lecture et l'affichage
L'affectation de valeurs aux éléments d'un tableau se fait également
individuellement (comme pour la lecture et l'affichage).

Remarques :
 L'affectation d'un tableau B à un autre tableau A se fait élément par élément.
Une affectation "brutale" de B à A (A=B) n'est pas possible.
 L'affectation élément par élément d'un tableau B à un autre tableau A
(A[i]=B[i]) réalise une copie de B dans A.

Comparaison de deux tableaux


La comparaison des éléments de deux tableaux doit se faire élément par
élément.

moustaphak 367@gmail.com
Cours d’algorithme 40

Les fonctions
Nous terminerons la partie I du cours (« Les bases ») par cette notion
fondamentale qui est les fonctions qui sont beaucoup utilisé en langage C ou
dans d’autres langages.

Tous les programmes en C se basent sur le principe que je vais vous expliquer
dans ce chapitre.

Nous allons apprendre à structurer nos programmes en petits bouts… un peu


comme si on faisait une installation avec côche ou Choquette

Tous les gros programmes en C sont en fait des assemblages de petits bouts de
code, et ces petits bouts de code sont justement ce qu'on appelle… des fonctions
!
Créer et appeler une fonction
Le rôle d'une fonction en programmation est similaire à celui d'une fonction en
mathématique : elle retourne un résultat à partir des valeurs des paramètres
saisies

Certains problèmes conduisent à des programmes longs, difficiles à


écrire et à comprendre pour cela On les découpe en des parties appelées
sous-programmes ou modules (fonctions ou procédures).

Les fonctions et les procédures sont des modules (groupe d'instructions)

24 mars 2019
indépendants désignés par un nom. Elles ont plusieurs intérêts :
 permettent de "factoriser" les programmes, c-à-d de mettre en commun
les parties qui se répètent
 permettent une structuration et une meilleure lisibilité des programmes
 facilitent la maintenance du code (il suffit de modifier une seule fois)
 ces procédures et fonctions peuvent éventuellement être réutilisées dans
d'autres programmes

Attention

1) Une fonction s'écrit en dehors du programme principal.


2) Soit elle écrite après les bibliothèques ou déclare son prototype

moustaphak 367@gmail.com
Cours d’algorithme 41

Création dune fonction


Pour créer une fonction, nous avons besoin de savoir trois choses :

1) Quel est le type de la fonction que je souhaite créer ?


2) Quel sera son nom ?
3) Quel(s) paramètre(s) prendra-t-elle ?
Pour le choix du nom dune fonction il faut respecter les mêmes règles que celles
des variables

type_fonction est le type du résultat retourné par cette fonction


L'instruction retourne sert à retourner la valeur du résultat

Les paramètres servent à nourrir votre fonction. Ils servent à donner des
informations au traitement qu’elle doit effectuer.

Fonction nom_fonction (paramètres et leurs types) : type_fonction;


Instructions constituant (le corps de la fonction)
retourne …
FinFonction

Attention aux variables globales et locales voir (les fonctions et procédures …)


Variable locale

24 mars 2019
 Elle ne sera pas connue en dehors
 Sa valeur est perdue à la sortie du bloc
 « Sa durée de vie est celle du bloc »

Une variable globale existe en dehors de tout bloc

 Elle est réservée pour toute l’exécution du programme


 « Sa durée de vie est celle du programme »

Fonctions : exemples
La fonction SommeCarre suivante calcule la somme des carrées de
deux réels x et y :
Fonction SommeCarre (x : réel, y: réel ) : réel;
variable z : réel;

moustaphak 367@gmail.com
Cours d’algorithme 42

z ←x*x + y*y;
retourne (z);
FinFonction
La fonction Pair suivante détermine si un nombre est pair :
Fonction Pair (n : entier ) : booléen;
retourne (n%2=0);
FinFonction

Utilisation des fonctions


L'utilisation d'une fonction se fera par simple écriture de son nom dans le
programme principale.
Le résultat retourné, devra être affecté ou être utilisé dans une expression, une
écriture, ...
Lors de l'exécution, le programme principal est exécuté en premier. Les autres
fonctions sont exécutées lorsqu'elles sont appelées.

Remarques: Appel de fonctions


Si la fonction retourne un résultat et admet des paramètres
Variable = Nom_Fonction (Paramètres effectifs);
Si la fonction retourne un résultat et n'admet pas de paramètres
Variable = Nom_Fonction ( );
Si la fonction ne retourne rien et admet des paramètres
Nom_Fonction (Paramètres effectifs);

24 mars 2019
Si la fonction ne retourne rien et n'admet pas de paramètres
Nom_Fonction ( );

Une fonction prédéfinie c’est quoi ?

PROCEDURES
Dans certains cas, on peut avoir besoin de répéter une tâche dans plusieurs
endroits du programme, mais que dans cette tâche on ne calcule pas de
résultats ou qu'on calcule plusieurs résultats à la fois.
Dans ces cas on ne peut pas utiliser une fonction, on utilise une procédure
Une procédure est un sous-programme semblable à une fonction mais qui
ne retourne rien.
Une procédure s'écrit en dehors du programme principal sous la forme :

moustaphak 367@gmail.com
Cours d’algorithme 43

Procédure nom_procédure (paramètres et leurs types) ;

Instructions constituant le corps de la procédure


FinProcédure

Paramètres d'une procédure


Les paramètres servent à échanger des données entre le programme
principale (ou la procédure appelante) et la procédure appelée.
Les paramètres placés dans la déclaration d'une procédure sont appelés
 paramètres formels. Ces paramètres peuvent prendre toutes les valeurs
possibles mais ils sont abstraits (n'existent pas réellement).
Les paramètres placés dans l'appel d'une procédure sont appelés
 paramètres effectifs. Ils contiennent les valeurs pour effectuer le
traitement.
Le nombre de paramètres effectifs doit être égal au nombre de paramètres
formels. L'ordre et le type des paramètres doivent correspondre.
Remarque : une procédure peut ne pas avoir de paramètres

Transmission des paramètres


Il existe deux modes de transmission de paramètres dans les langages de
programmation :
 La transmission par valeur : les valeurs des paramètres effectifs sont
affectées aux paramètres formels correspondants au moment de l'appel de

24 mars 2019
la procédure, dans ce mode le paramètre effectif ne subit aucune
modification
 La transmission par adresse (ou par référence) : les adresses des
paramètres effectifs sont transmises à la procédure appelante, dans ce
mode, le paramètre effectif subit les mêmes modifications que le
paramètre
formel lors de l'exécution de la procédure
• Remarque : le paramètre effectif doit être une variable (et non une
valeur) lorsqu'il s'agit d'une transmission par adresse
En pseudo-code, on va préciser explicitement le mode de transmission
dans la déclaration de la procédure

LES POINTEURS

moustaphak 367@gmail.com
Cours d’algorithme 44

Définition
A la déclaration d'une variable, un emplacement lui est accordé dans la
mémoire. Cet emplacement possède une adresse. Cette adresse peut être stockée
dans une variable de type pointeur.

Pour résumer un pointeur est une variable qui contient l'adresse mémoire d'une
autre variable.

Déclaration
L'opérateur de déclaration de pointeur est l'astérisque '*', et il est caractérisé par
le type de variable sur laquelle il va pointer.
Ainsi pour déclarer un pointeur on doit respecter la syntaxe suivante :

*pointeur: type_variable_pointée;

Exemples :
*p1:caractère; %p1 peut contenir l'adresse d'une variable de type
caractère%
*p2:entier; %p2 peut contenir l'adresse d'une variable de type entier%

Opérateurs & et *

24 mars 2019
Plusieurs langages mettent en jeu deux opérateurs utilisés lors de l'usage de
pointeurs. Il s'agit des opérateurs & et *. Nous allons utiliser ces mêmes
opérateurs en pseudo-code.

&variable signifie adresse de variable.


*pointeur signifie contenu de l'adresse référencée par
pointeur.

Opérateurs & et *
Exemples:
Algo Operateurs Pointeurs;
var i, j: entier;
debut

moustaphak 367@gmail.com
Cours d’algorithme 45

*p: entier; % p est un pointeur sur un entier%


i←5; % i reçoit 5 %
p←&i; % p reçoit l'adresse de i %
j←*p; %j reçoit 5 : contenu de l'adresse p %
*p←j+2; % le contenu de l'adresse p devient 7 donc i aussi devient 7%
Fin.

CHAPITRE 12 : Algo Des Circuits Electronique Programmable

1) Information des circuits programmables


Les microcontrôleurs
Les Pics font partir de la famille de microcontrôleurs de la société
Microchip. Le nom PIC n'est pas officiellement (contrôleur d'interface
périphérique) soit généralement admise.
Famille de PICS : Ces Pics sont subdivisées à l’heure actuelle en 3 grandes
familles : La famille Base-Line, qui utilise des mots d’instructions de 12 bits,
la famille Mid-Range, qui utilise des mots de 14 bits (et dont font partie les
16F877A et 18F45K22), et la famille High-End, qui utilise des mots de 16
bits. Ces composants sont fabriqués par micro-chips dont leur
fonctionnement sont indéfini si c’est n’est après avoir écrit des instructions

24 mars 2019
avec des langages de programmation comme mplab ; mpasm ; langages
évolué microC qu’ont saura comment ils fonctionnent Les microcontrôleurs
• 2 chiffres : famille du PIC (10, 12, 16, 17, 18, 24, 30, 32, 33) — le PIC14
existe, c'est le PIC14000.
• 1 lettre : type de mémoire de programme (C ou F). Le F indique en général
qu'ils ‘agit d'une mémoire flash et donc effaçable électroniquement. La lettre
C indique en général que la mémoire ne peut être effacée que par exposition
aux ultra-violets (exception pour le PIC16C84 qui utilise une mémoire
EEPROM donc effaçable électriquement). Un L peut être ajouté devant pour
indiquer qu'il s'agit d’un modèle basse tension (exemple : 2 V à 5,5 V si LF
4,2 V à 5,5 V si F).
• un nombre de 2 à 4 chiffres : modèle du PIC au sein de la famille.
Toutefois il y a maintenant des exceptions : PIC18F45K22 par exemple.
• un groupe de lettres pour indiquer le boîtier et la gamme de température.

moustaphak 367@gmail.com
Cours d’algorithme 46

Par exemple, le PIC18LF4682-I/P est un microcontrôleur de la famille


PIC18, basse tension (L), à mémoire flash (F), modèle 4682, gamme de
température industrielle (I) et boîtier DIL40

NB Ces circuits sont très nombreux et variés

1) Codage d’informations
Le codage est l’ensemble des motifs, symboles ou des signes conventionnelle
ou personnelle des compilateurs dont point du vu est d’échanger des
informations.

Il existe plusieurs façons de coder des informations dont les plus connus sont

1) Le codage en binaire
2) Le codage décimal
3) Le codage en hexadécimale
4) Le codage ASCII

Règle de codage en matière de codage il existe des choses à métrise à l’avance

a) Le récupérateur d’information.
b) L’information envoyée.

24 mars 2019
Le récupérateur peut être une broche ou un ensemble de broches comme
des PORT, l’information doit être conformité au nombre des broches
d’un PORT (une broche, portd, portc, un écran, un capteur, une carte .. .)

L’information codée

5) Décodage d’informations

moustaphak 367@gmail.com

Vous aimerez peut-être aussi