Vous êtes sur la page 1sur 30

MODULE ALGORITHME

NIVEAU PREMIERE ANNEE

1
SOMMAIRE

Chapitre I : Généralités sur les algorithmes ………....3


Chapitre II : Les structures de contrôles …………………13
Chapitre III : Structures de données complexes ……..22

2
CHAP I : Généralités sur les algorithmes
I- Définitions

1- Algorithmique : c’est l’ensemble des règles et principes à respecter


pour écrire un algorithme. C’est la science qui permet d’étudier les
algorithmes.
2- Algorithme : C’est la description précise et rigoureuse d’une suite
d’opération élaborée de façon logique et chronologique menant à la
résolution d’un problème.
3- Programme : Un ensemble d’instructions destiné à être exécuté par un
ordinateur.
4- Logiciel : Une suite d’instructions interprété par une machine et un jeu
de données nécessaires à ces opérations.
L’algorithme est écrit dans un langage naturel sans ambiguïté. Il est indépendant
de la langue dans laquelle il sera écrit et de la machine sur laquelle il sera
exécuté. L’algorithme est fini dans le temps.
Objectif : un opérateur (homme, automatique, etc …) est capable de
comprendre et interpréter des ordres (instruction) qu’on lui donne. Lorsqu’une
machine est capable d’exécuter directement une instruction alors on parle
d’action élémentaire.
L’homme veut fait faire à la machine des actions complexes alors celle-ci n’est
capable que d’action élémentaire (non décomposable), pour cela il convient de
décomposer cette action complexe en plusieurs petite action élémentaire que la
machine pourra exécuter lorsque celle-ci seront traduite dans un langage quelle
comprend.
II- Structure d’un algorithme
Un algorithme comprend 3 parties : entête, la partie déclarative et le corps de
l’algorithme
1- L’entête de l’algorithme
C’est le nom que l’on donne à l’algorithme, le nom dépend du concepteur et
doit respecter les règles suivantes :
 Il ne doit jamais commencer par un chiffre
 Il ne doit jamais contenir de caractère accentué, ni de caractère spéciaux
 Le nom ne doit jamais contenir d’espace

3
 Le seul caractère utilisé est le caractère underscore ( _ )

2- La partie déclarative :
Cette partie est facultative car elle dépend de la nature du problème et des
besoins de l’utilisateur. C’est dans cette partie que nous déclarons nos variables,
nos constantes, nos structures de données, nos fonctions et procédures.
3- Le corps de l’algorithme (obligatoire)
C’est dans cette partie que nous allons exécuter nos traitements. Cette partie est
délimitée par les mots clé début et fin.
Structure d’un algorithme
Algorithme nomalgorithme Entête

…………………
………………… Partie déclaration

Début
Corps
…………………
…………………
…………………
Fin

III- les objets

1- Les variables
Une variable est un espace mémoire, c’est un objet dont le contenue est
susceptible de changer durant l’exécution du programme.

4
 Déclaration de variable
Syntaxe :
Var
Nom_variable :type
Exemple : var
Delegue : Etudiant
2- Les constantes
C’est un espace mémoire dont la valeur ne changera jamais durant l’exécution
du programme.
Déclaration de constante
Syntaxe :
Constante
Nom_constante = Valeur
Exemple : age_Max=18
IV- les types élémentaires, les opérateurs, les instructions d’entrée /
sortie

1- les types élémentaires

 Type entier :
C’est un nombre qui n’admet pas de virgule. Il est codé sous 2 octets soit 16 bits.
Son intervalle est : [-32768 ; 32767]
D= 216/2= 65536/2= 32768
 Type réel :
C’est un nombre qui peut admet une virgule. Il est codé sur 6 octets soit 48 bites
Son intervalle est : [-1,4.1014 ; 1,4.1014]
D= 248/2=1,4.1014
 Type caractère :
Un caractère c’est un signe, un symbole, un chiffre, une lettre, un espace. Il est
codé sur 1 octet. Soit 8 bits.
5
Nous avons 256 caractères possibles. Le caractère est toujours entre simple
quotte (‘ ’)
 Le type chaine de caractère :
C‘est la concaténation ou la juxtaposition de plusieurs caractères. La chaine est
toujours entre double quotte (‘’ ‘’)
 Le type booléen :
C’est une variable spéciale qui ne peut prendre que 2 valeurs. Vrai ou faux ; oui
ou non
2- Les operateurs

 les opérateurs arithmétiques


Addition : +
Soustraction : -
Multiplication : *
Division : /
Partie entier : Div
Reste de la division : Mod

7/2 = 3,5
7div 2= 3
7mod2= 1

 les opérateurs de comparaison


Signe supérieur : >
Signe inferieur : <
Supérieur ou égale : >=

6
Inferieur ou égale : <=
Egal : =
Différent : <>
 les opérateurs logiques
Ce sont les conjonctions de coordination en informatique. Ils permettent de
regrouper plusieurs conditions pour en faire une seule ce sont : et, ou, non.
 L’opérateur d’affectation
Elle permet d’attribuer une valeur à une variable.
Le symbole est le suivant :
 Operateur de concaténation
Elle permet de mettre ensembles des expressions, cote à cote. Le symbole est le
suivant : |

3- Instruction entrée/sortie

 Entrée : elle permet de récupérer une information saisie par l’utilisateur


et la stocker dans une valeur.
Syntaxe : lire (nom_variable)
Lire (V1, V2, V3……………………Vn)
 Sortie : elle permet d’afficher une information à l’écran afin que
l’utilisateur puisse en prendre connaissance.
Syntaxe : Ecrire (’’information’’)
Ecrire (‘’informatique’’ ; non variable)
Ecrire (nom variable)
Exemple : a 12
Ecrire (‘’a’’) a
Ecrire (a) 12
Ecrire (‘’a=’’, a) a= 12
Exemple : écrire un algorithme permettant de faire la somme et le produit de
deux nombre.
7
Résolution
Algorithme somprod
Var
X, y : réel
S, p : réel
Debut
Ecrire (‘’ entrez le 1er nombre’’)
Lire (x)
Ecrire (‘’entrez le 2ème nombre’’)
Lire (y)
S x+y
P x*y
Ecrire (‘’la somme est ’’ : s)
Ecrire (‘’le produit est ’’ : p)

Ecrire (‘’MERCI’’)
Fin

Exercice n°1
Un démarcheur à domicile est rémunéré avec un salaire fixe de 80.000 F il perçoit
une commission de 5% sur le montant des ventes réalisées. Le salaire ainsi
obtenu est augmenté de 3% pour prendre en compte ses frais de déplacement.
Etant donnée la quantité et le prix unitaire de l’article vendu écrire un algo
permettent de déterminer le salaire net du démarcheur.
Résolution
Algo salaire
Var
com, fd, sm, mv, pu : réel

8
qte : entier
const
sf= 80000
Debut
Ecrire (‘’ entrez la quantité du produit vendu’’)
Lire (qte)
Ecrire (‘’entrez le prix unitaire du produit’’)
Lire (pu)
mv qte * pu
com (5 * mv)/100
fd 0,03 *(sf + com)
sn fd + sf + com
Ecrire (‘’le salaire net est ’’ : sn)
Fin

TAF
1) Soit ABC un triangle isocèle en A, écrire un algo permettant de calculer la
superficie de ce triangle.
2) Ecrire un algo permettant de savoir dans combien d’année l’âge d’un père
sera le triple de celui de son enfant.
3) Ecrire un algo permettant de déterminer et afficher le nombre de billet de
chaque coupure dans un montant donné
4) Ecrire un algo permettant de calculer le carré du double d’un nombre.

Résolution
1)
Algo calcul_surface
Var
S, B, H : réel
9
Deut
Ecrire (‘’entrez la valeur de la base du triangle isocèle SVP’’)
Lire (B)
Ecrie (‘’entrez la valeur de la hauteur du triangle isocèle SVP’’)
Lire (H)
S (B*H) / 2
Ecrire (‘’la surface du triangle isocèle est :’’S)
Fin

2)
Algo age
Var
Af, Ap, N : entier
Deut
Ecrire (‘’entrez l’age du fils’’)
Lire (Af)
Ecrire (‘’ l’age du père’’)
Lire (Ap)
N (Ap-3*Af) /2
Ecrire (‘’le nombre d’année est :’’ N)
Fin
3)
Algo billet
Var
D, Cm, 2M, M, Cq, Nb : entier
R, Mnt : réel
Deut

10
Ecrire (‘’entrez le montant’’)
Lire (Mnt)
NbD Mnt div 10000
R Mnt mod 10000
NbCm Mnt div 5000
R Mnt mod 5000
Nb2M Mnt div 2000
R Mnt mod 2000
NbM Mnt div 1000
R Mnt mod 1000
NbCq Mnt div 5000
R Mnt mod 5000
Ecrire (‘’le nombre de billet de D est :’’ NbD)
Ecrire (‘’le nombre de billet de Cm est :’’ NbCm)
Ecrire (‘’le nombre de billet de 2M est :’’ Nb2M)
Ecrire (‘’le nombre de billet de M est :’’ NbM)
Ecrire (‘’le nombre de billet de Cq est :’’ NbCq)
Fin

4)
Algo calcul_carre
Var
Nbr, C, N : reel
Debut
Ecrire (‘’entrez un nombre SVP’’)
Lire (Nbr)
N 2*Nbr

11
C N^2
Ecrire (‘’le nombre carre est :’’, C)
Fin

12
CHAP II : Les structures de contrôles
I- ROLE
Elles permettent de manipuler ou de contrôler un flux d’instructions ou un
ensemble d’actions.
On les regroupe en 2 branches :
- Structures conditionnelles
- Structures répétitives ou itératives

II- Structures conditionnelles

1- Structure conditionnelle si
Elle permet d’exécuter une instruction ou un bloc d’inscription lors qu’une
condition est vérifiée. Elle n’offre pas d’alternative.
Syntaxe :
Si (condition) alors
Debut
Instruction 1
Instruction 2
Fin
Finsi

Application :
Ecrire un algo permettant d’écrire la valeur absolue d’un nombre en utilisant
la structure conditionnelle pure.
Résolution
Algo valeur
Var
N, Va : réel
Debut
Ecrire (“entrez un nombre svp’’)
Si (N>=0) alors
Va a

13
Fsi
Si (N<0) alors
Va a
Fsi
Ecrire (“la valeur absolue est :’’, Va)
Fin

Elle permet d’exécuter des blocs d’instructions selon la validité ou non d’une ou
plusieurs conditions. Le premier bloc sera exécuté lorsque la condition est
vérifiée dans le cas contraire le 2ème bloc est exécuté.
Syntaxe :
Si (condition) alors
Debut
Instruction 1
Instruction 2
Fin
Sinon
Debut
Instruction 1
Instruction 2
Fin
Finsi

14
2- Structure conditionnelle à choix multiple « selon choix faire » ou
« suivant choix faire »
Syntaxe
Selon (choix) faire
Cas Valeur :
⟦𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑡𝑖𝑜𝑛𝑠⟧
Cas X : ⟦𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑡𝑖𝑜𝑛𝑠⟧

Defaut : ⟦𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑡𝑖𝑜𝑛𝑠⟧
Finselon

NB : La structure conditionnelle à choix multiple est une version améliorée


(beaucoup plus flexible) de la structure.
 Applications
A1 : Ecrire un algorithme qui permet de savoir si une année saisie au clavier est
bissextile ou non.
(Une année bissextiles est une année dont la division par 400 est égale à 4)
Rappel une année est bissextile si elle est multiple de 4 ou multiple de
400 et n’est pas multiple de 100
A2 : Ecrire un algorithme qui permet de savoir si un nombre entier strictement
positif est pair ou non
A1 : Le resto « Heart » propose le menu suivant
1- Crème 500f
2- Poulet rôti 1000f
3- Poulet Fris 1500f
Lorsqu’un client se pointe, il peut choisir plusieurs options. Ecrire un algorithme
qui permet de déterminer le montant qu’un client doit payer en fonction de la
quantité définie.

15
A2 : Ecrire un algorithme qui permet de résoudre une équation de la forme
𝑎𝑥 2 + bx + c=0 dans R

III- Structures répétitives ou itératives

 Les boucle pour faire : Elle permet de répéter un certain nombre de foi
une instruction ou un bloc d’instruction sous certaines conditions. Cette
boucle est généralement utilisée lorsque le nombre d’itération ou
répétition est connu
Syntaxe :
Pour compteur valeur initiale à la valeur finale saut faire
Debut
Instruction 1
Instruction n
Fin
Finpour

TP cours
Ecrire un algo qui permet de compter de 1 à 100
Résolution
Algo compte
Var
I : entier
Debut
Pour i 1 à 100 faire
Ecrire (i)
Finpour
Fin

16
 La boucle tantque faire : Cette boucle est généralement utilisé lorsque le
nombre d’itération n’est pas connu ou exact.
Syntaxe :

Compteur valeur initiale


Tantque (condition) faire
Debut
Instruction 1
Instruction n
Fin
Fintanque

TD (précédent)
Algo compte
Var
I : entier
Debut
I 1
Tantque (i <= 100) faire
Debut
Ecrire (i)
I i + 1.

Fin
Tantque
Fin

17
 La boucle répétée jusqu'à : elle est généralement utilisée lorsque le
nombre d’itération n’est pas connu ou exact
Syntaxe :

Repeter
Debut
Instruction 1
Instruction n
Fin
Jusqu'à (condition)

TP cours
Ecrire un algo qui permet de compter de 1 à 100
Résolution
Algo compte
Var
I : entier
Debut
I 1
Repeter
Debut
Ecrire (i)
I i+1
Fin
Jusqu'à (i > 100)
Fin

Différence

18
Tantque : la condition est vérifiée (contrôle)
Répéter : commence le test à parti de 2nd élément
TD
Exo N°1
Ecrire un algo permettant de déterminer la factoriel d’un nombre
Exo N°2
Ecrire un algo permettant de donner le produit de deux nombres sans faire
de multiplication
Exo N°3
Ecrire un algo permettant de déterminer le PPCM de deux nombres
Exo N°4
Ecrire un algo permettant de déterminer un nombre de la base 10 vers la base
2
Exo N°5
Le développement limite de la valeur
π/4 = 1-(1/3) + (1/5) – (1/7) + (1/9) + ……… + (1/2n+1)
Ecrire un algo permettant de déterminer la valeur de π
Exo N°6
Ecrire un algo permettant de savoir si une année entrée par l’utilisateur est
bissextille ou pas.

19
Résolution exo n°1

Algo factoriel
Var
I, j, n, fac : entier

Debut
Répéter
Ecrire (‘’entrez votre nombre svp’’)
Lire (n)
Jusqu’à (n >= 0)
Pour i 1 à n faire
Fac 1
Pour j 1 à i faire
Fac fac * j
Fpour
Fpour
Ecrire (‘’le factoriel est :’’ fac)
Fin
Résolution exo n°3
Algo PPCM
Var
A, R, P, n, p1, n1, n2 : réel
Debut
Répéter
Ecrire (‘’entrez un nombre svp’’)
Lire (A)

20
Ecrire (‘’entrez la valeur du diviseur svp’’)
Lire (n)
Jusqu’à (A>0) et (n>0)
Répéter
P A div n1
P1 R div n2
Jusqu’à (R=0 ou R=1)
X n1*n2
Ecrire (‘’le PPCM du nombre est :’’, X)
Fin

21
CH III : LES STRUCTURES DE DONNEES COMPLEXES

Introduction
Les structures de données de données sont utilisées pour faciliter la
manipulation de données. On distingue les tableaux et les enregistrements. Dans
ce volet l’accent sera mis uniquement sur les tableaux.
Un tableau est une structure de données dont les sont éléments de même type.
Ces éléments peuvent être des caractères, des entiers, des booléens, des chaines
de caractères, des réels des tableaux, des enregistrements. On regroupe les
tableaux en deux grandes branches : les tableaux statiques et les tableaux
dynamiques.
Selon la dimension, on distingue des tableaux statiques ou dynamiques à une, 2,
n dimensions.
Dans ce chapitre nous nous intéresserons uniquement aux tableaux statiques à
une et deux dimensions.
La taille du tableau est connue à sa création et les éléments sont rangés de façon
contigüe dans la mémoire.
Un tableau est caractérise par les éléments suivants :
 Son nom
 Le type des éléments
 Sa taille

1- Tableau à 1 dimension
Il est composé d’une ligne et n colonnes
Exemple :

a) Déclaration d’un tableau à une dimension


Dans la partie VAR
Nomtableau : tableau [taille] de type
Ou Nomtableau : tableau (taille) de type
Ou encore

22
Type
Tab= tableau [taille] de type

TAF 1
Déclarer un tableau de 10 entiers
Solution
Var
Tab : tableau (10) de entier

TAF 2
Ecrire 5 tableaux à 10 éléments
Solution
Var
Tab1: tableau (10) de entier
Tab2: tableau (10) de entier
Tab3: tableau (10) de entier
Tab4: tableau (10) de entier
Tab5: tableau (10) de entier
Ou
Type
Tab= tableau (10) de entier
Var
T1,T2,T3,T4,T5 : tab

b) Indexation d’un tableau à 1 dimension

23
Indexer un tableau, c’est référencer un élément quelconque du tableau. Cela est
réalisé à l’aide d’une valeur de type entier appelé indice de l’élément ou indice
du tableau

Syntaxe
Nomtableau (indice)
c) Parcours d’un tableau à une dimension
Pour parcourir un tableau à une dimension il faut obligatoirement ou
nécessairement utiliser une boucle.
Exemple
Ecrire un algo permettant de saisir la moyenne de 100 étudiants
Solution
Algorithme moyenne
Var
T : tableau (100) de réel
I : entier
Debut
Pour i 1 à 100 faire
Debut
Ecrire (‘’entrez la moyenne de l’étudiant n° :,’’ i)
Lire (T(i))
Fin
Finpour
Fin

d) Tri d’un tableau à une dimension


Pour trier un tableau à une dimension il faut utiliser 2 boucles (pour…….. faire)
Le compteur de la 1ère boucle va de 1 à la taille du tableau (-1).

24
Le compteur de la 2ème boucle va de la position du compteur de la 1ère boucle
plus 1 à la taille du tableau.
NB : la 2ème boucle est imbriquée dans la 1ère

Exemple
Soit T un tableau de 15 réels, écrire un algo permettant de trier ce tableau
Solution
Algo tri
Var
T : tableau (15) de réel
I, j : entier
Res : réel
Debut
Pour i 1 à 15 faire
Lire (T(i))
Finpour
Pour i 1 à 14 faire
Pour j ( i+1) à 15 faire
Si (T(i) > T(j) ) alors
Debut
Res T(i)
T(i) T(j)
T(j) res
Fin
Finsi
Finpour
Finpour
Fin

25
Exercice n°1
Pour des raisons de statistique il vous est demandez d’élaborer un algo
permettant de calculer la moyenne de 52 étudiants, chaque étudiant à 3 notes.
 Déterminer le taux d’admis
 Déterminer la moyenne la plus élevé
 Déterminer la moyenne la plus faible
 Déterminer le nombre d’étudiant ayant une moyenne > à la moyenne de
classe
 Déterminer le nombre d’étudiant ayant une moyenne comprise entre 10
et 12, 5
NB : la moyenne d’admission est 10,5

Solution
Algo moyenne
Var
Tab : tableau(52) de réel
i, j : entier
M, t, s, a, b, c, d : réel
Debut
j 0
s 0
Pour i 1 à 52 faire
Debut
Ecrire (‘’entrez les 3 notes de l’étudiant n°’’,i)
Lire (a,b,c)
Tab(i) (a+b+c)/3

26
s s + tab (i)
Si (tab(i) >= 10,5) alors
j j+1
Finsi
Fin
Finpour
t (j*100)/52
Ecrire (‘’le taux d’admis est :’’, t, ‘’%’’)
Pour i 1 à 51 faire
Pour j (i+1) à 52 faire
Si (tab(i) > tab(j)) alors
d tab(j)
Tab (j) tab(i)
Tab(i) d
Finsi
Finpour
Finpour
Ecrire (‘’la plus petite moyenne est :’’, tab(1))
Ecrire (‘’la plus grande moyenne est :’’, tab(52))
m s/52
j 0
Pour i 1à 52 faire
Si (tab(i) > M) alors
j j+1
Finsi
k 0
Si (tab(j) >= 10 et tab(i) <= 12,5) alors
k k+1

27
Finsi
Finpour
Ecrire (‘’le nombre d’étudiant ayant une moyenne supérieur à la
moyenne de la classe est :’’, j)
Ecrire (‘’le nombre d’étudiant ayant une moyenne comprise entre 10
et 12,5 est:’’, k)
Fin

2- Tableau à deux dimensions


Un tableau à 2 dimensions est un tableau de n lignes et 2 colonnes avec n >1
a- Déclaration des tableaux à deux dimensions
Type
Nomtype= tableau (ligne) (colonne) de type
Var
Nomtableau : nomtype
Ou
Var
Nomtableau : tableau (L) (C) de type

b- Indexation d’un tableau à deux dimensions


Syntaxe :
Nomtableau (indice L) (indice C)
c- Parcours d’un tableau à deux dimensions
Pour parcourir un tableau à 2 dimensions il faut utiliser 2 boucles :
 La 1ère boucle parcours les lignes
 La 2ème boucle parcours les colonnes
Ou bien la 1ère boucle parcours les colonnes
Le 2ème parcours les lignes

28
Exercice
Ecris un algorithme permettant de saisir la moyenne de 120 étudiants en utilisant
un tableau à 2 dimensions.
Solution

Algorithme moyenne
Var
Tab : tableau (12) (10) de réel
K, i, j : entier
Debut
Pour i 1 à 12 faire
Pour j 1 à 10 faire
Debut
Ecrire (‘’entrez la moyenne de l’étudiant’’, k)
Lire (tab(i) (j))
K k+1
Fin
Finpour
Finpour
Fin

29
30

Vous aimerez peut-être aussi