Ethiopian multiplication: Difference between revisions

m
→‎{{header|Phix}}: added syntax colouring the hard way
(Add BCPL)
m (→‎{{header|Phix}}: added syntax colouring the hard way)
Line 3,619:
=={{header|Phix}}==
{{Trans|Euphoria}}
<!--<lang Phix>function emHalf(integer nphixonline)-->
<span style="color: #008080;">function</span> <span style="color: #000000;">emHalf</span><span style="color: #0000FF;">(</span><span style="color: #004080;">integer</span> <span style="color: #000000;">n</span><span style="color: #0000FF;">)</span>
return floor(n/2)
<span style="color: #008080;">return</span> <span style="color: #7060A8;">floor</span><span style="color: #0000FF;">(</span><span style="color: #000000;">n</span><span style="color: #0000FF;">/</span><span style="color: #000000;">2</span><span style="color: #0000FF;">)</span>
end function
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
function emDouble(integer n)
<span style="color: #008080;">function</span> <span style="color: #000000;">emDouble</span><span style="color: #0000FF;">(</span><span style="color: #004080;">integer</span> <span style="color: #000000;">n</span><span style="color: #0000FF;">)</span>
return n*2
<span style="color: #008080;">return</span> <span style="color: #000000;">n</span><span style="color: #0000FF;">*</span><span style="color: #000000;">2</span>
end function
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
function emIsEven(integer n)
<span style="color: #008080;">function</span> <span style="color: #000000;">emIsEven</span><span style="color: #0000FF;">(</span><span style="color: #004080;">integer</span> <span style="color: #000000;">n</span><span style="color: #0000FF;">)</span>
return (remainder(n,2)=0)
<span style="color: #008080;">return</span> <span style="color: #0000FF;">(</span><span style="color: #7060A8;">remainder</span><span style="color: #0000FF;">(</span><span style="color: #000000;">n</span><span style="color: #0000FF;">,</span><span style="color: #000000;">2</span><span style="color: #0000FF;">)=</span><span style="color: #000000;">0</span><span style="color: #0000FF;">)</span>
end function
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
function emMultiply(integer a, integer b)
<span style="color: #008080;">function</span> <span style="color: #000000;">emMultiply</span><span style="color: #0000FF;">(</span><span style="color: #004080;">integer</span> <span style="color: #000000;">a</span><span style="color: #0000FF;">,</span> <span style="color: #004080;">integer</span> <span style="color: #000000;">b</span><span style="color: #0000FF;">)</span>
integer sum = 0
<span style="color: #004080;">integer</span> <span style="color: #7060A8;">sum</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0</span>
while a!=0 do
<span style="color: #008080;">while</span> <span style="color: #000000;">a</span><span style="color: #0000FF;">!=</span><span style="color: #000000;">0</span> <span style="color: #008080;">do</span>
if not emIsEven(a) then sum += b end if
<span style="color: #008080;">if</span> <span style="color: #008080;">not</span> <span style="color: #000000;">emIsEven</span><span style="color: #0000FF;">(</span><span style="color: #000000;">a</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">then</span> <span style="color: #7060A8;">sum</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">b</span> <span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
a = emHalf(a)
<span style="color: #000000;">a</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">emHalf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">a</span><span style="color: #0000FF;">)</span>
b = emDouble(b)
<span style="color: #000000;">b</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">emDouble</span><span style="color: #0000FF;">(</span><span style="color: #000000;">b</span><span style="color: #0000FF;">)</span>
end while
<span style="color: #008080;">end</span> <span style="color: #008080;">while</span>
return sum
<span style="color: #008080;">return</span> <span style="color: #7060A8;">sum</span>
end function
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
printf(1,"emMultiply(%d,%d) = %d\n",{17,34,emMultiply(17,34)})</lang>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"emMultiply(%d,%d) = %d\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">17</span><span style="color: #0000FF;">,</span><span style="color: #000000;">34</span><span style="color: #0000FF;">,</span><span style="color: #000000;">emMultiply</span><span style="color: #0000FF;">(</span><span style="color: #000000;">17</span><span style="color: #0000FF;">,</span><span style="color: #000000;">34</span><span style="color: #0000FF;">)})</span>
<!--</lang>-->
 
=={{header|PHP}}==
7,820

edits