Averages/Mode: Difference between revisions
Content added Content deleted
(add BQN) |
(Added solution for Action!) |
||
Line 30: | Line 30: | ||
[6] |
[6] |
||
[1, 4] |
[1, 4] |
||
</pre> |
|||
=={{header|Action!}}== |
|||
<lang Action!>DEFINE MAX="100" |
|||
INT ARRAY keys(MAX) |
|||
INT ARRAY values(MAX) |
|||
BYTE count |
|||
PROC PrintArray(INT ARRAY a INT size) |
|||
INT i |
|||
Put('[) |
|||
FOR i=0 TO size-1 |
|||
DO |
|||
IF i>0 THEN Put(' ) FI |
|||
PrintI(a(i)) |
|||
OD |
|||
Put(']) PutE() |
|||
RETURN |
|||
PROC ClearMap() |
|||
count=0 |
|||
RETURN |
|||
PROC AddToMap(INT a) |
|||
INT i,index |
|||
index=-1 |
|||
IF count>0 THEN |
|||
FOR i=0 TO count-1 |
|||
DO |
|||
IF keys(i)=a THEN |
|||
index=i EXIT |
|||
FI |
|||
OD |
|||
FI |
|||
IF index=-1 THEN |
|||
keys(count)=a |
|||
values(count)=1 |
|||
count==+1 |
|||
ELSE |
|||
values(index)==+1 |
|||
FI |
|||
RETURN |
|||
PROC Mode(INT ARRAY a INT aSize INT ARRAY m INT POINTER mSize) |
|||
INT i,mx |
|||
ClearMap() |
|||
FOR i=0 TO aSize-1 |
|||
DO |
|||
AddToMap(a(i)) |
|||
OD |
|||
mx=0 |
|||
FOR i=0 TO count-1 |
|||
DO |
|||
IF values(i)>mx THEN |
|||
mx=values(i) |
|||
FI |
|||
OD |
|||
mSize^=0 |
|||
FOR i=0 TO count-1 |
|||
DO |
|||
IF values(i)=mx THEN |
|||
m(mSize^)=keys(i) |
|||
mSize^==+1 |
|||
FI |
|||
OD |
|||
RETURN |
|||
PROC Test(INT ARRAY a INT size) |
|||
INT ARRAY m(MAX) |
|||
INT mSize |
|||
PrintE("Array:") PrintArray(a,size) |
|||
Mode(a,size,m,@mSize) |
|||
PrintE("Mode:") PrintArray(m,mSize) |
|||
PutE() |
|||
RETURN |
|||
PROC Main() |
|||
INT ARRAY a=[1 3 5 7 3 1 3 7 7 3 3] |
|||
INT ARRAY b=[7 13 5 13 7 2 7 10 13] |
|||
INT ARRAY c=[5] |
|||
Test(a,11) |
|||
Test(b,9) |
|||
Test(c,1) |
|||
RETURN</lang> |
|||
{{out}} |
|||
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Mode.png Screenshot from Atari 8-bit computer] |
|||
<pre> |
|||
Array: |
|||
[1 3 5 7 3 1 3 7 7 3 3] |
|||
Mode: |
|||
[3] |
|||
Array: |
|||
[7 13 5 13 7 2 7 10 13] |
|||
Mode: |
|||
[7 13] |
|||
Array: |
|||
[5] |
|||
Mode: |
|||
[5] |
|||
</pre> |
</pre> |
||