Ethiopian multiplication: Difference between revisions

(Modula-3)
Line 786:
 
=={{header|PL/SQL}}==
This code was taken from the ADA example above - very minor differences.
{{incorrect|PL/SQL|The task asks for three functions to be defined and used: halve, double, and even.}}
<lang plsql>
<lang plsql>CREATE FUNCTION ethiopianMult(pNum1 NUMBER, pNum2 NUMBER) RETURN NUMBER IS
create or replace package ethiopian is
 
function multiply
vNum1 NUMBER := pNum1;
( left in integer,
vNum2 NUMBER := pNum2;
right in integer)
vTot NUMBER := 0;
return integer;
BEGIN
 
loop
end ethiopian;
vNum1 := trunc(vNum1/2);
/
exit when vNum1 < 1;
 
vNum2 := vNum2 + vNum2;
create or replace package body ethiopian is
if mod(vNum1,2) != 0 then
 
vTot := vTot + vNum2;
function is_even(item in integer) return boolean is
end if;
begin
end loop;
return vTotitem mod 2 = 0;
end is_even;
END;</lang>
 
function double(item in integer) return integer is
begin
return item * 2;
end double;
 
function half(item in integer) return integer is
begin
return trunc(item / 2);
end half;
 
function multiply
( left in integer,
right in integer)
return Integer
is
temp integer := 0;
plier integer := left;
plicand integer := right;
begin
 
loop
if not is_even(plier) then
temp := temp + plicand;
end if;
plier := half(plier);
plicand := double(plicand);
exit when vNum1plier <= 1;
end loop;
 
temp := temp + plicand;
 
return temp;
 
end multiply;
 
end ethiopian;
/
 
/* example call */
begin
dbms_output.put_line(ethiopian.multiply(17, 34));
end;
/
END;</lang>
 
=={{header|PowerShell}}==
Anonymous user