TP de Maple : Programmation

Programming, Math · lab

Voir tous les documents en programmation

c(cid:13) Benoit Jacob, protégé par la GNU Free Documentation License

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

TP de Maple : Programmation

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

des exemples de procédures. Dans la suite du TD, n’hésitez pas à vous y référer comme

modèles. Lisez attentivement ces procédures ligne par ligne et essayez de comprendre

ce qu’elles font. Vous devez être capable de prédire leurs valeurs de retour en fonction

des valeurs de leurs arguments.

prog1:=proc(n::integer)

if n<0 then

ERROR("n doit être >= 0.") ;

elif n<=1 then

RETURN(n) ;

else

Publicité

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 ;

RETURN(somme) ;

end ;

2. Ecrivez une procédure max prenant en argument deux réels (type numeric) x et y, et

renvoyant le plus grand des deux.

Publicité

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

carrée de 2. Pour cela, appliquez la méthode de Newton à 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édure coeffbinome prenant en argument deux entiers n et p, et ren-

n = Cp−1

6. Ecrivez une procédure nbchiffres prenant en argument un réel x et renvoyant le

nombre de chiffres de x à 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édure estpremier prenant en argument un entier positif n et renvoyant

Publicité

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

isprime.

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

voyant la somme des diviseurs de n (on considère seulement les diviseurs positifs et

< n ; on considère 1 comme un diviseur).

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

entre 2 et 1000. Un nombre est dit parfait s’il est égal à la somme de ses diviseurs.

3. Ecivez une procédure 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é 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érieurs à 1000. Deux entiers x et y sont dits amicaux si chacun

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