Cours Apl 05 : Commençons à jouer
avec les objets |
|
Nous allons un peu approfondir ce sujet et vite passer au suivant.
Concaténation, linéarisation Pour ces 2 opérations on utilise la fonction symbolisée par une virgule. - on appelle linéarisation le fait de transformer un objet en vecteur. Exemple ,Mat1 donne 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 sa dimension est : ½ ,Mat1 16
On peut aussi transformer un scalaire en un vecteur d'un seul élément. ex : ½,5 rend 1 alors que ½5 rend vide.
- La concaténation consiste à coller 2 objets. Soient 2 vecteurs numériques : V1 „ 1 2 3 V2 „ 4 5 6 7
V1,V2 rend 1 2 3 4 5 6 7
On peut également concaténer des matrices sous réserve que leurs dimensions soient compatibles. Par exemple pour coller 2 matrices cote à cote, il faut qu'elles aient le même nombre de lignes. Soient : Ma1 „ 2 2 ½ 'aabb' Ma2 „ 2 2 ½ 'eeff' Ma1 aa Ma2 ee Pour obtenir une matrice composée de Ma1 et Ma2, il suffit d'écrire : Ma1,Ma2 on obtient :
aaee
Travail avec axes Par défaut Apl travaille sur la dernière dimension (pour une matrice : les colonnes). Pour le coller des matrices l'une en dessous de l'autre, il faut préciser qu'on veut travailler sur la première dimension en collant [1] juste à droite de la virgule. Ma1,[1]Ma2 aa Quand on manipule 2 matrices "Ma1,Ma2" est équivalent à "Ma1,[2]Ma2". Le travail avec axes s'applique également au take et au drop. Ainsi pour afficher la première colonne d'une matrice Mnum1, on peut écrire : 1†[2]Mnum1 On peut ainsi l'utiliser sans même connaître son nombre de lignes.
Générer une suite de nombre en utilisant le iota monadique : ¼ Exemple : ¼ 5 rend 1 2 3 4 5 Retenez bien cette fonction. Nous l'utiliserons dans les chapitres suivants. Travaux pratiques :
0. Chargez votre Ws de travaux pratiques : )load c:\Mes documents\pratique-apl
1. Affichez la première colonne de Mnum1, puis la dimension de cette colonne.
2. Affichez cette colonne sous forme de vecteur.
3. Affichez Mnum1 puis Mnum2 sous forme de vecteurs. Affichez un grand vecteur représentant la concaténation de Mnum1 et Mnum2.
4. Multipliez chaque élément du vecteur du point 3 par la longueur de Mnum2.
5. Affichez les 4 premières colonnes de Mnum2 sous Mnum1.
6. Créez une matrice Mnum3 de même dimensions que Mnum1 et remplie de chiffres allant de 1 au nombre d'éléments composant Mnum1. Contraintes : ne pas saisir explicitement la dimension de Mnum1, ni le nombre d'éléments la composant, ni bien sûr les éléments eux mêmes.
7. Affichez : - Mnum1 à gauche de Mnum3 - Mnum3 au dessus de Mnum1 - Mnum1 à droite de Mnum3 - Mnum1 au dessus de Mnum3
8. En utilisant le iota et d'autres fonctions déjà vues dans ce cours, affichez : - une suite de nombres allant de 1 à 10 - de 10 à 100 - de 6 à 15 - de ¯9 à 0 - de 5 à 10, puis de 15 à 20 : 5 6 7 8 9 10 15 16 17 18 19 20
9. Affichez une matrice de 3 lignes, 4 colonnes composées des nombres allant de 100 à 1200. Recommencez en collant Mnum1 à droite. Recommencez en additionnant Mnum1 à cette matrice.
10. Collez une ligne de 100 au dessus de Mnum1 et une colonne de 0 à droite. - Collez une ligne de 100 sous Mnum1 et une colonne de 0 à gauche. - Collez une ligne de 100 au dessus de Mnum1 et une colonne de 0 à gauche.
11. Sauvez votre travail : )save Solutions :
1. Affichez la première colonne de Mnum1, puis la dimension de cette colonne. 1†[2]Mnum1 Puis ½1†[2]Mnum1
2. Affichez cette colonne sous forme de vecteur. ,1†[2]Mnum1
3. Affichez Mnum1 puis Mnum2 sous forme de vecteurs. , Mnum1 , Mnum2
Affichez un grand vecteur représentant la concaténation de Mnum1 et Mnum2. ( , Mnum1), , Mnum2
4. Multipliez chaque élément du vecteur du point 3 par la longueur de Mnum2. (½Mnum2) x ( , Mnum1), , Mnum2
5. Affichez les 4 premières colonnes de Mnum2 sous Mnum1. Mnum1,[1]4†[2]Mnum2
6. Créez une matrice Mnum3 de même dimensions que Mnum1 et remplie de chiffres allant de 1 au nombre d'éléments composant Mnum1. Contraintes : ne pas saisir explicitement la dimension de Mnum1, ni le nombre d'éléments la composant, ni bien sûr les éléments eux mêmes. Mnum3„ (½Mnum1)½¼½,Mnum1
7. Affichez : - Mnum1 à gauche de Mnum3 Mnum1, Mnum3
- Mnum3 au dessus de Mnum1 Mnum3,[1] Mnum1
- Mnum1 à droite de Mnum3 Mnum3, Mnum1
- Mnum1 au dessus de Mnum3 Mnum1,[1] Mnum3
8. En utilisant le iota et d'autres fonctions déjà vues dans ce cours, affichez : - une suite de nombres allant de 1 à 10 ¼10
- de 10 à 100 10×¼10
- de 6 à 15 5+¼10 Ou 5‡¼15
- de ¯9 à 0 ¯10+¼10
- de 5 à 10, puis de 15 à 20 : 5 6 7 8 9 10 15 16 17 18 19 20 (4+¼6),14+¼6
9. Affichez une matrice de 3 lignes, 4 colonnes composées des nombres allant de 100 à 1200. 3 4½100×¼12
Recommencez en collant Mnum1 à droite. (3 4½100×¼12),Mnum1
Recommencez en additionnant Mnum1 à cette matrice. (3 4½100×¼12)+Mnum1
10. Collez une ligne de 100 au dessus de Mnum1 et une colonne de 0 à droite. 100,[1]Mnum1,0
- Collez une ligne de 100 sous Mnum1 et une colonne de 0 à gauche. 0,Mnum1,[1]100
- Collez une ligne de 100 au dessus de Mnum1 et une colonne de 0 à gauche. 100,[1]0,Mnum1 |
|