IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Caml Discussion :

Problème compréhension algorithme Caml


Sujet :

Caml

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Problème compréhension algorithme Caml
    Bonjour à tous,
    je suis étudiant en deuxième année de licence informatique et notre professeur nous a donné la correction d'un algorithme en cours, mais en caml. Le problème est que je ne comprends pas très bien ce que fait cet algorithme. Est-ce que quelqu'un de gentil pourrait m'expliquer ce qu'il fait ?! Ou écrire en pseudo-code simplement. Merci d'avance !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
     
    let table = [|'A'; 'B'; 'C'; 'D'; 'E'; 'F'; 'G'; 'H'; 
    		     'I'; 'J'; 'K'; 'L'; 'M'; 'N'; 'O'; 'P'; 
    		     'Q'; 'R'; 'S'; 'T'; 'U'; 'V'; 'W'; 'X'; 
    		     'Y'; 'Z'; 'a'; 'b'; 'c'; 'd'; 'e'; 'f'; 
    		     'g'; 'h'; 'i'; 'j'; 'k'; 'l'; 'm'; 'n'; 
    		     'o'; 'p'; 'q'; 'r'; 's'; 't'; 'u'; 'v'; 
    		     'w'; 'x'; 'y'; 'z'; '0'; '1'; '2'; '3'; 
    		     '4'; '5'; '6'; '7'; '8'; '9'; '+'; '/'|];;
     
    let octet_en_sextet t = 
    	let tab = [|'='; '='; '='; '=';|] in
    	match t with
    	|[|n; -1; -1|] -> tab.(0) <- table.(n lsr 2); 
    				tab.(1) <- table.((n land 0b11) lsl 4);
    				tab
    	|[|n; m; -1|] -> tab.(0) <- table.(n lsr 2); 
    				tab.(1) <- table.(((n land 0b11) lsl 4) lor (m lsr 4)); 
    				tab.(2) <- table.((m land 0b1111) lsl 2);
    				tab
    	|[|n; m; p|] -> tab.(0) <- table.(n lsr 2); 
    				tab.(1) <- table.(((n land 0b11) lsl 4) lor (m lsr 4)); 
    				tab.(2) <- table.(((m land 0b1111) lsl 2) lor (p lsr 6));
    				tab.(3) <- table.(p land 0b111111);
    				tab
    	|_ -> tab

  2. #2
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    Si on traduisait les opérations logiques en opération arithmétiques, ça irait mieux pour toi

    Par exemple (n land 0b11) lsl 4 c'est la même chose que (n mod 4) * 16.
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.

Discussions similaires

  1. [Caml] Problème pour algorithme arbre
    Par seigneur_anubis dans le forum Caml
    Réponses: 8
    Dernier message: 10/07/2011, 19h55
  2. problème compréhension code
    Par mitherkiller dans le forum SDL
    Réponses: 3
    Dernier message: 13/04/2007, 09h38
  3. problème d'algorithme pour trouver les circuit d'un graphe
    Par marc_dd dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 21/08/2006, 16h36
  4. [MFC]Problème compréhension code
    Par bitardo dans le forum MFC
    Réponses: 1
    Dernier message: 23/05/2006, 15h56
  5. [Smarty] problème compréhension sur les tableaux
    Par mohican13 dans le forum Bibliothèques et frameworks
    Réponses: 11
    Dernier message: 09/02/2006, 16h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo