Exercice 3
´
Ecrire, sans utiliser de boucle, des fonctions Scilab qui r´epondent aux sp´ecifications
donn´ees :
a) La fonction matrice prend en entr´ee deux vecteurs lignes xet yde mˆeme taille (disons
n), et renvoie une matrice A= (ai,j ) carr´ee d’ordre nd´efinie par
ai,j =1
1 + |xi|+ ln(1 + x2
j+y2
j).
b) La fonction extrait prend en entr´ee une matrice Aet renvoie la sous-matrice de A
constitu´ee des colonnes de Aqui ne contiennent aucun coefficient nul.
c) La fonction decompose prend entr´ee un polynˆome `a coefficients r´eels P(de la variable
X) et renvoie deux polynˆomes Qet R(de la variable X´egalement) tels que P=Q−R, et tous
les coefficients de Pet Qsont positifs ou nuls. Par exemple si P=X4−3X3+ 2X2−X−1
la fonction doit retourner Q=X4+ 2X2et R= 3X3+X+ 1.
d) La fonction combine prend en entr´ee deux matrices A= (ai,j ) et B= (bi,j ) de mˆeme
taille et renvoie une matrice C= (ci,j ) de mˆeme taille que Aet Bdont le terme g´en´eral est
d´efini par
ci,j =
ai,j si bi,j >0,
bi,j sinon.
Exercice 4
a) ´
Ecrire une fonction Scilab diviseurs qui prend en entr´ee un entier naturel net renvoie
un vecteur ddont les coefficients sont les diviseurs (stricts) de n, c’est-`a-dire les ´el´ements de
{1,2, . . . , n −1}qui divisent n. Par exemple, diviseurs(12) doit renvoyer le vecteur [1,2,3,4,6].
Cette fonction ne doit pas utiliser de boucle.
b) Un entier naturel nest dit parfait s’il est ´egal `a la somme de ses diviseurs stricts. Par
exemple, 6 est un nombre parfait car 1 + 2 + 3 = 6. ´
Ecrire une fonction Scilab parfaits qui
prend en entr´ee un entier naturel net renvoie dans un vecteur pla liste des nombres parfaits
inf´erieurs ou ´egaux `a n.
2