TP de Maple : Programmation

Programming, Math · lab

Voir tous les documents en programmation

c(cid:13) Benoit Jacob, prot´eg´e par la GNU Free Documentation License

source disponible sur http://www.velvia.org

TP de Maple : Programmation

1. Afin de vous remettre en tˆete la syntaxe du langage de programmation de Maple, voici

des exemples de proc´edures. Dans la suite du TD, n’h´esitez pas `a vous y r´ef´erer comme

mod`eles. Lisez attentivement ces proc´edures ligne par ligne et essayez de comprendre

ce qu’elles font. Vous devez ˆetre capable de pr´edire leurs valeurs de retour en fonction

des valeurs de leurs arguments.

prog1:=proc(n::integer)

if n<0 then

ERROR("n doit ^etre >= 0.") ;

elif n<=1 then

Publicité

RETURN(n) ;

else

RETURN(prog1(n-1)+prog1(n-2)) ;

fi ;

end ;

prog2:=proc(x::complex)

local n, y, somme ;

n:=0 ; somme:=0 ; y:=infinity ;

while y>10^(-Digits) do

y:=x^n/n ! ;

n:=n+1 ; somme:=somme+y ;

od ;

Publicité

RETURN(somme) ;

end ;

2. Ecrivez une proc´edure max prenant en argument deux r´eels (type numeric) x et y, et

renvoyant le plus grand des deux.

4. Ecrivez une proc´edure racinededeux ne prenant pas d’argument et renvoyant la racine

carr´ee de 2. Pour cela, appliquez la m´ethode de Newton `a la fonction x 7→ x2 − 2.

Modifiez ce programme pour obtenir la racine cubique de 10.

voyant Cp

n, en utilisant la formule Cp

5. Ecrivez une proc´edure coeffbinome prenant en argument deux entiers n et p, et ren-

n = Cp−1

6. Ecrivez une proc´edure nbchiffres prenant en argument un r´eel x et renvoyant le

Publicité

nombre de chiffres de x `a gauche de la virgule (en base 10), sans calculer de loga-

rithme. Utilisez une boucle while pour tester, pour n de plus en plus grand, la condition

x > 10n.

n−1 + Cp

n−1.

7. Ecrivez une proc´edure estpremier prenant en argument un entier positif n et renvoyant

true ou false suivant que n est premier ou pas. Bien entendu, vous ne devez pas utiliser

isprime.

8. Ecrivez une proc´edure sommedesdiviseurs prenant en argument un entier n>1 et ren-

voyant la somme des diviseurs de n (on consid`ere seulement les diviseurs positifs et

< n ; on consid`ere 1 comme un diviseur).

9. Ecrivez un programme utilisant une boucle for pour afficher la liste des nombres parfaits

Publicité

entre 2 et 1000. Un nombre est dit parfait s’il est ´egal `a la somme de ses diviseurs.

3. Ecivez une proc´edure listprem prenant en argument deux entiers x et y, avec x<y, et

affichant la liste des nombres premiers entre x et y. Il est recommand´e d’utiliser une

boucle for et la fonction Maple isprime.

10. Ecrivez un programme utilisant une boucle for pour afficher la liste des couples de

nombres amicaux inf´erieurs `a 1000. Deux entiers x et y sont dits amicaux si chacun

d’entre eux est somme des diviseurs de l’autre.