Traduire du Caml en C

Ghada -  
Jithel Messages postés 1049 Statut Membre -
Bonjour, svp traduisez ce code de Caml --> C

let d = fun x y i j -> if x.(i-1)=y.(j-1) then 1 else 0;;
let subseq length = fun x y ->
let m = vect length x and n = vect length y in
let l = make matrix (m+1) (n+1) 0 in
for i = 1 to m do
for j = 1 to n do
l.(i).(j) <- max
(l.(i-1).(j-1) + (d x y i j))
(max l.(i).(j-1) l.(i-1).(j))
done
done;
l.(m).(n);;
let t1 = [|�a�;�b�;�c�|];;
let t2 = [|�c�;�b�;�c�|];;
subseq length t1 t2;;
let min fun = fun f i1 i2 ->
let i = ref i1 in let res = ref (f !i) in
for j = i1 to i1 do
if !res > (f j) then (res := f j; i := j; );
done;
!i;;
t optprod = fun d ->
let n = vect length d - 1 in
let rec p = fun i j ->
let f = fun k ->
(p i k ) + (p (k+1) j) + d.(i)*d.(k+1)*d.(j+1) in
if i = j then 0
else f (min fun f i (j-1))
in p 0 (n-1)
let optprod dyn = fun d ->
let n = vect length d - 1 in
let p = make matrix n n 0 in
for l = 1 to (n-1) do
for i = 0 to (n-l-1) do
let j = l + i in
let f = fun k -> p.(i).(k)+p.(k+1).(j)+d.(i)*d.(k+1)*d.(j+1) in
let k = min fun f i (j-1) in
p.(i).(j) <- f k
done
done;
p.(0).(n-1);;
let optprod tree d =
let n = vect length d - 1 in
let p = make matrix n n 0 in
let s = make matrix n n (-1) in
for l = 1 to n - 1 do
for i = 0 to n - l - 1 do
let j = l + i in
let f k = p.(i).(k) + p.(k+1).(j) + d.(i) * d.(k+1) * d.(j+1) in
let k = min fun f i (j-1) in
p.(i).(j) <- f k;
s.(i).(j) <- k
done
done;
let rec aux i j =
if i = j then (Matrix i)
else Product (aux i s.(i).(j), aux (s.(i).(j) + 1) j)
in
aux 0 (n-1)
;;

2 réponses

    1. Ghada
       
      Où est la solution dans votre réponse !!?
      0
    2. Jithel Messages postés 1049 Statut Membre 171
       
      Nous sommes des bénévoles. De plus, en publiant un message sur ce forum, tu as accepté les conditions d'utilisation du site. Nous te prierons de bien vouloir te plier aux règles de notre forum. Sans quoi, aucune aide ne pourra t'être apportée
      0
  1. Utilisateur anonyme
     
    Si tu veux que quelqu'un fasse ton travail à ta place, passe une petite annonce dans un site de recrutement.
    Ça a un prix mais c'est possible.

    Ici, on aide les gens motivés à s'en sortir par eux-mêmes, pour qu'ils progressent.

    Le but d'un exercice c'est de s'exercer, donc ici personne ne le fera à ta place.
    0
    1. Ghada
       
      Je n'utilise pas le language Caml et j'ai pas un besoin de l'utiliser et Ce n'est pas un exercice appartient à mes études .
      C'est juste que j'ai un projet (programme) que je préparait loin à mes études .
      Si vous pouvez m'aider merci sinon merci aussi .
      (J'ai pas le besoin de personne pour faire mes exercices à ma place
      0
    2. Jithel Messages postés 1049 Statut Membre 171
       
      Pourquoi ne pas faire quelque recherche sur la syntaxe Caml au préalable et nous présenter tes problèmes de compréhension ? Rien qu'en lisant le code, ça me semble assez évident pour certaines instructions (min, max)
      0
    3. Utilisateur anonyme
       
      D'un autre coté, pourquoi ne pas tout simplement écrire ton propre algorithme en C.
      0
    4. Jithel Messages postés 1049 Statut Membre 171
       
      Si c'est un algorithme trop compliqué, mieux vaut le porter en C en conversion ligne par ligne. Je pense que ce code ne lui appartient pas car il n'utilise pas le Caml.
      0
    5. Utilisateur anonyme
       
      Et s’il y a des outils qui existent en Caml et pas en C, la traduction ligne par ligne ne sera pas simple.
      Par exemple, (même si je ne maitrise pas le C) je suis à peu sûr qu’il n’y a pas d’équivalent direct à Make Matrix, il faudra soit trouver une lib dediée soit recorder la fonction
      0