Les algorithmes que nous écrirons comportent avant tout des variables (chaînes de caractère) dont la valeur est modifiée lors de l'exécution de l'algorithme. On ne confondra pas l'affectation
> x:=3 ;
qui affecte la variable x à la valeur 3 à l'égalité
> x=3 ;
dont la valeur est vrai ou faux selon que x est égal ou pas à 3.
De plus en Maple, on peut manipuler le nom de la variable en l'entourant par le caractère '. On peut également vider le contenu d'une variable par la primitive unassign.
Appel (les | | entourent les phrases optionnelles) :
if condition then suite d'instructions
| elif condition then suite d'instructions |
| else suite d'instructions |
fi
Appel (les | | entourent les phrases optionnelles) :|for nom| |from expression| |by expression| |to expression| |while condition|
do suite d'instructions od;- OU
|for nom| |in expression| |while expression|
do suite d'instructions od;
ExempleLes procédures peuvent avoir plusieurs paramètres.double:=proc(x) RETURN(2*x) ; end;sera utilisable de la manière suivante:
>double(5); 10 >i:=6:double(i); 12
La complexité d'un algorithme se mesure essentiellement en calculant le nombre d'opérations élémentaires pour traiter une donnée de taille n. Les opérations élémentaires considérées sont
Le coût d'un algorithme A pour une donnée D est le nombre d'opérations élémentaires nécessaires au traitement de la donnée D et est noté coûtA(D).
Il est quelquefois nécessaire d'étudier la complexité en mémoire lorsque l'algorithme requiert de la mémoire supplémentaire (tableau auxiliaire de même taille que le tableau donné en entrée par exemple).
Soit L une liste de taille N contenant des nombres entiers de 1
à k. Soit a un entier entre 1 et k.
La fonction suivante retourne true lorsque l'un des éléments
du tableau est égal à a, et false sinon.
Trouve:=proc(L,a) local i; for i from 1 to nops(L) do if op(i,L)=a then RETURN(true) fi; od; RETURN(false); end;Cas le pire : N (la liste ne contient pas a)
L'étude de la complexité est un domaine à part entière
de l'algorithmique que nous n'aborderons pas dans ce cours.