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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2007, 13:05   #1
Бублик
Новичок
Джуниор
 
Регистрация: 18.11.2007
Сообщений: 2
Вопрос Поменять местами строки в memo

Вот такое задание. Дана матрица A(n,n)(Memo). Поменять местами K и L строки.:
Бублик вне форума Ответить с цитированием
Старый 18.11.2007, 13:09   #2
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

1. Почему в Общих вопросах Делфи.
2. Что сделали.
3. Что не получилось.

p.s.: без вашего участия проблематично будет.
Alex21 вне форума Ответить с цитированием
Старый 18.11.2007, 13:36   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Запоминаем К-ую строку во временной переменной.
Копируем L-ую строку в позицию К.
Копируем содержимое временной переменной в строку L.
Все.
mihali4 вне форума Ответить с цитированием
Старый 18.11.2007, 14:14   #4
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

А еще можно сделать без дополнительной переменной:
Код:
  for i:=1 to N do
  begin
    A[K,i] := A[L,i] xor A[K,i];
    A[L,i] := A[K,i] xor A[L,i];
    A[K,i] := A[K,i] xor A[L,i];
  end;
Alex21 вне форума Ответить с цитированием
Старый 18.11.2007, 14:38   #5
Бублик
Новичок
Джуниор
 
Регистрация: 18.11.2007
Сообщений: 2
По умолчанию

Дан исходник, который перегоняет данные из одного memo в другой и с ним надо что-то сделать , чтобы еще и строки местами менял


procedure TForm1.Button9Click(Sender: TObject); var
a:array [1..10,1..10] of integer;
i,j,k,rez,l:integer;
str,s:string;
begin
str:=Memo1.text;
S:=Memo2.Text;
for i:=1 to strtoint(edit2.text) do
begin
for j:=1 to strtoint(edit2.text) do
begin
k:=pos(' ',str);
a[i,j]:=StrToInt(copy(str,1,k-1));
delete(str,1,k);

end;
delete(str,1,2);
end;
Memo3.Clear;
for i:=1 to strtoint(edit2.text) do
begin
S:='';
for j:=1 to strtoint(edit2.text) do

S:=S+inttostr(a[i,j])+' ';
memo3.Lines.Add(s);


end;
end;
Бублик вне форума Ответить с цитированием
Старый 18.11.2007, 15:27   #6
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Почему вы работаете с матрицой как с текстом?
Предположим массив уже имеется, тогда объявляем глобальные переменные:
Код:
const
  K=0;  // меняем эту строку
  L=1;  // с этой строкой
  N=9; // размерность матрицы
var
  Form1: TForm1;
  a:array[0..N,0..N]of integer; // массив А
  i,j:integer;
и сама процедура обмена и вывода результата в Мемо2:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
{обмен местами значений строк K и L}
  for i:=0 to N do
  begin
    A[K,i] := A[L,i] xor A[K,i];
    A[L,i] := A[K,i] xor A[L,i];
    A[K,i] := A[K,i] xor A[L,i];
  end;

  {вывод в Мемо2}
  memo2.Clear;
  memo2.Lines.Add('');
  for i:=0 to N do
  begin
    for j:=0 to N do
    begin
      memo2.Lines[i]:=memo2.Lines[i]+inttostr(a[i,j])+'   ';
    end;
    memo2.Lines.Add('');
  end;
end;
Alex21 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как поменять строки местами? ar. Microsoft Office Word 1 05.09.2008 11:36
поменять местами столбцы veter_s_morya SQL, базы данных 4 29.06.2008 13:36
Поменять местами две половины массива, сохраняя их порядок. Леди Уинтер Помощь студентам 11 09.01.2008 09:21
Как поменять строки в текстовом файле местами _ares_ Помощь студентам 8 13.11.2007 02:14