Forum Index


 
 Forum IndexFAQSearchRegisterLog in

:: Programmation avec scilab (6) ::

 
Post new topic   Reply to topic     Forum Index -> ~~ semestre 1~~ -> l'algorithmique et langage C
Previous topic :: Next topic  
Author Message
Admin
Administrateur

Offline

Joined: 28 Oct 2011
Posts: 27
Point(s): 61
Moyenne de points: 2.26
Groupe: GROUPE 1

PostPosted: Thu 17 Nov - 11:50 (2011)    Post subject: Programmation avec scilab (6) Reply with quote

  1. Scripts et fonctions
Un script est un fichier contenant un ensemble de commandes SCILAB (par convention, l'extension d'un tel fichier est .sce)

Pour exécuter un fichier script :

on peut l'ouvrir dans l'éditeur de SCILAB puis le charger (Ctrl-l),

ou bien le charger directement dans la fenêtre de commandes SCILAB avec la routine exec.
 
 

_________________
A friend In need Is a friend Indeed


ما الفشل إلا هزيمة مؤقتة تخلق لك فرص النجاح


Back to top
Skype
Publicité






PostPosted: Thu 17 Nov - 11:50 (2011)    Post subject: Publicité

PublicitéSupprimer les publicités ?
Back to top
Admin
Administrateur

Offline

Joined: 28 Oct 2011
Posts: 27
Point(s): 61
Moyenne de points: 2.26
Groupe: GROUPE 1

PostPosted: Thu 17 Nov - 11:56 (2011)    Post subject: Programmation avec scilab (6) Reply with quote

3.Utilisation de plusieurs fonctions 

 
Un fichier .sci peut contenir la définition de plusieurs fonctions.

Exemple : créez le fichier suivant en le nommant exemple_2_fonctions.sci

function f1()
printf("Fonction f1\n");
endfunction

function f2()
printf("Fonction f2\n");
endfunction

puis chargez-le dans SCILAB, et tapez les instructions suivantes :

f1()
f2()

Note : : comme en C, l'appel à une fonction sans paramètre doit se faire avec les parenthèses.

Si une première fonction nécessite l'usage d'une deuxième fonction définie dans un autre fichier, alors cette deuxième fonction doit être chargée par la première à l'aide de la routine getf.

Exemple : créer les deux fichiers suivants :

- script fonction1.sci
function R1()
getf("fonction2.sci");
printf("Fonction R1\n");
R2();
end

- script fonction2.sci
function R2()
printf("Fonction R2\n");
endfunction

puis charger le script fonction1.sci et taper l'instruction
R1()

Par défaut, chaque variable est locale à la fonction où est elle définie.

Si on souhaite utiliser une même variable dans plusieurs routines, il faut la déclarer en début de script/fonction à l'aide du mot-clé global .

Exemple :

function main()

global a

a = 2;
printf("main : a = %d\n", a);
R2();
R1();
R2();
printf("main : a = %d\n", a);

endfunction

function R1()

global a
printf("R1 : a = %d\n", a);

endfunction

function R2()

global a
a=a+1;
printf("R2 : a = %d\n", a);

endfunction

Note : le nom d'une fonction est celui défini dans l'en-tête (et non pas celui du nom du fichier dans lequel est éventuellement définie la fonction).

Note : une fonction définie dans SCILAB devient une variable qui peut être supprimée à l'aide de la commande clear.

Note : quand on utilise différentes fonctions dont le code source n'est pas trop long, il est préférable de les définir dans un même fichier, afin de les chargeant ensemble (raccourci Ctrl-L de l'éditeur SCILAB).
 

 

_________________
A friend In need Is a friend Indeed


ما الفشل إلا هزيمة مؤقتة تخلق لك فرص النجاح


Back to top
Skype
Admin
Administrateur

Offline

Joined: 28 Oct 2011
Posts: 27
Point(s): 61
Moyenne de points: 2.26
Groupe: GROUPE 1

PostPosted: Thu 17 Nov - 11:57 (2011)    Post subject: Programmation avec scilab (6) Reply with quote

4.Récursivité 

 

 
Il est possible d'écrire des fonctions récursives.

Exemple : la fonction "factorielle"

// définition de la fonction
function p=fact(n)
if n<1 then
p=1;
else
p=n*fact(n-1);
end
endfunction

// appel
fact(5)
fact(0)

 

_________________
A friend In need Is a friend Indeed


ما الفشل إلا هزيمة مؤقتة تخلق لك فرص النجاح


Back to top
Skype
Admin
Administrateur

Offline

Joined: 28 Oct 2011
Posts: 27
Point(s): 61
Moyenne de points: 2.26
Groupe: GROUPE 1

PostPosted: Thu 17 Nov - 11:59 (2011)    Post subject: Programmation avec scilab (6) Reply with quote

5.Paramètre de type fonction 

 
Une fonction définie par l'utilisateur peut être passée en entrée comme paramètre d'une autre routine.

Exemple :

\\ définition de la fonction y=x*x
function y=f(x)
y = x.*x;
endfunction

\\ définition de la fonction y=cos(x)
function y=g(x)
y = cos(x);
endfunction

\\ définition d'une routine évaluant une fonction f en des valeurs x
function y=eval_f(f,x)
y = f(x)
endfunction

\\ utilisation de eval_f
x = 0:5
y = eval_f(f,x)
y = eval_f(cos,x)
y = eval_f(g,

 

_________________
A friend In need Is a friend Indeed


ما الفشل إلا هزيمة مؤقتة تخلق لك فرص النجاح


Back to top
Skype
Contenu Sponsorisé






PostPosted: Today at 18:23 (2019)    Post subject: Programmation avec scilab (6)

Back to top
Display posts from previous:   
Post new topic   Reply to topic     Forum Index -> ~~ semestre 1~~ -> l'algorithmique et langage C All times are GMT
Page 1 of 1

 
Jump to:  

Index | Administration Panel | Create a free forum | Free support forum | Free forums directory | Report a violation | Conditions générales d'utilisation
Texno x0.3 © theme by Larme D'Ange 2006
Powered by phpBB © 2001, 2005 phpBB Group