UNIVERSITE BLAISE PASCAL                                               Année 2000-2001
U.F.R. Sciences Exactes et Naturelles

D.E.U.G. MIAS-MASS - 51 - Examen Partiel d’Informatique


Documents et calculateurs interdits note sur 20 durée : 2 heures
L’emploi des instructions EXIT, HALT et GOTO est interdit


Exercice 1 (sur 5)

On considère le programme Pascal suivant :

program qui_suis_je;
const nmax = ?
var n, compte, s integer;
    m : ?
    x : ?
    y : ?
begin
repeat
  write('Combien de nombres (entre 2 et ',nmax,') à considerer ? ‘);
  readln(n);
until (n>=2) and (n<=nmax);
s:=0;
for compte:1 to n do
    begin
    write('x(’,compte,')=’);
    readln (x [compte]);
    s:=s+x [compte];
    end;
m:=s/n;
writeln('le resultat de m est : ',m:8:2);
for compte:=1 to n do
    begin
    y[compte]:=x[compte]-m;
    write('x(',compte,')=',x[compte],', ');
    writeln('y(’,compte,')=' ,y[compte] :8);
    end;
readln;
end.

1. Compléter la partie déclarative du programme ci-dessus.

2. Donner l’affichage lorsque l’utilisateur tape successivement (après chaque message) :
    5 puis 4 puis 8 puis 12 puis 17 puis 19.

3. Changer la première boucle for...do par une répétitive while...do.

T.S.V.P.

Exercice 2 (sur 6) : Pour cet exercice, on n’utilisera pas de variables indicées.

Des étudiants participent à une compétition de saut en longueur par équipe. Les équipes sont numérotées de 1 à un nombre maximum nmax elles peuvent avoir un nombre de sauteurs différent.

1. Ecrire un programme qui, pour tous les sauteurs d’une équipe, lise le nom du sauteur, tire au hasard la longueur (entre 400 et 800 centimètres) de chacun de ses 3 essais et affiche le nom du sauteur et sa meilleure performance.

2. Structurer le programme pour obtenir la meilleure performance de l’équipe et l’afficher avec le numéro de l’équipe.

3. Modifier enfin ce programme pour traiter toutes les équipes et afficher à la fin le numéro de l’équipe gagnante et sa meilleure performance (on ne traitera pas les équipes ex ae-quo, seule la dernière équipe ayant réalisé la meilleure performance est gagnante).

Exercice 3 (sur 9)

On dispose du relevé, pendant N jours consécutifs (2<=N<=100) du nombre de pièces fabriquées quotidiennement par une machine. Le nombre quotidien de pièces est noté pi, i élément de {1,...,N}.
Ecrire un programme permettant :

1. la saisie de la valeur N avec contrôle,

2. la saisie de la production quotidienne de pièces,

3. au choix de l’utilisateur par CASE 0F :

a) le calcul et l’affichage du pourcentage de jours où la production de pièces est com-prise entre deux valeurs a et b (a <= b) choisies par l’utilisateur,

b) le calcul et l’affichage de la moyenne arithmétique Moy et de l’écart-type s où :
         Moy=(1/N)*Somme(i=1,N;pi)  et  s=Racine( (1/N)*Somme(i=1,N;(pi- Moy)2) )

c) le calcul et l’affichage de la médiane Me (Pour déterminer la médiane d’une série de données, on ordonne, dans un premier temps les valeurs observées de la plus petite àla plus grande. La médiane est la valeur de la variable située "au milieu" de la série ordonnée. Lorsque le nombre d’observations N est impair la médiane est la valeur de la série ordonnée située à la position (N+1)/2. Lorsque le nombre d’observations est pair, la médiane est à l’intérieur de l’intervalle dont les bornes sont les valeurs de la série ordonnée situées aux positions N/2 et N/2+1. Il est alors d’usage de choisir pour médiane le centre de l’intervalle précédent,

4. d’effectuer à nouveau un traitement proposé dans 3. avec les mêmes données N et pi,

5. de recommencer avec d’autres valeurs pour N et p, sans sortir du programme.