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

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

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

> строки
TAHK
сообщение 14.12.2005 19:38
Сообщение #1





Группа: Пользователи
Сообщений: 8
Пол: Мужской
Реальное имя: Андрей

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


Помогите решить задачу....плз
Дана строка символов, состоящая из слов (слова разделены пробелами). Группы символов, разделенные пробелами и не содержащие пробелы внутри себя, будем называть словами. Напечатать эту же последовательность слов, но в обратном порядке.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 6)
klem4
сообщение 14.12.2005 19:45
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Разбиение строки на слова

заносишь слова в массив и выводишь его на экран с конца, добавляя пробелы.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 14.12.2005 20:00
Сообщение #3


Гость






Угу... А сколько пробелов добавлять? Надо же это где-то запомнить... Иначе разделители просто потеряются, а это может быть недопустимо... Надо разворачивать "на лету"...
var
s: string;
i, again: integer;

begin
s := 's start finish end begin ';

i := length(s);
while i >= 1 do begin

while (i >= 1) and (s[i] = ' ') do begin
write(s[i]); dec(i)
end;

while (i >= 1) and (s[i] <> ' ') do dec(i);
again := i + 1;
if again >= 1 then
while (again <= length(s)) and (s[again] <> ' ') do begin
write(s[again]); inc(again);
end;

end;
writeln;
end.
 К началу страницы 
+ Ответить 
TAHK
сообщение 15.12.2005 13:46
Сообщение #4





Группа: Пользователи
Сообщений: 8
Пол: Мужской
Реальное имя: Андрей

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


Спасибо большое!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TAHK
сообщение 17.12.2005 22:28
Сообщение #5





Группа: Пользователи
Сообщений: 8
Пол: Мужской
Реальное имя: Андрей

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


Уважаемый volvo! Может я что-то не так делаю, но программа выводит ту же строку....почему-то...
А вот эта программа почему-то не обрабатывает последнее слово и еще она рассчитана на один побел между словами, что нужно там исправить? Пожалуйста...

var
s, s1, str: string;
a, i : word;

begin

Writeln ('Please input string');
Readln (s);
a:=1;
While i<> Length (s) do
begin
i:=i+1;
If s[i]=' ' then
begin
str:= copy (s,a,i);
Insert (str,s1,1);
end;
a:=i+1;
end;
Writeln (s1);
Readln;
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 17.12.2005 22:39
Сообщение #6


Гость






Цитата
программа выводит ту же строку

Какую строку ты вводишь в начале? Вот что программа распечатывает мне:
Код
      begin    end     finish start    s
Как видишь, те же слова, но в обратном порядке...

P.S. Я надеюсь, ты не распечатываешь строку через Writeln(s)?
 К началу страницы 
+ Ответить 
TAHK
сообщение 18.12.2005 0:13
Сообщение #7





Группа: Пользователи
Сообщений: 8
Пол: Мужской
Реальное имя: Андрей

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


Цитата(volvo @ 18.12.2005 0:39) *

Какую строку ты вводишь в начале? Вот что программа распечатывает мне:
Код
      begin    end     finish start    s
Как видишь, те же слова, но в обратном порядке...

P.S. Я надеюсь, ты не распечатываешь строку через Writeln(s)?


Прошу прощения.(Пальцы кудрявые). Работает программа. А как насчет моей? Очень плохо?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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