>

 

EXERCICE 1 

 

 

> E:=proc(x)
local n;
n:=0;
if x>=0 then
while n<=x do n:=n+1 od: return(n-1);fi;
if x<0 then
while n>=x do n:=n-1 od: return(n);fi;
end:
 

> E(12.2);
 

12 (1)
 

> E(-12.2);
 

-13 (2)
 

>
 

EXERCICE 2 

> ab:=proc(x)
if x>=0 then return(x);fi;
return(-x);
end:
 

> ab(-5);
 

5 (3)
 

>
 

EXERCICE 3 

> moy:=proc(N,K)
local SN,SK,k;
if nops(N)<>nops(K) then return(`les deux listes n'ont pas la même taille...`);fi;
SN:=0;
SK:=0;
for k from 1 to nops(N) do
  SN:=SN+N[k]*K[k];
  SK:=SK+K[k];
od:
return(evalf(SN/SK));
end:
 

>
 

> moy([12,13,14],[1,2,3]);
 

13.33333333 (4)
 

>
 

EXERCICE 4 

> S:=proc(n)
local s,t,k:
s:=1: t:=1:
for k to n do
   t:=t/k;
   s:=s+t;  
od:
return(evalf(s));
end:
 

>
 

> S(32);
 

2.718281828 (5)
 

>
 

>
 

> seuil:=proc(s)
local n:
n:=0:
while evalf(exp(1)-S(n),s+1)>10^(-s) do
     n:=n+1 od:
return(n);
end:
 

>
 

> seuil(100);
 

69 (6)
 

EXERCICE 5 

> essai:=proc(a,b,c)
local D;
D:=b^2-4*a*c;
if D>0 then return([(-b-sqrt(D))/(2*a),(-b+sqrt(D))/(2*a)]); fi;
if D=0 then return([(-b)/(2*a)]); fi;
if D<0 then return([(-b-I*sqrt(-D))/(2*a),(-b+I*sqrt(-D))/(2*a)]); fi;
end:
 

> essai(1,1,1);
 

[`+`(`-`(`/`(1, 2)), `-`(`*`(`+`(`*`(`/`(1, 2), `*`(I))), `*`(`^`(3, `/`(1, 2)))))), `+`(`-`(`/`(1, 2)), `*`(`*`(`/`(1, 2), `*`(I)), `*`(`^`(3, `/`(1, 2)))))] (7)
 

>
 

>
 

EXERCICE 6 

>
 

> test:=proc(l::list)
local i,T:
T:=`croissante`:
for i from 1 to nops(l)-1 do
      if l[i]>l[i+1] then T:= `pas croissante`; return(T); fi:
od:
return(T);
end:
 

>
 

> test([1,2,3,4,5,6,7,8,9,10,1]);
 

`pas croissante` (8)
 

>
 

>
 

EXERCICE 7 

>
 

> app:=proc(E,X,Y)
local f;
f:=unapply(E,x);
if f(X)=Y then return(`le point de coordonnées (`,X,Y,`) appartient à la courbe d'équation y=`,f(x)); else return(`le point de coordonnées (`,X,Y,`) n'appartient pas à la courbe d'équation y=`,f(x)); fi;
end:
 

> app(x^2,2,5);
 

`le point de coordonnées (`, 2, 5, `) n'appartient pas à la courbe d'équation y=`, `*`(`^`(x, 2)) (9)
 

>
 

>
 

>
 

>
 

EXERCICE 9 

>
 

>
 

> spir:=proc(n)
local z,L,j;
z:=-I;
L:=[Re(z),Im(z)];
for j to n do
 z:=z*sqrt(2)*exp(-I*Pi/4);
 L:=L,[Re(z),Im(z)];
od;
plot([L]);
end:  

 

>
 

> spir(6);
 

Plot_2d
 

>
 

>
 

EXERCICE 10 

>
 

> restart:
 

> branche:=proc(E)
local a,b,F:
F:=unapply(E,x);
a:=limit(F(x)/x,x=infinity):
if type(a,`..`)=true then return(`pas d'asymptote`); fi;
if type(a,infinity)=true then return(`branche parabolique verticale`); fi;
if a=0 then return(`direction asymptotique horizontale`); fi;
b:=limit(F(x)-a*x,x=infinity):
if type(b,`..`)=true then return(`direction asymptotique d'equation y=`,a, `x`);fi;
if type(b,infinity)=true then return(`branche parabolique dans la direction y=`,a,` x`);fi;  printf(`asymptote d'equation y=%f x+%f`,a,b);
end:
 

>
 

> branche(x+3+sqrt(x));
 

>
 

(10)
 

>
 

>