mode(7)    //variante : taper exec('aide_TP1.sci',7)
//Le script aide_TP1 en mode "démonstration" permet de se
//familiariser avec les commandes simples de Scilab.
//Les commentaires écrits apres un "//" ne sont pas interprétés.F

disp('Variables :')
a=1
2+a
b=3*ans    //le dernier résultat est appelé "ans" pour "answer"
1 + 2^5/4, 3e6,..       //"," sépare et ".." attend la suite
%i^2, %pi, exp(%i*%pi)  //%i représente une racine carrée de -1
a=1; b=a+1; c='0*a';    //";" empêche l'affichage du résultat
a=a, b, evstr(c)        //on évalue la chaîne de caractères c
x= (1>=0); y= (0~=0);
x,y                     //vrai = %T et faux = %F

disp('Affichage (avec ""."" au  lieu de la virgule décimale) :');
format('v',17), 1/3  //format avec (au maximum) 17-2 chiffres
format('e',11), 1/3  //notation scientifique avec 11-6 chiffres
format('v',10), 1/3 , format() //format courant et sa valeur
1+%eps==1, 1+%eps/2==1  //epsilon machine=%eps=2^(-52)
2^(-1074)                 //plus petit nombre flottant > 0
(2^1023)*(2-(2^(-52)))    //plus grand nombre flottant
10^1000, ans/ans          //infini : %inf, not_a_number : %nanF

disp('Matrices et vecteurs :');
A=[1 2
2 3]               //variantes : A=[1 2;2 3] ou A=[1,2;2,3]
A(2,2)=1; A
B=rand(2,3)               //matrice 2x3 aléatoire
u=-2:4                     //":" construit un intervalle de Z
2:0.5:4                   //nombres de 2 à 4 par pas de 0.5
v=[2,3,4]'                //vecteur=adjoint d'une matrice ligne
prod(1:20)                //factorielle 20
p=poly([0,-2],'t'),..  //polynôme de racines 0 et -2
a=coeff(p)             //coefficients en croissant du polynôme p
roots(p),..
poly(a,'t','c')    //récupération de p et de ses racines
a2=a(length(a))           //coefficient dominant de p
z=horner(p,2);            //évaluation de p(2)
printf('\n p(2)=%g\n',z) //affichage ("\n" : saut de ligne)F

disp('Tests et boucles :');
clear x; for k=1:5, x(k)=k^2; end; x  //"1:n" est d'accès rapide
k=0; while (k^3)<10; k=k+1; end; k //variante de "for"
n = input('nombre entier a tester ?\n'); //dialogue
if n==[] then n=%nan; r='il pair ou impair ?';..
elseif modulo(n,2)==0 then r='pair'; else r='impair'; end;
printf('\n %g est %s\n',n,r)F

disp('Graphes :');
xset("window",1), xbasc(), xset("wdim",300,300)    //fenêtre 1
x=[-0.5:0.001:0.5]'; //les abscisses forment une suite de points
ieee(2), y=x.*sin(1 ./x); //ordonnées associées, 1/0 ne bloque pas
plot2d(x,y,5,'061') //graphe de x->y sur [-1/2,1/2] en rouge ("5")
xtitle('y=x*sin(1/x)','x','y'), xgrid(12); //légende et grille
xpoly([-.5 .5],[0 0],"lines")      //on trace l'axe des abscissesF

disp('équations differentielles :');
xset("window",2), xbasc(), xset("wdim",300,300)    //fenêtre 2
exec secondmembre_y.sci;  //appel de la fonction secondmembre_y
t=0:0.05:1;       //abscisses en lesquelles on évalue la solution
yplus=ode(1,0,t,secondmembre_y);       //y' = y et y(0)=1, sur [0,1]
ymoins=ode(1,0,-t,secondmembre_y);  //y' = y et y(0)=1, sur [-1,0]
plot2d([-t',t'],[ymoins',yplus'])    //solution sur [-1,1]
xtitle('solution de y''=y et y(0)=1')F

clear    //on efface les valeurs affectées aux variables
abort    //on abandonne le mode "démonstration"