Помощь - Поиск - Пользователи - Календарь
Полная версия: Поменять местами слова в файле
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Gooman
Нужно написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два соседних слова. Спасибо, кто откликнется.
sheka
Где-то в FAQ было разделение строки на слова.
Разделяешь, заносишь в a kое слово, а в b k+1ое. выводишь на экран сначала b, а потом а.
Lapp
Цитата(Gooman @ 13.01.2011 17:43) *
считывает текст из файла и выводит его на экран, меняя местами каждые два соседних слова.

Вот, у меня как-то так вышло..
Боюсь, я переусложнил местами. Если кто-то сделает проще, с удовольствием гляну.

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.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.