From 34e50de41749881c7cf0ee5e7c7020e2cbc855d1 Mon Sep 17 00:00:00 2001 From: deadmarshal Date: Mon, 2 Sep 2024 15:17:56 +0330 Subject: Fixed Ch1.m3 file --- challenge-285/deadmarshal/modula-3/ch1/src/Ch1.m3 | 25 ++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/challenge-285/deadmarshal/modula-3/ch1/src/Ch1.m3 b/challenge-285/deadmarshal/modula-3/ch1/src/Ch1.m3 index 8f6f2ea985..0cf0ee508a 100644 --- a/challenge-285/deadmarshal/modula-3/ch1/src/Ch1.m3 +++ b/challenge-285/deadmarshal/modula-3/ch1/src/Ch1.m3 @@ -1,6 +1,6 @@ MODULE Ch1 EXPORTS Main; -IMPORT SIO; +IMPORT SIO,TextIntTbl; VAR A1 := ARRAY[0..2],[0..1] OF TEXT{ @@ -9,8 +9,27 @@ VAR ARRAY[0..1] OF TEXT{"C","A"}}; A2 := ARRAY[0..0],[0..1] OF TEXT{ ARRAY OF TEXT{"A","Z"}}; - + +PROCEDURE NoConnection(VAR A:ARRAY OF ARRAY OF TEXT):TEXT = + VAR + Destinations,Sources := NEW(TextIntTbl.Default).init(NUMBER(A)); + It:TextIntTbl.Iterator; + K:TEXT := ""; + V:INTEGER; + BEGIN + FOR I := FIRST(A) TO LAST(A) DO + EVAL Sources.put(A[I,0],1); + EVAL Destinations.put(A[I,1],1); + END; + It := Destinations.iterate(); + WHILE It.next(K,V) DO + IF Destinations.get(K,V) THEN RETURN K END + END; + RETURN "" + END NoConnection; + BEGIN - + SIO.PutText(NoConnection(A1) & "\n"); + SIO.PutText(NoConnection(A2) & "\n") END Ch1. -- cgit