Vous êtes sur la page 1sur 20

BTS Informatique de gestion 1re anne

Elisabeth Diaz

Algorithmique et langages
Devoirs

8 3989 DG PA 00 10

DOCumENt DtaChER Et RENvOyER

Notice individuelle
complter et insrer dans le premier devoir que vous adresserez la correction

lattention du professeur correcteur de :


(1)

.............................................................................

M. Mme Mlle (2) ........................................................... Prnoms :

...........................................................................................

(en lettres dimprimerie)

Date de naissance : .................................................... Indicatif Cned :


Adresse :

................................................................................

..........................................................................................................................................................................................................

...............................................................................................................................................................................................................................
...............................................................................................................................................................................................................................

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

..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................

(1) Indiquez lintitul de la discipline.


(2) Rayez les mentions inutiles.

Prire de remplir soigneusement le verso.

votre formation actuelle


(profession, tudiant, chmage, reconversion etc.)
...................................................................................................................................................................................................................................

votre formation antrieure


Dernire classe frquente ou niveau atteint : ..............................................................................................................................
Date : ..................................................................................................................................................................................................................
Diplmes obtenus : ......................................................................................................................................................................................
Stages de formation (cours du soir, GRETA, stages professionnels, sjours ltranger, etc.)
...................................................................................................................................................................................................................................
...................................................................................................................................................................................................................................
...................................................................................................................................................................................................................................

vos objectifs projets


Dans quel but vous inscrivez-vous cette formation (examen, concours, mise jour de vos connaissances,
rinsertion ou reconversion professionnelle, promotion, culture personnelle) ?
...................................................................................................................................................................................................................................
...................................................................................................................................................................................................................................
...................................................................................................................................................................................................................................

Si votre objectif est un examen ou concours, prcisez la nature de celui-ci (BTS, concours interne dune
profession, concours dentre dans une cole) : ...........................................................................................................................
...................................................................................................................................................................................................................................

Suivez-vous actuellement dautres cours ou stages, lesquels, o ?


...................................................................................................................................................................................................................................
...................................................................................................................................................................................................................................
...................................................................................................................................................................................................................................

vos conditions de travail


Combien de temps pensez-vous pouvoir consacrer vos tudes chaque semaine ?
...................................................................................................................................................................................................................................

Pouvez-vous vous faire aider par votre entourage en cas de difficult ?


...................................................................................................................................................................................................................................

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.
...................................................................................................................................................................................................................................
...................................................................................................................................................................................................................................
...................................................................................................................................................................................................................................
...................................................................................................................................................................................................................................
...................................................................................................................................................................................................................................
...................................................................................................................................................................................................................................
...................................................................................................................................................................................................................................
...................................................................................................................................................................................................................................
...................................................................................................................................................................................................................................

BTS Informatique de gestion 1re anne


Elisabeth Diaz

Algorithmique et langages
Devoirs

Directeur de publication : Jean-Christophe Hibon


Les cours du Cned sont strictement rservs lusage priv de leurs destinataires et ne sont pas destins une utilisation collective. Les personnes
qui sen serviraient pour dautres usages, qui en feraient une reproduction intgrale ou partielle, une traduction sans le consentement du Cned,
sexposeraient des poursuites judiciaires et aux sanctions pnales prvues par le Code de la proprit intellectuelle. Les reproductions par
reprographie de livres et de priodiques protgs contenues dans cet ouvrage sont effectues par le Cned avec lautorisation du Centre
franais dexploitation du droit de copie (20, rue des Grands Augustins, 75006 Paris).

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.

Rdaction des rponses


Les exercices sont chaque fois dans un ordre progressif. Mme s'ils peuvent tre
traits dans n'importe quel ordre et indpendamment les uns des autres, je vous
conseille de suivre l'ordre propos.

Travail sur le corrig


Lorsque vous recevrez votre devoir corrig, prenez le temps de lire tout ce que le
professeur correcteur a crit votre attention. Reprenez ensuite vos rponses en les
comparant avec le corrig type envoy par le Cned. Le corrig contient de nombreuses
explications et commentaires : lisez-les attentivement et ne vous contentez pas de
regarder juste les algos.
Bon courage !

8 3989 DG PA 00

8 3989 DG PA 00

Devoir 1

Exercice 1

A envoyer la correction l'issue de la squence 4

(2 points)

Trace d'un programme


Voici une squence algorithmique (qui ne fait rien de trs utile, mais ce n'est pas
l'objet, ici) :
...
tantque B > A
A  A + 2
C  B - 1
si A = C ou A < B alors
C  C - 1
sinon
si C >= 3 alors
B  B - 2
finsi
A  A - 5
finsi
B  B - 1
fintantque
...
Donner la valeur des 3 variables aprs excution de la squence algorithmique si, au
dpart, ces variables sont initialises :
a) A = 1, B = 4, C = 2
b) A = 3, B = 4, C = 1
Vous mettrez sur votre copie, dans un tableau, l'volution du contenu de
chaque variable, tape par tape.

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)

Une entreprise de transport accorde des rductions en fonction du poids transporter.


Pour un chargement de moins de 10Kg, il n'y a pas de rduction. Entre 10 et 50Kg (non
compris), 3% de rduction sont accords. 8% pour un chargement entre 50 et 100Kg
(non compris). A partir de 100Kg, la rduction est de 15%. Sachant que le prix au Kg
transport est de 2, aprs avoir saisi le poids du chargement, affichez le prix
correspondant et le taux de rduction qui a t appliqu.

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

A envoyer la correction l'issue de la squence 6

(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)

Voici le programme serarien avec les modules utiliss :


programme serarien
a, b, c : entier
debut
a  3
b  calcul (a, 7, 2)
c  calcul (b, b - 2, a)
afficher a, b, c
fin
fonction calcul (E/S: a : entier, E: b, c : entier) : entier
debut
a  a + b div c
c  c div 2
retourner (a + b + c)
fin

8 3989 DG PA 00

Donner l'tat des variables a, b et c du programme serarien en fin d'excution de ce


programme.
Vous prciserez l'tat intermdiaire des variables aprs chaque ligne d'excution du
programme serarien. Inutile cependant de dtailler sur la copie l'volution des variables
dans la fonction calcul.
Rappels :
E signifie que le paramtre est en entre, donc le transfert se fait par valeur (transfert
classique, d'ailleurs E est optionnel).
E/S signifie que le paramtre est en entre/sortie, donc le transfert se fait par adresse.
Cela signifie que toute modification sur le paramtre affectera la variable qui lui a t
transfre.
div pemet d'obtenir le rsultat de la division entire d'un nombre (par exemple, 25 div
3 donne 8 car 3*8=24 et il reste 1)

Exercice 4

(4 points)

Voici une squence algorithmique :


...
saisir val
tot  0
repeter
tot  tot + val
val  val - 1
jusqu' val <= 0
afficher tot
...
// suite de la squence
...
nb  20
cumul  0
repeter
cumul  cumul + nb
nb  nb - 3
jusqu' nb <= 0
...
Remarquez les similitudes entre les 2 extraits de la squence et crez une fonction
paramtre la plus optimise possible pour simplifier la squence.
Rcrivez la squence en utilisant votre fonction.
Remarque : toutes les variables manipules ici sont de type entier.

Exercice 5

(3 points)

crire la fonction qui reoit en paramtre tabnom, un tableau de 100 cases


partiellement rempli de noms, et nbmax, le nombre de cases effectivement remplies
dans le tableau en question. Cette fonction devra afficher les noms au rythme de 2
par lignes. Tous les noms doivent tre affichs (mme s'il n'en reste qu'un afficher

8 3989 DG PA 00

sur la dernire ligne). La fonction devra au final retourner le nombre de lignes


affiches.
Pour afficher 2 informations sur la mme ligne, vous devez les afficher en mme
temps :
afficher info1, info2
On prend donc pour hypothse que si vous mettez 2 affichages diffrents, ils seront mis
sur 2 lignes diffrentes.
L'optimisation du code sera prise en compte dans la notation.
Rappelez vous que vous avez votre disposition les oprateurs div et mod :
a div b donne le rsultat de la division entire de a par b (exemple : 15 div 6 donne 2)
a mod b donne le reste de la division entire de a par b (exemple : 15 mod 6 donne 3)
car 6*2=12 et il reste 3 pour arriver 15

Exercice 6

(5 points)

Le but est d'crire la procdure Change qui reoit en paramtre le montant de la


monnaie rendre (en francs*) ainsi que le vecteur Argent dcrit plus bas, et qui affiche
le nombre de billets et/ou pices correspondants.
Le vecteur argent contient toutes les valeurs existantes des billets et/ou pices dans
l'ordre dcroissant :
Argent = {500 ; 200 ; 100 ; 50 ; 20 ; 10 ; 5 ; 2 ; 1 ; 0,5 ; 0,2 ; 0,1 ; 0,05}

10

Il existe bien sr beaucoup de solutions. Le but est d'afficher la solution minimale


(rendre le moins de billets et/ou pices possibles).
Exemple : pour 492,23F vous devez afficher :
2*200F+1*50F+2*20F+1*2F+1*0,2F+1*0,05F
(rendre 492,23 suppose rendre 492,25 car il n'existe pas de plus petite pice que 0,05F)
Vous avez votre disposition la fonction Arrondi qui reoit en paramtre un montant
et qui retourne le montant arrondi au 5 centimes suprieur. Exemple : Arrondi (25,12)
va retourner 25,15.
*pourquoi ne pas avoir fait l'exercice en Euros ? Juste pour le plaisir de devoir utiliser
l'arrondi qui n'aurait pas t possible en euro car il existe des pices de 1 centime (et
non par nostalgie).

8 3989 DG PA 00

Devoir 3

Exercice 1

A envoyer la correction l'issue de la squence 8

(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)

Vous avez votre disposition le type suivant :


s_connec : structure
login : chaine
heure : chaine
finstructure
Dans un programme principal, un tableau de 1000 cases de type s_onnec est en partie
rempli avec toutes les connections de la journe (login de la personne qui s'est
connecte et heure de dbut de connection).
On veut savoir, pour chaque personne, le nombre de connexions.
Le tableau est tri sur le login.
crire la procdure qui reoit en paramtre le tableau, ainsi qu'un entier
contenant le nombre de cases effectivement remplies dans le tableau. Cette procdure
doit afficher le login des personnes et, pour chaque login, le nombre de connexions. Il
ne faut pas afficher plusieurs fois le mme login.

Exercice 3

(4 points)

crire la procdure qui reoit en paramtre :


- un vecteur de 100 cases (contenant des cases structures, dont la structure est
dfinie plus bas)
- une valeur prcisant le nombre de cases effectivement remplies dans le vecteur
prcdent
- un nom
La procdure doit supprimer, dans le vecteur, la ligne correspondant au nom entr en
paramtre. Le vecteur n'est pas tri.

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*

Vous aimerez peut-être aussi