Maximum difference between adjacent elements of list: Difference between revisions
No edit summary |
|||
Line 5: | Line 5: | ||
The list may have a negative value, a zero value, a real number. |
The list may have a negative value, a zero value, a real number. |
||
<br> |
<br> |
||
List = [2, |
List = [1,8,2,-3,0,1,1,-2.3,0,5.5,8,6,2,9,11,10,3] |
||
<br> |
|||
Output would be: |
|||
<br> |
|||
2,9 ==> 7 |
|||
1,8 ==> 7 |
|||
10,3 ==> 7 |
|||
<br><br> |
<br><br> |
||
Line 12: | Line 17: | ||
<lang ring> |
<lang ring> |
||
see "working..." + nl |
see "working..." + nl |
||
strList = "[2,-3,0,1,1,-2.3,0,5.5,8,6,2,9,11, |
strList = "[1,8,2,-3,0,1,1,-2.3,0,5.5,8,6,2,9,11,10,3]" |
||
see "Maximum difference between adjacent elements of list is:" + nl + nl |
see "Maximum difference between adjacent elements of list is:" + nl + nl |
||
see "Input list = " + strList + nl + nl |
see "Input list = " + strList + nl + nl |
||
see "Output:" + nl |
see "Output:" + nl |
||
sList = [2,-3,0,1,1,-2.3,0,5.5,8,6,2,9,11, |
sList = [1,8,2,-3,0,1,1,-2.3,0,5.5,8,6,2,9,11,10,3] |
||
sortList = [] |
sortList = [] |
||
Line 29: | Line 34: | ||
sortList = sort(sortlist,1) |
sortList = sort(sortlist,1) |
||
sortList = reverse(sortlist) |
sortList = reverse(sortlist) |
||
flag = 1 |
|||
for n=1 to len(sortList)-1 |
for n=1 to len(sortList)-1 |
||
Line 41: | Line 47: | ||
ok |
ok |
||
if oldDiff1 = oldDiff2 |
if oldDiff1 = oldDiff2 |
||
if flag = 1 |
|||
⚫ | |||
flag = 0 |
|||
⚫ | |||
see "" + first2 + "," + second2 + " ==> " + oldDiff2 + nl |
|||
else |
|||
see "" + first2 + "," + second2 + " ==> " + oldDiff2 + nl |
|||
ok |
|||
else |
else |
||
exit |
exit |
||
Line 55: | Line 66: | ||
Maximum difference between adjacent elements of list is: |
Maximum difference between adjacent elements of list is: |
||
Input list = [2,-3,0,1,1,-2.3,0,5.5,8,6,2,9,11, |
Input list = [1,8,2,-3,0,1,1,-2.3,0,5.5,8,6,2,9,11,10,3] |
||
Output: |
Output: |
||
2,9 ==> 7 |
2,9 ==> 7 |
||
1,8 ==> 7 |
|||
10,3 ==> 7 |
|||
done... |
done... |
||
</pre> |
</pre> |
Revision as of 14:44, 18 July 2021
- Task
- Find maximum difference between adjacent elements of list.
The list may have a negative value, a zero value, a real number.
List = [1,8,2,-3,0,1,1,-2.3,0,5.5,8,6,2,9,11,10,3]
Output would be:
2,9 ==> 7
1,8 ==> 7
10,3 ==> 7
Ring
<lang ring> see "working..." + nl strList = "[1,8,2,-3,0,1,1,-2.3,0,5.5,8,6,2,9,11,10,3]" see "Maximum difference between adjacent elements of list is:" + nl + nl see "Input list = " + strList + nl + nl see "Output:" + nl sList = [1,8,2,-3,0,1,1,-2.3,0,5.5,8,6,2,9,11,10,3] sortList = []
for n = 1 to len(sList)-1
diff = fabs(sList[n]-sList[n+1]) oldDiff = diff first = sList[n] second = sList[n+1] add(sortList,[oldDiff,first,second])
next
sortList = sort(sortlist,1) sortList = reverse(sortlist) flag = 1
for n=1 to len(sortList)-1
oldDiff1 = sortlist[n][1] oldDiff2 = sortlist[n+1][1] first1 = sortlist[n][2] second1 = sortlist[n][3] first2 = sortlist[n+1][2] second2 = sortlist[n+1][3] if n = 1 and oldDiff1 != oldDiff2 see "" + first1 + "," + second1 + " ==> " + oldDiff1 + nl ok if oldDiff1 = oldDiff2 if flag = 1 flag = 0 see "" + first1 + "," + second1 + " ==> " + oldDiff1 + nl see "" + first2 + "," + second2 + " ==> " + oldDiff2 + nl else see "" + first2 + "," + second2 + " ==> " + oldDiff2 + nl ok else exit ok
next
see "done..." + nl </lang>
- Output:
working... Maximum difference between adjacent elements of list is: Input list = [1,8,2,-3,0,1,1,-2.3,0,5.5,8,6,2,9,11,10,3] Output: 2,9 ==> 7 1,8 ==> 7 10,3 ==> 7 done...
XPL0
<lang XPL0>real List, Dist, MaxDist; int I; [List:= [2., -3., 0., 1., 1., -2.3, 0., 5.5, 8., 6., 2., 9., 11., 8., 1.]; MaxDist:= 0.; for I:= 0 to 15-2 do
[Dist:= abs(List(I) - List(I+1)); if Dist > MaxDist then MaxDist:= Dist; ];
RlOut(0, MaxDist); ]</lang>
- Output:
7.00000