IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Поменять местами слова в файле
Gooman
сообщение 13.01.2011 17:43
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


Нужно написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два соседних слова. Спасибо, кто откликнется.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Lapp
сообщение 14.01.2011 7:17
Сообщение #2


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(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.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 18:09
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"