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
Partager