Compare a list of strings: Difference between revisions

Added solution for Action!
(Added Mathcad example.)
(Added solution for Action!)
Line 128:
AAA : all elements are equal
ACB : neither equal nor in increasing order
</pre>
 
=={{header|Action!}}==
<lang Action!>BYTE FUNC AreEqual(CARD ARRAY a BYTE len)
INT i
 
FOR i=1 TO len-1
DO
IF SCompare(a(0),a(i))#0 THEN
RETURN (0)
FI
OD
RETURN (1)
 
BYTE FUNC IsAscendingOrder(CARD ARRAY a BYTE len)
INT i
 
FOR i=1 TO len-1
DO
IF SCompare(a(i-1),a(i))>=0 THEN
RETURN (0)
FI
OD
RETURN (1)
 
PROC Test(CARD ARRAY a BYTE len)
INT i
 
Print("Input array: [")
FOR i=0 TO len-1
DO
Print(a(i))
IF i<len-1 THEN
Put(32)
FI
OD
PrintE("]")
 
IF AreEqual(a,len) THEN
PrintE("All strings are lexically equal.")
ELSE
PrintE("Not all strings are lexically equal.")
FI
 
IF IsAscendingOrder(a,len) THEN
PrintE("The list is in strict ascending order.")
ELSE
PrintE("The list is not in strict ascending order.")
FI
PutE()
RETURN
 
PROC Main()
CARD ARRAY a1(4),a2(4),a3(4),a4(1)
 
a1(0)="aaa" a1(1)="aaa" a1(2)="aaa" a1(3)="aaa"
Test(a1,4)
 
a2(0)="aaa" a2(1)="aab" a2(2)="aba" a2(3)="baa"
Test(a2,4)
 
a3(0)="aaa" a3(1)="aab" a3(2)="aba" a3(3)="aba"
Test(a3,4)
 
a4(0)="aaa"
Test(a4,1)
RETURN</lang>
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Compare_a_list_of_strings.png Screenshot from Atari 8-bit computer]
<pre>
Input array: [aaa aaa aaa aaa]
All strings are lexically equal.
The list is not in strict ascending order.
 
Input array: [aaa aab aba baa]
Not all strings are lexically equal.
The list is in strict ascending order.
 
Input array: [aaa aab aba aba]
Not all strings are lexically equal.
The list is not in strict ascending order.
 
Input array: [aaa]
All strings are lexically equal.
The list is in strict ascending order.
</pre>
 
Anonymous user