Phrase reversals: Difference between revisions
Content added Content deleted
(Add SenseTalk implementation) |
(Added solution for Action!) |
||
Line 25: | Line 25: | ||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
lasrever esarhp edoc attesor |
|||
attesor edoc esarhp lasrever |
|||
reversal phrase code rosetta |
|||
</pre> |
|||
=={{header|Action!}}== |
|||
<lang Action!>PROC ReversePart(CHAR ARRAY src,dst BYTE start,len) |
|||
BYTE i |
|||
FOR i=0 TO len-1 |
|||
DO |
|||
dst(start+len-i-1)=src(start+i) |
|||
OD |
|||
RETURN |
|||
PROC ReverseString(CHAR ARRAY src,dst) |
|||
BYTE i |
|||
dst(0)=src(0) |
|||
ReversePart(src,dst,1,src(0)) |
|||
RETURN |
|||
PROC ReverseInWords(CHAR ARRAY src,dst) |
|||
BYTE i,start |
|||
dst(0)=src(0) |
|||
i=1 |
|||
WHILE i<=src(0) |
|||
DO |
|||
IF src(i)=32 THEN |
|||
dst(i)=32 i==+1 |
|||
ELSE |
|||
start=i |
|||
WHILE i<=src(0) AND src(i)#32 |
|||
DO i==+1 OD |
|||
ReversePart(src,dst,start,i-start) |
|||
FI |
|||
OD |
|||
RETURN |
|||
PROC ReverseWords(CHAR ARRAY src,dst) |
|||
CHAR ARRAY tmp(100) |
|||
ReverseString(src,tmp) |
|||
ReverseInWords(tmp,dst) |
|||
RETURN |
|||
PROC Main() |
|||
CHAR ARRAY s="rosetta code phrase reversal",rev(100) |
|||
PrintE(s) |
|||
ReverseString(s,rev) |
|||
PrintE(rev) |
|||
ReverseInWords(s,rev) |
|||
PrintE(rev) |
|||
ReverseWords(s,rev) |
|||
PrintE(rev) |
|||
RETURN</lang> |
|||
{{out}} |
|||
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Phrase_reversals.png Screenshot from Atari 8-bit computer] |
|||
<pre> |
|||
rosetta code phrase reversal |
|||
lasrever esarhp edoc attesor |
lasrever esarhp edoc attesor |
||
attesor edoc esarhp lasrever |
attesor edoc esarhp lasrever |