1
SOMMAIRE
2
CHAP I : Généralités sur les algorithmes
I- Définitions
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
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
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
7/2 = 3,5
7div 2= 3
7mod2= 1
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
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
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
15
A2 : Ecrire un algorithme qui permet de résoudre une équation de la forme
𝑎𝑥 2 + bx + c=0 dans R
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 :
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 :
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
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
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
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