Cours Apl 09 :
Ecrivez vos fonctions et programmes |
|
Comme nous l'avons entrevu au chapitre 3, Apl vous permet d'écrire vos propres fonctions. Vos fonctions appelleront des fonctions primitives apl et elles pourront également s'appeler entre elles. Comme les fonctions primitives, les fonctions utilisateurs admettent 0, 1 ou 2 arguments et rendent (ou pas) un résultat.
La première ligne d'une fonction se présente généralement comme suit : r „ g Fonction d;loc1;loc2 -
r est le nom de la variable à laquelle est affecté le résultat
qui sera rendu par la fonction. Cette variable n'est vue que depuis la
fonction ou depuis celles qu'elle appellerait elle même. -
g et d sont les noms des variables portant les arguments
gauche et droit. -
loc1; loc2 : Il est fortement recommandé de localiser les
variables dont vous aurez besoin dans vos fonction afin qu'une fonction
appelée ne vienne pas modifier accidentellement une variable dans une
fonction appelante. Un exemple sera plus parlant. Ecrivons 2 fonctions, l'une étant appelée par l'autre. Nouvelles fonctions et signes Apl : - * : Puissance - © : Commentaire. Tout ce qui est saisi à droite de ce caractère n'est pas pris en compte dans le programme. Pour éditer (saisir, modifier) une fonction, vous devez la saisir dans l'éditeur. Pour cela, vous avez plusieurs solutions : - Tapez )ed nom_fonction - Tapez le nom de la fonction puis - double cliquez dessus - placez le curseur dessus et faites Shift Entrée. Pour sortir de l'éditeur en validant votre saisie, il vous suffit de faire Escape. Pour sortir sans prendre en compte vos modifications, il faut faire Shift Escape.
Vous pouvez bien sûr aussi passer par les menus. - Notre première fonction sera la fonction Arrondir. Elle admettra à gauche le nombre de chiffres après la virgule et à droite l'objet numérique dont les éléments doivent être arrondis. En voici le listing :
r „ g Arrondir d;tmp Une fois votre saisie terminée, il ne vous reste plus qu'à tester le résultat : 2 Arrondir 2 2 ½ 88.322 .899 5 7.3
88.32 .9
La deuxième fonction est la fonction Repartion Elle admet une variable numérique en argument droit et rend un objet de même structure où les valeurs sont remplacées par leur poids en % dans l'objet.
r „ Repartition d De droite à gauche : - on vectorise d, puis on en calcule la somme - on divise chaque élément de d par cette somme et on multiplie le tout par 100 pour avoir les valeurs en %.
Testons notre fonction : Repartition 2 2 ½ 10 10 30 20
14.28571429 14.28571429 Maintenant, nous voulons afficher ce résultat avec seulement 2 chiffres après la virgule : 2 Arrondir Repartition 2 2 ½ 10 10 30 20 14.29 14.29 42.86 28.57 Si vous avez tapé ces exemples, n'oubliez pas de sauvegarder votre travail avec la commande )save Travaux pratiques :
0. Chargez votre Ws de travaux pratiques : )load c:\Mes documents\pratique-apl
1. Si vous ne l'avez pas déjà fait, écrivez et testez les 2 fonctions du cours. 2. Ecrivez la fonction Totmat qui admet une matrice numérique en argument droit et rend cette même matrice avec à droite le total des lignes et en bas le total des colonnes. 3. Ecrivez la fonction ColleV qui colle la matrice d sous la matrice g en ajoutant les éventuelles colonnes de zéros ou de blancs à droite de la matrice la plus étroite. 4. Ecrivez la fonction ColleH qui colle la matrice d à droite de la matrice g en ajoutant les éventuelles colonnes de zéros ou de blancs sous la matrice la moins haute. 5. Sauvez votre travail : )save Solutions :
1. Si vous ne l'avez pas déjà fait, écrivez et testez les 2 fonctions du cours. Voir cours.
2. Ecrivez la fonction Totmat qui admet une matrice numérique en argument droit et rend cette même matrice avec à droite le total des lignes et en bas le total des colonnes.
r„Totmat d
3. Ecrivez la fonction ColleV qui colle la matrice d sous la matrice g en ajoutant les éventuelles colonnes de zéros ou de blancs à droite de la matrice la plus étroite.
r„g ColleV d;dim
4. Ecrivez la fonction ColleH qui colle la matrice d à droite de la matrice g en ajoutant les éventuelles colonnes de zéros ou de blancs sous la matrice la moins haute.
r„g ColleH d;dim
|
|