next up previous contents index
suivant: Convertir monter: Des programmes pour les précédent: Tri par fusion   Table des matières   Index

Définir une fonction par morceaux

On peut utiliser l'instruction si...sinon ou l'instruction ifte ou mieux l'instruction when (ou avec la version infixée de when qui est ?).
Soit la fonction f définie par :

f (x) = $\displaystyle \left\{\vphantom{
\begin{array}{rl}
-1& \mbox{si }x<0\\
0& \mbox{si }x=0\\
+1& \mbox{si }x>0
\end{array}}\right.$$\displaystyle \begin{array}{rl}
-1& \mbox{si }x<0\\
0& \mbox{si }x=0\\
+1& \mbox{si }x>0
\end{array}$

On tape
 f(x):={
  si x<0 alors retourne -1;fsi;
  si x==0  alors retourne 0 fsi;
  si x>0 alors retourne 1;fsi;
}:;
mais on peut aussi écrire la même chose avec l'instruction ifte :
f(x):=ifte(x<0,1,ifte(x==0,0,1)
Mais il faut alors savoir que pour que f(a) soit valable il faut que a contienne une valeur.
Par contre si on tape :
g(x):=when(x<0,1,when(x==0,0,1)
ou
g(x):=(x>0)? 1 : ((x==0)? 0 : -1)
g(a) est valable même si a est symbolique i.e. ne contient pas de valeur.

Documentation de giac écrite par Renée De Graeve