Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
76
Task/Averages-Mode/Oberon-2/averages-mode.oberon
Normal file
76
Task/Averages-Mode/Oberon-2/averages-mode.oberon
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
MODULE Mode;
|
||||
IMPORT
|
||||
Object:Boxed,
|
||||
ADT:Dictionary,
|
||||
ADT:LinkedList,
|
||||
Out := NPCT:Console;
|
||||
|
||||
TYPE
|
||||
Key = Boxed.LongInt;
|
||||
Val = Boxed.LongInt;
|
||||
|
||||
|
||||
VAR
|
||||
x: ARRAY 11 OF LONGINT;
|
||||
y: ARRAY 5 OF LONGINT;
|
||||
z: ARRAY 8 OF LONGINT;
|
||||
|
||||
PROCEDURE Show(ll: LinkedList.LinkedList(Key));
|
||||
VAR
|
||||
iter: LinkedList.Iterator(Key);
|
||||
i: LONGINT;
|
||||
k: Key;
|
||||
BEGIN
|
||||
iter := ll.GetIterator(NIL);
|
||||
FOR i := 0 TO ll.Size() - 1 DO;
|
||||
k := iter.Next();
|
||||
Out.Int(k.value,0);Out.Ln;
|
||||
END;
|
||||
END Show;
|
||||
|
||||
PROCEDURE Mode(x: ARRAY OF LONGINT): LinkedList.LinkedList(Key);
|
||||
VAR
|
||||
d: Dictionary.Dictionary(Key,Val);
|
||||
i: LONGINT;
|
||||
k: Key; v: Val;
|
||||
iter: Dictionary.IterKeys(Key,Val);
|
||||
resp: LinkedList.LinkedList(Key);
|
||||
max: Boxed.LongInt;
|
||||
BEGIN
|
||||
d := NEW(Dictionary.Dictionary(Key,Val));
|
||||
FOR i := 0 TO LEN(x) - 1 DO
|
||||
k := NEW(Key,x[i]);
|
||||
IF d.Lookup(k,v) THEN
|
||||
d.Set(k,NEW(Val,v.value + 1));
|
||||
ELSE
|
||||
d.Set(k,NEW(Val,1))
|
||||
END
|
||||
END;
|
||||
|
||||
max := NEW(Boxed.LongInt,0);
|
||||
resp := NEW(LinkedList.LinkedList(Key));
|
||||
iter := d.IterKeys();
|
||||
WHILE (iter.Next(k)) DO
|
||||
v := d.Get(k);
|
||||
IF v.Cmp(max) > 0 THEN
|
||||
resp.Clear();
|
||||
resp.Append(k);max := v
|
||||
ELSIF v.Cmp(max) = 0 THEN
|
||||
resp.Append(k);max := v
|
||||
END
|
||||
END;
|
||||
|
||||
RETURN resp
|
||||
|
||||
END Mode;
|
||||
|
||||
BEGIN
|
||||
x[0] := 1; x[1] := 3; x[2] := 6; x[3] := 6;
|
||||
x[4] := 6; x[5] := 6; x[6] := 7; x[7] := 7;
|
||||
x[8] := 12; x[9] := 12; x[10] := 17;
|
||||
Show(Mode(x));Out.Ln;
|
||||
y[0] := 1; y[1] := 2; y[2] := 4; y[3] := 4; y[4] := 1;
|
||||
Show(Mode(y));Out.Ln;
|
||||
z[0] := 1; z[1] := 2; z[2] := 4; z[3] := 4; z[4] := 1; z[5] := 5; z[6] := 5; z[7] := 5;
|
||||
Show(Mode(z));Out.Ln;
|
||||
END Mode.
|
||||
Loading…
Add table
Add a link
Reference in a new issue