Vous êtes sur la page 1sur 87

COURS ALGORITHMIQUE

Mme CHOKRI Soumaya


ENSA BERRECHID
Année universitaire : 2022-2023
• Plan du cours
1. Les concepts de base d’un algorithme
Introduction
Définition d’un algorithme
Algorithmique et programmation

2. Structure générale d’un algorithme


3. Les variables et les constantes
Notion de variable
Déclaration des variables
Les constants

4. Les instructions de base


L’instruction d’affectation
L’instruction d’entrée/sortie
5. Les commentaires
Introduction
Le terme algorithme est employé en informatique pour décrire une méthode de résolution de
problème programmable sur machine.
Dans notre vie courante, un algorithme peut prendre plusieurs forme, notamment:
 Une recette de cuisine
 Un itinéraire routier
 Un mode d’emploie.
 Une recette de cuisine, par exemple, est un algorithme: à partir des ingrédients, elle explique
comment parvenir à un plat final.

Ingrédients Recette Crêpe


Donnés (Entrés) Algorithme Résultat (Sortie)
Qu’est ce qu’un algorithme
Le terme algorithme provient du nom du mathématicien arabe ALKHAWARISMI.
Un algorithme est un ensemble d'opérations de calcul élémentaires, organisés selon des règles
précises dans le but de résoudre un problème donné. Pour chaque donnée du problème, l'algorithme
retourne une réponse après un nombre fini d'opérations(+, -,/,<,>,... ).
L’algorithmique désigne aussi la discipline qui étudie les algorithmes et leurs applications en
informatiques.
L'expression d'un algorithme nécessite un langage clair (compréhension) structuré (enchaînements
d'opérations, implémentation de structures de contrôle), universel (indépendant du langage de
programmation choisi).
Exemple 1: faire cuire les pâtes
1.remplir une casserole d'eau ;
2.y ajouter une pincée de sel ;
3.la mettre sur le feu ;
4.attendre l'ébullition de l'eau ;
5.mettre les pâtes dans la casserole ;
6.le laisser cuire 10 à 15 minutes ;
Qu’est ce qu’un algorithme
Exemple 2: calculer la surface d’un cercle
1. Lire le rayon r
2. Calculer la surface s= Pi * r*r
3. Afficher r, s
La résolution d’un problème est caractérisé par 4 étapes :
1- Comprendre la nature du problème posé
2- Préciser les données fournies (Entrées)
3- Déterminer le processus de transformation des données en résultats.
4- Préciser les résultats que l’on désire obtenir (Sorties)
Algorithme vs programme
Le cycle de développement d’un programme ou d’une application informatique peut
se résume ainsi :

Problème algorithme Programme Résultat

Tout problème à programmer doit être résolu, d’abord sous forme d’algorithme,
Puis, converti en programme dans un langage de programmation comme : C, java,
python…
Un programme est un suite d’instructions exécutable par l’ordinateur traduit la
démarche à suivre pour expliquer le traitement à effectuer sur les données,
permettant de traiter un problème et de renvoyer des résultats.
Représentation d’un algorithme
Il existe deux façon pour représenter un Algorithme :
L’Organigramme : représentation graphique avec des symboles (carrés, losanges, …)
 Offre une vue d’ensemble de l’algorithme
 Représentation quasiment abandonnée
Le pseudo-code : représentation textuelle avec une série de conventions ressemblant à un
langage de programmation (sans les problèmes de syntaxes)
 Plus pratique pour écrire un algorithme
 Représentation largement utilisée
Structure générale d’un algorithme
Un algorithme est composé de trois partie principales:
Les variables et les constantes
Une variable est une zone de stockage de la mémoire de l'ordinateur permettant
d’enregistrer une valeur et de l’utiliser ensuite pour faire des calculs.
Comment ça fonctionne ??
Déclaration d’une variable
 La partie déclarative d’un algorithme consiste à énumérer toutes les variables dont
on aura besoin au cours de l’algorithme.
 Chaque déclaration doit comporter le nom de la variable (identificateur) et son
type
 Syntaxe:
Variable Identificateur : Type
 Exemple :
Variable surface: réel
Variable a: entier
variable NomPrenom: chaîne
Identificateur
 C’est le nom donné à une variable.
 Le choix de l’identificateur est soumis à quelques règles qui varient selon le
langage, mais en général :
 Il doit commencer obligatoirement par une lettre alphabétique
La suite des caractères doit être constituée de lettres (a-z, A-Z), soit de chiffres
(0..9), soit du caractère soulignement ‘’_’’.
Il ne doit contenir ni espace ni caractères spéciaux.
Type de données
 Le type d’une variable est l’ensemble des valeurs qu’elle peut prendre.
Les différents types utilisés en algorithmique :
• Type Entier : il s'agit des variables destinées à contenir un nombre entier positif
ou négatif.
• Type Réel : il s'agit des variables numériques qui ne sont pas des entiers, c'est à
dire qui comportent des décimales
• Type Caractère : Les variables de type caractère contiennent des caractères
alphabétiques ou numériques seul(ex: ‘a ’, ‘3’, ‘A’
• Type Booléen : Les variables qui prennent les valeurs (vrai ou faux) ou les
valeurs (oui ou non).
• Type Chaîne de caractères : représentant un texte, contenant un ou plusieurs
caractères(ex: ’’Bonjour tout le monde’’)
Les opérations
 Les opérations les plus fréquentes sur ces valeurs sont résumées dans le tableau ci-
dessous.
Opérateur Signification Exemple
+ Addition R= a +b
- Soustraction R= a –b
* Multiplication R= a*b
/ Division R= a/b si b!= 0
^ Elévation de puissance Y= x^n
DIV Division entière 7 DIV 2 = 3
MOD Reste d’une division MOD(13.5) =3
ENT Partie entière d’un réel ENT(15.36) = 15
Les opérations en algorithmique

 Les opérations les plus fréquentes sur les variables sont résumées dans le tableau
ci-dessous.

Opération Symbole
Strictement inférieur à <
Strictement supérieur à >
Inférieur ou égal à <=
Supérieur ou égal à =>
Egal à =
Diffèrent de <>
Les opérations pour le type booléen
 Les opérations qu’on peut appliquer à ces valeurs logiques sont : (ET, OU, NON)
 Pour simplifier la représentation, on assimile à vrai la valeur (1) et a faux la valeur
(0).
 Nous résumons dans une table de vérité les résultats obtenus suivant les valeurs de
deux opérandes:
a b a ET b a OU b Non a
Exemple:
0 0 0 0 1 L’expression 5>2 ET 6<1
0 1 0 1 1
1 0 0 1 0
1 1 1 1 0
Les constantes
 Comme une variable, à une constante correspond un emplacement mémoire
réservé auquel on accède par le nom qui lui a été attribué,
 La valeur stockée ne sera jamais modifiée au cours du programme.
 Syntaxe:
Constante NOM_DE_LA_CONSTANTE = valeur
 Exemple :
Constante PI=3.14
Les instructions de base en algorithmique

 Une instruction est une action élémentaire commandant à la machine un calcul, ou


une communication avec l’un des ses périphériques d’entrées et de sorties.

 Les instruction de base sont:


• L’instruction d’affectation

• L’instruction d’entrée

• L’instruction de sortie
L’instruction de l’affectation

 Une instruction d’affectation permet d’attribuer une valeur à une variable

 En algorithmique, une flèche orientée de droite vers la gauche ‘’ ‘’.

 Syntaxe : Variable Expression

 Expression peut être :


 une variable ou une constante de même type l’identificateur.
 Une expression dont l’évaluation produit un résultat final de même type que
 Exemple : V B*A+ 2*B-1

 Le membre gauche de l’affectation doit être une variable déclarée. Il doit correspondre
à une case mémoire qui peut recevoir une valeur.
Exemple d’affectation
 Affecter une valeur à une variable

A ← 10, on charge la variable A avec la valeur 10

Affecter le contenu d’une variable à une autre variable

A ← B, on charge A avec le contenu de B

A et B doivent être de même type

Affecter une formule à une variable

C ← C+3*B, on change la variable C par la valeur du résultat de la


formule et on écrase sa valeur initiale
L’instruction d’entrée / Sortie
 Un algorithme doit acquérir des données (entrées) sur un périphérique (clavier,
disque…) et fournir en conséquence des résultats (sorties) sur un autre périphérique
(écran, imprimante).

En algorithmique, on note :


 Lire(v) : qui permet d’affecter à la variable V, la valeur lue sur le périphérique
d’entrée

 Ecrire(v) : permet de transférer la valeur V vers le périphérique de sortie.

 Ecrire(‘’chaine de caractères’’) : communiquer le texte sur le périphérique de


sortie.
Présentation d’un algorithme
 Un algorithme pourra se présenter par un langage algorithmique de la manière
suivante:

Algorithme nom_algorithme;
(*Déclarations*)
Const
Nom_de_const=valeur_de_const;
Var
Nom_var:nom_type_var;
Début
(*Corps de l’algorithme*)
(*Actions*)
Fin
Exemple d’application: le périmètre d’un cercle
 Un algorithme pourra se présenter par un langage algorithmique de la manière
suivante:
Algorithme perimetre_cercle;
Const c=2;
Pi=3.14;
Var
P, R: réels;
Début
Lire (R);
P←c*Pi*R;
Ecrire (P);
Fin
Les Commentaires
 Lorsqu’un algorithme devient long, il est conseillé d’ajouter des lignes de
commentaires dans l’algorithme, c’est-à-dire des lignes qui ont pour but de donner
des indications sur les instructions effectuées et d’expliquer le fonctionnement du
programme (algorithme) sans le compilateur ne les prenne en compte.
 Il existe trois types de commentaires:
1. // commentaire sur une ligne
2. /* commentaire sur plusieurs ligne */
3. ‘ commentaire
Les structures alternatives et répétitives
Les structures alternatives
Une structure alternative ( conditionnelle) est une notion courante en algorithmique,
Elle permet de tester des variables et de prendre une décision .
Elle permet d’effectuer des actions si une condition est vérifiée.
Les différentes structures conditionnelles:
 SI….
 Sinon….
 SinonSi
 Selon…
La structure Conditionnelle: Si…Alors…FinSi
 La structure SI est utilisé si on veut exécuter une instruction seulement si une condition
est vraie et ne rien faire si la condition est fausse.
 Syntaxe:
Si condition Alors
Instruction(s)
FinSi
 une condition est une expression logique (booléenne)
Ou une variable logique évaluée à Vrai ou Faux.
La structure Conditionnelle: Si…Alors…FinSi
 Exemple1: afficher nombre positif
Algorithme NombrePositif;
Var
N: entier;
Début
Lire (N);
Si N>0 Alors
Ecrire(‘le nombre N est positif);
FinSi
Fin
La structure Conditionnelle: Si…Alors…FinSi
 Exemple2: afficher la valeur absolue d’un nombre
Algorithme valeur_absolue;
Var
X: réel;
Début
Lire (X);
Si X<0 Alors
X←-X;
FinSi
Ecrire(‘la valeur absolue est:’, X);
Fin
La structure Conditionnelle: Si…Alors…Sinon…FinSi
 La structure SI est utilisé si on veut exécuter une instruction seulement si une condition
est vraie et ne rien faire si la condition est fausse.
 Syntaxe:
Si condition Alors
Instruction 1;
Sinon
Instruction 2;
FinSi
La structure Conditionnelle: Si…Alors…Sinon…FinSi
 Exemple1: afficher le max de deux nombre
Algorithme max;
Var
a,b: entier;
Début
Si a<b Alors
max ← b
Sinon
max ← a
FinSi
Fin
La structure Conditionnelle: Si…Alors…Sinon…FinSi
 Exemple2: afficher si un nombre entier saisi au clavier est pair ou impaire
Algorithme Parité
//déclaration des variables
Var n,r: entiers
Début
Ecrire(‘’entrer la valeur de n ’’)
Lire(n)
r ← n Mod 2
Si r=1
Ecrire(‘’impaire) Sinon Ecrire(‘’pair ’’).
Structure conditionelle: Test imbriqué
 Dans les cas précédents on a seulement deux situation possibles (paire, impaire),
mais si il y’a plusieurs situations par exemple dans la mention (non admis, passable,
assez bien, bien, très bien) une structure alternative simple ne suffit pas, donc pour
traiter ce cas on doit passer par plusieurs structures alternative on parle ( test
imbriqué).
 Syntaxe:
Si condition1 Alors
Instruction 1;
SinonSi Condition 2 alors
Instruction 2;
SinonSi condition3 alors
instruction3;
Sinon
FinSi
La structure Conditionnelle: Si…Alors…Sinon…FinSi
 Exemple1: Ecrire un algorithme qui permet de tester le signe d’un nombre ;
Dans le cas de signe d’un nombre on a trois situation : (négatif, nul, positif)

Exemple 2: écrire un algorithme qui affiche les jours de la semaine en toute lettre
selon son numéro saisi au clavier.
Structure conditionnelle à choix multiple
 Cette structure permet de choisir le traitement à effectuer en fonction de la valeur
ou de l’intervalle de valeurs d’une variable ou d’une expression.
 Syntaxe:
Selon sélecteur faire
valeur 1 : <Traitement1>
valeur 2 : <Traitement2>
……
……
valeur N : <Traitement N>
SINON <Traitement R>
Fin selon
Structure conditionnelle à choix multiple
 Exemple1: Ecrire un algorithme qui affiche le mois en toute lettre selon son numéro
saisi au clavier.
Algorithme Mois
Variables N: entier
Début
Ecrire(‘’ Donnez le numero du mois: ’’)
Lire(N)
Selon N faire
1: Ecrire(‘’janvier’’)
FinSelon
Les structures répétitives
 Dite aussi itératives ou boucles permet de répéter une ou plusieurs actions un certain
nombre de fois.
 Exemple:
Ecrire un algorithme sans boucles qui calcule la somme suivante :

4
𝑖=1 𝑖2
somme =0 , i=1
somme = somme + i*i
i=i+1
somme = somme + i*i
i=i+1
somme = somme + i*i
Les structures répétitives
But des structures itératifs : exécuter plusieurs fois une même suite d'instructions

 On distingue deux grand types de boucles :

1. Cas où le nombre d’itérations n’est pas connu à l’avance

•Instruction Tant que … faire … Fin tant que

•Instruction Répéter… jusqu’à

2. Cas où le nombre d’itérations est connu à l’avance

•Instruction Pour…Faire…Fin Pour


La boucle : TantQue…Faire
 Syntaxe:
TantQue condition faire
Instruction(s)
FinTantQue
 Les instructions sont exécutées tant que l'expression booléenne ou condition vaut
vrai.
 Dès que condition vaut faux, on quitte la boucle.
 La condition est placé au début, si la condition n’est pas remplie on ne rentre
jamais dans la boucle.
La boucle : TantQue…Faire
 Syntaxe:
TantQue condition faire
Instruction(s)
FinTantQue
La boucle : TantQue…Faire
Exemple 1 : écrire un algorithme qui force l’utilisateur d’enter la valeur 10.
Exemple 2 : Ecrire un algorithme pour vérifier les données saisie au clavier.
Algorithme controle
Variable Rep : caractère
Début
Ecrire(‘’voulez vous quitter O/N");
Lire(Rep)
Tant que Rep <> ‘O’ ET Rep <>’N’ Faire
Ecrire(‘’Erreur de saisie. Recommencez");
Lire(Rep)
Fin Tant que
La boucle : TantQue…Faire
 Exemple : Ecrire un algorithme qui demande à l’utilisateur un nombre compris entre
1 et 3 jusqu’à ce que la réponse convienne.
Algorithme nombre
Variable nombre : entier
Début
Ecrire("Saisir une valeur");
Lire(nombre)
Tant que nombre >3 OU nombre < 1 Faire
Ecrire("Saisir une valeur");
Lire(nombre)
Fin Tant que
La boucle : TantQue…Faire
 Remarques :
 Si la condition ne devient jamais fausse. Le programme tourne dans une boucle
infinie et n’en sort plus.
 Exemple:
Tant que n<=10 Faire
Ecrire(‘le nombre est’’ ,n);
Fin Tant que
La boucle : Répéter…Jusqu’à
 Cette boucle est utilisé lorsque le nombre de fois que la suite d’instructions à répéter
et inconnu.
Syntaxe:
Répéter
Instruction(s)
Jusqu’à condition d’arrêt
 Cette boucle sert à répéter une instruction jusqu’à ce qu’une condition soit vraie.
 la condition d’arrêt est placée à la fin
 Le test est effectué à la fin de la boucle, donc les instructions sont exécutées au
moins une fois même si la condition est fausse dès l’entrée de la boucle.
La boucle : Répéter…Jusqu’à
 Exemple 1: Ecrire un algorithme qui demande à l’utilisateur un nombre compris entre
1 et 3 jusqu’à ce que la réponse convienne.
Algorithme nombre
Variable nombre : entier
Début
Répéter
Ecrire("Saisir une valeur");
Lire(nombre)
jusqu'à nombre >= 1 ET nombre <= 3
Fin
La boucle : Pour…Faire
 Il arrive très souvent qu’on ait besoin d’effectuer un nombre déterminé d’itérations. Or, a
priori, la structure TantQue ne sait pas à l’avance combien de tours de boucle elle va
effectuer: d’où vient l’utilité de la structure Pour.
 la structure :Pour est un cas particulier de TantQue : celui où le programmeur peut
dénombrer à l’avance le nombre de tours de boucles nécessaires
Pour variable ← borne1 à borne2 faire
<séquence d’instructions>
Fin Pour
 La boucle permet de répéter une liste d’instructions un nombre connu de fois.
 Variable prend successivement par pas de 1 les valeurs comprises entre borne1 et
borne2, La suite-instructions est exécutée pour chacune de ces valeurs
La boucle : Pour…Faire

 Exemple 1:  la variable nb est de type entier, elle est initialisée à la


valeur initiale (1).
ALGORITHME pour
 la variable nb augmente sa valeur de un automatiquement
VARIABLES : nb : entier à chaque tour de boucle jusqu’à la valeur finale=5.
DEBUT Pour chaque valeur prise par la variable nb, la liste des
POUR nb ← 1 A 5 FAIRE instructions est exécutée.
Afficher nb
Lorsque la variable nb= valeur finale (5), le traitement est
FINPOUR exécuté une dernière fois puis le programme sort de la
FIN boucle.
La boucle : Pour…Faire
 Exemple 2: écrire un algorithme qui calcule les somme de dix premiers nombres
entiers.
ALGORITHME Somme
VARIABLES : S,I : entier
DEBUT
S←0
POUR I← 1 A 10 FAIRE
S ← S+I
FINPOUR
Ecrire(‘’la somme est:’’,S);
FIN
La boucle : Pour…Faire
 Exemple 3: écrire un algorithme qui calcule et affiche la table de multiplication de
5.
A Retenir:
 Les boucles ‘’Répéter’’ et ‘’TantQue’’ sont utilisées lorsqu’on ne sait pas au départ
combien de fois il faudra exécuter ces boucles.

 A la différence de la boucle ‘’TantQue’’, la boucle ‘’Répéter’’ est exécutée au moins


une fois.

 La condition d’arrêt de la boucle ‘’Répéter’’ est la négation de la condition de la


condition de poursuite de la boucle ‘’TantQue’’.

 On utilise la boucle ‘’Pour ’’ quand l’on connaît le nombre d’itérations à l’avance.


Les tableaux
Introduction
 Imaginons que l’on veuille calculer la moyenne des notes d’une classe de 30
étudiants mais en gardant en mémoire toutes les notes des étudiants (par exemple
pour faire d’autres calculs tels que l’écart type, la note minimale, la note maximale,
etc.)

Il faudrait alors déclarer autant de variables qu’il y a d’étudiants, par exemple N1,
…, N30. 30 instructions lire….

Conclusion: Ce n’est pas réaliste et c’est lourd à écrire.


Introduction
Algorithme Note
Variables n1, n2,….,N5 La même instruction se répète plusieurs
fois. Imaginons que s’il l’on voudrait
Début réaliser cet algorithme avec 100 notes,
Ecrire (‘’enter note 1:’’) cela deviendrait fastidieux.??

Lire (N1)
Ecrire (‘’enter note 2:’’)
Lire (N2)
Introduction
Solution: On doit réunir ces valeurs dans une seule variable dite structurée et
composée de 30 cases juxtaposées et même dimensions car elles vont recevoir des
données de même type, cette variable s ’appelle Tableau qui permet de définir
plusieurs variable de même type

15 12,5 14,25 10,25 … 18 15,25

30 Valeurs réelles
Définition d’un Tableau
 Un tableau est une suite d’élément de même type. Il est utilise plusieurs case
mémoire à l’aide d’un seul nom. Comme toutes les cases portent le même nom, elle se
différencient par un numéro ou un indice.

Chaque élément est directement accessible au moyen d’un indice.

 Nous pouvons représenter schématiquement un tableau composé de 30 valeurs,


dans la mémoire comme suit:
Note[1] Note[2] Note[3] Note[4] Note[5] Note[6]

Note 12,25 13 10 19 16,5 20


Tableau à une dimension
 Déclaration d’un tableau

La déclaration d’un tableau permet d’associer à un nom une zone mémoire composée
d’un certain nombre de cases mémoires de même type.

 Syntaxe:
Var Tableau identificateur [dimension]:type ;

 Exemple:
Variable Tableau Note [10] : réel
Tableau à une dimension
 On accède à un élément via son indice

1. A [3]←32,64; on charge la 3éme case du tableau avec la valeur 32,64

2. Lire (A[6]); affecter une valeur introduite par l’user à l’élément 6 du tab

3. Ecrire(A[8]) ; affiche le contenu du 8eme élément

4. Y←3*A[i]+1; affecte à la variable y la valeur du ieme élément *3


Tableau à une dimension
 Exemple 1:

Ecrire un algorithme permettant d’entrer 5 valeurs réelles au clavier, les stocker dans
un tableau, calculer leur somme et les afficher avec leur somme à l’écran.
Tableau à une dimension
Variable Tableau A(5) en entier
som, i : entier
Début
// Remplissage du tableau
Pour i ← 1 à 5
Ecrire « entrer la note n° », i)
Lire A(i)
som ←0
Pour i ← 1 à 5
Som ← som+A[i]
Ecrire (A(5)
Tableau à une dimension
 Exemple 2:

Ecrire un algorithme permettant d’entrer 30 notes réelles au clavier, les stocker dans
un tableau, et les afficher après avoir multiplié toutes ces notes par un coefficient
fourni par l’utilisateur.
Tableau à deux dimension
 Reprenons l’exemple des notes en considérant cette fois qu’un étudiant a plusieurs
note( une note pour chaque matière). Pour quatre étudiants, nous aurions le tableau
de relevés des notes suivant:

Etudiant 1 Etudiant 2 Etudiant 3 Etudiant 4

Info 12 18,5 9 10

Comptabilité 15 11 10 14

Maths 17 14 12 12
Tableau à deux dimension
 Les tableau à deux dimensions se représentent comme une matrice ayant un certain
nombre de ligne (première dimension ) et un certain nombre de colonnes (seconde
dimension). La déclaration se fait ainsi:

 Syntaxe
Var
Tableau identificateur [dimension1] [dimension1]:type ;
Tableau à deux dimension
 Exemple:

L’écriture d’une matrice de réels à 3 lignes et 4 colonnes s’écrit comme suit :

tableau A [3][4]:Réel;

A[i][j] sert à accéder à l’élément de l’intersection entre la ligne i et la colonne j.

 Remarque :

Pour parcourir une matrice nous avons besoins de deux boucles, l’une au sein de
l’autre, c’est ce qu’on appelle les boucles imbriquées.
Tableau à deux dimension
 Exercice 1:

Ecrire un algorithme permettant la saisie des notes d’une classe de 30 étudiant en 5


matières.
Les Tableaux
 Exercice 1:

Ecrire un algorithme qui permet la saisie n notes réelles et d’afficher le nombre des
notes inférieurs ou égales à 10, supposons que n<=40.

Exercice 2:

Ecrire un algorithme qui permet la saisie de n entier, puis affiche le maximum.

Exercice 3:

Ecrire à algorithme qui permet de chercher une valeur saisie par l’utilisateur dans un
tableau de taille n saisie par l’utilisateur.
Les structures
Introduction
 Une variable est utilisé pour stocker une valeur d’un type donné.

 Un tableau est conçu pour stocker plusieurs valeurs de même type.

 Problème : comment représenter

 Un étudiant, avec ses nom, prénom, âge, moyenne ? De types différents !

 La solution
Les Structures

 Une structure est utilisé pour stocker plusieurs valeurs de types différents.
Définition
 Une Structure est un modèle qui permet de désigner sous un seul nom un ensemble
de valeurs pouvant être de types différents.

 L’accès à chaque élément de la structure nommé champ, se fera par son nom au
sein de la structure.

 Nous pouvons représenter, schématiquement, une structure comme suit:

Structure

Champ_1 Champ_2 Champ_3 Champ_4


Déclaration d’une structure
 le syntaxe:

1. La déclaration d’une structure ne définit


Type Structure non_structure aucune variable, mais un modèle de
nom_champ1: type_champ1

structure.
nom_champN : type_champN 2. Déclarer une structure c’est définir un
FinStruct
nouveau type.

Type Structure Etudiant


nom : chaîne de caractère
 Exemple : prenom: chaîne caractère
age : entier
moyenne: réel
FinStruct
Déclaration d’une variable de type structure
 Une fois la structure est définit, on peut l’utiliser comme un type normal tel que les
types prédéfinis ( réel, entier,…) en déclarant une ou plusieurs variable de ce type.

 Syntaxe:

 variable nom_variable : nom_structure

 Une variable de type structure est une variable complexe composée de champs qui
sont des variables simples ou complexes.

 Les variables de type structure sont appelées enregistrements.


Déclaration d’une variable de type structure
 Exemple:

 Variables: Etud1,Etud2: etudiant

 Les deux enregistrements:

Etud1
nom prénom âge moyenne

Etud2
nom prénom âge moyenne
L’accès à un champ d’une structure
 Chaque champ d’une structure peut être manipulé comme n’importe quelle variable.
L’accès à un champ se fait en faisant suivre le nom de la variable de type structure
du nom de champ séparé par un point.

.
nom_variable nom_champ

 Exemple: pour donner un nom à l’étudiant 1: la variable Etud1


Etud1.nom  ‘’alami’’
Etud1.prenom  ‘’ahmed’’
Etud1.age  20
Etud1.moyenne 15,5
Exemple Algorithme structure
Algorithme Affichage
Type Structure Etudiant
nom : chaîne de caractère
prenom: chaîne caractère
age : entier
moyenne: réel
FinStruct
Variables: Etud1 : Etudiant
Début
Etud1.nom  ‘’alami’’
Etud1.prenom  ‘’ahmed’’
Etud1.age  20
Etud1.moyenne 15,5
Ecrire(‘’l’étudiant’’, Etud1.nom,’’ a la note :’’, Etud1.moyenne);
Fin
Exercice d’application
 Ecrire un algorithme qui permet de remplir une fiche de 10 étudiants, une étudiant
est caractérisé par 3 champs: Nom, prénom, note.
Afficher le nom et prénom de l’étudiant qui possède la note la plus grande.
Fonctions prédéfinies
 Tout langage de programmation dispose d’un ensemble de fonctions prédéfinie
permettant de :
 Procéder à des calcul mathématiques,
 de manipulation de date et d’heures,
 de manipulation de chaîne de caractères.
Fonctions mathématiques prédéfinies
Fonction Description Exemple
Abs(nombre) Cette fonction retourne la valeur X ← Abs (-3)
absolue d'un nombre
Ent(nombre) Retourne la partie entière d’un nombre. X ← Ent (3,5)
Sqrt(nombre) Permet de calculer la racine carée d’un X ← Sqrt(4)
nombre.
Cos(angle) Calcule le cosinus d’un angle. X ← Cos(0)
Sin(angle) Calcule le sinus d’un angle. X ← Sin(0)
Fonctions de chaîne de caractères
 Une chaîne de caractère est une séquence de caractère.

Fonction Description Exemple


Longueur(ch) Cette fonction renvoie le nombre de Longueur(‘’salut’’)
caractères d’une chaîne de caractères. Résultat: 5

Concat(ch1,ch2) Retourne une chaîne formée par la Concat(‘’Salut’’,’’Ahmed’’)


concaténation de ch1et ch2 Résultat: Salut Ahmed

Recherche(ch1,c) Recherche dans la ch1, la première Recherche(‘’Bonjour’’,’o’);


position ou apparaît le caractère Résultat : 2
mentionné.
Sous-programme: les fonctions et
procédures
Sous-programme
 Un sous-programme est un « morceau » d'algorithme conçu pour faire un traitement :
– bien défini
– bien délimité
– si possible indépendant du contexte particulier de l’algorithme appelant.

On distingue deux types de sous programmes :

 Les fonctions

 Les procédures
Avantages des Sous-programmes
 Un sous-programme est un « morceau » d'algorithme conçu pour faire un traitement :
– bien défini
– bien délimité
– si possible indépendant du contexte particulier de l’algorithme appelant.

On distingue deux types de sous programmes :

 Les fonctions

 Les procédures
Avantages des Sous-programmes
 Les sous-programmes à pour but de réduire la redondance du code.

 La Réutilisabilité: Si la fonctionnalité est exécutée à plusieurs endroits de


l’application, alors, plutôt que d'écrire le même code, encore et encore, nous créons
une fonction et l'appelons partout.

 La Maintenance: Cela facilite également la maintenance car nous devons changer à


un seul endroit si nous apportons des modifications futures à la fonctionnalité.
Les fonctions
 Une fonction est un ensemble d'instructions qui prennent des entrées, effectuent des
calculs spécifiques et produisent une sortie.

 L'idée est de regrouper certaines tâches effectuées de manière courante ou répétée


et de créer une fonction permettant d'appeler la fonction au lieu d'écrire le même
code encore et encore pour différentes entrées.

Entrée Fonction Sortie


Les fonctions
 Lorsqu'on appelle une fonction, il y a trois étapes.

1. L'entrée: on fait « rentrer » des informations dans la fonction (en lui donnant des
informations avec lesquelles travailler).

2. Les calculs : grâce aux informations qu'elle a reçues en entrée, la fonction travaille.

3. La sortie : une fois qu'elle a fini ses calculs, la fonction renvoie un (et un seul)
résultat. C'est ce qu'on appelle la sortie, ou encore le retour.
Déclaration d’une fonctions
 Le syntaxe:
Fonction nom_fonct (paramètres): type
variables identificateurs: type
Début
instruction(s);
Retourner Expression;
Les paramètres sont facultatifs,
FinFonction mais s’il n’y a pas de paramètres,
les parenthèses doivent rester présentes

 Type: le type de la valeur renvoyée;


 Nom_fonct: le nom de la fonction;
 Paramètres: la liste de paramètres.
Déclaration d’une fonctions
 Le syntaxe:

Fonction moyenne_fonct (a : entier, b : entier): réel

variables moy : réel

Début

moy ← (a+b)/2;

Retourner moy;

FinFonction
Les fonctions

A: entier Moy= a+b/2 : réel


Paramètres: Moyenne_Fonct
B: entier Retourner

Fonction moyenne_fonct (a : entier, b : entier): réel


variables moy : réel
Début
moy ← (a+b)/2;
Retourner moy;
Quitter la fonction et
retourner moy à l’algo
FinFonction appelant
L’appel d’une fonction
 Pour Exécuter une fonction, il Algorithme Moyenne
suffit de faire appel à elle en Fonction moyenne_fonct (a : entier, b : entier):
écrivant son nom suivi des réel
variables moy : réel
paramètres effectifs (arguments). Début
moy ← (a+b)/2;
Retourner moy;
FinFonction
Variables : x,y: entiers;
res: réel;
Début
Ecrire(‘’donner x et y: ’’);
Lire(x,y);
res ← moyenne_fonct(x,y);
Fin
Les fonctions
 Exemple d’application:

 Ecrire une fonction max qui renvoie le plus grand de deux nombres différents.

 Ecrire un algorithme appelant, utilisant la fonction max.

Vous aimerez peut-être aussi