var s1,s2:String; Words:array[1..20] of String[20]; i,j,k,num:integer;
procedure splitWords; var cur:String; lens,lenw,p1,p2:integer; begin k:=1; lens:=Length(s1); p1:=1; for i:=1 to lens do if (s1[i]=' ') OR (i=lens) then begin if i=lens then p2:=i+1 else p2:=i; lenw:=p2-p1; Words[k]:=Copy(s1,p1,lenw); p1:=p2+1; k:=k+1; end; num:=k-1; writeln('Words:'); for i:=1 to num do writeln(i:3,' ',Words[i]); end;
procedure replaceWords; var cur:String[20]; begin i:=1; while i<num do begin cur:=Copy(Words[i],1,Length(Words[i])); Words[i]:=Copy(Words[i+1],1,Length(Words[i+1])); Words[i+1]:=Copy(cur,1,Length(cur)); i:=i+2; end; writeln('New Order:'); for i:=1 to num do writeln(i:3,' ',Words[i]); writeln('The sentence changed:'); s2:=''; for i:=1 to num do s2:=s2+Words[i]+' '; writeln(s2); end;
begin clrscr; writeln('input a sentence'); readln(s1); splitWords; replaceWords; readln; end.