Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Строки

Автор: Klimoff 24.05.2006 17:47

Составьте программу, меняющую местами правую и левую половины строки (если число символов в строке – не четное, «серединный» символ оставить без изменений)

Автор: volvo 24.05.2006 17:50

Copy + Length тебе в помощь: решение получается в одну строку...

Или циклом от первого символа строки до середины, и менять с соответствующим символом от конца строки (но это - 2 строчки blum.gif )

Автор: Real 24.05.2006 19:49

Цитата(volvo @ 24.05.2006 13:50) *

Copy + Length тебе в помощь: решение получается в одну строку...

Или циклом от первого символа строки до середины, и менять с соответствующим символом от конца строки (но это - 2 строчки blum.gif )

Я в этом не очень понимаю, не мог бы ты полностью написать решение

Автор: APAL 24.05.2006 20:51

offtop:

Цитата
1. на форуме запрещается:
...
10. регистрировать несколько профилей.


Выбери сам какой из профилей удалить - Real или Klimoff .
Или удалю оба...

Автор: APAL 24.05.2006 21:31

Код
If Odd(Length(st)) then St:=Copy(St,(Length(st) div 2)+2,Length(st))+st[(Length(st) div 2)+1]+Copy(St,1,Length(st) div 2) else St:=Copy(St,(Length(st) div 2)+1,Length(st) div 2)+Copy(St,1,Length(st) div 2);

Автор: Klimoff 24.05.2006 21:41

Цитата(APAL @ 24.05.2006 16:51)
Выбери сам какой из профилей удалить - Real или Klimoff .
Или удалю оба...

Удали Real ну мне хоть ктонибудь подскажет как написать программу?

Автор: APAL 24.05.2006 21:55

Смотри 6-ой пост.

Автор: volvo 24.05.2006 21:56

APAL, а без If ? smile.gif

  st :=
copy(st, length(st) div 2 + byte(odd(length(st))) + 1, length(st) div 2) +
copy(st, length(st) div 2 + 1, byte(odd(length(st)))) +
copy(st, 1, length(st) div 2);

Автор: APAL 24.05.2006 22:00

Цитата(volvo @ 24.05.2006 18:56)

APAL, а без If ? smile.gif
  st :=
copy(st, length(st) div 2 + byte(odd(length(st))) + 1, length(st) div 2) +
copy(st, length(st) div 2 + 1, byte(odd(length(st)))) +
copy(st, 1, length(st) div 2);

Пытался без IF - не додумал... все боялся что ты опять меня опередишь с ответом! :D