Octave et fonctions extenes avec majuscule

Accueil Forums Programmation WIMS Programmation d’exercices OEF Octave et fonctions extenes avec majuscule

Vous lisez 0 fil de discussion
  • Auteur
    Messages
    • #6580
      Pascal Denis
      Participant
      Up
      0
      Down

      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.

Vous lisez 0 fil de discussion
  • Vous devez être connecté pour répondre à ce sujet.