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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2011, 20:53   #1
bolshe_ne_RUS
Новичок
Джуниор
 
Регистрация: 13.06.2011
Сообщений: 2
Злость Дана матрица размера MxN и целое число К(1<K<M). Удалить строку матрицы с номером К

Дана матрица размера MxN и целое число К(1<K<M). Удалить строку матрицы с номером К
bolshe_ne_RUS вне форума Ответить с цитированием
Старый 13.06.2011, 23:02   #2
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

удалить или не выводить?
если именно удалить, то тут два варианта... либо создать еще одну матрицу размера (M-1)xN и записать туда строки за исключением k-й. Либо сместить строки в исходной, но в таком случае одна строка (последняя) останется лишней (её не надо будет выводить).

Последний раз редактировалось unbanned; 14.06.2011 в 00:58.
unbanned вне форума Ответить с цитированием
Старый 13.06.2011, 23:10   #3
bolshe_ne_RUS
Новичок
Джуниор
 
Регистрация: 13.06.2011
Сообщений: 2
По умолчанию

надо удалить и вывести новую матрицу-по моему.я тут мало что понимаю, не сочтите за трудность сделайте пожалуйста, буду очень благодарен
bolshe_ne_RUS вне форума Ответить с цитированием
Старый 13.06.2011, 23:25   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Если с помощью другой матрицы, то как-то так вроде
Код:
с:=0;
for i:=1 to m do
begin
   с:=с+1;
   for j:=1 to n do 
   begin
      if(i=k) then begin k:=k-1; break; end;
      b[с,j]:=a[i,j];
   end;
end;
Остальное надеюсь сами напишите.
upd: нет, не так. Как-то так. Чот костыль какой-то получился)
upd2: упс, забыл, что переменная с именем к уже используется.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 13.06.2011 в 23:39.
Alex11223 вне форума Ответить с цитированием
Старый 14.06.2011, 00:47   #5
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

Код:
var
  m1: array [1..6, 1..5] of integer;
  m2: array [1..5, 1..5] of integer;
  i, j, k: integer;
  f: text;

begin
  assign(f, 'input.txt');
  reset(f);
  writeln('Исходная матрица: ');
  for i := 1 to 6 do
  begin
    for j := 1 to 5 do 
    begin
      read(f, m1[i, j]);
      write(m1[i, j]:2, ' ');
    end;
    writeln;
  end;
  close(f);

  writeln('Введите k:');
  write('k=');readln(k);
  
  for i := 1 to 6 do 
    for j := 1 to 5 do 
    begin
      if i > k then m2[i - 1, j] := m1[i, j]
      else m2[i, j] := m1[i, j];
    end;
  
  writeln('Полученная матрица: ');
  for i := 1 to 5 do 
  begin
    for j := 1 to 5 do
      write(m2[i, j]:2, ' ');
    writeln;
  end;
end.
вам повезло... я нашел подобную задачу у себя в исходниках

и еще воспользовавшись гуглом нашел точно вашу задачу...

Последний раз редактировалось unbanned; 14.06.2011 в 00:51.
unbanned вне форума Ответить с цитированием
Старый 14.06.2011, 01:12   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Что-то по ссылке какое-то "неч0ткое" решение. Лучше уж тогда как-то так.
Код:
for i := 1 to m do
  begin
    for j := 1 to n do
      if(i = k) then break else write(a[i, j]);
    writeln;
  end;
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 14.06.2011 в 01:17.
Alex11223 вне форума Ответить с цитированием
Старый 14.06.2011, 16:26   #7
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

ссылку я привел как бы подсказывая, что можно воспользоваться поиском =)

а моё решение чем не устраивает? единственное можно добавить проверку чтобы 1<K<M
unbanned вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
дана матрица порядка m на n. Вставить в данную матрицу столбец с номером K Aktor1992 Паскаль, Turbo Pascal, PascalABC.NET 1 13.04.2011 12:24
Дана матрица размера 5 x 10. В каждой строке найти количество элементов Executioner3 Помощь студентам 12 11.05.2010 16:27
Дана целочисленная матрица размера M × N. Найти номер последнего из ее столбцов, содержащих равное количе tanjusha Общие вопросы C/C++ 4 01.04.2010 20:03
Дана матрица символов. Определить строку, в которой максимальное количество букв. SilentM Помощь студентам 9 23.05.2009 14:30
Дана матрица размера M*N.Зеркально отразить ее элементы Ильдар ХАЛИКОВ Паскаль, Turbo Pascal, PascalABC.NET 6 09.04.2008 22:22