Programmation avec Scilab
Structures algorithmiques de base
Index ScilabCondition et test if
Le traitement d'une condition se fait par l'algorithme En Scilab la syntaxe d'une instruction conditionnelle est, assez communément,if test
// instructions
end
Si le test
est vrai les instructions situées entre if
et end
sont exécutées,
pas dans le cas contraire.
Plus généralement, on peut compléter la structure conditionnelle précédente en indiquant aussi quoi faire si la condition n'est pas vraie, sinon (else en anglais), voire même imbriquer plusieurs sinon. En Scilab, la syntaxe complète est:
if test 1
// instructions
elseif test 2
// instructions
elseif test 3
// instructions
...
else
// instructions
end
Dès qu'un test est vrai, les instructions correspondantes sont effectuées puis on sort de l'ensemble des conditions,
même si une condition après un autre elseif
est vraie, elle est ignorée: l'ordre importe.
Opérateurs logiques
Pour définir un test, on peut utiliser les opérateurs logiques:==
: égalité<
,>
,<=
et>=
: inférieur ou supérieur, strictement ou non~
: négation, par exempex~=4
pour le test x différent de 4, équivalent à~(x==4)
&
: "et" logique|
: "ou" logique
%T
et %F
.
Boucle for
La syntaxe générale d'une bouclefor
est la suivante,
V étant un vecteur
for i=V
// instructions
end
par exemple
V=[1 2 6 78];
for i=V
disp(i);
end
qui retourne
1.
2.
6.
78.
Tout vecteur (voir création de matrices / vecteurs)
peut être utilisé, numérique ou non:
for i=["a" "b" "c"]
disp(i);
end
retourne a b c
.
Un des cas le plus fréquent en pratique est celui où
V=[1 2 3 … n]
: on balaye successivement tous les entiers:
for i=1:n
// instructions
end
Boucle conditionnelle while
Le traitement d'une boucle conditionnelle, c'est-à-dire d'une boucle qui s'effectue sous certaines conditions, peut se représenter par l'algorithme En Scilab, cette structure s'écrit:while test
// instructions
end