Académique Documents
Professionnel Documents
Culture Documents
Elisabeth Diaz
Algorithmique et langages
Devoirs
8 3989 DG PA 00 10
Notice individuelle
complter et insrer dans le premier devoir que vous adresserez la correction
.............................................................................
...........................................................................................
................................................................................
..........................................................................................................................................................................................................
...............................................................................................................................................................................................................................
...............................................................................................................................................................................................................................
Cette notice individuelle est destine au professeur correcteur. Elle lui permet de mieux vous connatre
et de suivre rgulirement votre travail. Elle reste confidentielle. Remplissez-la soigneusement.
Devoir n
Note ou niveau
densemble
Observations
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
Si votre objectif est un examen ou concours, prcisez la nature de celui-ci (BTS, concours interne dune
profession, concours dentre dans une cole) : ...........................................................................................................................
...................................................................................................................................................................................................................................
Vous pouvez fournir des renseignements complmentaires que vous jugez utile de signaler votre professeurcorrecteur (situation familiale, enfants, tat de sant) ci-aprs ou sur papier libre joint cette notice.
...................................................................................................................................................................................................................................
...................................................................................................................................................................................................................................
...................................................................................................................................................................................................................................
...................................................................................................................................................................................................................................
...................................................................................................................................................................................................................................
...................................................................................................................................................................................................................................
...................................................................................................................................................................................................................................
...................................................................................................................................................................................................................................
...................................................................................................................................................................................................................................
Algorithmique et langages
Devoirs
Sommaire
Conseils gnraux
Devoir 1
Devoir 2
Devoir 3
11
Conseils gnraux
Prsentation
Ce fascicule de devoirs accompagne le cours d'Algorithmique et langages rfrenc
3989. Il comporte trois devoirs d'valuation. Ils sont faire en respectant la chronologie
suivante :
Devoir 1
l'issue de la squence 4
(notions de bases algorithmiques)
Devoir 2
l'issue de la squence 6
(tableaux et modules)
Devoir 3
l'issue de la squence 8
(structures et fichiers)
Syntaxe algorithmique
Vous remarquerez que la syntaxe algorithmique utilise dans les devoirs et les corrigs
est un peu diffrente de celle du cours. Sachez qu'il existe plusieurs nuances dans les
prsentations des algorithmes. L'important rside avant tout dans le sens. Vous avez
donc le droit d'utiliser la mthode qui vous parait la plus claire. Cependant vous devez
tre capable de vous adapter diffrents styles de prsentation : c'est ce qui vous sera
demand l'examen.
Gestion du temps
Les devoirs sont prvus pour tre raliss en 2h. Calculez le temps que vous mettez sur
chaque devoir : le but est de vous rapprocher des 2h afin de vous prparer aux
conditions de l'examen, o vous devrez travailler en temps limit. Cependant, ne vous
dcouragez pas si vous remarquez que vous mettez nettement plus de temps : avec le
temps et l'habitude, vous travaillerez de plus en plus vite.
Essayez galement de faire ces devoirs d'un trait sans document et sans aide
extrieure : c'est la meilleure manire de savoir o vous en tes de la comprhension et
l'assimilation du cours.
8 3989 DG PA 00
8 3989 DG PA 00
Devoir 1
Exercice 1
(2 points)
Exercice 2
(2 points)
Recherche d'erreurs
Voici un programme qui permet de saisir une anne de naissance qui affiche l'ge de la
personne (on suppose que anneeSystem() donne l'anne actuelle) : ce programme
fonctionne pour plusieurs saisies et s'arrte quand on tape 0 comme anne de
naissance. Au final, le programme affiche la moyenne des ges saisis.
4 erreurs se sont glisses
Pour chaque erreur, vous prciserez le numro de la ligne et vous rcrirez la ligne
complte, corrige.
8 3989 DG PA 00
01 programme age
02
annee : entier
03
age : entier
04
total : entier
05
nbage : entier
06 debut
07
total 0
08
nbage 1
09
afficher "saisir une anne de naissance (0 pour finir)="
10
saisir annee
11
tantque annee <> 0
12
age annee anneeSystem()
13
afficher "age = ", age
14
total total + annee
15
nbage nbage + 1
16
afficher "saisir une anne de naissance (0 pour finir)="
17
saisir annee
18
fintantque
19
si nbage <= 0 alors
20
afficher "moyenne des ages = ", total/nbage
21
finsi
22 fin
6
Exercice 3
(3 points)
Exercice 4
(4 points)
Dans un lointain pass et un lointain pays, un jeune paysan sauve la vie d'un roi. Ce
dernier lui demande ce qu'il dsire en retour. Le paysan rpond : je voudrais, pour mon
champs, une graine le premier jour, 2 graines le second, 4 le troisime, et ainsi de suite,
le double de graines par jour et ce, autant de jours qu'il y a de cases sur un chiquier
(qui possde donc 8 cases de ct). Le roi a trouv la demande bien modeste mais n'est
pas arriv l'honorer Vous pourrez vous amuser faire le calcul, mais en attendant,
crivez l'algo qui affiche, pour chaque jour, le numro du jour et le nombre de graines
qu'il faut livrer.
8 3989 DG PA 00
Exercice 5
(4 points)
crire l'algorithme qui permet de saisir plusieurs mesures (en cm) et qui affiche au final la
longueur totale mesure. La saisie s'arrtera quand la personne entrera la longueur 0.
Exercice 6
(5 points)
crire l'algorithme qui permet de saisir une date (sous forme de 3 saisies distinctes :
jour, numro de mois et anne) et d'afficher si cette date est possible ou non. Vous
avez votre disposition la fonction bissextile (anne) qui retourne vrai si l'anne passe
en paramtre est bissextile.
Exemple d'utilisation de cette fonction :
...
saisir uneAnnee
si bissextile(uneAnnee) = vrai alors
afficher uneAnnee, "est une anne bissextile"
sinon
afficher uneAnnee, "n'est pas une anne bissextile"
finsi
...
La notation tiendra compte de l'optimisation de l'algorithme.
Rappel : la seule diffrence entre les annes bissextiles et les annes non bissextiles
rside dans le nombre de jours du mois de fvrier : 29 jours pour les annes bissextiles
et 28 jours pour les annes non bissextiles.
Mme si vous connaissez (peut-tre) les tableaux en algorithme, vous n'avez pas
le droit de les utiliser ici. Vous ne devez manipuler que des variables simples.
8 3989 DG PA 00
Devoir 2
Exercice 1
(2 points)
crire la squence algorithmique qui affiche la somme des valeurs contenues dans un
tableau d'entiers de 100 cases dj compltement rempli (t_val[1..100] : entier).
Exercice 2
(4 points)
Vous avez votre disposition un tableau de notes (entires, comprises entre 0 et 20).
Voici les dclarations correspondantes (que vous n'avez pas rcrire) :
notes[1..500] : entier
// contient une succession de notes comprises entre 0 et 20
taille : entier
// nombre de lignes effectivement remplies dans le tableau
crire la squence algorithmique qui permet d'afficher, pour chaque note possible
(donc de 0 20) la frquence d'apparition de cette note dans le tableau notes (qui bien
sr n'est pas tri).
Vous ne devez pas modifier le contenu du tableau notes (donc vous ne devez pas le
trier). Vous avez le droit d'utiliser des variables complmentaires pour rsoudre ce
problme. L'optimisation de votre algorithme sera value.
Exercice 3
(2 points)
8 3989 DG PA 00
Exercice 4
(4 points)
Exercice 5
(3 points)
8 3989 DG PA 00
Exercice 6
(5 points)
10
8 3989 DG PA 00
Devoir 3
Exercice 1
(4 points)
Un tableau de 500 cases contient la liste des utilisateurs avec, pour chacun d'eux, son
nom, son mot de passe et la liste des noms d'ordinateurs sur lesquels il peut travailler
(maximum 10). Pour simplifier les traitements, on considrera que la premire case non
utilise dans les tableaux contient, pour les zones de textes, du vide (symbolis par "").
Donc, par exemple, si le tableau contient 354 utilisateurs, les parties nom et mot de
passe de la 355e case contiendront "".
crire la dclaration de la structure et du tableau en question.
crire la fonction qui reoit en paramtre le tableau ainsi qu'un nom d'utilisateur. La
fonction doit retourner le nombre d'ordinateurs accessibles par cet utilisateur (la
fonction retourne -1 si cet utilisateur n'existe pas).
Remarque : le tableau de 500 cases est surdimensionn (il y aura toujours au moins une
case vide).
Exercice 2
(5 points)
Exercice 3
(4 points)
8 3989 DG PA 00
11
La suppression ne doit pas laisser une case vide : vous devez dplacer les
informations de faon ne pas laisser de "trou" et vous devez bien sr aussi mettre
jour la variable qui contient le nombre de cases effectivement remplies dans le
vecteur.
s_personne : structure
nom : chaine
datenaiss : date
finstructure
Exercice 4
(7 points)
Vous travaillez avec les types suivants (dclars en global) que vous n'avez pas
redclarer :
s_mouvement : structure
numcompte : chaine
libelle : chaine
montant : rel
finstructure
s_compte : structure
numcompte : chaine
solde : rel
finstructure
12
La journe, les mouvements bancaires sont enregistrs dans un fichier squentiel
MOUV qui contient des enregistrements de type s_mouvement. Ce fichier est recr
chaque jour, de telle sorte qu'en fin de journe, le fichier ne contient que les
mouvements de la journe. Le soir, une application se charge dans un premier temps
de crer le fichier squentiel MOUVTRI partir des informations contenues dans
MOUV, mais en les triant sur numcompte. Le fichier MOUVTRI sert ensuite mettre
jour le fichier squentiel COMPTE bas sur la structure s_compte et tant tri sur
numcompte.
crire le programme majCompte qui doit raliser les traitements suivants : le but est
d'afficher, pour chaque compte, son numro et le total des mouvements de la journe
ou "aucun mouvement". Il faut aussi mettre jour* le solde du compte correspondant
dans le fichier COMPTE. Il n'est pas possible que des mouvements ne correspondent
aucun compte.
* rappel : la mise jour se fait avec l'ordre "rcrire"
8 3989 DG PA 00
*83989DGPA0010*