8/8/2019 TDS et exercices
1/43
Exercices AlgorithmePour les solutions et plus dexercices
visite le site suivant :
http://forall3.tk
http://forall3.tk/http://forall3.tk/8/8/2019 TDS et exercices
2/43
Exercices simples
Exercice 1 :
Ecrire un algorithme dune action qui change deux variables A et B
Action : Echange
Var : A, B, C : rels
Dbut : Ecrire ( Saisissez deux variables )
Lire (A, B)
C
8/8/2019 TDS et exercices
3/43
1 Exercice en utilisant les structures SIALORSSINON et SELONQUE
Exercice 3 :
Ecrire une action qui fournit les flicitations ou lajournement dun lve suivant
sa note en utilisant Si-alors-sinon.
Action : Jury
Var : note : rel
Dbut : lire (note)
Si note
8/8/2019 TDS et exercices
4/43
Et
Action : Valeur_absolue2
Var : A, B rels
Dbut : Ecrire ( saisissez 2 rels )Lire (A, B)
Ecrire ( les valeurs de A et B sont : , valAbs(A), et , valAbs(B))
Ecrire 5 :
Faire un programme qui donne le volume dun cylindre en faisant appel une
fonction aire dun cercle.
Fonction : aire_cercle (rayon : rel) : rel
Var : Aire : rel
Const : PI=3.14
Dbut : Aire
8/8/2019 TDS et exercices
5/43
Action : seconddegr
Var : a, b, c, delta
Dbut : Ecrire ( saisissez les valeurs a, b et c de lquation ax+bx+c=0 : )
Lire (a, b, c)
Si a=0 alors crire ( quation du premier degr )Sinon delta0 alors crire ( les solutions de lquation sont , (-b-sqrt
(delta))/ (2*a), et , (-b+sqrt (delta))/ (2*a))
Sinon
Dbut
Si d=0 alors crire (-b/ (2a))
Sinon crire ( pas de solutions relles )
Fin
Fin
Fin
Ecrire le mme algorithme avec des selon-que :
Action : seconddegr
Var : a, b, c, delta
Dbut : Ecrire (saisissez les valeurs de a, b et c de lquation ax+bx+c)
Lire (a, b, c)
Si a=0 alors crire ( rsoudre permier degr )Sinon dbut
Delta 0 : crire ((-b-sqrt (delta))/ (2*a), (-b+sqrt (delta))/ (2*a))
Delta = 0 : crire ((-b/ (2a))
Sinon crire ( pas de solution relle )
Fin selon
Fin
Exercice 8
Ecrire un algorithme qui donne la dure de vol en heure minute connaissant
lheure de dpart et lheure darrive.
1) on considre que le dpart et larrive ont lieu mme jour
2) idem mais sans faire les conversions en minutes
3) on suppose que la dure de vol est infrieure 24 heures mais que
larrive peut avoir lieu le lendemain.
5
8/8/2019 TDS et exercices
6/43
1)
Action : DureVol1
Var : h1, h2, m1, m2, hr, mr : entiers
Dbut : Ecrire ( entrer horaire de dpart et darrive )
Lire (h1, m1, h2, m2)mr
8/8/2019 TDS et exercices
7/43
Ecrire (hr, mr)
Sinon
hr c alors max3
8/8/2019 TDS et exercices
8/43
Fonction : max3 (a, b, c : entier) : entier :
Var : max3 : entier
Dbut : max3
8/8/2019 TDS et exercices
9/43
Dbut : Ecrire ( avez-vous le permis ? (0/1) )
Lire (permis)
Ecrire ( avez vous une voiture ? (0/1) )
Lire (voiture)
Si non permis ou voiture alorsSi voiture alors crire ( conduisez moi la gare )
Sinon crire ( jai une voiture pas chre )
Sinon
Si voiture alors crire ( vous tes hors la loi )
Sinon crire ( vive le vlo )
fin
1) Ecrire larbre des conditionnelles
2) Corriger les tests pour que tous les cas soient couvert de manire
cohrente
3) Faites correspondre les actions et les tests correctement
4) Si possible, crire cet algorithme avec des selon que.
Permis et voiture permis voiture Ni permis ni
voiture
gare Vive le vlo Conduisez moi la
gare
Voiture pas chre
Conduisez moi la
gare
Voiture pas chre Hors la loi Vive le vlo
En clair, selon lalgorithme propos : si lon a le permis et la voiture on peut
amener quelquun la gare ; si lon a que le permis on dit vive le vlo, si lon
na que la voiture on conduit aussi la gare, enfin si lon a ni permis ni voiture
alors on achte une voiture pas chre. Le cas hors la loi nest pas voqu et les
correspondance sont inexactes. Il faut videmment avoir :
- permis et voiture : conduire la gare
- permis : jai une voiture pas chre- voiture : vous tes hors la loi
- ni voiture, ni permis : vive le vlo
Correction de lalgorithme propos :Action : Permis_voiture
Var : permis, voiture : boolen
Dbut : Ecrire ( avez-vous le permis ? (0/1) )
Lire (permis)
Ecrire ( avez vous une voiture ? (0/1) )Lire (voiture)
9
8/8/2019 TDS et exercices
10/43
Si permis ou voiture alors
Si voiture alors crire ( conduisez moi la gare )
Sinon crire ( jai une voiture pas chre )
Sinon
Si voiture alors crire ( vous tes hors la loi )Sinon crire ( vive le vlo )
On peut effectivement crire cet algorithme avec des selon-que :Action : permis_voiture
Var : permis voiture : rel
Dbut : Ecrire ( avez-vous le permis ? (0/1) )
Lire (permis)
Ecrire ( avez vous une voiture ? (0/1) )
Lire (voiture)
Selon que :
Permis et voiture : crire ( conduisez moi la gare )
Permis et non voiture : crire ( jai une voiture pas chre )
Non permis et voiture : ( vous tes hors la loi )
Non permis et non voiture : ( vive le vlo )
Fin
Exercice 12Ecrire un programme calculatrice permettant la saisie de deux entiers et une
opration boolen- ( +, - , / , x ) et affichant le rsultat. Donner avant cela les
spcifications, la solution en langage naturel, les structures de donnes.
Spcifications :
Donnes : 2 oprandes et un oprateur
Rsultat : rsultat de lopration choisie
Solution en langage naturel : Saisie des donnes, envisager tous les cas : +, - ,x, /. Attention la division par zro qui est impossible
Structure de donnes : 2 oprandes : des entiers
Un oprateur boolen : +, -, * , /
Algorithme :
Action : calcul
Var : a, b : rel op : boolenDbutEcrire ( saisissez le premier entier )
10
8/8/2019 TDS et exercices
11/43
Lire (a)
Ecrire ( saisissez loprateur )
Lire (op)
Ecrire ( saisissez la deuxime variable )
Lire (b)Selon que :
Op = + : Ecrire (a+b)
Op = * : Ecrire (a*b)
Op = / : Si b= 0 alors crire ( division impossible )
Sinon crire (a/b)
Op = - : Ecrire (a-b)
Fin selon
Fin
11
8/8/2019 TDS et exercices
12/43
2 exercices en utilisant les structures rptitives TANT QUE et
REPETERJUSQU'A et POUR
Exercice 13
Ecrire le programme qui affiche la somme dune suite dentiers saisie par
lutilisateur se terminant par zro.
Exemple : lutilisateur entre 1, puis 5, puis 2, puis 0 : affiche : 8
1) donner les spcifications
2) donner la solution en langage naturel
3) indiquer les structures de donnes
4) faites lalgorithme
Spcifications :
- donnes : suite de nombre entiers se terminant par zro
- rsultat : la somme de ces entiers
Solution en langage naturel : tant que lentier saisi nest pas zro, lajouter la
somme partielle et saisir lentier suivant.
Structure de donnes :
- entier : entier courant (saisi)
- entier : somme partielle
Algorithme :
Action : Somme Suite
Var : a, s : entiers
Dbut s
8/8/2019 TDS et exercices
13/43
Ecrire un algorithme qui affiche la moyenne dune suite dentiers se terminant
par zro (le zro nentrant pas en compte dans la moyenne : il est juste la pour
indiquer la fin de saisie)
1) donner les spcifications
2) donner la solution en langage naturel3) indiquer les structures de donnes
4) faites lalgorithme
Spcification :
- donnes : suite dentier se terminant par zro
- rsultat : la moyenne de ces entiers (zro exclu)
Solution en langage naturel :
Tant que lentier saisi diffrent de 0 alors ajouter lentier aux entiers prcdents
et faire la moyenne (cest dire diviser par le nombre dentiers
Structures de donnes :
- entier : entier saisi
- entier : rsultat moyenne
Algorithme :
Action : Moyenne
Var : n, moy, s : entiers
Dbut : moy
8/8/2019 TDS et exercices
14/43
4) faites lalgorithme
Spcifications :
- donnes : suite dentier se terminant par zro
- rsultat : vrai si deux entiers conscutifs, faux sinon.
Solution en langage naturel : comparer lentier courant et le prcdent. Et tant
que ils sont diffrents, on continu la lecture et tant que lentier courant est
diffrent de zro.
Structures de donnes :
- entier : nombre courant
- entier : nombre prcdent
Algorithme :
Action : Entiers conscutifs
Var : nc, np : entier
{on dsignera par nc le nombre courant et np le nombre prcdent}
DbutLire (nc)
np
8/8/2019 TDS et exercices
15/43
jusqu' (nc=np ou nc=0)
Si nc=0 alors crire ( oui )
Sinon crire ( non )
Fin
Exercice 16
Ecrire un algorithme qui affiche le maximum dune suite se terminant par zro
1) donner les spcifications
2) donner la solution en langage naturel
3) indiquer les structures de donnes
4) faites lalgorithme
Spcifications :
- donnes : une suite dentiers se terminant par zro
- rsultat : un entier : le maximum de cette suite
Solution en langage naturel : comparer lentier courant avec le maximum et tant
que nc
8/8/2019 TDS et exercices
16/43
Le premier utilisateur saisi un entier que le second doit deviner. Pour cela, il a le
droit autant de tentatives quil souhaite. A chaque chec, le programme lui
indique si lentier cherch est plus grand ou plus petit que sa proposition.
Un score indiquant le nombre de coups jous est mis jour et affich lorsque
lentier est trouv.1) donner les spcifications
2) donner la solution en langage naturel
3) indiquer les structures de donnes
4) faites lalgorithme
Spcifications :
- donnes : nombre entier
- rsultat : nombre de tentatives
Solution en langage naturel : saisir un nombre entier par le premier joueur. Tant
que le joueur 2 n saisie, dire si n est > ou < nombre cherch, incrmenter de 1
et continuer. Quand le rsultat est trouv, afficher le nombre de tentatives.
Structures de donnes :
- a : nombre saisi par lutilisateur 1
- n : nombre saisi par lutilisateur 2
- t : tentatives
Algorithme :
Action : devinette
Var : a, n, t : entiers
Dbut : Lire (a)
Lire (n)
t=0
Tant que a n faire
Dbut
Si n>a alors crire ( nombre cherch plus petit )
Sinon crire ( nombre cherch plus grand )t
8/8/2019 TDS et exercices
17/43
Ecrire un algorithme permettant de calculer le PGCD de deux nombres en
utilisant lastuce suivante : soustraite le plus petit des deux entiers du plus grand
jusqu' ce quils soient gaux
Ecrire le mme programme en utilisant lalgorithme dEuclide : dune part en
utilisant uniquement les structures TANT QUE, dautre part en utilisantuniquement les structures REPETER JUSQU'A.
Action : PGCD
Var : a, b entiers
Lire (a, b)
Dbut
a = ValAbs (a)
b = ValAbs (b)
Rpter
Selon que
a>b a
8/8/2019 TDS et exercices
18/43
jusqu' r=0
crire (b)
fin
Exercice 19
Ecrire avec la commande POUR un algorithme qui permet de faire la somme
dune suite de nombre entre par lutilisateur. Faire la mme chose en comptant
par pas de 1.
Action :somme_nombre
Var : k, nb, n, somme : entier
Dbut :
Somme
8/8/2019 TDS et exercices
19/43
Var : k, nb : entiers
Dbut
Lire (nb)
Pour k de 1 nb faire
Ecrire (k)Fin
Action : Bidon
Var : k, nb : entier
Dbut
Lire (nb)
K0 alors
Rpter crire (k)
Knb
Fin
Exercice 21
Ecrire une fonction qui fait la somme des entiers compris dans un intervalle.
Fonction : intervalle (a, b ; entiers) : entier
Var : k, somme : entierDbut
Somme
8/8/2019 TDS et exercices
20/43
20
8/8/2019 TDS et exercices
21/43
3 exercices sur les Tableaux
Exercice 23
Ecrire une action qui permette la saisie dun tableau croissant : si T[k]T[k+1] on redemande la saisie dun nombre plus grand
Const : MAX=100
Ttype : Ttab=tableau [max]dentier
Action : saisie_tableau_croissantVar : tab : Ttab, i : entier
Dbut
Lire (Tab[0])
Pour i de 1 MAX-1 faire
Rpter lire (tab[i])
jusqu' tab[i] tab[i-1]
Fin
Exercice 24
Ecrire une fonction retournant le maximum dun tableau de taille n.
Faire le mme algorithme mais qui ne retourne que lindice de la case du tableau
contenant le maximum du tableau.
Fonction : maximum (tab : Tableau dentier n :entier) : entier
Var : max, i : entiers
Dbut
Max max alors max
8/8/2019 TDS et exercices
22/43
Pour i de 1 n-1 faire
Si tab[i]>max alors
max
8/8/2019 TDS et exercices
23/43
4 Exercices gnraux sur les actions paramtres
Exercice 25
Ecrire une fonction Afficher qui affiche a lcran le contenu dun tableau. Ecrire
aussi laction principale qui permettra de comprendre comment fonctionne cette
fonction afficher.
{Ne pas oublier dindiquer les paramtres du tableau !}
Const : MAX : entier=100Type : Ttab : Tableau [MAX] dentier
Fonction Afficher (tab : tableau dentiers, n entiers)
Var : i entier
Dbut :
Pour i de 0 n-1
Ecrire (tab[i], )
Fin
Action principale
Var t1 t2 : Ttab
Dbut
T1[0]
8/8/2019 TDS et exercices
24/43
Ecrire une fonction qui permet la saisie dun tableau. Faite aussi laction
principale qui permettra daccder a cette fonction saisie mais aussi dafficher
dans un second temps le rsultat
Fonction : saisie (Stab : tableau dentiers, N :entier)Var : i entier
Dbut :
Pour i de 0 n-1 faire
Lire (tab[i])
Fin
Action principale
Var : tabl : Ttab
Dbut
Saisie (toto, 10)
Afficher (toto, 10)
Fin
Ou afficher est la fonction de lexercice 1.
Exercice 27
Ecrire une fonction qui calcule le nombre dinversion dun tableau de taille n
(cest dire itab[j] pour tout i et j.)
Fonction inversion (tab : tableau dentiers, N entier)
Var : j, C, i entiers
Dbut
Ctab[j] alors C
8/8/2019 TDS et exercices
25/43
Aide : stocker les lments dans un tableau toto avec toto[0]=1. Puis on utilise
une boucle imbrique pour calculer toto[n+1]=somme k=0 k=n de
toto[k]*toto[n-k].
Action Suite (E : d :entier)Var : toto : Ttab, i, k : entiers
Dbut :
Toto[0]
8/8/2019 TDS et exercices
26/43
Action : inverser (ES : tab : tableau dentiers, E : n : entier)
Var : i :entier
DbutPour i de 0 n/2 1 faire
Echanger (i, n-1-in tab, n)
{ou Echanger est la deuxime action de cet exercice}
Fin
26
8/8/2019 TDS et exercices
27/43
5 Entits : types structurs
Explications 1 :
Les types structurs sont :
- les tableaux (voir les exercices prcdents)
- les entits (ou lon regroupe plusieurs types sous un mme objet)
Exemple :
Etudiant (nom, groupe, note)
Type : Etd : entit (
Nom : chane de caractre ;Groupe : caractre ;
Note : entier ;
) ;
Pour faire appel ce type dentit on fera dans la fonction :
Var : Tetd toto ;
Toto.nom=alex
Toto.groupe=A
Toto.note=15
Ecrire ( ltudiant , toto.nom, du groupe , toto.groupe, a eu , toto.note)
Exercice 30
Proposer une entit de donnes pour stocker un point dans le plan
Type : Tpoint=Entit (
abs : entier ;
ord : entier ;
)
Exercice 31
Ecrire les en-ttes des fonctions/actions suivantes :
- saisie dun point
- affichage dun point
- calcul de la distance entre deux points
- projection dun point sur laxe des abscisses
Ecrire ensuite les algorithmes de ces fonctions.
27
8/8/2019 TDS et exercices
28/43
8/8/2019 TDS et exercices
29/43
Tab : tab[MAX] dentier
Taille : entier
)
Ainsi, dans une fonction, on aura :TtabVar : toto
Toto.tab[15]
8/8/2019 TDS et exercices
30/43
Ecrire un algorithme qui permet de rentrer un tableau de taille variable de Tpoint
(voir exercice 30 et 31). Pour cela, il faudra au pralable crer un nouveau type
dentit.
Const MAX=100Type TtabVarPt=entit (tab : tableau[MAX] de Tpoint, taille : entier)
Action : SaisieTtabVarTpoint (S : tabvarPt : TtabVarTpoint)
Var : rponse : chane de caractre
Dbut
Tabvar.taille
8/8/2019 TDS et exercices
31/43
Ecrire ( llment le plus au nord est , AfficherTpoint(toto.tab[n])
{ou AfficherTpoint est la fonction de
lexercice 31}
Ecrire( llment le plus louest est , AfficherTpoint(toto.tab[o])
Fin
Exercice 35
Ecrire un algorithme qui dtermine la distance maximale entre deux points dun
tableau de Tpoint
Action DistMax (E : tvp : TtabVarPt)
Var : i, j : entiers ; Dmax, dist : reels
Dbut
Dmax
8/8/2019 TDS et exercices
32/43
6 Tableaux tris et dcoupages fonctionnels
Exercice 36
Le but de lexercice est de crer une action de saisie de tableau, qui trie, au fur et
mesure des entres, les valeurs par ordre croissant dans le tableau.
Exemple :
Soit le tableau suivant :
0 1 2 3
2 5 7 9
Comment insrer 6 dans le tableau tri (en supposant quil ny a pas de doublon
dans le tableau) ?- je cherche la bonne position (ici : la case dindice 2)
- dcalage droite si ncessaire :
0 1 2 3 4
2 5 7 7 9
- Insertion de llment
0 1 2 3 4
2 5 6 7 9
On a donc ici le dcoupage fonctionnel :
On va donc crer une fonction IndiceEltSup qui cherche la bonne position, une
action Insrer qui inclue le nombre entr dans la bonne case du tableau, et une
action DcalageDroite qui dcale comme dans lexemple toutes les cases dun
rang vers la droite si ncessaire.
Const MAX=100
Type TtabVar = entit (tab : tableau[MAX] dentiers, taille : entier)
Fonction IndiceEltSup (tvt : TtabVar, entier, n : entier) : entier
Var : i : entier
Dbut
Tant que (i tvt.taille ET tvt.tab[i]
8/8/2019 TDS et exercices
33/43
Pour j de tvt.taille 1 i par pas de 1 faire
Tvt.tab[j+1]
8/8/2019 TDS et exercices
34/43
Bsupn alors Bsup
8/8/2019 TDS et exercices
35/43
7 Les Chanes
On va maintenant faire des exercices sur les chanes de caractres.
En pratique on pourra dfinir une chane de caractres de deux manires :
Const MAX entier = 100
Type Tchaine = entit ( tab : tableau[MAX] de caractres
Longueur : entier)
Ou bien :
Const MAX entier = 100
Type Tchaine = tableau [MAX] de caractres
{Avec la sentinelle END}
Exercice 39
Faire un algorithme qui dtermine la longueur dune chane de caractres.
Faire ensuite de deux manires diffrentes, une fonction qui permet de copier la
chane dune source dans une chane destination.
Fonction Longueur (chaine : Tchaine) : entier
Var i : entier
Dbut
i0
Tant que chaine[ i ] != END faire i i+1
Retourner (i)
Fin
Fonction de copie : premire mthode :Fonction Copier (E : src : Tchaine, S : dest : Tchaine)
Var i, Lsrc : entier
Dbut
LsrcLongueur(src)
Pour i de 0 Lsrc faire dest[ i ]src [ i ]
Fin
Fonction de copie : deuxime mthode : plus optimise :Fonction CopieOptimise (E : src : Tchaine, S : dest : Tchaine)
35
8/8/2019 TDS et exercices
36/43
Var i : entier
Dbut
i0
tant que src[ i ] != END faire
dest [ i ] src [ i ]i i+1
dest [ i ] src [ i] {pour copier en fin de fichier la sentinelle}
Fin
Exercice 40
Faire une fonction de concatnation (ajoute la fin de la premire chane de
caractres le contenu de la deuxime chane de caractres.)
Faire une fonction de Comparaison qui compare deux chanes de caractressuivant lordre lexicographique.
Faire une fonction qui efface une partie de la chane en spcifiant une longueur
deffacement et un indice partir duquel il faut effacer.
Action Concatnation (ES : src1 : Tchaine, E : src2 : Tchaine)
Var i, Lsrc1 : entiers
Dbut
i0
LsrcLongueur (src1)Tant que src2 [ i ] != END
Src1[ Lsrc1+i] src2[ i ]
ii+1
src1[Lsrc1+i]src2[ i ]
Fin
Pour faire la fonction comparer, il faut dabord crer une fonction qui compare
les caractres :Fonction ComparerChar (char a, char b)
Dbut
Si ab retourner (1)
Fin
On peut maintenant faire la fonction de comparaison de chanes de caractresqui utilisera la fonction ComparerChar :Fonction Comparer (E : src1 : Tchaine, E : src2 : Tchaine)
36
8/8/2019 TDS et exercices
37/43
Var i, L1, L2, cmp : entiers
Dbut
L1Longueur (src1)
L2Longueur (src2)
I0Tant que (i
8/8/2019 TDS et exercices
38/43
Faire une action qui changent toutes les occurrences dune chane dans une
chane de caractres par une autre chane tampon.
Action MultidcalageDroite (ES : src : Tchaine, E : indice : entier, E : lg : entier)
Action Insrer (ES : src : Tchaine, E : indice : entier, E : motif : Tchaine)
Var i, Lsrc, Lmotif : entier
Dbut
LmotifLongueur(motif)
MultidcalageDroite (src, indice, Lmotif)
Pour i de 0 Lmotif-1 faire
src[indice+i]motif[ i ]
Fin
Action Remplacer (ES : src : Tchaine, E indice : entier, E lg : entier, E : motif :
Tchaine)
Dbut
Effacer (src, indice, lg)
Insrer (src, indice, motif)
Fin
Fonction Recherche (src : Tchaine, motif : Tchaine, Binf : entier)
Var : i, Lsrc, Lmotif : entiers
Tampon : Tchaine
Dbut
LsrcLongueur (src)
LmotifLongueur(motif)
iBinf
Extraire (src, i, Lmotif, tampon)
Tant que (i
8/8/2019 TDS et exercices
39/43
LnouveauLongueur (nouveau)
Indice Recherche(src, ancien, i)
Tant que indice -1 faire
Remplacer (src, indice, Lancien, nouveau)
iindice+LnouveauindiceRecherche(src, ancien, i)
Fin
39
8/8/2019 TDS et exercices
40/43
8 Les fichiers
Rappelons tout dabord comment on manipule les fichiers en ASD.
On ne manipule que les identificateurs de fichiers. On ne se soucie donc pas des
fichiers sources.
Pour ouvrir un fichier :OuvrirFichier (IdFic, ModeOuverture)
Avec ModeOuverture = lecture ou criture ou rajout.
Pour fermer un fichierFermerFichier (IdFic)
Pour lire un fichier
LireFichier (IdFic, lment) cela correspond Lire(n) cin>>n
Pour crire un fichier
EcrireFichier (IdFic, lment) cela correspond Ecrire(n) cout
8/8/2019 TDS et exercices
41/43
Fin
Action EntiersPairsFichier (E : f1 : fichier dentiers, ES : f2 : fichier dentiers)
Var n : entier
DbutOuvrirFichier (f1, lecture)
Si EtatFichier (f1) = succs alors
OuvrirFichier (f2, criture)
Si EtatFichier (f2) = succs alors
LireFichier (f1, n)
Tant que EtatFichier(f1) FdF faire
Si n%2=0 alors EcrireFichier(f2, n)
LireFichier (f1, n)
FermerFichier(f2)Sinon crire ( Erreur en criture )
FermerFichier (f1)
Sinon crire ( Erreur en lecture )
Fin
Fonction Recherche (x : entier, f : fichier dentiers) : boolen
Var bool rep false
Dbut
OuvrirFichier (f, lecture)
Si EtatFichier(f)=succs alors
LireFichier(f, n)
Tant que (EtatFichier(f) FdF ET n x) faire
LireFichier(f, n)
Si n=x alors rep true
FermerFichier (f)
Sinon Ecrire ( Erreur en lecture )
Fin
Exercice 43
Faire une action de fusion de deux fichiers dentiers. Le fichier de sortie doit
tre tri.
Action Fusion ( E : f1 : fichier dentiers, E : f2 : fichier dentiers, S : f3 : fichier
dentiers)
Var : f3 : fichier dentiers
DbutOuvrirFichier (f1, lecture)
41
8/8/2019 TDS et exercices
42/43
Si EtatFichier (f1)=succs alors
OuvrirFichier (f2, lecture)
Si EtatFichier (f2)=succs alors
OuvrirFichier (f3, criture)
Si EtatFichier (f3)=succs alorsLireFichier (f1, n1)
LireFichier (f2, n2)
Tant que (EtatFichier(f1) FdF ET
EtatFichier(f2) FdF) faire
Si n1
8/8/2019 TDS et exercices
43/43
Ecrire une fonction qui permet de saisir un groupe dtudiant dans un fichier.
Ecrire une fonction qui permet de calculer la moyenne gnrale dun groupe
dtudiant.
Action SaisieGroupe (E : nb : entier, S : Fic : fichier de Tetd)
Var : etd : Tetd i : entier
Dbut
OuvrirFichier (fic, criture)
Si EtatFichier (fic)=succs alors
Pour i de 1 nb faire
EtdSaisieEtd( )
EcrireFichier (fic, etd)FermerFichier (fic)
Sinon crire ( Erreur )
Fin
Fonction Moyenne (fic : fichier de Tetd ) : rel
Var : Som : rel
Dbut
Som0
nb 0
OuvrirFichier (fic, lecture)
Si EtatFichier (fic)=succs alors
LireFichier (fic, etd)
Tant que EtatFichier (fic) FdF) faire
nbnb+1
SomSom + etd.moyenne
LireFichier(fic, etd)
Retourner (Som/nb)
FermerFichier (fic)
Sinon crire ( Erreur )
Fin
Top Related