SCILAB

1e PARTIE

ARCHITECTURE DES SYSTÈMES INFORMATIQUES


Un système informatique (SI) est composé de
Cet ensemble forme un tout et il est capable de traiter l'information.
CODAGE DES INFORMATIONS


L'alphabet des différents composants d'un SI, sauf pour les opérateurs humains, sont les deux chiffres : 0 et 1. Donc toute information, de et vers l'ordinateur, doit être codée par des mots qui sont une succession des 0 et des 1. Ces mots constituent le langage machine.
Il est évident qu'un opérateur humain peut très difficilement traiter des informations en langage machine. Nous avons donc développé des médiateurs entre le langage machine et notre langue qui sont les langages informatiques.
Ainsi la chaîne de traitement de l'information par un ordinateur est la suivante :
Souhaits d'un opérateur humain exprimés en langue courante


PROGRAMMATION


Traduction par le programmeur des souhaits en langage informatique


COMPILATION / INTERPRéTATION


Traduction par le compilateur en langage machine
SYSTÈME D'EXPLOITATION


Un ordinateur pour fonctionner a besoin d'exécuter des programmes qui lui sont propres.
L'ensemble de ces programmes qui, en outre, assurent l'interface entre l'ordinateur et les opérateurs humains est appelé système d'exploitation.               Actuellement il y en principalement deux : Linux et Windows.
SCILAB


Scilab est un logiciel de calcul scientifique qui intégre :
Il est open source et multi-platformes. Sa syntaxe est beaucoup plus facile à apprendre que celle d'autres langages informatiques.  Son seul inconvénient est qu'il est inteprété, donc l'exécution des programmes est lente.
VARIABLES


En maths une variable x est une convention de notation qui signifie que, lors d'un traitement mathématique, x est susceptible de prendre plusieurs valeurs, par opposition à une constante, par exemple p, qui elle ne prend qu'une valeur.
En informatique le terme variable est utilisé pour indiquer une association entre un nom, le nom de la variable - par exemple x - et une valeur, la valeur de la variable - par exemple 10. Cette valeur peut se modifier pendant l'exécution du programme et on retrouve ainsi la variable au sens mathématique du terme. Il est possible aussi que la valeur reste constante - ou mieux, elle doit rester constante - tout au long de l'exécution du programme et on retrouve ainsi la notion de la constante en mathématiques.
On vient de voir que la variable en informatique est l'association entre un nom et une valeur. En langage informatique le nom désigne en réalité une adresse mémoire dans laquelle sera stockée la valeur de la variable. Cette association entre nom de variable et adresse mémoire sera établie lors de la compilation du programme.
En conclusion, une variable permet l'assignation d'une valeur à cette variable et le stockage de cette valeur à l'adresse mémoire associée de façon univoque avec le nom de la variable.
VALEURS D'UNE VARIABLE


L'affectation d'une valeur à une variable se fait en utilisant le signe de l'égalité :
nomVar = 10
Cette instruction indique que la variable nomVar est égale à 10. En même temps elle indique que la cellule mémoire correspondant à l'adresse associée à nomVar aura la valeur 10.


Si nous avons une autre variable
nomVar1 = 20
alors nous pouvons tester si leur contenu est identique par l'intermédiaire de l'instruction
nomVar1 == nomVar2
Attention de ne pas utiliser dans ce cas l'instruction
nomVar1 = nomVar2
qui aurait eu comme résultat d'assigner à nomVar1 la valeur de nomVar2. Il faut aussi comprendre que pour ce dernier cas nomVar1 vaut maintenant 20 mais cette assignation n'affecte pas les adresse mémoire. Ainsi les deux variables pointent toujours à des adresses mémoire différentes.
PROBLÈMES DE L'ASSIGNATION D'UNE VARIABLE PAR UNE AUTRE VARIABLE


Cette possibilité qui est offerte par presque tous les langages de programmation, à savoir la possibilité d'assigner par nom la valeur d'une variable à une autre variable peut poser, lors de l'écriture des programmes, de problèmes de lisibilité et de validité du code.  


Soit l'instruction
nomVar1 = nomVar2
Pour que cette instruction fonctionne correctement, il faut que nomVar2 soit initialisée à une valeur avant son utilisation par l'instruction précédente.
Nous pouvons aussi avoir une sur-assignation par l'intermédiaire de l'instruction :
nomVar nomVar + 10
qui est une instruction assez troublante car la même variable se trouve à gauche et à droite de la relation d'affectation. Ici il faut comprendre qu'à la fin de l'instruction nomVar a comme valeur son anciene valeur augmentée de 10. Bien entendu noVar doit être initialisée avant son utilisation.
TYPES DES VALEURS


Les valeurs d'une variable peuvent, entre autres, être
Notons que Scilab ne nécessite pas le typage des variables, c'est-à-dire une déclaration préalable à leur utilisation qui indique le type (entier, réel, ..) de la variable.
VALEURS COMPLEXES


Avec Fortran, Scilab permet l'utilisation des variables complexes directement. Ainsi
x = 5+%i*2
représente la valeur complexe 5+2i.
On peut récupérer la partie réelle de x par l'instruction
real(x)
et la partie imaginaire par
imag(x)


Nous pouvons faire de la façon habituelle toutes les opérations arithmétiques avec les nombres complexes.
TABLEAUX


Une variable peut être associée à une valeur, mais aussi à un ensemble de valeurs, par exemple à une matrice. Dès qu'une variable contient plus d'une valeur, on parle de variable indicée ou tableau, c'est-à-dire d'une variable munie d'indices qui nous permettent de distinguer e.g. la première valeur de la deuxième. Ainsi a(1) indique le premier élément du tableau a et a(2) le deuxième.


Nous pouvons avoir des tableaux à plusieurs dimensions. Par exemple en deux dimensions a(2,5) indique l'élément qui se trouve à la deuxième ligne et la cinquème colonne.


L'initialisation d'un tableau se fait par l'instruction
tableau = []
[] indique un tableau vide.
Par contre l'instruction
tableau = [1,2,3,4]
indique un vecteur ligne de dimension 1×4.
Pour un tableau à deux dimensions on a
tableau = [1,2;3,4]


Notons que Scilab ne nécessite pas le typage des tableaux, c'est-à-dire une déclaration préalable à leur utilisation qui indique le type (entier, réel, ..) des valeurs d'un tableau, ni ses dimensions. Nous pouvons ainsi dans un tableau mélanger des variables de n'importe quel type.
STRUCTURES DE COMMANDE


Un programme est composé d'une suite d'instructions, entrecoupé par des commentaires. En ignorant les commentaires, nous pouvons dire que les instructions se distinguent en :
Les instructions de test donnent lieu à ce qu'on appelle structures de commande conditionnelles, car le(s)résultat(s) du (des) test(s) commande(nt) la manière dont l'exécution du programme sera poursuivie.
Dans les instructions de calcul il est possible d'avoir des parties contiguës qui doivent s'exécuter plusieurs fois de façon répétitive. Nous avons ainsi des structures de commande répétitives.
Nous allons commencer par ces derniers.
STRUCTURE RÉPÉTITIVE


Supposons que nous voulons créer un tableau a de 1 à 10 tel que a(i) = ii =1,2,...,10. On peut envisager de faire le programme :
a(1) = 1;
a(2) =2;
...
a(9) = 9;
a(10) = 10;
Nous pouvons aussi utiliser une structure répétitive d'instructions comme suit :
for i = 1 : 10 [do]
    a(i) = i;
end;
Les mots en gras sont des mots reservés du langage Scilab. (Réservés signifie que nous n'avons pas le choix de les utiliser d'une autre façon que celle-ci.) Le mot entre crochets est optionnel.
En traduisant ce bloc répétitif on
pour i de 1 à 10 [faire]
    a(i) = i;
finFaire;
STRUCTURE REPETITIVE AVEC PAS


Si on veut créer un tableau de 10 éléments avec a(i) = 11-i on peut écrire le bloc répétitif
for i = 10 : -1 : 1 [do]
    a(11-i) = i;
end;
qui peut se traduire comme suit
pour i de 10 à 1 avec pas = -1 [faire]
    a(10-i) = i;
finFaire;


Mettre dans un tableau les 10 nombres impairs 1,3,...,19.
POINTS À SURVEILLER POUR UNE STRUCTURE RÉPÉTITIVE


STRUCTURES DE COMMANDE CONDITIONNELLES


Nous avons trois types de structures de commande conditionnelles


De ces trois structures de commande on étudiera les deux premières.
STRUCTURE DE COMMANDE AVEC TEST


Il s'agit de l'utilisation du test if seul ou en association avec elseif et/ou else. Nous donnons dans la suite l'utilisation de if.
Il est à noter que nous pouvons enchaîner plusieurs elseif à la suite les uns des autres, mais il ne peut y avoir qu'un seul else. On peut dire que else joue le rôle de l'instruction par défaut : quand aucune condition n'est satisfaite, on exécute l'instruction qui suit else. Pour le voir, exécuter la dernière structure avec a=-4 et b=6.
STRUCTURE DE COMMANDE AVEC BOUCLE


Il s'agit d'une structure répétitive avec le test d'arrêt sous forme explicite.  On reprend l'exemple de la structure répétitive et on a :
i = 1;
while i < 10
 a(i) = i;
 i = i+1;
end;
que nous pouvons traduire par
i = 1;
tantQue i < 10
 a(i) = i;
 i = i+1;
finTantQue;


Mettre dans un tableau les 10 nombres impairs 1,3,...,19 en utilisant la boucle while.
POINTS À SURVEILLER POUR UNE STRUCTURE RÉPÉTITIVE





File translated from TEX by TTH, version 3.76.
On 25 Sep 2006, 23:11.