Section : Programmation
Précédent : Programmation
Suivant : Style de programmation

Types de fichiers

Scilab travaille à partir d'un répertoire de base, qui est donné par la commande pwd. C'est là qu'il va chercher par défaut les fichiers à charger ou à exécuter. On peut le changer par la commande chdir. A défaut, il faut saisir le chemin d'accès complet du fichier que l'on souhaite charger ou sauvegarder. Le plus facile est d'utiliser le menu de l'interface. Dès que les calculs à effectuer requièrent plus de quelques lignes de commande, on a intérêt à saisir ces lignes dans un fichier exécutable externe. Dans l'interface de Scilab, les seules commandes qui apparaîtront seront les exécutions ou les chargements répétés de fichiers externes. Il est conseillé de maintenir ouvertes deux fenêtres : la fenêtre Scilab, et une fenêtre d'édition (Emacs sous Linux, WordPad sous Windows par exemple). Scilab distingue trois sortes de fichiers.
  1. Les fichiers de sauvegarde. Ce sont des fichiers binaires, créés par la commande save et rappelés par load. Ceci permet de reprendre un calcul en conservant les valeurs déjà affectées. On peut aussi sauver des variables dans un fichier texte par write et les rappeler par read.
  2. Les fichiers de commandes. Ce sont des fichiers texte. Ils contiennent des suites d'instructions Scilab, qui sont exécutées successivement par exec. Sauvez dans le répertoire courant les trois lignes suivantes sous le nom losange.sce. Attention, la dernière ligne du fichier doit obligatoirement se terminer par un retour-chariot pour être prise en compte.
    x=[0,-1,0,1;-1,0,1,0]
    y=[-1,0,1,0;0,1,0,-1]
    plot(x,y)
    
    La commande exec("losange.sce") affichera x, puis y, puis tracera un losange. On peut écrire une matrice dans un fichier de texte à exécuter (par exemple pour importer des données issues d'un tableur). Dans ce cas, les lignes du fichier, si elles correspondent aux lignes de la matrice, ne doivent pas se terminer par deux points. Par exemple le fichier saisie.txt peut contenir les trois lignes (terminées par un retour-chariot) :
    A=[1,2,3;
    4,5,6;
    7,8,9];
    
    La commande exec("saisie.txt") affectera la matrice A.
  3. Les fichiers de fonctions. Comme les fichiers de commandes, ce sont des fichiers texte. Ils contiennent la définition d'une ou plusieurs fonctions. La définition d'une fonction commence obligatoirement par une ligne qui déclare le nom de la fonction, les variables d'entrée x1,x2,...,xm et le vecteur des variables de sortie [y1,y2,...,yn].
        function [y1,y2,...,yn] = nom_de_la_fonction(x1,x2,...,xm)
    
    Là encore, il ne faut pas oublier de terminer la dernière ligne par un retour-chariot. Enregistrez par exemple dans le fichier cloche.sci les lignes suivantes.
    function d = cloche(x)
    // CLOCHE densite de la loi normale N(0,1)
    d = (1/sqrt(2*%pi))*exp(-x.^2/2);
    
    Si ce fichier est placé dans le répertoire courant, getf("cloche.sci") charge et compile la nouvelle fonction.
    getf("cloche.sci")
    x=[-3:0.1:3]; y=cloche(x);
    plot(x,y)
    fplot2d(x,cloche)
    intg(-5,1.96,cloche)
    
Les fichiers les plus couramment utilisés sont les fichiers de commandes et les fichiers de fonctions. Les extensions .sce pour les fichiers de commandes et .sci pour les fichiers de fonctions sont de tradition, mais ce n'est pas une obligation. Un fichier de commandes peut réaliser les mêmes tâches qu'une fonction et réciproquement. Pour une utilisation courante ou de mise au point, les fichiers de commandes permettent de suivre le contenu de toutes les variables. Pour une programmation plus avancée, il est préférable de définir des fonctions, car leurs variables internes restent locales. Un même fichier .sci peut contenir plusieurs fonctions. Les fonctions du langage sont regroupées dans des librairies qui contiennent leur code Scilab (fichiers texte .sci), et leur code compilé (fichiers .bin). On peut transformer un ensemble de fichiers de fonctions en librairie, en sauvant les versions compilées et en rajoutant les fichiers d'aide.

Section : Programmation
Précédent : Programmation
Suivant : Style de programmation

© B. Ycart (2001)