let pi = 4.*.atan(1.);; (** abs @param a un entier @return valeur absolue de a *) let abs a = if a <0 then (-a) else a;; (* abs(-5)=5, abs(0)=0, abs(3)=3 *) (** pair @param a un entier @return 1 si a est pair, 0 sinon *) let pair a = if (a mod 2) ==0 then 1 else 0;; (* pair(-2)=1, pair(2)=1, pair(5)=0 *) (** positif @param a un reel @return -1 si a<0, 0 si a=0, 1 si a>0 *) let signe a = if a <0 then -1 else if a =0 then 0 else 1;; (* signe(-5)=-1, signe(0)=0, signe(7)=1 *) (** volsphere @param r un reel positif rayon de la sphere @return le volume de la sphère *) let volsphere r = (4./.3.)*.(pi)*.(r*.r*.r);; (* volsphere(0)=0, volsphere(1)=4.19 *) (** max3 @param a b c trois reels @return le plus grand parmi a, b et c *) let max3 a b c = if a >b then if a >c then a else c else if c >b then c else b;; (* max3(1 2 3)=3, max3((-1) 2. 4)=erreur, max3(1 2 2)=2, max(1 1 2)=1 *) (** cadre @param a une chaine de caracteres @return la chaine encadree *) let cadre a = "!!"^a^"!!";; (* cadre "a"="!!a!!", cadre "Ailleau oueaurlde"="!!Ailleau oueaurlde!!" *) (** cadrechoisi @param un cadre et une chaine a encadrer @return la chaine encadree par le cadre *) let cadrechoisi cadre chaine = cadre^chaine^cadre;; (* cadrechoisi "!!!XXX!!!KIKOO!!!XXX!!!" "kikoo lai jan"="!!!XXX!!!KIKOO!!!XXX!!!kikoo lai jan!!!XXX!!!KIKOO!!!XXX!!!" *) (** encadrement @param un bord gauche un bord droit et une chaine tous trois de caracteres @return la chaine encadree a gauche et a droite *) let encadrement cadre1 cadre2 chaine = cadre1^chaine^cadre2;; (* encadrement "---==oO" "Oo==---" "Hello"="---==oOHelloOo==---" *) (** nombresol @param a b et c coefficients de l'equation aX²+bX+c=0 @return le nombre de solutions reelles de l'equation *) let nombresol a b c = if (b*.b-.4.*.a*.c) <0. then 0 else if (b*.b-.4.*.a*.c) =0. then 1 else 2;; (* nombresol 1 0 6 = , nombresol 1 0 0 = , nombresol 1 0 (-4) = *) (** u @param n un entier le rang tel que l'on veut U(n) @return U(n) *) let rec u n = if n =0 then 1. else sqrt((u(n-1))+.2.);; (* u 0 = 1, u 1 = 1.73205 *) (** somme @param un entier i @return somme des entiers de 1 à i *) let rec somme i = if i =0 then 0 else (somme(i-1))+i;; (* somme(0)=0, somme(1)=1, somme(2)=3, somme(3)=6, somme(4)=10, somme(5)=15 *)