Bonjour,
Pour un pôlynome p = x2 + 2x + 3
Modélisé par ce tableau d'entiers:
Où le coefficient de valeur 3 et de degrès 0 est à l'indice 0, le coefficient de valeur 2 et de degrès 1 est à l'indice 1 et le coefficient de valeur 1 et de degrès 2 est à l'indice 2.
Code OCaml : Sélectionner tout - Visualiser dans une fenêtre à part # let fullPolynomial = [|3; 2; 1|];;
Pour imprimer le pôlynome sous la forme 3 + 2x + x^2 j'ai ce code valide :
Code OCaml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 (* Définition de la fonction d'impression des monômes *) # let printMonomial(coef)(degr) = if degr = 0 then print_int(coef) else if coef <> 0 then begin print_string(" + "); if coef <> 1 then print_int(coef); print_string("x"); if degr <> 1 then begin print_string("^"); print_int(degr) end end;;
Code OCaml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 (* Définition de la fonction d'impression du polynôme *) # let printPolynomial(p) = for i = 0 to Array.length(p) - 1 do printMonomial(p.(i))(i) done;;Dans la fonction d'impression des monômes je ne comprends pas à quoi sert la ligne 4 (if coef <> 0 then), le code fonctionne sans cette instruction et de toute façon le coefficient ne peut être que différent de zéro??
Code OCaml : Sélectionner tout - Visualiser dans une fenêtre à part # printPolynomial(fullPolynomial); print_newline();;
Et j'ai du mal avec begin/end, je ne comprends pas vraiment comment ça fonctionne (en fait j'y vais au pif).
De mes explorations avec:
ET:
Code OCaml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 # let printMonomial(coef)(degr) = if degr = 0 then print_int(coef) else print_string(" + "); if coef <> 1 then print_int(coef); print_string("x"); if degr <> 1 then print_string("^"); print_int(degr);;
J'obtient respectivement 33x^0 + 2x1 + x^2 et 3 + 2x1 + x^2, de même que pour le résultat du code valide je n'arrive pas à saisir le fonctionnement de begin/end dans ce programme (et très certainement en général).
Code OCaml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 # let printMonomial(coef)(degr) = if degr = 0 then print_int(coef) else begin print_string(" + "); if coef <> 1 then print_int(coef); print_string("x"); if degr <> 1 then print_string("^"); print_int(degr); end;;
Partager