> |
Licence 2 - TP7 - Programmation sous environnement Maple
Instruction conditionnelle IF, boucles FOR et WHILE :
If condition then instructions for i from a to b do instructions od
Elif condition then instructions while condition do instructions od
else instructions
fi
Les procédures et fonctions :Maple dispose de 2 moyens d’associer un résultat à des paramètres : les procédures et l’opérateur flèche (fonction).
Les procédures : La syntaxe est : f :=proc(paramètres)
Local variables ;
Instructions
End
Lors de l’appel de la procédure (i.e. f(p1,…pn)), Maple commence par évaluer tous les paramètres p1,…pn, puis il exécute les instructions avec ces valeurs et renvoie en fait la dernière valeur déposée sur la pile d’évaluation interne de la procédure, à moins que l’exécution n’ait exigé de retourner une expression à l’aide de la fonction return.
Si on ne sait pas a priori sur combien de paramètre porte la procédure, le plus simple est de déclarer une séquence vide de paramètres, puis d’utiliser dans le corps de la procédure les fonctions nargs (qui renvoie le nombre de paramètres) et args (qui renvoie la séquence des paramètres).
Exemple : Ecrire une procédure de calcul du plus grand élément pour un nombre quelconque de paramètres.
Exercice 1 : Ecrire une procédure divise(a,b) qui effectue la division euclidienne de a par b et renvoie le quotient et le reste de cette division. A l’aide de cette procédure, écrire une procédure modulo(a,b) qui calcule a modulo b.
Exercice 2 : (Tableaux) Un tableau est une structure de données qui permet de repérer ses éléments par des indices entiers. Ainsi pour un tableau T à une dimension, T[i] désigne le ième élément du tableau. Dans cet exercice, nous travaillerons uniquement sur des tableaux à une dimension de taille n. Ecrire les procédures qui effectue les instructions suivantes :
· Initialise un tableau aléatoirement avec des valeurs entre 0 et 100 (Rand)
· Calcule la moyenne d’un tableau
· Recherche l’élément maximal du tableau
· Effectue la somme de 2 tableaux dans un troisième
Exemple : Ecrire une procédure de calcul du plus grand élément parmi un nombre quelconque.
>max :=proc()
>local r,i ;
>r :=args[1] ;
>for i from 2 to nargs do
>if r<args[i] then r :=args[i] fi
>od ;
>r ;
>end :
Exercice 3: Ecrire une procédure qui effectue un tri à bulle. On affichera à chaque étape le tableau.