Rev 6057 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
539 | bpr | 1 | !goto $wims_read_parm |
2 | |||
3 | :def |
||
4 | title=Convertir en fraction |
||
5 | synonyme=fraction |
||
6 | input=function |
||
7 | !exit |
||
8 | |||
9 | :proc |
||
10 | |||
11 | formula=!rawmath $formula |
||
12 | t=!varlist nofn $formula |
||
13 | !for v in $t |
||
14 | s=!charcnt $v |
||
15 | !if $s=1 and $v!=e |
||
16 | error=bad_formula |
||
17 | !exit |
||
18 | !endif |
||
19 | !next v |
||
20 | |||
21 | pari_precision=50 |
||
22 | result=!exec pari d=contfracpnqn(contfrac($formula)); print(d[1,1])\ |
||
23 | print(d[2,1])\ |
||
24 | print(d[1,2])\ |
||
25 | print(d[2,2])\ |
||
6565 | bpr | 26 | print(abs(d[1,1]/d[1,2]-($formula)))\ |
539 | bpr | 27 | print(d[2,1]/d[2,2]) |
28 | |||
29 | !distribute lines $result into n1,d1,n2,d2,diff,ratio |
||
30 | |||
31 | !exit |
||
32 | |||
33 | :output |
||
34 | |||
35 | !if $result!=$empty |
||
6055 | bpr | 36 | <table class="wimscenter wimsnoborder"> |
539 | bpr | 37 | !if $diff>0 and $ratio>10 |
6057 | bpr | 38 | <tr><td rowspan="3"> |
539 | bpr | 39 | !htmlmath $formula |
40 | = |
||
6057 | bpr | 41 | </td><td>$n1</td> |
42 | <td rowspan="3"> $m_approx |
||
6565 | bpr | 43 | </td><td>$n2</td><td rowspan="3"> . |
44 | </td>/tr><tr><td><hr/></td><td><hr/></td></tr> |
||
6055 | bpr | 45 | <tr><td>$d1</td><td>$d2</td> |
539 | bpr | 46 | !else |
6057 | bpr | 47 | <tr><td rowspan="3"> |
539 | bpr | 48 | !htmlmath $formula |
49 | = |
||
6055 | bpr | 50 | <td>$n1</td> |
51 | <td rowspan="3"> . |
||
6565 | bpr | 52 | </td></tr><tr><td><hr /></td> |
53 | </tr><tr><td>$d1</td> |
||
539 | bpr | 54 | !endif |
6565 | bpr | 55 | </tr> |
539 | bpr | 56 | </table> |
57 | !endif |
||
58 | |||
59 | !exit |
||
60 |