0% ont trouvé ce document utile (0 vote)
132 vues16 pages

Correction TDs Algorithme Avancée 1-8

Le document présente une série d'exercices sur des algorithmes avancés, abordant des thèmes tels que les matrices, les pointeurs, et les chaînes de caractères. Chaque exercice inclut des algorithmes détaillés avec des variables et des opérations spécifiques. L'auteur, Abdessamad Chohaidi, fournit également des informations de contact et des liens vers des plateformes sociales.

Transféré par

anassfree577
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
132 vues16 pages

Correction TDs Algorithme Avancée 1-8

Le document présente une série d'exercices sur des algorithmes avancés, abordant des thèmes tels que les matrices, les pointeurs, et les chaînes de caractères. Chaque exercice inclut des algorithmes détaillés avec des variables et des opérations spécifiques. L'auteur, Abdessamad Chohaidi, fournit également des informations de contact et des liens vers des plateformes sociales.

Transféré par

anassfree577
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ALGORITHME AVANCEE

Correction de TDs : {1,2,3,4,5,6,7,8}

Fait par :

CHOHAIDI ABDESSAMAD

Email : [email protected]
Blog : https://brain-hub1.blogspot.com
Instagram : https://www.instagram.com/your_mark_style/

Année Universitaire :2022/2023

0
TD1
Exercice1 : Exercice2 :

Algorithme Triangle
Algorithme Matrice
Variables
Variables
N, i, j :Entiers
Tableau Matrice[5][6] : Réels
Début
Somme, Produit, Moyenne : Réels
Ecrire(‘’Entre le nombre de lignes’’)
i, j :Entiers Lire(N)
Début Pour i allant de 1 à N faire
Pour i allant de 0 à 4 faire Pour j allant de 1 à 2*i-1 faire
Pour j allant de 0 à 5 faire Ecrire(‘’ * ‘’)
Ecrire(‘’Veuillez saisir l’élément de tableau’’)
Lire(Matrice[5][6]) FinPour

FinPour Ecrire(‘’ /n ‘’)

FinPour FinPour

Somme 0 Fin

Produit 1

Pour i allant de 0 à 4 faire Exercice3 :


Pour j allant de 0 à 5 faire

Somme Somme + Matrice[i][j] Algorithme Occurrences


Produit Produit * Matrice[i][j] Variables Tableau T[20] :Entiers

FinPour Occ, j, i, N: :Entiers

FinPour Début

Moyenne Somme/30 Ecrire(‘’Entre une valeur’’)


Lire(N)
Ecrire(‘’La somme est :’’,Somme)
//on suppose que le tableau est déjà rempli
Ecrire(‘’Le produit est :’’, Produit)
Occ 0
Ecrire(‘’La moyenne est :’’, Moyenne)
Pour i allant de 1 à N faire
Fin
Si T[i]=N Alors

Occ Occ + 1

FinSi

FinPour

……..

CHOHAIDI Abdessamad 1
Manipulation des pointeurs
Exercice1 :
……..

P2&c
a(2+*P2) * (*P1)
*P1*P2-c
(*P2)- -
*P1*P1-2*(*P2)
P2&b
P1P2
(*P2)++
*P1*P2
P2&c
P1&a
Init.
Si Occ =0 Alors

Ecrire(‘’le nombre n’existe pas dans la table’’)

Sinon

Ecrire(‘’le nombre d’occ de’’, N ,’’est :’’, occ)

FinSi

a
3
3
3
3
3
3
3
3
3
1
1
1
Fin

b
1
1
1
1
2
2
2
2
2
2
2
2
Exercice4 :
1
1
1
0
0
4
4
4
3
3
3
3

c
&a
F0
F0
F0
F0
F0
F0
F0
F0
F0
F0
F0
F0
Algorithme Produit deux matrices

&b
F4
F4
F4
F4
F4
F4
F4
F4
F4
F4
F4
F4
Variables

&c
F8
F8
F8
F8
F8
F8
F8
F8
F8
F8
F8
F8
Tableau A[10][10] , B[10][10] , C[10][10] : Réels
I, j, k, n :Entiers
Début

P1
F8
F8
F8
F8
F8
F8
F8
F0
F0
F0
F0
//on suppose que les Matrices sont déjà remplies

P2
F8
F4
F4
F4
F4
F4
F8
F8
F8
F8

Ecrire(‘’Entre le nombre de dimension’’)


Lire(n)

*P1
1
1
1
0
0
4
4
3
3
1
1

Pour i allant de 1 à n faire

Pour j allant de 1 à n faire


*P2
1
1
1
1
2
2
4
4
3
3

C[i][j] 0
Exercice2 :
Pour k allant de 1 à n faire
Id Adresse Valeur
C[i][j] C[i][j] + A[i][k] *B[k][j]
2004
FinPour a ………
2007
8𝑡 /281𝑡+1
FinPour 2008

FinPour
Pa ……….
2011
2004
2012
Fin X ………..
2019
3.14
2020
P ……….
2023
2008
CHOHAIDI Abdessamad

2
TD2
Exercice1 : Exercice2 :

A) A)

Extrait 1 1. *Tab tab[0] valeur


2. *(Tab+0) tab[0] valeur
Erreur en 3é𝑚𝑒 ligne car j est constante 3. (*Tab)+1 tab[0]+1 valeur
4. *(Tab+1) tab[1] valeur
Extrait 2
5. Tab+1 &tab[1] Adresse
Erreur en 4é𝑚𝑒 ligne car ptr est constante 6. &Tab[0] tab Adresse
7. &Tab[i] tab + i Adresse
Extrait 3 8. Tab[i]++ (*( tab+i]++) valeur
Erreur en 4é𝑚𝑒 et 5é𝑚𝑒 ligne car j et ptr sont
constantes. B)

B) P:* Entier
1) P (Tab+1)
Id Adresse Valeur 1. La difference sera 4 octets
2. La difference sera 1 octet
a 1000 𝟐𝒕 /𝟑𝒕+𝟏
b 1004 𝟑𝒕 /𝟐𝒕+𝟏
z 1008 2 Exercice3 :
x 1012 1000
y 1016 1004
Id Adresse Nbr octet Ext 1 Ext 2 Ext 3

a 1000 4 10 10 10
2)
b 1004 4 5 5 5
Id Adresse Valeur
T[0] 1008 4 1 10 5
a 1000 2
1004 T[1] 1012 4 2 5 10
b 3
x 1008 1000 T[2] 1016 4 3 3 5
y 1012 1004 1012
P_int 1020 4 -- 1016
1016 1008
z -----

• La solution adéquate est n° 1.


• Pour Algorithme 2 ,z doit être initialisé avant
son utilisation .

CHOHAIDI Abdessamad

3
Exercice4 : Exercice5 :

Algorithme NOTE-SUP Algorithme Occurrences


Variables Variables X , nbr : Entiers
Note : *Réels ( Tableau T[6] : Entier ) {1,2,3,4,5,6}
S,M : Réels
Nsup,N,i : Entiers P : *Entier
Début
Début
Ecrire(‘Saisir la taille du tableau’’)
Ecrire(‘’Entre une valeur’’)
Lire(N)
Lire(X)
Allouer(Note,N,Réel)
nbr 0
S 0
Pour i allant de 0 à N-1 faire Pour P allant de T à T+5 faire

Ecrire(‘Saisir la note n°’’ ,i+1) Si *P = X Alors


Lire(Note[i])
nbr nbr + 1
S S + Note[i]
FinSi
FinPour
FinPour
M S/N
Si nbr =0 Alors
Nsup 0
Ecrire(‘’le nombre n’existe pas dans la table’’)
Pour i allant de 0 à N-1 faire
Sinon
Si Note[i] >= 10 alors
Ecrire(‘’le nombre d’occ de’’, X ,’’est :’’, nbr)
Nsup Nsup +1
FinSi
finSi
Fin
FinPour

Ecrire(‘La moyenne est :’’,M)

Ecrire(‘Le nombre de notes sup. est :’’,Nsup)

Libérer (Note)

Fin

CHOHAIDI Abdessamad

4
TD3
Exercice1 : Exercice3 :

Algorithme Chaine Algorithme max+position


Variables Variables
Ch1,Ch2 : Chaines X, P, i, Max : Entiers
R , C : Caractere Début
N, I : Entiers Ecrire(‘’Entre un nombre :’’)
Début Lire(X)
Ecrire(‘’Entre une chaine :’’) Max X
Lire(Ch1) i 0
Ch2 Ch1 tantQue ( X <> 0 ) faire
N Longueur (Ch1) Ecrire(‘’Entre un nombre :’’)
Pour i allant de 1 à N faire Lire(X)
Si Ch1[i] = C Alors Si X > Max Alors
Ch1[i] R Max X
FinSi P i
FinPour FinSi
Ecrire(‘’la chaine initiale :’’,Ch2) i i+1
Ecrire(‘’la chaine finale :’’,Ch1) FinTantQue
Fin Fin

Exercice2 :
Exercice4 :

Algorithme Maj-Min
Variables Algorithme Renverser
X : Caractere Variables
Début Ch : Chaine
Ecrire(‘’Entre un caractere:’’) X : Caractere
Lire(x) n ,i : Entier
Si (x >=’a’ et x <= ‘z’) Alors Début
Ecrire(‘’C’est une lettre minuscule’’) Ecrire(‘’Entre un chaine :’’)
Sinon Lire(Ch)
Si (x >= ’A’ et x <= ‘Z’) Alors n Longueur (Ch)
Ecrire(‘’C’est une lettre majuscule’’) Pour i allant de 0 à n/2 faire
Sinon X Ch[i]
Si (x >= ’0’ et x <= ‘9’) Alors Ch[i] Ch[n-i+1]
Ecrire(‘’C’est un chiffre’’) Ch[n-i+1] X
Sinon FinPour
Ecrire(‘’C’est un caractere speciale ’’) Fin
FinSi
FinSi
FinSi
Fin
CHOHAIDI Abdessamad

5
Exercice5 :
Fonction Taille (ch : Chaine) : Entier
Variable i : Entier
Début
Procedure test i 0
Variables Ch1 ,Ch2 : Chaine TantQue (ch[i] <> Null ) faire
i , N : Entiers i i+1
P : Booleen FinTantQue
Début Retourne i
Ecrire(‘’Saisir la petite chaine : ’’) FinFonction
Lire(ch2)
Ecrire(‘’Saisir la chaine : ’’)
Lire(ch1)
N Longueur (Ch2)
B)
i 0
P Vrai
TantQue i < n et P = Vrai faire
Algorithme ____
Si Ch1[i] <> Ch2[i] Alors
P Faux // Déclaration de la fonction Saisir
FinSi
// Déclaration de la fonction Taille
i i+1
FinTantQue Variables N, i , j : Entiers
Si P = vrai alors
Ecrire(‘’la premiere chaine est commance par Ch : Chaine
la deuxieme ’’) Début
Sinon
Ecrire(‘’Erreur’’) Ch Saisir(ch)
FinSi N Taille(ch)
Fin
Pour i allant de 0 à N-1 faire

Pour j allant de 0 à N-1 faire

Ecrire(ch[i])
Exercice6 :
FinPour
A)
FinPour
Fonction Saisir () : Chaine Fin
Variable ch : Chaine
Début
Ecrire(‘’Saisir une chaine : ’’)
Lire(ch)
Retourne (ch)
FinFonction

CHOHAIDI Abdessamad

6
TD4
Exercice1 : Exercice4 :
Id Adresse Valeur
Algorithme Difference-Temp
X 1000 1 Variables t1,t2, J, H, M, S,Diff : Entiers
Y 1004 𝟐𝒕 /𝟏𝟎𝟐𝒕+𝟏 //Déclaration de Procédure TransforationTemps

a 1008 𝟏𝒕 /𝟏𝟎𝟏𝒕+𝟏 Début


1012 Ecrire(‘’Entre le premire Temps ’’)
b 1004
Lire(J ,H,M,S)
Exercice2 : t1 J*86400+H*3600+M*60+S
Ecrire(‘’Entre le deuxieme Temps ’’)
Lire(J ,H,M,S)
Algorithme Table-multiplucatio t2 J*86400+H*3600+M*60+S
Variables N : Entier
Procedure Multiplication (X :Entier) Diff t1-t2
Variables i : Entier Si Diff < 0 Alors
Début Diff - Diff
Ecrire(‘’Table de ’’, X ,’’ :’’) FinSi
Pour i allant de 1 à 10 faire TransforationTemps(Diff)
Ecrire (X ,’’x’’,i, ‘’=’’,X*i, ‘’/n’’) Fin
FinPour
Fin
Début
Ecrire(‘’Entre un nombre’’) Exercice5 :
Lire(N)
Multiplication (N)
Fin Procedure Maj-Min(Ch : Entier)
Variables i, n, Maj, Min: Entiers
Début
n longueur(Ch)
Maj 0
Exercice3 :
Min 0
Pour i allant de 0 à n-1 faire
Si (Ch[i] >= ‘A’ et Ch[i] < ‘Z’ ) Alors
Procedure TransforationTemps(t :Entier)
Maj Maj +1
Variables R, J, H, M, S : Entiers
Sinon
Début
Si (Ch[i] >= ‘a’ et Ch[i] < ‘z’ ) Alors
J t div 86400
Min Min + 1
R t % 86400
FinSi
H R div 3600
FinSi
R R % 3600
FinPour
M R div 60
Ecrire(‘’Le nombre de majuscule :’’ ,Maj)
S R % 60
Ecrire(‘’Le nombre de miniscule :’’ ,Min)
Ecrire(‘’ Le temp ’’,t,’’……………..’’)
Fin
Fin

CHOHAIDI Abdessamad

7
Exercice6 : TD5
Exercice1 :
Procedure Maj-Min(tab : *Entier, n : Entier)
Variables i , Max, Min: Entiers
Début Procedure Saisir (tab : *Réel, n : Entier)
Max tab[0] Variables i : Entier
Min tab[0] Début
Pour i allant de 0 à n-1 faire
Pour i allant de 0 à n-1 faire Ecrire(‘’Entre les éléments du tableau:’’ )
Si ( tab[i] > Max ) Alors Lire(tab[i])
Max tab[i] FinPour
FinSi Fin
Si ( tab[i] < min ) Alors
Min tab[i]
FinSi
FinPour Fonction Moyenne (tab : *Réel, n : Entier) :
Ecrire(‘’Le Min:’’ ,Man) Entier
Ecrire(‘’Le Max:’’ ,Max) Variables i ,N : Entiers
Fin Début
N 0
Pour i allant de 0 à n-1 faire
Exercice7 : Si ( tab[i] >= 10 ) Alors
N N+1
FinSi
Fonction Trie (t : *Entier, n : Entier) : Entier FinPour
Variables Trier : Booleen Retourne (N)
i : Entier Fin
Début
Trier Vrai
i 0
TantQue ( i < n et Trier = Vrai ) faire Procedure Copier (tab1,tab2 : *Réel, n : Entier)
Si ( t[i] > t[i+1] ) Alors Variables i,j : Entiers
Trier faux Début
FinSi J 0
i i+1 Pour i allant de 0 à n-1 faire
Si ( tab1[i] >= 10 ) Alors
FinTantQue Tab2[j] tab1[i]
J j+1
Retourne Trier
FinSi
Fin FinPour
Fin

CHOHAIDI Abdessamad

8
Algorithme Principale-Ex1 Algorithme Principale-Ex2
//Déclaration de Procédure Saisir //Déclaration de Procédure Trier
//Déclaration de Procédure Copier Variables tab : * Entier
//Déclaration de fonction Moyenne
n : Entier
Variables tab1,tab2 : *Réel
Début
n1,n2 : Entiers
Ecrire(‘’Entre la taille du tableau : ’’ )
Début
Lire(n)
Ecrire(‘’Entre la taille du tableau : ’’ )
Allouer (tab, n, Entier)
Lire(n1)
Pour i allant de 0 à n-1 faire
Allouer (tab1, n1, Réel)
Ecrire(‘’Saisir T[’’,i,’’]=’’)
Saisir(tab1,n1)
Lire(tab[i])
n2 Moyenne (tab1,n1)
FinPour
Allouer (tab2, n2, Réel)
Pour i allant de 0 à n-1 faire
Copier(tab1,tab2,n1)
Ecrire(Tab[i])
Libérer(tab1)
FinPour
Libérer(tab2)
Trier(tab,n)
Fin
Pour i allant de 0 à n-1 faire
Ecrire(Tab[i])
FinPour
Exercice2 :
Libérer(tab)
Fin
Procedure Trier (tab : * Entier, n : Entier)
Variables i,j,Max,Temp,p : Entiers
Début Exercice3 :
Pour i allant de 0 à n-1 faire
Max tab[i]
Fonction Puissance ( X, n : Entiers) : Entier
Pour j allant de i à n-1 faire
Début
Si ( tab[j] >= Max ) Alors
Si ( n = 0 ) Alors
max Tab[j]
Retourne (1)
p j
Sinon
FinSi
Retourne ( X * Puissance(X ,n-1) )
FinPour
FinSi
Temp tab[i]
tab[i] tab[p]
Fin
tab[p] Temp
FinPour
Pour i allant de 0 à n-1 faire Exercice4 :
Ecrire(Tab[i])
FinPour Fonction Somme ( n : Entiers) : Entier
Début
Fin Si ( n = 1 ) Alors
Retourne (1)
Sinon
Retourne ( n + Somme(n-1) )
FinSi
Fin
CHOHAIDI Abdessamad

9
Exercice5 :

Fonction SommeCarre ( n : Entiers) : Entier Procedure Moyenne-Por(tab : *Etudiant,


Début n : Entier)
Si ( n = 1 ) Alors Variables i ,Sup : Entiers
Retourne (1) Moy,Pr,Somme : Réel
Sinon Début
Retourne ( n * n + Somme(n-1) ) Somme 0
FinSi Sup 0
Fin Pour i allant de 0 à n-1 faire
Somme Somme + tab[i].Moyenne
Si ( tab[i].Moyenne >= 10 ) Alors
Sup Sup+1
TD6 FinSi
FinPour
Exercice1 : Moy Somme/n
Pr (Sup/n)*100
Ecrire(‘’la moyenne est :’’,Moy)
Type Structure Etudiant
Ecrire(‘’le pourcentage est : ’’,pr)
Numero : Entier
Fin
Code : Entier
Prenom : Chaine
Nom : Chaine
Moyenne : Réel
Observation : Chaine
FinStruct
Procedure Modif-Moy-Obs(tab : *Etudiant,
n : Entier,Num : Entier)
Variables i : Entier
Moy : Réel
Procedure Saisir (tab : *Etudiant, n : Entier) Obser : Chaine
Variables i : Entier Début
Début Pour i allant de 0 à n-1 faire
Pour i allant de 0 à n-1 faire Si ( tab[i].Numero = Num) Alors
Ecrire(‘’Entre le Numéro d’etudiant :’’ ) Ecrire(‘’Entre la n. moyenne :’’)
Lire(tab[i].Numero) Lire(Moy)
Ecrire(‘’Entre le Code d’etudiant :’’ ) tab[i].moyenne Moy
Lire(tab[i].Code) Ecrire(‘’Entre la n. observation :’’)
Ecrire(‘’Entre le Prenom d’etudiant :’’ ) Lire(Obser)
Lire(tab[i].Prenom) tab[i].Observation Obser
Ecrire(‘’Entre le Nom d’etudiant :’’ ) FinSi
Lire(tab[i].Nom) FinPour
Ecrire(‘’Entre la Moyenne d’etudiant :’’ ) Fin
Lire(tab[i].Moyenne)
Ecrire(‘’Entre l’Observation d’etudiant :’’ )
Lire(tab[i].Observation)
FinPour
Fin

CHOHAIDI Abdessamad

10
Fonction Recherche ( tab : *Etudiant, n : Fonction Saisir-Doctorant ( ) : Doctorant
Entier,Cod : Entier) : Etudiant Variables Doc : Doctorant
Variables i : Entiersx Début
Etd : Etudiant Ecrire(‘’Entre le nom :’’)
P : Booléen Lire(Doc.Nom)
Début Ecrire(‘’Entre La date : jour :’’)
P Vrai Lire(Doc.Date-insc.Jour )
i 0 Ecrire(‘’Entre la date : moi ’’)
Etd Null Lire(Doc.Date-insc.Moi )
TantQue( i < n ET P=Vrai) faire Ecrire(‘’Entre la date : Année :’’)
Si (tab[i].Code = Cod) Alors Lire(Doc.Date-insc.Année)
Etd tab[i] Ecrire(‘’Entre le Sujet :’’)
P Faux Lire(Doc.Sujet)
FinSi
i++ Retourne ( Doc)
FinTantQue Fin

Retourne(Etd)
Fin
Procédure Saisir-Equipe (equipe : *T-equipe)
Variables i : Entier
Exercice3 : Début
Ecrire(‘’Entre le nom :’’)
Type Structure Date Lire(*equie.Nom)
Jour : Entier Pour i allant de 0 à 4 faire
Moi : Entier *equipe.doctorants[i] Saisir-Doctorant ()
Année : Entier FinPour
FinStruct Ecrire(‘’Entre Le domaine :’’)
Lire(*equipe.Domaine)
Ecrire(‘’Entre le nombre article’’)
Lire(*equipe. Nbr-Article )
Type Structure Doctorant
Nom : Chaine
Fin
Date-insc : Date
Sujet : Chaine
FinStruct
Procédure Remplir-Equipes (equipe : *T-equipe)
Variables i : Entier
Début
Type Structure T-equipe Pour i allant de 0 à 9 faire
Nom : Chaine Saisir-Equipe(&equipe[i])
Tableau doctorants [5] : Doctorant FinPour
Domaine : Chaine
Nbr-Article : Entier Fin
FinStruct

CHOHAIDI Abdessamad

11
Fonction Retourne-Equipes (equipe : *T- TD7
equipe, nom : Chaine ) : T-equipe
Variables i : Entier Exercice1 :
Début
Pour i allant de 0 à 9 faire
Si *(equipe+i).Nom = nom Alors Algorithme Remplir-Fichier
Retourne(*(equipe+i)) Type Structure Article
FinSi Code : Chaine
FinPour Désignation : Chaine
Retourne NULL Quantité : Entier
Fin PV : Réel
PA : Réel
FinStruct
Variables i ,n : Entier
Art : Article
F1 : Fichier
Début
Ecrire(‘’Entre Le nombre d’article : ’’)
Lire(n)
F1 Ouvrire(‘’article.csv’’,Ecriture)
Pour i allant de 0 à n-1 faire
Ecrire(‘’Entre Le Code: ’’)
Lire(Art.Code)
Ecrire(‘’Entre La Désignation : ’’)
Lire(Art.Désignation)
Ecrire(‘’Entre La Quantité: ’’)
Lire(Art.Quantité)
Ecrire(‘’Entre Le PV: ’’)
Lire(Art.PV)
Ecrire(‘’Entre Le PA :’’)
Lire(Art.PA)
Ecrire_Fichier(F1 ,Art)
FinPour
Fermer(F1)
Fin

CHOHAIDI Abdessamad

12
Exercice2 :
Algorithme Affichier-Fichier
Type Structure Article
Code : Chaine Type Structure Adresse
Désignation : Chaine Postale : Entier
Quantité : Entier Numéro : Entier
PV : Réel FinStruct
PA : Réel
FinStruct Structure Hotel
Variables i ,n : Entier Code : Entier
Art : Article Nom : Chaine
Début Ville : Chaine
Ouvrire(‘’article.csv’’,2,Lecture) Disponibilité : Booléen
i 0 AdreesseH : Adresse
TantQue Non FF (2) faire FinStruct
Lire_Fichier(2 ,Art)
Ecrire(‘’ Le Code: ’’, Art.Code)
Ecrire(‘’ La Désignation : ’’, Art.Désignation)
Ecrire(‘’ La Quantité: ’’, Art.Quantité) Procedure Hotel-Disp (Nom-fich : Chaine)
Ecrire(‘’ Le PV: ’’, Art.PV) Variables Hot : Hotel
Ecrire(‘’ Le PA :’’, Art.PA) NbrHotel : Entier
i i+1 Début
FinTantQue NbrHotel 0
Fermer(2) Ouvrire(‘’Nom-fich’’,2,Lecture)
Fin TantQue Non FF (2) faire
Lire_Fichier(2 ,Hot)
Si Hot.Disponibilité = Vrai Alors
NbrHotel++
Fonction Trouve-PV (Nom-fich : Chaine,
Ecrire(Hot.Nom,‘’ est disponible \n’’)
codeArt: Chaine ) : Réel
FinSi
Variables Art : Article
FinTantQue
State : Booléen
Ecrire(‘’ Le nombre de Hotel disponible : ’’,
Début
NbrHotel )
State Faux
Fermer(2)
Ouvrire(‘’Nom-fich’’,3,Lecture)
Fin
TantQue Non FF (3) ET State = Faux faire
Lire_Fichier(2 ,Art)
Si Art.Code = codeArt Alors
State Vrai
FinSi
FinTantQue
Si State = Vrai Alors
Fermer(3)
Retourne Art.PV
Sinon
Fermer(3)
Retourne 0
Fin

CHOHAIDI Abdessamad

13
Fonction Hotel-Disp (Nom-fich : Chaine, Procédure SaisieGrpEtd (Nom-fich : Chaine ,
code : Entier) : Booleen N :Entier )
Variables Hot : Hotel Variables i : entier
Début Début
Ouvrire(‘’Nom-fich’’,4,Lecture) Ouvrire(‘’Nom-fich’’,5,Ecriture)
TantQue Non FF (4) faire Pour i allant de 0 à N-1 faire
Lire_Fichier(4 ,Hot) Ecrire_Fichier(5, SaisieEtd() )
Si Hot.Code = code Alors FinPour
Fermer(4) Fermer(5)
Retourne Hot.Disponibilité Fin
FinSi
FinTantQue
Fermer(4) Fonction Recherche (Nom-fich : Chaine,
Retourne Faux num : Entier) : Booleen
Fin Variables Td : Teld
Début
Ouvrire(‘’Nom-fich’’,1,Lecture)
TantQue Non FF (1) faire
Exercice3 : Lire_Fichier(1 ,Td)
Si Td.Numéro = num Alors
Fermer(1)
Retourne Vrai
Fonction SaisieEtd () : Teld FinSi
Variables Etd : Teld FinTantQue
i : entier Fermer(1)
Début Retourne Faux
Ecrire(‘’Entre le nom :’’) Fin
Lire(Etd.Nom)
Ecrire(‘’Entre Le numéro :’’)
Lire(Etd.Numéro )
Fonction Moyenne (Nom-fich : Chaine,
Pour i allant de 0 à 4 faire
n : Entier) : Réel
Ecrire(‘’Entre la note :’’,i+1)
Variables Etd : Teld
Lire(Etd.Notes[i])
Somme : Réel
FinPour
i : Entier
Ecrire(‘’Entre la Moyenne :’’)
Début
Lire(Etd.Moyenne)
Somme 0
Ouvrire(‘’Nom-fich’’,2,Lecture)
Retourne ( Etd)
Pour i allant de 0 à n-1 faire
Fin
Lire_Fichier(2 ,Etd)
Somme Somme + Etd.Moyenne
FinPour
Fermer(2)

Retourne Somme/n
Fin

CHOHAIDI Abdessamad

14
TD8
1-Recherche séquentielle :

Tableau Trié Tableau Non Trié


Elément ne trouve pas Elément ne trouve pas
• Complexité au pire • Complexité au pire
• (Parcour Complet) • (Parcour Complet)
• n=1000 Comparaisons • n=1000 Comparaisons

Element Trouve Element Trouve


• Complexité Moyenne • Complexité Moyenne
• (Parcour Partiel) • (Parcour Partiel)
• n/2=500 Comparaisons • n/2=500 Comparaisons

Algorithme en O (n)

2-Recherche dichotomique :
𝒏 = 𝟖 = 𝟐𝟑 Tableau du 8 éléments 3 Comparaison

Itération1

Itération2

Itération3

Donc pour un Tableau de 𝒏 = 1000 éléments tenviran 1024 = 210 10 Comparaisons

Algorithme en O (𝒍𝒐𝒈𝟐 (𝒏))

15

Vous aimerez peut-être aussi