Vous êtes sur la page 1sur 77

Cours algorithme

Travaux diriges
Exercice1
Ecrire un algorithme permet après avoir saisi le nom d’un utilisateur de lui dire bonjour

Exercice2
Écrire un programme qui permet de calculer le périmètre d’un rectangle

Exercice3
Ecrire le programme qui permet de déterminer le maximum et le minimum de deux
nombres saisis au clavier

Exercice4
Ecrire le programme qui permet de permuter deux nombres

Exercice5
Ecrire le programme qui permet de déterminer la somme ; le produit et la moyenne de trois
nombres saisis au clavier
Exercice6
Ecrire le programme qui permet de calculer la somme et le produit consécutif des
nombres compris entre 1 et 5
Exercice 7
Ecrire le programme qui permet de faire le factorielle d’un nombre
Exercice 8
Ecrire le programme qui permet de déterminer le maximum et le minimum de trois
nombres saisis au clavier
Exercice 9
Ecrire le programme qui permet de calculer la moyenne de quatre étudiants dans une
matière avec trois notes
Correction

Exercice 1
algorithme salutation
var
nom : chaine de caractère
message :chaine de caractère
debut
(*saisie du nom de l’utilisateur*)
Ecrire (‘entrer le nom de l’utilisateur’)
Lire(nom)
message bonjour+monsieur+nom
ecrire(message)
fin

Exercice 2

Algorithme calcul
Var
l,L ,p,s :reels
Début
(*saisie des valeurs du rectangle*)
Ecrire (‘entrer la longueur’)
Lire(l)
Ecrire (‘entrer la largeur’)
Lire(L)
(*traitement*)
P (L+l)*2
s L*l
(*affichage des résultats*)

Ecrire (‘le perimetre du rectangle est :’, p)


Ecrire (‘la surface du rectangle est :’, s)
Fin

Exercice3

Algorithme maximum_minimum
Var
Nb1,nb2,min,max :réels
Début
(*saisis des deux nombres*)
Afficher (‘entrer le nombre 1’)
Saisir(nb1)
Afficher (‘entrer le nombre 2’)
Saisir(nb2)
(*traitement des données*)
Si nb1>nb2 alors
max nb1
min nb2
sinon
max nb2
min nb1
fin

Exercice 4
Algorithme permutation
Var nb1,nb2,p, :réels
Début
(*saisis des données*)
Afficher (‘entrer les deux nombres’)
Saisir(nb1,nb2)
(*traitement des données*)
P nb1
Nb1 nb2
Nb2 p
(*affichage des résultats*)
Afficher (‘la nouvelle valeur de ,nb1,’est :’,nb1)
Afficher (‘la nouvelle valeur de ,nb2,’est :’,p)
Fin

Exercice5
Algorithme calcul
Var nb1,nb2,nb3,som,prod,moy :réels
Début
(*saisis des nombres*)
Afficher (‘entrer les trois nombres’)
Saisir(nb1,nb2nb3)
(*traitement*)

som nb1+ nb2+ nb3


prod nb1* nb2* nb3
moy som/3
(*affichage des résultats*)
Afficher (‘la somme des trois nombres est :’,som)
Afficher (‘le produit des trois nombres est :’,prod)
Afficher (‘la moyenne des trois nombres est :’,moy)
Fin
Exercice 6
Donnée en entrées : i(compteur)
Donnée en sortie :som,prod
Algorithme nombre_consecutif
Var i : entier
Som,prod :entiers
Début
(*calcul de la somme et produit *)
Som 0
prod 1
pour i 1 jusqu’à 5 faire
som som+1
prod prod*i
finpour
(*affichage des résultats*)
Afficher (‘la somme consécutif de ‘,i, ’est :’,som)
Afficher (‘le produit consécutif de ‘,i,’est :’,prod)
Fin
Exercice 7
Algorithme factoriel
Var nb,i,fact :entier
Début
(*saisie des données*)
Afficher (‘entrer un nombre’)
Saisir(nb)
(*traitement des données*)
Fact 1
i 1
tant que i<=nb faire
fact fact*i
i i+1
fintantque
(*affichage des résultats*)
Afficher (‘le factoriel de ‘,nb,’est’,fact)
Fin

Exercice 8
Donnée en entrée : nombre (nb1 ;nb2 ;nb3)
Donnée en sortie : max ;min
Algorithme calcul
Var nb1,nb2,nb3,max,min : réels
Début
(*saisir des nombres*)
Afficher (‘entrer les trois nombres’)
Saisir(nb1,nb2,nb3)
(*traitement*)
Si nb1>nb2>nb3
Alors début
max nb1
min nb3
sinon
alors début
max nb3
min nb1
fin
finsi
si nb2>nb1>nb3
alors début
max nb2
max nb1
fin
sinon
début
max nb3
min nb2
fin
finsi
(*affichage des résultats*)
Afficher (‘le maximum parmi les trois nombres est’, max)
Afficher (‘le minimum parmi les trois nombres est’, min)

Fin
CHAPITRE II : LES STRUCTURE DE CONTROLES

INTRODUCTION
Les instructions d’un algorithme sont contenues dans différent type d’enchainement.
Ces enchainements font appel dans certains cas a des structures spécifiques appelées
structures de contrôles.
On distingue trois types d’enchainements :
_enchainement séquentielle
_enchainement alternatif
_enchainement répétitif

I l’enchainement séquentielle
1-1definition
On parle d’enchainement séquentielle lorsqu’une suite d’instruction est exécuter de façon
successif en respectant un ordre.
Ces instructions sont exécutées les unes à la suite des autres
1-2 exemple
Ecrire un algorithme qui permet de calculer le périmètre et la surface d’un rectangle
1-3algorithme
a-pseudo code
Donnée entre
Longueur(L) ; largeur(l)
Données en sortie
Périmètre(P) ; surface(S)
Algorithme surf_per_rectangle
VAR L,l,P,S :reels
Début
Afficher (‘entrer la longueur du rectangle ‘)
Saisir(L)
Afficher (‘entrer la largeur du rectangle ‘)
Saisir(l)
(*traitement*)
P (l+L)*2
S L*l
(*affichage des résultats*)
Afficher (‘Le perimetre du rectangle est :’, P)
Afficher (‘Le surface du rectangle est :’, S)
Fin
b-organigramme
Début

Saisir(L)
Saisir(l)

P (L+l)*2
S L*l

Afficher(P)
Afficher(S)

fin
II-L’ENCHAINEMENT ALTERNATIF
2-1 définition
L’enchainement alternatif est un enchainement qui permet d’exécuter alternativement une
suite d’instruction à condition qu’un texte logique soit vérifié.
Ce texte logique est une expression qui retourne une valeur booléenne (vrai /faux)
On parle dans ce cas de structure conditionnelle
On distingue quatre types de structures conditionnelles :
- La structure conditionnelle simple
- La structure conditionnelle alternative
- La structure conditionnelle imbriquée
- La structure conditionnelle composée

2-2La structure conditionnelle


2-2-1definition
Dans ce cas le texte logique qui est mis en évidence permet d’exécuter une suite
d’instruction s’il est vérifié et aucune instruction dans le cas contraire.
2-2-2 exemple
Ecrire un algorithme qui permet de déterminer le quotient (q) d’une division d’un nombre
(n) par un dénominateur(d)
Nb- d étant différant de 0
Algorithme quotient
Var n,d,q :reels
Début
Afficher(‘entrer le nombre ‘)
Saisir(n)
Afficher (‘entrer le dénominateur ‘)
Saisir(d)
(*traitement*)
Si d<>0
Alors
Q n/d
finsi
afficher(‘le quotient est :’,q)
fin

syntaxe
si
alors
<instruction>
Finsi
b)organigramme

debut

Saisir(n)
Saisir(d)

D<>0

q n/d
Afficher(q)

fin

2-3 La structure conditionnelle alternative


2-3-1 définition
Dans ce cas le texte logique qui est évalué débouche sur l’exécution de deux instructions
l’une dans le cas où la condition est vérifié et l’autre dans le cas où la condition ne l’est pas
Syntaxe
Si<text logique>
Alors<instructions>
sinon<instructions>
fin

faux vrai
texte

Instruction instruction
3-3-2 exemple
Ecrire un algorithme qui détermine la valeur absolue d’un nombre saisi au clavier

Algorithme valeur absolue


Var n,abs :réels
Début
Afficher (‘entrer le nombre ‘)
Saisir(n)
Si n>=0
Alors
abs n
sinon
abs -n*(-1)
finsi
Afficher(‘la valeur absolue est :‘abs)
fin
debut

Saisir(n)

faux n>=0 vrai

abs -n*(-1)
abs n

Afficher(abs)

fin
2-4 la structure conditionnelle imbriquée
2-4-1definition
Dans ce cas plusieurs contions peuvent être traitées à l’intérieur d’une autre condition.
Syntaxe

Si <test logique>
alors
<Instruction>
Sinon
si
<instruction>
Finsi
finsi
vrai test faux

faux test vrai


instruction
instruction
instruction

Ecrire un algorithme qui permet de gérer un feu tricolore

Algorithme feu_tricolor
Var col,mes :chaine de caractère
Var n,abs :réels
Début
écrire(‘entrer la couleur ‘)
lire(col)
si col=’rouge’
alors mes ‘arrêt obligatoire’
sinon
si col =’verte’
alors mes ‘passage autorise’
sinon
si col=’orange ‘
alors mes dégagement rapide ou arrêt
sinon
alors mes ‘ce n’est pas une couleur de feu’
finsi
finsi
finsi
ecrire(mes)
fin

dans ce cas la valuer des repetitions n’est pas defini dans la base
la repetition ne s’arrete que si une certaine conditions est verifie ou pas
on distingue la structure repeter……………. jusqu’à
3-2-1l’enchainement repete………….jusqu’à
Cette structure permet de repeter de facon repetitive une suite d’action jusqu’à ce que la
condition soit verifiee

Syntaxe
a) Pseudo code
Repeter
<expression>

Jusqu’à<condition>
b) Organigramme
instruction

test

faux

vrai
Exercice
Écrire un algorithme qui permet de calculer le triple et le carre des nombres compris entre 1
et 50
Donnée en entrer : compteur(i)
donnée en sortie :carre(ca) ;triple (trp)

Algorithme carre_triple
Var ca,trp,i :entier
Debut
I 1 (initialisation)
répèter
ca i*i
trp i*3
ecrire(‘le carre du nombre est :’,ca)
ecrire(‘le triple du nombre est :’,tpr)
i i+1 (incrémentation)
jusqu’à i>50
finrepeter
fin

Organigramme
debut

i 1

ca i*i
tpr i*3

Ecrire(ca)
Ecrire(tpr)

i i+1
i>50 faux

vrai
fin

3-2-2 la structure tantque…………faire


Cette structure permet d’exécuter de Façon répétitive une suite d’action tant qu’une
certaines condition est vérifiées

Syntaxe
a) Pseudo code
Tanque <condition>faire

<instruction>

Fintanque

b) Organigramme

Vrai instruction

Faux
Exercice (l’exemple précédant)

Donnée en entrer :compteur(i)


Donnée en sortie : carre(ca) ; triple (trp)

Algorithme carre_triple
Var ca,trp,i :entier
Début
I 1
tanque i<=50 faire
ca i*i
trp i*3
écrire (‘le carre du nombre est :’,ca)
écrire (‘le triple du nombre est :’,tpr)
i i+1 (incrémentation)
fintanque
fin

Organigramme
debut

i 1

i i+1

Ecrire(ca)
Ecrire(tpr)

I<=50 vrai ca i*i


tpr i*3

faux

fin

3-3l’enchainement répétitif défini


Dans ce cas on sait combien de fois la structure va exécuter l’exécution on parle ici de
la structure pour
Syntaxe
a) Pseudo code
Pour <variable compteur> v0 jusqu’à vf<pas>

Test vrai instruction v0+pas

faux

exercice(même exercice)
algorithme carre_ triple
var i,ca,trp :entier
debut
pour i 1 à 50 faire
ca i*i
trp 3*i
ecrire(‘le carre du nombre est :’,ca)
ecrire(‘le triple du nombre est :’,tpr)
finpour
fin
Chapitre II Les tableaux
Le tableau est une structure de donnée linéaire qui peut stocker des données de même
type : chaque donnée du tableau est repérée par un indice ( indexe)
Indiquant sa position dans le tableau.
Soit un tableau de 5 notes reçu par un étudiant une matière

Indice(indexe)
1 2 3 4 5

07 08 15 16 07 Note nom du tableau


valeur de la donnée

le tableau caractérisé par les éléments suivants


- Le nom du tableau(notes)
- Une valeur d’indice minimale (v0=1)
- Une valeur d’indice minimale(Vf=5)
- Pour chaque élément du tableau on prend le nom du suivi de son indice
Exemple note (3) =15
Note (5) =07
1-2 les différents types de tableau
On distingue deux (2) types de tableau :
- Le tableau a une dimension ou vecteur
- Le tableau a deux dimension ou matrice

II le tableau a une dimensions ou vecteur

E tableau a une dimension ou vecteur peu se présenter sous deux formes


- La forme statique
- La forme dynamique
2-1 le tableau sous la forme statique

C’est un tableau dont l’indice maximale est connue d’avance


VAR <nom du tableau>[v0..vf] :tableau de <type de donnée>
Note [1..5] : tableau de réels
Nb : en VB on aura :dim note(1 to 5) as double
2-2 tableau sous la forme dynamique
C’est un tableau dont la valeur d’indice maximale n’est pas connue d’avance.
Dans ce cas la déclaration se fait en deux étapes :
- Elle se fait d’abord dans la partie déclaration selon la syntaxe suivante
- VAR <nom du tableau>( ) :tableau de <type de donnée>
- En suite à l’intérieur de la procédure avec la syntaxe suivante
Redim <nom du tableau(X)
Valeur d’indice ou taille du tableau
2-3 opération sur les tableaux à une dimension
2-3-1 création d’tableaux a une dimension
Cette opération consiste à remplir les différentes cases qui constitue le tableau
Exemple
Ecrire un l’algorithme qui permet de créer un tableau de Cinque (5) notes

Algorithme creation_de_Tableau
Var note[1..5] : tableau de reels
I :entier
Début
(*création du tableau*)
Pour i 1 jusqu’à 5 faire
Ecrire (‘entrer la note’, i)
Lire (note(i))
Finpour
Fin
2-3-2 l’Edition d’un tableau a une dimension
Cette opération consiste à afficher le contenu d’un tableau déjà crée
Ex
Algorithme Edition du tableau

Algorithme creation_de_Tableau
Var note[1..5] : tableau de réels
I :entier
Début
(*création du tableau*)
Pour i 1 jusqu’à 5 faire
Ecrire (‘entrer la note’, i)
Lire (note(i))
Finpour
(*Edition du tableau*)
Pour i 1 jusqu’à 5 faire
Ecrire (note(i))
Finpour
Fin
Exercice
1-Ecrire l’algorithme qui permet de saisir le nom de 10 produits et de les afficher ensuite
2-ecrire l’algorithme qui permet de calculer la somme et la moyenne d’un étudiant qui
a eu 15 notes dans une matière
3- Ecrire l’algorithme qui permet d’afficher les jours de la semaine

Correction
Algorithme nom_produit
Var note[1..10] : tableau de chaine de caractère
I :entier
Début
(*création du tableau*)
Pour i 1 jusqu’à 10 faire
Ecrire (‘entrer la produit’, i)
Lire (produit(i))
Finpour
Pour i 1 jusqu’à 10 faire
Ecrire(produit(i))
Finpour
Fin
2
Algorithme nom_produit
Var note[1..15] : tableau de reels
Som,moy :reels
I :entier
Debut
(*création du tableau*)
som 0
Pour i 1 jusqu’à 15 faire
Ecrire (‘entrer la note’,i)
Lire (note(i))
som som+note(i)
Finpour
moy som/15
(*Edition de tableau*)
Ecrire (‘la somme est :’,som)
Ecrire(‘la moyenne est :’moy)
Fin

Algorithme jours semaine


Var note[1..7] : tableau de chaine de caractère
I :entier
Début
(*création du tableau*)
Pour i 1 jusqu’à 7 faire
Ecrire (‘entrer le jour’, i)
Lire (jours(i))
Finpour
(*Edition du tableau a*)
Pour i 1 jusqu’à 7 faire
Ecrire(jours(i))
Finpour
Fin
2-3-3 recherche d’un élément dans un tableau
Il s’agit ici de rechercher dans un tableau déjà crée la position ou la présence d’un élément
dans le tableau
Ex
Ecrire l’algorithme qui permet de rechercher dans un tableau dix (10) étudiants reçus au BTS
Le nom d’un étudiant afin de déterminer s’il est reçu ou recale.
Correction
Algorithme recherche_element
Var etudiant[1..10] :tableau de chaine de caractere
I :entier
Nom,mes :chaine de caractère
Début
(*création de tableau*)
Pour i 1 jusqu’à 10 faire
Ecrire (‘entrer le nom de l’étudiant’, i)
Lire(etudiant(i))
Finpour
(*Recherche d’un élément du tableau*)
Ecrire (‘entrer le nom à rechercher’)
Lire (nom)
Pour i 1 jusqu’à 10 faire
Si nom = étudiant(i) alors
Mes ‘reçu’
Sinon
mes recale
finsi
finpour
ecrire(mes)
fin

Exercice 2
Ecrire un programme qui permet de saisir le salaire de dis (10) employés ; de déterminer le
salaire le plus élevé et le nombre d’employé qui l’ont
Exercice 3
Ecrire le programme qui permet de calculer le factoriel de trois (3) nombres ainsi : que leur
somme
Exercice 4
Ecrire le programme qui permet de rechercher dans une liste de dix (10) produits, un produit
saisi au clavier
Escercice5
Un programme qui permet de calculer la moyenne de (6) étudiants ayant chacun trois (3)
notes dans une matière
Correction
Algorithme multiple_de_3
Var nombre[1..5] :tableau d’entier
I ,mult:entier
Nom,mes :chaine de caractere
Debut
(*création de tableau*)
Pour i 1 jusqu’à 5 faire
Ecrire(‘entrer le nombre ’,i)
Lire(nombre(i))
Finpour
mult 0
pour i 1 jusqu’à 5 faire
si nombre(i) MOD3=0
alors
mult mult+1
finsi
finpour
ecrire(‘le nombre de multiple de troi est :’,mult)
fin
exercice
Algorithme rechreche_salaire
Var nombre[1..10] :tableau de reel
Nbremploy, salmas, i:entier
Debut
(*création de tableau*)
Pour i 1 jusqu’à 10 faire
Ecrire (‘entrer le salaire de l’employé ’, i)
Lire(employes(i))
Finpour
(*recherche du salaire le plus eleve*)
salmas employes(i)
pour i 2 jusqu’à 10 faire
si salmas <employes(i)
alors
salmas employes(i)
finsi
finpour
(*recherche du nombre d’employes*)
nbremploy 0
pour i 1 jusqu’à 10 faire
si salmax=employes(i) alors
nbremploy nbremploy+1
finsi
finpour
écrire (‘le salaire le plus élevé est :’,salmas)
écrire(‘le nombre d’employé qui l’ont est :’,nombremploy
écrire(‘le nombre de multiple de trois est :’,mult)
fin

Exercice
Algorithme recherche_produit
Var produit[1..10] :tableau de chaine de caractere
I :entier
Mes, nomprod : chaine de caractère
Début
(*création de tableau*)
Pour i 1 jusqu’à 10 faire
Ecrire (‘entrer le produit ’,i)
Lire(produit(i))
Finpour
(*recherche d’un produit*)
Ecrire(‘entrer le produit a rechercher) Lire(nomprod)
pour i 1jusqu’à 10 faire
si nomprod=produit(i) alors
mes ce produit existe dans la liste
sinon
mes produit introuvable
finsi
finpour
fin

Exercice
Algorithme factoriel_som
Var nombre[1..3] :tableau de reels
i , j :entier
som , fact : reels
Debut
som 0
Pour i 1 jusqu’à 3 faire
Ecrire(‘entrer le nombre ’,i)
Lire(nombre(i))
Som som +nombre(i)
fact 1
j 1
tanque j<= nombre(i) faire
fact fact*j
j j+1
fintanque
écrire(‘le factoriel est :’,fact)
finpour
ecrire(‘la somme est :’,som)
fin

Exercice
Algorithme moy_etudiant
Var etudiant[1..6] :tableau de chaine de caractere
note[1..3] :tableau de reels
i , j :entier
moy: reel
Debut
Pour i 1 jusqu’à 6 faire
Ecrire(‘entrer l’identite de l’etudiant ’,i)
Lire(etudiant(i))
som 0
pour j 1 jusqu’à 3 faire
Ecrire(‘entrer la note’, j ,’de l’etudiant ’,j)
Lire(note(j))
som som+note(j)
finpour
moy som/3
Ecrire(‘la moyenne de l’etudiant ’, i ,’ est’,moy)

fin
Travaux diriges 2

Escercice1
Ecrire l’algorithme qui permet de calculer le perimetre et l’aire d’un cercle
Escrcice2
Ecrire l’algorithme qui permet de rechercher dans un tableau de 10 éléments, la position
d’un élément dans le tableau
Escercice3
Ecrire un programme qui permet de calculer la somme de deux vecteurs de taille5
Escercice4
Ecrire le programme qui permet de rechercher dans un tableau de 10 notes le minimum et le
maximum et le nombre de fois qu’ils apparaissent
Escercice5
Ecrire l’algorithme qui permet de localiser des objets dans un musée en fonction de leur
année de découverte
Avant 1960, en salle d’exposition
De 1961 à1980, à la cave
-de1981 à1999 ; aux archives
-après 2000 à la bibliothèque

Exercice
Algorithme maximum_minimum
Var note[1..10] :tableau de reels
i :entier
notemax,notemin: reels
Debut
Pour i 1 jusqu’à 10 faire
Ecrire(‘entrer la note ’,i)
Lire(note(i))
Finpour
Notmas note(1)
notmin note(1)
Pour i 1 jusqu’à 10 faire
Si notmin>note(i)
Alors
notemin not(i)
finsi
si notemax > note(i)
alors
notemax note(i)
finsi
finpour
ecrire(‘le maximum est’,notemax’)
ecrire(‘le minimum est’,notemin’)
fin

Algorithme localisation des objets


Var annee : entier
Mes : chaine de caractere
Debut
Ecrire(‘entrer l’annee’,i)
Lire(annee)
Si annee<=1960 alors
mes ‘en salle d’exposition’
sinon
si annee<=180 alore
mes ‘à la cave’
sinon
si annee<=1999 alors
mes ‘aux archives’
sinon
mes ‘à la bibliotheque’
finsi
finsi
finsi
fin

III les chaines de caractères


3-1 définition
Une chaine de caractère est une suite de caractère regroupes une même variable. La chaine
de caractère est construite à partir d’un tableau de 255 caractères maximum
Exemple ‘bonjour’
3-2 syntaxe
VAR <variable> chaine de caractère
Ou <variable> [taille] :chaine de caractère
Ex :
Soit la chaine de caractère ‘bonjour’
VAR S : chaine de caractère
S [7] : chaine de caractère
NB
Pour accéder a une variable particulière de la chaine, on écrit simplement comme dans
un tableau
Ex ‘bonjour’
S[1] = B
S[6] = U
On veut remplacer
3-3 les operateurs
a) comparaison
= ;<,> ;<= ;>= ;<>
Si
S1=salut ; S2=bonjour ; S3bonsoir
On aura S1>S3>S2
b) La concaténation
La concaténation permet de coller deux ou plusieurs chaines de caractère
Si S1=’bon’ et S2=jour
S3=S1+S2
S3=’bonjour’
3-4les fonctions de la chaine de caractère
a) Fonction longueur
Elle permet de déterminer le nombre de caractère qui compose la chaine
Syntaxe
algo longueur (source,debut ;i)
vb LEN (source,debut ;i)
c) La fonction SSchaine
Elle permet d’extraire une sous chaine de la chaine source de longueur iet commencant à la
position debut
Syntax
algo SSchaine (source,debut ;i)
vb MID (source,debut ;i)
b)fonction position
elle permet de determiner la position d’une sous chaine dans une chaine
syntaxe
algo position(sous chaine,chaine)
vb INSTR REV(sous chaine,chaine)
d) Les fonctions ORDetCHR
Ces fonctions renvoient le code ASII d’un caractères et vice versa
ssyntaxe
algo ord(caractères)= code ASCII
vb CHR (code ASCII)=caractère
travaux diriger
Exercice 1
Ecrire le programme qui permet de saisir les notes de dix étudiants d,une classe qui affiche
-le nombre de note >10
-le nombre de note <=10
–la moyenne de la classe
exercice2
Écrire le programme qui permet de saisir les notes obtenues par des étudiants d’une classe
pour les quatre (04) épreuves qu’ils ont participés. Chaque épreuve à son coefficient et le
nombre d’étudiant est demandé à l’utilisateur
NB on recherche la moyenne de claque étudiant
Exercice3
Écrire le programme qui permet de saisir une phrase et de déterminer le nombre de mot qui
la compose.

Correction
Exercice 1
Algorithme trie _note
Var nombre[1..10] :tableau de reel
Noteinf ,notesup ,i :entier
Moy, som : reel
Debut
Notesup 0
Noteinf 0
som 0
Pour i 1 jusqu’à 10 faire
Ecrire(‘entrer la note ’,i)
Lire(note(i))
som som+note(i)
si note(i)>10 alors
Notesup notesup+1
Noteinf noteinf+1
Finsi
Finpour
moy som/10
écrire(‘le nombre de note supérieur a 10 est’,notesup)
écrire(‘le nombre de note inferieur à 10 est’, noteinf)
écrire(‘la moyenne de la classe est’,moy)
fin
Exercice 2
Algorithme calcul de moyenne
Var épreuve [1..4] : tableau d’entier
J, nbetud, i : entier
Moy, sommoy, note, notcoef, moyepr, sommoyepr : reel
Début
sommoyepr 0
Pour i 1 jusqu’à 4 faire
afficher(‘entrer le coefficient de l’epreuve’,)
saisir(epreuve(i))
afficher(‘entrer le nombre d’etudiant’)
saisir(nbetud)
sommoy 0
Pour j 1 jusqu’à nbetud faire
afficher(‘entrer la note de l’etudiant’,j)
saisir(note)
notecoef note*epreuve(i)
sommoy sommoy+notecoef
finpour
moyepr sommoy/nbetud
sommoyepr sommoyepr +moyepr
finpour
moy sommoyepr /4
afficher(‘la moyenne de la classe est ‘,moy)
fin
execice 3
Algorithme nombre de mot
Var phrase : chaine de caractere
Car :chaine de caractere
Lphr=longueur(phrase)
Lphe=longueur(phrase)
J ,nbetud, i :entier
debut
nbmot 0
Pour i 1 jusqu’à lphr
Car sschaine(phrase,i,1)
Si car=’ ‘
Alors
nbmot nbmot+1
finsi
finpour
ecrire (‘le nombre d’espace de cette phrase est’,nbmot)
fin

Travaux dirige
Exercice
Dans une classe on a 5 étudiants qui composent dans 4 matières ou ils ont chacun trois
notes
Écrire un algorithme qui permet de déterminer la moyenne de chaque étudiant et la
moyenne la plus élevée
Exrcice2
écrire l’algorithme qui permet de recomposer un mot saisi au clavier
exemple papa p
pa
pap
papa
exercice
Écrire l’algorithme qui permet de détermine si un mot ou une phrase saisi au claver est un
palindrome ou nom. Un palindrome est un mot ou une phrase qui se lit de la même façon
dans les deux sens.
Exercice 4
Écrire l’algorithme qui permet de calculer la somme et le produit de deux vecteur de tailler5
Correction du td

Exercice 1
Algorithme trie_note
Var etudiant[1..5] :tableau de chaine de caractere
etudiant[1..4] :tableau de chaine de caractere
etudiant[1..3] :tableau de chaine de caractere
i, j, n :entier
Moy, som,sommoymat,moymat : reels

Debut
Pour j 1 jusqu’à 5 faire
afficher(‘entrer l’identité de de l’etudiant’,i)
saisir(etudiant(i))
sommoymat 0
pour j 1 jusqu’à 4 faire
afficher (‘entrer la matiere’,j)
saisir(matiere(j))
som 0
pour j 1 jusqu’à 3 faire
Afficher(‘entrer la note’,n)
Saisir(note(n))
Som som + note(n)

finpour

moymat sim/3

sommoymat sommoymat+ moymat

finpour

moy sommoymat / 4
Afficher (‘la moyenne de l’étudiant(i) est’ ,moy)

Finpour

Moyplus moymat(i)

pour j 2 jusqu’à 5 faire


si Moyplus< Moy(i) alors
moyplus moy(i)
finsi
finpour
afficher(‘la moyenne la plus eleve est’, moyplus)
fin

exercice 2
Algorithme recompose_mot
Var mot :chaine de caractere
longmot, n :entier
Debut
afficher(‘entrer le mot)
saisir(mot)
longmot longueur(mot)
pour j 1 jusqu’à longmot faire
afficher ( sschaine,i,1)
finpour
fin
execice 4

Algorithme trie_note
Var vect1[1..5] :tableau de reel
Vect2[1..5] :tableau de reel
somvect [1..5] :tableau de reel
prodvect [1..5] :tableau de reel
i :entier

Debut
Pour j 1 jusqu’à 5 faire
afficher(‘entrer la valeur ‘,i’,de vecteur 1’)
saisir(vect1(i))
finpour
Pour j 1 jusqu’à 5 faire
afficher(‘entrer la valeur ‘,i’,de vecteur 2’)
saisir(vect2(i))
finpour
Pour j 1 jusqu’à 5 faire
sommvect vect1(i)+ vect2(i)
afficher (‘la somme des vecteur est :’,sommvect)
prodvect vect1(i)* vect2(i)
afficher (‘le produit des vecteur est :’,prodvect)
finpour
fin
execice 3

Algorithme palindrom
Var mot1, mot2 :chaine de caractere
longmot, i :entier
Debut
afficher(‘entrer le mot)
saisir(mot1)
longmot longueur(mot1)
pour j 1 jusqu’à 1 pas -1 faire
car sschaine(mot1,i,1)
afficher ( sschaine,i,1)
mot2 mot2+car
finpour
si mot2=mot1 alors
afficher (ce mot est un palindrome’)
sinon
afficher (‘ce mot n’est pas un palindrome ‘)
finsi
fipour
fin

IV OPERATION DE TRI SUR LES A UNE DIMENSION


Les opération de tri sont des algorithmes établies qui permettent d’ordonner un tableau
dans l’ordre croissant on distingue deux algorithmes de tri le tri bulle le tri par
recherche successive du minimum le tri bulle il s’agit ici de comparer deux éléments
consécutif du tableau et de les échanger Ou non selon l’ordre voulu cette opération
s’effectue jusqu’à ce qu’il n’y ait plus d’échange ou qu’on soit à la fin du tableau
exemple : soit le tableau suivant
1 2 3 4 5 6

8 4 10 5 12 18

Algorithme trie_note
Var etudiant[1..5] :tableau de reels
i :entier
inter :reel

Debut
(*création du tableau*)
Pour i 1 jusqu’à 6 faire
Afficher(‘entrer la note’,i)
Saisir(note(i))
Finpour
(*tri bulle*)
Pour i 1 jusqu’à 5 (n-1) faire
Si note(i)>note(i+1) alors
inter note(i)
note(i) note(i+1)
note(i+1) inter
finsi
finpour
(*edition du tableau*)
Pour i 1 jusqu’à 6 faire
Afficher(note(i))
Finpour
fin

exercice

1 ) ecrire un algorithme qui permet de ranger dans l’ordre alphabetique (06) six lettres
saisie au clavier

2) ecrire un algorithme qui permet de classer (10) dix moyenne dans l’ordre decroissante

Correction
Exercice 2
Algorithme classement_moyenne
Var moyenne[1..10] :tableau de reels
i :entier
inter :reel
Debut
Pour i 1 jusqu’à 10 faire
Afficher(‘entrer la moyenne’,i)
Saisir(moyenne(i))
Finpour
(*tri bulle*)
Pour i 1 jusqu’à 9 faire
Si moyenne(i)<moyenne(i+1) alors
Inter moyenne(i)
moyenne(i) moyenne(i+1)
moyenne(i+1) inter
finsi
finpour
Pour i 1 jusqu’à 10 faire
Afficher(moyenne(i))
Fipour
Fin

Algorithme ordre_alphabetique
Var lettre[1..6] :tableau de caractere
i :entier
inter :reel
Debut
Pour i 1 jusqu’à 6 faire
ecrire(‘entrer la lettre’,i)
lire(lettre(i))
Finpour
Pour i 1 jusqu’à 5 faire
Si lettre(i)>lettre(i+1) alors
inter lettre(i)
lettre(i) lettre(i+1)
lettre (i+1) inter
finsi
finpour
Pour i 1 jusqu’à 6 faire
Afficher(lettre(i))
Finpour
fin

4-2 le tri par recherche successive de minimum


Il s’agit ici d’attribuer à l’élément d’indice 1 là la valeur minimum et de l’échanger avec le
reste du contenu du tableau jusqu’ à ce que le tableau soit ordonne

Algorithme tri_min
Var note[1..6] :tableau de reel
Indmin,I,j :entiers
inter :reel
Debut
Pour i 1 jusqu’à 6 faire
ecrire(‘entrer la note’,i)
lire(note(i))
Finpour
Pour i 1 jusqu’à 5 faire
indmin i
Pour i j jusqu’à 7 (n+1) faire
Si note(j)<note(indmin)
Alors
Indmin j
finsi
Finpour
Si indmin <> i alors
inter note(indmin)
note(indmin) inter
finsi
Pour i 1 jusqu’à 6 faire
Ecrir (note(i))
Finpour
Finpour
fin

VI Opération sur les tableaux triés


Certaines opérations ne peuvent être effectué sur un tableau que si celui-ci est trie
On distingue deux types d’opération
- La recherche d’un élément dans un tableau par dichotomie
- La fusion de deux tableau trie.

1) La recherche d’un élément dans un tableau par dichotomie

Il s’agit ici de recherche au sein d’un tableau trie délimite par une borne inferieur et une
borne supérieur un élément situe à l’indice médiane (milieu du tableau).
Exemple : soit le tableau suivant :
NOTE
1 2 3 4 5 6 7

8 4 10 5 12 18 6

TABLEAU TRIE
1 2 3 4 5 6 7

4 5 6 8 10 12 18

Bornesup= 7
Borninf=1
indice median=4
Algorithme dichotomie
Var note[1..7] : tableau de reels
Borninf, bornsup, mediane, i :entier
Inter, element : reels
Debut
(*creation de tableau*)
borninf 0
bornsup 0
pour i 1 jusqu’à 7 faire
ecrire(‘entrez la note’, i )
lire (note[i])
finpour
pour j 1 jusqu’à faire
si note (i)> note(i+1) alors
inter note(i)
note(i) note(i+1)
note(i+1) inter
finsi
finpour
(*edition du tableau*)
pour i 1 jusqu’à 7 faire
ecrire(note(i))
finpour
(*recherche d’un element par dichotomie*)
Ecrire(‘entrer un element du tableau’)
Lire(element)
Tanque (element <>note(median) et borninf <=borsup faire
Si element <note(median)
Alors bornsup median-1
Sinon
Alors
borninf median+1
Finsi
median (borninf+bornsup)/2
fintanque
(*resultat de la recherche*)
Si element =note(median) alors
Ecrire(‘element trouve a l’ndice’,i)
Sinon
Ecrire(‘l’element n’est pas dans le tableau’)
Finsi
Fin

Application
Soit un tableau de 15 moyennes saisi au clavier
Ecrire l’algorithme qui permet de rechercher la position d’une valeur saisis par dichotomie

5- ) fusion de deux tableaux tries

Il s’agit de fusionner deux tableaux ordonnés en les lançant de façon ordonne dans un
troisième tableau

Soit les tableaux suivants

1 2 3 4

Note1 1 8 4 10
1 2 3 4

Note1 trie 1 4 8 10

Note2 5 3 6

Note2 trie 3 5 6

Note3 1 3 4 5 6 8 10

Algorithme fusion_tableau
Var note1[1..4] :tableau de reel
Note2[1..3] :tableau de reel
Note3 [1..7] :tableau de reel
i , indnot1, indnot2, indnot3 :entier
inter :reel
Debut
(*remplissage du tableau 1*)
Pour j 1 jusqu’à 4 faire
afficher(‘entrer la note‘,i)
saisir(note1(i))
finpour
(*remplissage du tableau 1*)
Pour j 1 jusqu’à faire
afficher(‘entrer la valeur ‘,i)
saisir(note2(i))
finpour
(*tri des tableau*)
Pour j 1 jusqu’à 3 faire
Si note1(i)> note1(i+1) alors
Inter note1(i)
note1(i) note1(i+7)
note1(i+1) inter
finsi
finpour
Pour j 1 jusqu’à 2 faire
si note2(i)> note2(i+1) alors
inter note2(i)
note2(i) note2(i+7)
note2(i+1) inter
finsi
finpour 1
indnot1 1
indnot2 1
indnot3 1
(*fusion des tableau*)
Tanque (indnote<=4) et (indnote2<3) faire
Si note(indnote1)> note2(indnot2) alors
Indnote2 indnot2+1
Sinon
Si note2(indnote2)>note1(indnot1)
Indnote3(indnot3) note1(indnot1)
Indnote1 Indnote1+1
Finsi
Finsi
Fintanque
Pour j 1 jusqu’à 4 faire
Indnote3(indnot3) note1(i)
Indnote3 Indnote3+1
Finpour
Pour j 1 jusqu’à 3 faire
Indnote3(indnot3) note2(i)
Indnote3 Indnote3+1
Finpour
(*edition du tableau fusionne*)
Pour j 1 jusqu’à 7 faire
Ecrire(note3(i))
Finpour
fin

VI les tableaux a deux dimensions


6-1 definition
Le tableaux a deux dimensions encore appele matrice est un tableau compose de lignes et
de colones
Exemple
Soit le tableau suivant
I 1 2 3 4 5 6
KONE MOBIO OTRO ERIC SERGE ABOY
J
etudiant
NOTE1 12 80 03 05 19 18
1
NOTE2 04 16 15 11 08 14
2
NOTE3 13 06 17 03 04 16
3

ICI ON A UN TABLEAU de note a deux dimension compose en colone des etudians et en


ligne des notes
6-3 declaration du tableau
Syntaxe
Var

<nom du tableau>[ind..ind ;ind..ind] :tableau de<type de donnee>


Mincol maxcol minlign maxlign

Note [1..6, 1..3] :tableau d’entier


Ex note(3,2)=15
Note(6 ,3)=16

6-4 création d’un tableau a deux dimension


(Remplissage du tableau)
Algorithme creation_tableau
Var note[1..6,1..3]tableau dentier
I,j :entier
Debut
(*creation du tableau*)
Pour 1 jusqu’à 6 faire
Pour j 1 jusqu’à 3faire
Ecrire(‘entrer la note ‘,i,’de l’etudiant’,i)
Lire(note(i,j)
Finpour
Finpour
Fin

6-5 edition du tableau a deux dimensions (affichage des resultas )


Algarithme edition_tableau
Var note[1..6,1..3]tableau dentier
I,j :entier
Debut
(*creation du tableau*)
Pour 1 jusqu’à 6 faire
Pour j 1 jusqu’à 3faire
Ecrire(‘entrer la note ‘,i,’de l’etudiant’,i)
Lire(note(i,j)
Finpour
Finpour
(*edition du tableau*)
Pour 1 jusqu’à 6 faire
Pour j 1 jusqu’à 3faire
ecrire(note(i,j)
Finpour
Finpour
Fin

6-6 application
Exercice 1
Écrire l’algorithme qui permet de calculer la moyenne de 5 étudiants qui ont trois notes
dans une matière
Exercice 2
Écrire un algorithme qui permet d’afficher le contenu du tableau suivant

Région 1 2 3 4
produit
1 riz florido tarro graine

2 Sorgho mil blé banane

3 aubergine arachide gombo maïs

Correction
Algorithme moyenne

Var note[1..5,1..3]tableau de reel


I,j :entier
Som,moy :reels
Debut
(*creation du tableau*)
Pour 1 jusqu’à 5 faire
Som som+note(i,j)
Pour j 1 jusqu’à 3 faire
Ecrire(‘entrer la note ‘,j,’de l’etudiant’,i)
Lire (note(i,j)
Som som+note(i,j)
Finpour
moy som/3
ecrire (‘la moyenne de l’etudiant’,i,’est :’,moy)
Finpour
Fin

Algorithme affichage_produit

Var produit[1..4,1..3]tableau de chaine de caractere


I,j :entier
Som,moy :reels
Debut
Pour 1 jusqu’à 4 faire
Pour j 1 jusqu’à 3 faire
Ecrire(‘entrer le produit ‘,j,’de la region ’,i)
Lire (produit(i,j)
Finpour
finpour
Pour 1 jusqu’à 4 faire
Pour j 1 jusqu’à 3 faire
Ecrire (produit(i,j))

Lir (produit(i,j))
Finpour
Finpour
fin

Travaux diriges
Exercice 1
Ecrire un algorithme qui permet de saisir dix (10) valeurs réels et de les classer dans l’ordre
décroissant
Exercice 2
Une entreprise commerciale vend cinq (5) produit à ses distributeurs dans quatre régions.
Ecrire l’algorithme qui permet de saisir et d’afficher les différents prix des produits par
région
Exercice 3
Ecrire l’algorithme qui permet de déterminer le salaire la plus basse paye dans une
entreprise sachant que l’entreprise dispose de 25 employés
Exercice 4
Un gestionnaire de stock d’un grand magasin réalise la gestion du stock selon les règles
suivant
-si la commande du client est inférieure ou égale a la quantité en stock on sert le client et le
stock est mise à jour
-si la commande du client est supérieur a la quantité en stock on réalise le
réapprovisionnement avant de le servir.
Selon La formule QEC=(2FVC)1/2
QEC=Quantité économique à commander
F : frai associe à la passation de la commande
V : vente annuelle (en unité)
C : frai associe à l’entreposage
TAF Ecrire l’algorithme qui permet de mettre à jour le stock après la commande d’un client.

Correction
Exercice 1

Algorithme classement_valeur
Var valeur[1..10] :tableau de reels
i :entier
inter :reel
Debut
Pour i 1 jusqu’à 10 faire
Afficher(‘entrer la valeur’,i)
Saisir(valeur(i))
Finpour
Pour i 1 jusqu’à 9 faire
Si valeur(i)<valeur(i+1) alors
Inter valeur(i)
valeur(i) valeur(i+1)
valeur(i+1) inter
finsi
finpour
Pour i 1 jusqu’à 10 faire
Afficher(valeur(i))
Finpour
Fin

Var
QS ,q,QEC,F,V,C : reels
Debut
Ecrire(‘entrer la quantite en stock’)
Lire(QS)
Ecrire(‘entrer la quantite du client’)
Lire(q)
Si q<= QS alors
QS QS – q
QS QS – q
Sinon
Ecrire(‘entrer le frais associe a la passation ‘)
Lire(F)
Ecrire(‘entrer la vente annuelle ‘)
Lire(V)
Ecrire(‘entrer les frais associes a l’entrepassage ‘)
Lire(C)

QEC ((2Fνc)0,5
QS QS – QEC
QS QS – q
Finsi
Ecrire(‘le client est servi’)
Ecrire(‘la qantite de stock QS)
fin

Travaux diriges
Exercice 1
Ecrire un algorithme qui permet de résoudre l’équation AX+B+C
Exercice 2
Ecrire un algorithme qui permet da un usa gé d’afficher pour une phrase saisie au clavier de
déterminer le nombre de mots et d’espace.

Exercice 3
Ecrire l’algorithme qui permet à une société de calculer le salaire de ses chauffeurs (20) et sa
part sachant que les chauffeurs ont travaillés 26 jours et que la part des chauffeurs est de
20/100 de sa recette.

Exercice 4
Ecrire l’algorithme qui permet de calculer la somme et le produit consécutif des compris
entre 10 et 25

Exercice 5
Ecrire l’algorithme qui permet de saisir un élément étude vérifier si cet élément existe dans
un tableau de dix (10) éléments et à quel indice il se trouve.

Correction
Algorithme calcul
Var a,b,c :entier
S1 :reel
S2 :chaine de caractere
Debut
Ecrire(‘entrer la valeur 1’)
Lire(a)
Ecrire(‘entrer la valeur 2’)
Lire(b)
Ecrire(‘entrer la valeur 1’)
Lire(c)
Si a<>0 alors
c−b
S1 a

Ecrire(‘la solution est’,s1)


Sinon
Ecrire(‘aucune solution’)
Finsi
Fin
Algorithme calcul_salaire
Var salaire(20) :tableau de reel
chauffeur(20) :tableau de chaine de caractere
partentr,somrecet,recet :reel
j, i:entier
Debut

Pour i i jusqu’à 20 faire


Ecrire (‘entrer le nom du chauffeur’, i)
Lire(chauffeur(i))
somrecete 0
pour j 26 faire
ecrire(‘entre la recette’)
lire(recet)
somrecete somrecet+recet
finpour
salaire(i) somrecet*20/100
partent partent+(somrecet*80/100)
finpour
Pour i i jusqu’à 20 faire
Ecrire(chauffeur(i),salaire(i))
Finpour
Ecrire(‘la part de l’entreprise est :’,partent)
Fin

Execice4(voire page)
Algorithme recherche
Var element[1..10] :tableau de reel
I :entier
eltrech : reel
Début

Pour i 1 jusqu’à 10 faire


Ecrire (‘entrer l’element ’,i)
Lire(element(i))
Finpour
Ecrire(‘entrer l’element a rechercher)
Lire(neltrech)
pour i 1jusqu’à 10 faire
si eltrech=element(i) alors
ecrire(‘l’element recherche est dans le tableau a l’indice’,i)
sinon
ecrire(‘element introuvable’)
finsi
finpour
fin
CHAPITRE IV LES ENREGISTREMENTS ET TABLEAU D’ENREGISTREMENT

I) Introduction
Les enregistrements sont une meilleure organisation dans la gestion des informations. Tout
comme le tableau l’enregistrement regroupe plusieurs informations. cependant
contrairement au tableau l’enregistrement regroupe des informations de type différents.
Ces différentes informations sont appelées champs.
II) DECLARATION
L’enregistrement est un agrégat de plusieurs données de type quelconque ;ces différents
données appelées champs constituent les différentes informations nécessaires au
traitement. Chaque enregistrement est identifier par un identificateur appelé nom de
l’enregistrement.

II) Déclaration
La déclaration d’un enregistrement ces fait sous la forme de la déclaration d’un
type de donnée
Type <identificateur>=enregistrement champs
Champ1 <type>
Champ2 <type>
:
:

Champn<type>

Finenregistrement
Exemple
Soit l’enregistrement client avec les donnees suivantes
numclt nom prénom adresse
Cl001 Konate Marius Belleville6

type client=enregistrement
numclt :chaine de caractère
nom : chaine de caractère
prenom : chaine de caractère
adresse : chaine de caractère
finenregistrement

III) Aces à un enregistrement ou aux champs d’un enregistrement


3-1) accès a un enregistrement déclaré comme type
Pour accéder à un enregistrement déclaré comme type, on déclare une variable type.
Exemple
Var unclient :client
3-2 accès aux champs d’un enregistrement
a) La notation pointée
Pour accéder au champs d’un enregistrement on indique la variable identifiée par le type et
le nom du champ sépare par un point
Exemple : écrire l’algorithme qui permet de saisir et d’afficher l’enregistrement suivant.
Matricule nom prénom Age
ET001 KASSI AIME 19

ALGORITHME saisi affichetudiant


Type etudiant s = enregistrement
Matricul :chaine de caractere[7]
Nom :chaine de caractere[15]
Prenom :chaine de caractere[25]
Age :entier [3]

Finenregistrement
Var unetudiant :etudiant
Debut
(*saisi de l’enregistrement etudiant*)
Ecrire(‘entrer la matricule de l’etudiant ‘)
lire(‘unetudiant.matricule ‘)
Ecrire(‘entrer le nom de l’etudiant ‘)
lire(untetudiant.nom )
Ecrire(‘ entrer le prenom de l’etudiant‘)
lire(unetudiant.prenom)
(*affichage des resultats*)
Ecrire(unetudiant.matricule)
Ecrire(unetudiant.nom)
Ecrire(unetudiant.age)
Fin
b) L’instruction avec
L’instruction avec permet de palier a la lourdeur de la notation pointée.
Algorithme saisi_ aff_etudiant
Type etudiant=enregistrement
Matricule : chaine de caractère [7]
nom : chaine de caractère[15]
Prénom : chaine de caractère[25]
âge : entier[3]
finenregistrement
var unetudiant :etudiant
Début
(*saisi de l’enregistrement*)
Avec unetudiant faire
Ecrire (‘entrer le matricule de l’étudiant ‘)
Lire (matricule)
Ecrire (‘entrer le nom de l’étudiant ‘)
Lire (nom)
Ecrire (‘ entrer le prénom de l’étudiant‘)
Lire(prénom)
finavec
(*affichage des résultats*)
Ecrire(matricule)
Ecrire(nom)
Ecrire(âge)

Fin
Les tableau d’enregistrements
ON PARLE ici d’une composition de type structure. Dans ce cas ; tous les éléments du
tableau sont des enregistrements.
Exemple
Ecrire l’algorithme qui permet d’afficher le contenu d’un tableau de 10 éléments sachant
qu’un élément se présente comme suit
Nom note1 note2 appréciation
KONE 13 13 ASSEZ BIEN

Algorithme tabl_enregistrement
Type eleve=enregistrement
Appréciation : chaine de caractère [15]
nom : chaine de caractère[25]
note1 : entier[3]
note2 : entier[3]
finenregistrement
var unetudiant
tabelev[1..10] :tableau de eleve
debut
(*remplissage du tableau*)
Pour i 1 jusqu’à 10 faire
Ecrire (‘entrer le nom de l’enregistrement’, i)
Lire(tabelv[i]. Nom)
Ecrire (‘entrer la note 1 de l’enregistrement ‘, i)
lire(tabelv[i].note1)
Ecrire (‘entrer la note 2 de l’enregistrement’, i)
lire(tabelv[i].note2)
Ecrire (‘ entrer l’appréciation de l’enregistrement’, i))
lire(tabelv[i].appreciation)
finpour
pour i=1 jusqu’à 10 faire
Ecrire(tabelv[i].note1)
Ecrire(tabelv[i].note2)
Ecrire(tabelv[i].appreciation)
Finpour
fin

Exercice d’application
Exercice1
Écrire l’algorithme qui permet de créer un annuaire prenant en compte 100 personnes.
Chaque personne est caractérisée par
- Nom (chaine de caractère)
- Numéro de téléphone (chaine de caractère)
- Numéro carte bancaire(numérique)
Exercice2
Ecrire un algorithme qui permet d’afficher la note d’orale (coeficient1) et la note
d’écrit(coeficient2) obtenu dans une matière pour 20 étudiants d’une classe.
NB on souhaite mémoriser le nom et le prénom de chaque élevé

Correction
Algorithme creation_annuaire
Type citoyen=enregistrement
Appréciation : chaine de caractère [15]
nom : chaine de caractère[25]
nemero telephone : chaine de caractère[20]
Numéro carte : numérique
finenregistrement
var tcitoyen [1..100] :tableau de citoyen
i :entier
Début
(*remplissage du tableau*)
Pour i 1 jusqu’à 100 faire
Ecrire (‘entrer le nom de l’enregistrement’, i)
Lire(tcitoyen [ i]. Nom)
Ecrire (‘entrer le numero de telephone de l’enregistrement ‘, i)
lire(tcitoyen [ i].numero de telephone)
Ecrire (‘entrer le numero de carte de l’enregistrement’, i)
lire(tcitoyen [ i].numerocart)

finpour
pour i 1 jusqu’à 100 faire
Ecrire(tcitoyen [ i]. Nom)
Ecrire(tcitoyen [ i].numero de telephone)
Ecrire(tcitoyen [ i].numerocart)
Finpour
fin
Algorithme creation_annuaire
Type citoyen=enregistrement
Appréciation : chaine de caractère [15]
nom : chaine de caractère[25]
nemero telephone : chaine de caractère[20]
numero carte : numerique
finenregistrement
var tcitoyen [1..100] :tableau de citoyen
i :entier
debut
(*remplissage du tableau*)
Pour i 1 jusqu’à 100 faire
Ecrire (‘entrer le nom de l’enregistrement’, i)
Lire(tcitoyen [ i]. Nom)
Ecrire (‘entrer le numero de telephone de l’enregistrement ‘, i)
lire(tcitoyen [ i].numero de telephone)
Ecrire (‘entrer le numero de carte de l’enregistrement’, i)
lire(tcitoyen [ i].numerocart)

finpour
pour i 1 jusqu’à 100 faire
Ecrire(tcitoyen [ i]. Nom)
Ecrire(tcitoyen [ i].numero de telephone)
Ecrire(tcitoyen [ i].numerocart)
Finpour
fin
Algorithme exament
Const coeforal=1
Coefecrit=2
Type étudiant=enregistrement
prenom : chaine de caractère[25]
nom : chaine de caractère[21]
note1 :reel
note2 :reel
finenregistrement
var tbetudiant [1..20] :tableau de etudiant
i :entier
moy :reel
debut
(*remplissage du tableau*)
Pour i 1 jusqu’à 20 faire
Ecrire (‘entrer le nom de l’enregistrement’, i)
Lire(tbetudiant [ i]. Nom)
Ecrire (‘entrer la note orale de l’enregistrement ‘, i)
lire(tbetudiant [ i].noteorale)
Ecrire (‘entrer la note ecrite de l’enregistrement ‘, i)
lire(tbetudiant [ i].noteecrit)

finpour
pour i 1 jusqu’à 20 faire
moy (tbetudiant [ i].noteorale*coeforal+ tbetudiant [ i].noteecrit*coefecrir)/3

Ecrire(la moyenne de l’enregistrement’i,’est’,moy)


Ecrire(tbetudiant [ i]. Nom)
ecrire ( tbetudiant [ i]. prenom[ i])
Finpour
fin

Vous aimerez peut-être aussi