3. Ranger la liste xdans l’ordre croissant.
4. Écrire et exécuter un algorithme qui calcule la moyenne x, puis la médiane Mde la série
statistique x.
5. Modifier l’algorithme pour qu’il calcule la moyenne, puis la médiane d’une série statistique
xcomprenant Nnombres réels compris entre 0 et 50, générés aléatoirement, et calculés
avec 20 chiffres significatifs, le nombre Nayant été saisi en entrée.
Une solution aux différents problèmes posés écrit en langage Scilab3.
Listing 4: Fichier mediane.sce
/ / commande gso r t
x=[4 6 3 17 8]
x=gsort ( x , ’g ’ , ’ i ’ )
/ / générons 100 nb e n t i e r s ent re 0 e t 20 e t t ri o n s la l i s t e
for i =1:100 , x ( i )= floor(21*rand ());end
x ;
disp ( ’ rangeons la l i s t e dans l ’ ’ ordre croissant ’ ) ,
x=gsort ( x , ’g ’ , ’ i ’ )
disp ( ’ l ’ ’ e f f e c i f t ot al vaut 100 donc la médiane
est obtenue en faisant la moyenne de la donnée de rang 50 et 51 ’ )
M=(x(50)+x ( 5 1) )/2;
disp ( ’ la médiane de cette série de 100 nb est égale à ’+string(M) )
halt ( ’ presser la touche ENTER pour relancer le programme ’ )
/ / reprenons l e problème : on s a i s i t tout d ’ abord N
N=input ( ’L ’ ’ e f f e c t i f t otal vaut N= ’ ) ;
/ / Générons N nombres r é e l s entre 0 e t 50 avec 3 décimales
format (25)
for i =1:N y ( i )=50*rand ();end
/ / rangeons la l i s t e y dans l ’ ordre cr o iss ant
y=gsort ( y , ’g ’ , ’ i ’ ) ;
/ / te s ton s la parit é de N et calculons la médiane M
k=N/2;
i f k==floor (k) then M=(y ( k)+y ( k + 1) )/ 2; else M=y ( floor(k)+1);end
disp ( ’ la médiane de cette séri e s tati s tiqu e vaut M= ’+string(M) )
1.4 Instruction TANT QUE
0.5
0.3333333
0.25
0.2
Au passage, on rappelle comment obtenir plus de chiffres significatifs.
0.3333333
3la commande halt permet de faire une pause dans l’exécution du programme, puis, en tapant sur ENTER de le
relancer.
5