CONVERTIR CODE JAVASCRIPT EN C

Fermé
jeandchanel Messages postés 135 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
Quelqu'un peut il m'aider a réécrire ce code en langage C ?

// javascript
function combinaisons(a) { // a = new Array(1,2)
  var fn = function(n, src, got, all) {
    if (n == 0) {
      if (got.length > 0) {
        all[all.length] = got;
      }
      return;
    }
    for (var j = 0; j < src.length; j++) {
      fn(n - 1, src.slice(j + 1), got.concat([src[j]]), all);
    }
    return;
  }
  var all = [];
  for (var i=0; i < a.length; i++) {
    fn(i, a, [], all);
  }
  all.push(a);
  return all;
}




A voir également:

2 réponses

gardiendelanuit Messages postés 1770 Date d'inscription   Statut Membre Dernière intervention   264
 
Bonjour,

Commence par le typage dans les déclarations de fonction et variables ;)
0
Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   101
 
Bonjour,

Si le but est de montrer que la conversion entre deux langages similaires est quasi-impossible, c'est l'exemple idéal.

Le C est fortement typé, Javascript ne l'est pas du tout.
Ce code utilise a outrance les listes et les listes de listes et le C un des pires langages pour cela.
Il y a une fonction définie dans une fonction, c'est un piège à contourner en C.
Et, selon moi le pire pour un portage, l'action effectuée par la fonction est incohérente, elle s'appelle combinaisons et elle est incapable de générer les combinaisons!

Autrement dit. Si c'est un exercice, il est anti-pédagogique. Si le but est d'écrire une fonction calculant des combinaisons en C, ça n'est certainement pas le bon point de départ.
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

La raison est plus simple. Il a un exercice à faire, après une (très courte) recherche sur Google il a trouvé qu'un code en JavaScript (sur cette page), sauf que son exercice étant à faire en C il faut maintenant le traduire.

Comme ça de son exercice il n'aura rien fait...
0