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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2010, 17:38   #1
St1mkA
Пользователь
 
Регистрация: 04.10.2009
Сообщений: 39
По умолчанию Двумерные массивы

Дана матрица A(MxN) и целые числа p и q. Преобразовать матрицу А так, чтобы строка с исходным номером p непосредственно следовала за стро¬кой с исходным номером q, сохранив порядок следования остальных строк.
St1mkA вне форума Ответить с цитированием
Старый 17.03.2010, 18:46   #2
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

Код:
for i:=1 to m do
 begin
  t:=a[p,i];
  a[p,i]:=a[q+1,i];
  a[q+1,i]:=t;
 end;
без учета, что q не последняя строчка, если она последняя, то не знаю как, может поднять ее на одну строчку, или что с ней сделать???
Жми на весы!!!
Chudo4258 вне форума Ответить с цитированием
Старый 17.03.2010, 18:56   #3
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Цитата:
Сообщение от Chudo4258 Посмотреть сообщение
Код:
for i:=1 to m do
 begin
  t:=a[p,i];
  a[p,i]:=a[q+1,i];
  a[q+1,i]:=t;
 end;
без учета, что q не последняя строчка, если она последняя, то не знаю как, может поднять ее на одну строчку, или что с ней сделать???
Это обмен двух строк, а не "вырезать-вставить". У нас меняется относительный порядок той, что после q и всех остальных. В задании требуют как раз грубо говоря "поднять", тоесть нужную строку вырезать, остальное сдвинуть, а потом ее вставить, и сдвинуть все в другую сторону.
LeBron вне форума Ответить с цитированием
Старый 17.03.2010, 19:18   #4
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

А что вам мешает пронумеровать эти строки сначала?
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 17.03.2010, 19:23   #5
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

Цитата:
Сообщение от LeBron Посмотреть сообщение
Это обмен двух строк, а не "вырезать-вставить". У нас меняется относительный порядок той, что после q и всех остальных. В задании требуют как раз грубо говоря "поднять", тоесть нужную строку вырезать, остальное сдвинуть, а потом ее вставить, и сдвинуть все в другую сторону.
Точно, сорри задачу не так понял.
Жми на весы!!!
Chudo4258 вне форума Ответить с цитированием
Старый 17.03.2010, 20:11   #6
St1mkA
Пользователь
 
Регистрация: 04.10.2009
Сообщений: 39
По умолчанию

А как задачу то сделать?
St1mkA вне форума Ответить с цитированием
Старый 17.03.2010, 20:22   #7
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

копируешь строчку р в отдельный массив:
Код:
for i:=1 to m do
 B[i]:=a[p,i];
затем поднимаешь все строчки начиная с р-ой и до q
Код:
for i:=p to q-1 do
 for j:=1 to m do
   a[i,j]:=a[i+1,j]
теперь, т.к. q-ую строчку мы подняли тогда на ее место вставим массив B (это и есть строчка с номером р)
Код:
for i;=1 to m do
 a[q,i]:=b[i];
Что-то в этом роде....
Жми на весы!!!
Chudo4258 вне форума Ответить с цитированием
Старый 17.03.2010, 20:30   #8
St1mkA
Пользователь
 
Регистрация: 04.10.2009
Сообщений: 39
По умолчанию

Спасибо большое!!
St1mkA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
двумерные массивы JOHN1992 Помощь студентам 2 06.11.2009 22:49
двумерные массивы в Си osichev Помощь студентам 1 04.06.2009 18:00
Двумерные массивы!!!!! avp91 Паскаль, Turbo Pascal, PascalABC.NET 2 04.06.2009 16:36