Нужно написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два соседних слова. Спасибо, кто откликнется.
Где-то в http://forum.pascal.net.ru/index.php?showforum=18 было разделение строки на слова.
Разделяешь, заносишь в a kое слово, а в b k+1ое. выводишь на экран сначала b, а потом а.
const
ABC: set of char = ['A'..'Z']+['a'..'z']+['0'..'9'];
var
s: string;
w: array [1..4] of string;
i,j,k: integer;
f: text;
c: char;
begin
Assign(f,'in.txt');
Reset(f);
while not EoF(f) do begin
ReadLn(f,s);
k:=0;
for i:=1 to Length(s) do begin
if s[i] in ABC then begin
if (i=1) or not (c in ABC) then begin
Inc(k);
if k=1 then Inc(k)
end
end
else begin
if (i=1) or (c in ABC) then begin
Inc(k);
if k=1 then Inc(k)
end
end;
if k=5 then begin
Write(w[1]);
Write(w[4]);
Write(w[3]);
Write(w[2]);
for j:=1 to 4 do w[j]:='';
k:=1
end;
c:= s[i];
w[k]:= w[k]+c
end;
Write(w[1]);
if k=4 then Write(w[4]) else Write(w[2]);
Write(w[3]);
if k=4 then Write(w[2]);
WriteLn
end;
readln
end.