Professional Documents
Culture Documents
NF01
Travaux dirigs
Dfinir les informations pertinentes et numrer les tats distincts. Rechercher dans lnonc les
hypothses simplificatrices. Reprer les tats initiaux et finaux.
Dfinir les actions permettant de passer dune situation une autre.
Rechercher un chemin menant dun tat initial un tat final.
A). La grande traverse (20 mn) : Sur la rive gauche dune rivire un Homme, un Loup, une Chvre et une
Salade attendent pour traverser. A leurs pieds est amarre une Barque deux places. (2) LHomme tant
seul savoir ramer sera videmment de tous les voyages. (3) Lobjectif atteindre est, bien sr, que ces
quatre personnages se retrouvent sur la rive droite. (4) Cependant, lorsque lHomme nest pas l, les
apptits grossiers se dchanent et le Loup a tendance manger la Chvre, laquelle se laisserait facilement
aller dguster la Salade. Comment faire ?
B) La maison hante (20 mn) :
Une maison est hante par deux bruits doutre-tombe, un Rire sardonique et un Chant grivois qui la rendent
inhabitable. Lorsque lun ou lautre est seul se faire entendre, cest dj difficile supporter, mais lorsque les deux
retentissent en mme temps, cest insupportable. Il ya parfois parfois un silence complet.
Les 2 phnomnes obissent des lois obscures, mais infaillibles, lies aux passions du propritaire pour lOrgue et
lEncens.
Minuit est la seule heure o ces bruits changent (ventuellement) dtat. Celui quon entend ce moment dure 24
heures et celui qui est silencieux le reste pendant la mme dure.
Le Chant conserve le mme tat (prsent ou absent), sauf si, la veille, le propritaire a jou de lOrgue sans que le Rire
ne se fasse entendre, auquel cas le Chant prend ltat oppos.
Quant au Rire, si lEncens brlait, il aura aujourdhui le mme tat qu hier le Chant. Si lEncens ne brlait pas, le
Rire fera le contraire de ce que faisait hier le Chant.
Comment obtenir le silence dont le propritaire a besoin, et comment le conserver.
N.B. : Voil prs dune semaine quil entend la fois le Rire et le Chant.
2. Diagrammes de Conway
2.1 Soit le langage constitu des mots suivants : b, ab, aab, aaab, a...ab. Donner une
formule pour dfinir ce langage. Ecrire le diagramme de Conway correspondant.
2.2 Soit le diagramme suivant :
Dfinir le langage correspondant ce diagramme par une formule. Donner des exemples de
phrases acceptes et de phrases refuses par ce langage.
TD N2 : algorithmes
1. crire un algorithme qui affiche le minimum de deux nombres entrs au clavier. tendre
cet algorithme au cas de trois nombres.
2 crire un algorithme qui calcule la surface et le volume d'une sphre partir du rayon qui
sera lu au clavier.
3 crire un algorithme qui calcule la rsistance quivalente 3 rsistances montes en
parallle ou en srie. Les donnes fournies en entre seront le type de montage et la valeur
des trois rsistances. Le programme devra afficher de manire claire la valeur de la
rsistante quivalente.
4. crire une squence d'instructions permettant de permuter la valeur de deux variables x et y.
5. crire un algorithme qui affiche la valeur absolue d'un nombre entr au clavier.
6. Dterminer un algorithme qui calcule l'heure d'arrive d'un train partir de l'heure de
dpart et de la dure du trajet. Chaque donne d'entre sera fournie sous forme de trois
nombres prcisant les heures, minutes et secondes. Le rsultat sera aussi indiqu sous cette
mme forme.
7. crire un algorithme qui lit un nombre entr au clavier par lutilisateur et qui dtermine si
ce nombre est ou non compris entre 10 (inclus) et 20 (inclus).
then
x :=1
x :=1
TD N4 : structures itratives
1.
crire un algorithme qui lit une srie de nombres au clavier et qui s'arrte la premire
valeur ngative.
2.
crire un algorithme qui calcule le produit d'une srie de nombres lus au clavier. On
supposera que l'on entrera la valeur 0 pour indiquer la fin de la srie, cette valeur n'tant
pas prise en compte.
3.
4.
5.
crire un algorithme, puis un programme, qui affiche les 100 premiers termes de la suite
Un dfinie par : U0 = 2 et Un+1 = Un + 7.
6.
10
TD N5 : tableaux
1. Ecrire un algorithme, puis un programme Pascal, qui remplit les 100 lments d'un tableau
avec la valeur du carr de chaque indice. Par exemple, le premier lment aura comme
valeur 1, le deuxime 4, et le dixime 100... Le programme devra ensuite afficher ce
tableau l'cran.
2. Ecrire un algorithme puis un programme qui lit 12 nombres entrs au clavier, en fait la
moyenne et affiche les nombres suprieurs cette moyenne.
3. On peut reprsenter un vecteur de l'espace vectoriel Rn l'aide d'un tableau de n rels.
a) Ecrire un algorithme qui lit deux vecteurs de R10, calcule leur produit scalaire et affiche les deux
vecteurs et leur produit scalaire.
b) crire un algorithme qui lit deux vecteurs de R7, calcule leur somme et affiche cette somme.
4.
La moyenne olympique d'un ensemble de nombres est obtenue en faisant la moyenne des
nombres qui restent une fois supprims le plus grand et le plus petit.
Ecrire un algorithme, puis un programme, qui lit une srie de nombres (on supposera que
tous les nombres sont diffrents) et affiche leur moyenne olympique.
5
12
19
17
9
10
11
12
TD N6 : structures itratives
(Annales de mdians)
Examen n1 : Soit le programme Pascal suivant (qui est trs mal prsent !) :
Program inconnu;
var i,j : integer; a,d,c,b,m :longint;
begin read(i,j);m:=0; a:=1;
for b:=1 to j do
a:=a*i; d:=1;
writeln('tape 1 : valeur de a et de d :',a:6,d:6);
for c:=1 to a do
d:=d*c; writeln('tape 2 : valeur de a et de d :', a:6,d:6);
d:=1;a:=0;for b:=1 to j do d:=d*b;
writeln('tape 3 : valeur de a et de d :', a:6,d:6);
a:=1; for b:=1 to d
do a:=a*i; writeln('tape 4 : valeur de a et de d :', a:6,d:6);
end.
Q1 : Remplir les tableaux ci-dessous, afin d'indiquer les valeurs des variables diffrentes tapes du programme,
avec les donnes proposes en tte de tableau.
Q2 : Rcrire ce programme en donnant des noms didentificateurs signifiant quelque chose la lecture du
programme, en le prsentant correctement et en y ajoutant des commentaires.
Q3 : Identifier les parties communes du programme et essayer de dcrire ce qu'elles font.
Q4 : A quoi correspond chaque writeln lors des 4 tapes ? Quel est le calcul prsent ?
Q3 : Que fait ce programme dans son ensemble ? A quoi correspond-il ? Expliquer.
i =2 et j=3
tape 1
tape 2
tape 3
tape 4
i =3 et j=2
tape 1
tape 2
tape 3
tape 4
Examen n2 : Ecrire un algorithme qui demande une valeur V (relle) comprise entre 1 et 2, et qui calcule le plus petit N
(entier) tel que: 1 + 1/2 + 1/3 + ... + 1/N > V
Examen n3: Que fait le programme suivant ? 10 mn
program abc;
var a, b, c, temp : integer;
begin write('a='); readln(a);
write('b='); readln(b); write('c=');
if b > a then begin temp := a;
a := b; b := temp;end;
if c > a then begin
temp := a; a := c; c := temp;end;
if c > b then begin
temp := b; b := c;
c := temp;end;
writeln(a, b, c); end.
readln(c);
13
Examen n4
Dans chacun des cas suivants, crire un programme qui affiche anne par anne lvolution
dun capital :
a) pour les 10 prochaines annes
b) jusqu ce que le capital de dpart ait doubl
Justifier chaque fois votre choix de boucle.
Remarques :
- Lutilisateur devra entrer le capital initial C0 et le taux de placement annuel t
(0 < t < 1).
- Si lanne n le capital vaut C, lanne n+1 le capital vaudra :
C * (1+t).
Examen n5
14
TD N7 : procdures et fonctions
1. crire une procdure trois paramtres entiers qui fait la somme des deux premiers et
range cette valeur dans le troisime.
2. Transformer la procdure prcdente en fonction. Le troisime paramtre devient le retour
de la fonction.
3. crire une procdure ordre qui range par ordre croissant les valeurs de ses trois paramtres
(aprs l'appel ordre(a,b,c), les valeurs des 3 variables doivent vrifier a b c ).
4. Quelle sera la sortie du programme suivant:
program pl;
var a,b,c : integer;
procedure spl (x,y:integer);
var z : integer;
begin
z := x;
x := y;
y := z;
end;
begin
a := 10;
b := 20;
c := 30;
spl (a,b);
writeln (a,b,c)
end.
15
16
2.2.
Ecrire une fonction qui renvoie la valeur maximum dun tableau dentiers. La
dimension maximum de ce tableau sera 1000, mais la dimension relle ce tableau,
infrieure ou gale 1000, sera transmise en paramtre. On donnera un exemple
dutilisation de cette fonction.
Mme question, mais cette fois la fonction devra renvoyer lindice de la valeur
maximale.
3. crire une procdure permettant de lire des caractres entrs au clavier, et de les
transformer en des nombres entiers (1 pour A, 2 pour B). La saisie se termine lorsque
lutilisateur frappe la lettre $.
4. crire une fonction pgcd qui donne le PGCD de deux nombres x et y.
17
18
TD N9 : enregistrements
1. Dfinir le type date permettant de reprsenter une date comportant le numro du jour et le
numro du mois (14 7, 25 12, 31 12, ...).
Ecrire la procdure jour_du _lendemain deux paramtres de type date qui
dtermine la date du lendemain dun jour donn. On supposera que lanne nest pas
bissextile.
Ecrire un exemple dutilisation de cette procdure.
2. On dispose dun tableau denregistrements ayant la structure suivante : nom, prnom, ge.
Ecrire les procdures et fonctions suivantes :
2.1. Stockage de lensemble des tudiants dans le tableau
2.2. Recherche dun tudiant
2.3. Ajout dun tudiant
2.4. Suppression dun tudiant
2.5. Modification dun tudiant
19
20
TD N10 : fichiers
1. Ecrire un programme qui crit dans un fichier, dont chaque article est un entier, une srie
de nombres taps au clavier.
2. Ecrire un programme qui imprime la moyenne des nombres contenus dans le fichier
prcdent.
3. On dispose dun fichier dont chaque article a la structure suivante :
type eleve
record
nom : string (20) ;
prenom : string (20) ;
math : real ;
physique : real ;
franais : real
end ;
Math
Physique
Franais
Moyenne
Dupont
Durand
...
12.50
6.50
10.00
9.50
8.50
8.00
10.33
8.00
Moyenne
9.32
11.39
10.48
10.40
21
22
TD N 11 : fichiers texte
23
24
TD N 12 : rcursivit
1.
Trouver une dfinition rcursive du PGCD de deux entiers et crire lalgorithme puis la
procdure correspondante.
2.
3.
4.
25
26
3
3
2
2
2
2
1
7
7
3
3
3
2
2
3
7
4
4
5
5
5
5
5
5
4
4
4
4
7
7
Lalgorithme demand aura la structure suivante : lecture dun tableau dentiers, tri
de ce tableau et affichage des nombres ainsi tris.
27