Accueil › Forums › Programmation WIMS › Programmation d’exercices OEF › Octave et fonctions extenes avec majuscule
- Ce sujet contient 0 réponse, 1 participant et a été mis à jour pour la dernière fois par Pascal Denis, le il y a 3 années et 4 mois.
-
AuteurMessages
-
-
15 juillet 2021 à 17:00 #6580Pascal DenisParticipant::
Bonjour à tous,
je développe simultanément des outils pour les utiliser sous Octave/Matlab et Wims. Je viens de m’apercevoir que lors de l’envoie des instructions à Octave, les fonctions sont uniquement valides en minuscule. Voici la procédure suivie sous Mac (octave 6.2.0) et Debian (octave 4.0.3).
Création de 3 fonctions identiques :
function aa = test_1(a,b,c) aa = a+b+c; end
function aa = test_2(a,b,c) aa = a+b+c; end
function aa = Test_3(a,b,c) aa = a+b+c; end
respectivement placées dans les fichiers test_1.m, Test_2.m, test_3.m et positionné dans l’arborescence d’octave (/usr/share/octave/4.0.3/m/Wims/ sous débian). Sous l’utilisateur wims, je lance octave et effectue un rehash pour rafraîchir les fichiers accessibles/
octave:1> rehash octave:2> test_1(1,2,3) ans = 6 octave:3> Test_2(1,2,3) ans = 6 octave:4> Test_1(1,2,3) error: 'Test_1' undefined near line 1, column 1 octave:5> Test_3(2,3,4) error: 'Test_3' undefined near line 1, column 1 octave:6> test_3(2,3,4) warning: function name 'Test_3' does not agree with function filename '/opt/local/share/octave/6.2.0/m/Wims/test_3.m' ans = 9
Ce qui est cohérent, les fonctions connues d’octave ne sont que test_1, Test_2, & Test_3 pour lequel octave note une incohérence nom fichier / nom fonction
Sous Wims, j’exécute les lignes suivantes :\text{Sol1 = wims( exec octave Z = Test_1(1,2,3);disp(Z);)} \text{Sol2 = wims( exec octave Z = test_1(2,2,3);disp(Z);)} \text{Sol3 = wims( exec octave Z = test_3(3,2,3);disp(Z);)} \text{Sol4 = wims( exec octave Z = Test_3(4,2,3);disp(Z);)}' à l'affichage j'obtiens bien
Sol1 = 6
Sol2 = 7
Sol3 = 8
Sol4 = 9`Si l’on tente :
\text{Sol5 = wims( exec octave Z = Test_2(5,2,3);disp(Z);)} \text{Sol4 = wims( exec octave Z = test_2(6,2,3);disp(Z);)}' Sol5 n'est pas calculée et pour Sol6 on a le messge d'erreur suivant : ERROR. wims has detected an error in the module ...
Conclusion
On ne peut pas appeler des fonctions même de base si elle comporte des majuscules, par contre, il n’y a a priori pas de souci pour passer des arguments avec Majuscules / Minuscules.
— Est-il possible d’ajuster l’interface entre wims et octave ?
— Sinon modifier le nom des fichiers contenant les fonctions qui seront mis à la disposition d’octave et de Wims.
-
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.