TP n°4
INFORMATIQUE DEUG MIAS+MASS S1
2001-2002
Exercice 1
On veut écrire un programme permettant de gérer un examen
comportant les épreuves suivantes avec les coefficients indiqués :
maths 0.5
physique 2
électronique 1.5
informatique 6
1°) Dans un permier temps, on construit un programme
qui, pour un candidat,
- saisit son nom et ses notes sur 20,
- affiche, en face de son nom, son résultat
et éventuellement sa mention.
2°) Dans un deuxième temps, le programme est
complété pour permettre de traiter plusieurs candidats. A
la fin du traitement, indiquée par la réponse "non" à
la question "un autre candidat ? ", le pourcentage de reçus sera
affiché.
Exercice 2
Un ivrogne est au pied d'un escalier et tente de parvenir à son sommet :
- dans tous les cas il a 4 chances sur 10 d'arriver
à monter une marche.
- au pied de l'escalier, il a 6 chances sur 10 d'y rester.
- s'il est sur une marche, il a 3 chances sur 10
d'y rester, 2 chances sur 10 de redescendre d'une marche et 1 chance sur
10 de dévaler jusqu'en bas.
1°) Ecrire un programme simulant une "montée"
et affichant à chaque pas le niveau atteint.
2°) Ajouter les instructions permettant d'enchainer
plusieurs "montées" et de calculer le nombre moyen de pas de montée.
Indications : pour simuler le premier pas, il suffit de tirer au hasard
un nombre n entre 1 et 10. Si n<=6 l'ivrogne reste en bas,
sinon il monte...
N.B. Le nombre de marches de l'escalier sera donné par l'utilisateur.
Exercice 3
On se propose d'afficher en grand sur l'écran selon un dessin
similaire à l'affichage digital. Le caractère composant le
dessin sera le chiffre lui-même. Un dessin de largeur L devra respecter
les contraintes suivantes :
- 3 <= L <= 12
- hauteur du dessin 2*L-1
- la barre médiane du chiffre (s'il en a
une) sera au milieu de la hauteur
Exemple avec L=4 :
0000 1
2222 3333 4 4 5555
6 7777 8888 9999
0 0 1
2 3 4 4 5
6 7 8
8 9 9
0 0 1
2 3 4 4 5
6 7 8
8 9 9
0 0 1
2222 3333 4444 5555 6666
7 8888 9999
0 0 1
2 3
4 5 6 6
7 8 8 9
0 0 1
2 3
4 5 6 6
7 8 8 9
0000 111 2222
3333 4 5555 6666
7 8888 9999
Ecrire un programme
- qui saisit, avec contrôle, la largeur L
du dessin,
- saisit le chiffre à dessiner,
- dessine le chiffre choisi.
Prévoir la possibilité de recommencer à dessiner
avec la même largeur ou avec une autre largeur sans sortir du programme.
Exercice 4 : Dans cet exercice S est une
chaîne d'au plus 75 caractères qui sera donnée par
l'utilisateur.
Ecrire un programme permettant de saisir S puis, au choix de l'utilisateur,
d'effectuer un des traitements suivants :
-1- afficher S et la souligner n fois par des tirets,
le nombre n étant au choix de l'utilisateur,
-2- afficher S dans un cadre. Le caractère
composant le cadre étant au choix de l'utilisateur,
-3- afficher S verticalement.
Indication : pour avoir le i-ième caractère de S, on
utilisera la fonction copy(S,i,1).
Exercice 5 : pour aller plus loin
On cherche à remplir un sac-à-dos avec des objet de différentes
tailles. Le programme demande à l''utilisateur d'indiquer la capacité
du sac puis il remplit le sac avec des objets successifs de tailles aléatoires.
Si la taille de l'objet saisi dépasse la moyenne des tailles
des objets déjà dans le sac, le programme propose à
l'utilisateur :
- soit d'échanger cet objet avec le plus
gros objet* (qui est jeté) déjà dans le sac,
- soit d'échanger cet objet avec le plus
petit objet* (qui est jeté) déjà dans le sac,
- soit de mettre cet objet dans le sac.
Le remplissage sera réussi s'il est compris entre 90% et 100%
de la capacité du sac. Le programme fera autant de tentative que
nécessaire pour réussir son remplissage (à chaque
échec le sac est vidé).
* attention au premier objet mis dans le sac!
Rappels
La fonction LENGTH(S) retourne la longueur de la chaîne S.
La fonction copy(S,d,k) retourne la sous-chaîne
de S commençant au d-ième caractère et ayant pour longueur k.
La fonction RANDOM(n) retourne un entier tiré
au hasard et compris entre 0 et n-1.
La fonction UPCASE(C) retourne la majuscule associée au caractère C.