Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2012, 19:54   #1
Lilen
Пользователь
 
Регистрация: 04.10.2012
Сообщений: 20
По умолчанию Паскаль,строки

Задача:
исключить из строки все слова с нечетными номерами, оставшийся текст вывести на экран: (Неправильно, да?) Ничего не выводит.
program adg;
var s:string;
i,j,n:integer;
begin
writeln('vv stroky s=');
readln(s);
for i:=1 to length(s) do
if i mod 2=1 then delete(s[i],1,i);
for i:=1 to length(s) do
write('s=',s);
readln;
end.
Lilen вне форума Ответить с цитированием
Старый 29.10.2012, 20:06   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Код:
for i:=1 to length(s) do
Этот цикл идет не по словам, а по символам строки. Поэтому удаляет он Вам все нечетные символы.

Далее: в исходном задании написано "исключить"... следует ли это понимать как использование Delete, как у Вас? Потому что проще сформировать новую строку.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 29.10.2012, 21:05   #3
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

1) Код выделяем кнопочкой с #
2) Согласен с Sciv'ом, надо бегать по строке в поиске пробела, а потом...
3)
Цитата:
следует ли это понимать как использование Delete, как у Вас?
хм.. В своё время, когда я решал задачи на строки, меня просили (просили - ага-ага) не использовать доп.строк, здесь я думаю точно так же, упражнения на обработку процедур и функций со строками...
Poma][a вне форума Ответить с цитированием
Старый 29.10.2012, 21:09   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
меня просили (просили - ага-ага)
хехе... хоть не умоляли?

Сорри за ОФФ, но просто в живую представил эту картину...
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 29.10.2012, 21:14   #5
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
хехе... хоть не умоляли?
Да в коленях ползали, просили
Ну а если честно :
-Что это?
-2 результирущая строка
- Иди переделывай
Poma][a вне форума Ответить с цитированием
Старый 29.10.2012, 21:50   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

По моему все гораздо проще:
Код:
var i:integer;b:boolean; s:string;
begin
 s:='But I wont cry for yesterday, theres an ordinary world';
 b:=false;
 for i:=1 to length(s) do begin
  if s[i]=' ' then b:=not b;
  if b then write(s[i]);
 end;
 readln;
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.10.2012, 22:05   #7
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Виталий, впечатляет. Очень хитро.
Poma][a вне форума Ответить с цитированием
Старый 29.10.2012, 22:52   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вообще-то старая школа. Раньше такие методы были распространены во многих книгах в силу малого функционала ЯВУ.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строки. Паскаль Elena04 Помощь студентам 2 20.04.2012 20:06
строки, Паскаль Dean Помощь студентам 9 20.03.2011 00:43
Паскаль строки Алексей Егораев Помощь студентам 2 15.03.2011 18:53
Строки в Паскаль! Kymbat Паскаль, Turbo Pascal, PascalABC.NET 0 10.01.2011 19:46
Паскаль. Строки. b1otekk Помощь студентам 2 13.03.2009 10:46