Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.30;
Скачать: CL | DM;

Вниз

Переворот строки   Найти похожие ветки 

 
Sergei   (2003-01-20 12:21) [0]

Здравствуйте мастера
Понимаю, что вопрос может показаться достаточно глупым,но всё же
я начинающий пользоват Pascal
Как слелать переворот строки без использования дополнительного
буфера( т.е без доп переменной, или дополнительной позиции в строке)
и возможно ли такое
Спасибо ..


 
gsu ©   (2003-01-20 12:23) [1]

ну уж 1 то дополнительный символ вроде быть обязан


 
app ©   (2003-01-20 12:28) [2]

Что задание дали в институте, иначе трудно придумать реальное применение.


 
still ©   (2003-01-20 12:28) [3]

можно конечно так:

for i := Length(s) downto 1 do
s := s + s[i];

s := copy (s, length(s) div 2 +1, length(s) div 2);



 
gsu ©   (2003-01-20 12:36) [4]

>> still ©
copy - неужели в ней не используются дополнительные источники ?


 
still ©   (2003-01-20 12:41) [5]

я не знаю, как устроена copy внутри.
в явном виде не используются. я так понял вопрос по паскалю, не по внутреннему устройтву компилятора и встроенных функций.


 
still ©   (2003-01-20 12:43) [6]

можно без copy:
delete(s, 1, length(s) div 2);


 
Foxtrot ©   (2003-01-20 12:45) [7]

Я думаю, что невозможно.

Вот попробуй например сложить из детских кубиков слово "неполучится" а потом не доставая кубиков и не перемещая их сделать "ястичулопен".


 
gsu ©   (2003-01-20 12:47) [8]

>> still © (20.01.03 12:41)
>> я не знаю, как устроена copy внутри.
посмотри

>> в явном виде не используются. я так понял вопрос по паскалю, не по внутреннему >> устройтву компилятора и встроенных функций.
тут ты, скорее всего прав


 
still ©   (2003-01-20 12:51) [9]


> gsu © (20.01.03 12:47)
> >> still © (20.01.03 12:41)
> >> я не знаю, как устроена copy внутри.
> посмотри

где?


 
Sergei   (2003-01-20 12:55) [10]

Все всем спасибо
Особенно Still :-))


 
gsu ©   (2003-01-20 12:55) [11]

н-р, system._Copy


 
still ©   (2003-01-20 13:00) [12]

посмотрел.
ну естественно, в итоге используется дополнительный буфер. кто бы сомневался :)


 
MBo ©   (2003-01-20 13:16) [13]

rocedure TForm1.Button1Click(Sender: TObject);
var s:string;
i:integer;
begin
s:="abcde";
for i:=1 to Length(s) div 2 do begin
s[i]:=Chr(Ord(s[Length(s)-i+1]) xor Ord(s[i]));
s[Length(s)-i+1]:=Chr(Ord(s[Length(s)-i+1]) xor Ord(s[i]));
s[i]:=Chr(Ord(s[Length(s)-i+1]) xor Ord(s[i]));
end;
label1.caption:=s;
end;


 
Nikolay M. ©   (2003-01-20 13:19) [14]

?

var
s : string;
i : integer;
begin
s := "ABCDEFGАБВГДЕЖ";
for i := 1 to Length (s) div 2 do
begin
s[i] := Char(Byte(s[i]) + Byte(s[Length (s) - i + 1]));
s[Length (s) - i + 1] := Char(Byte(s[i]) - Byte(s[Length (s) - i + 1]));
s[i] := Char(Byte(s[i]) - Byte(s[Length (s) - i + 1]));
end;
end;


 
Nikolay M. ©   (2003-01-20 13:20) [15]


> MBo © (20.01.03 13:16)

На 3 минуты замешкался :)



Страницы: 1 вся ветка

Текущий архив: 2003.01.30;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
1-96811
Андрусь
2003-01-20 13:47
2003.01.30
Кто работал с File Mapping, нужен совет


9-96501
Artem_V
2002-08-03 12:06
2003.01.30
DelphiX


3-96605
qwerty2
2003-01-13 17:41
2003.01.30
Странное поведение компонента DBGrid


3-96538
Makhanev A.S.
2003-01-14 16:20
2003.01.30
Задача:


14-96964
kostya2000
2003-01-12 20:26
2003.01.30
Вопрос!