Anonymous user
Ethiopian multiplication: Difference between revisions
→{{header|PL/SQL}}
(Modula-3) |
|||
Line 786:
=={{header|PL/SQL}}==
This code was taken from the ADA example above - very minor differences.
<lang plsql>
create or replace package ethiopian is
function multiply
( left in integer,
right in integer)
return integer;
loop▼
end ethiopian;
/
exit when vNum1 < 1;▼
create or replace package body ethiopian is
function is_even(item in integer) return boolean is
end if;▼
begin
end loop;▼
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
if not is_even(plier) then
temp := temp + plicand;
plier := half(plier);
plicand := double(plicand);
temp := temp + plicand;
return temp;
end multiply;
end ethiopian;
/
/* example call */
begin
dbms_output.put_line(ethiopian.multiply(17, 34));
end;
/
=={{header|PowerShell}}==
|