0 / 0 / 0
Регистрация: 29.09.2010
Сообщений: 43
1

Удалить столбцы матрицы, в которых все элементы заканчиваются на единицу

11.12.2010, 19:35. Показов 1082. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача - удалить столбцы, в которых все элементы заканчиваются на единицу.
вот процедура:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
type
  matrix=array[1..100,1..100] of integer;
 
procedure doit(var a:matrix; m:integer; var n:integer);
var
  i,j,k:integer;
  l:boolean;
begin
  k:=0;
  for j:=1 to n do
  begin
    l:=false;
    for i:=1 to m do
      if a[i,j] mod 10<>1 then
        l:=true;
      if l=false then
      begin
        for k:=j to n do
          for i:=1 to m do
            a[i,k]:=a[i,k+1];
        dec(n);
      end;
  end;
end;

Она идет, все хорошо. НО алгоритм удаления столбца я просто скопировала с сайта и не понимаю его. Не могли бы вы в двух словах объяснить следующие строчки

Pascal
1
2
3
4
5
6
if l=false then
      begin
        for k:=j to n do      //почему от к:=j?
          for i:=1 to m do
            a[i,k]:=a[i,k+1];  //Почему к+1?
        dec(n);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2010, 19:35
Ответы с готовыми решениями:

Удалить все столбцы матрицы в которых все элементы положительные
в C# удалить все столбцы в которых все элементы положительные

Матрицы: удалить из матрицы столбцы, в которых есть равные элементы
1.Необходимо удалить из матрицы столбцы, в которых есть равные элементы: для матрицы: 1 2 3 4 5...

Удалить все столбцы, в которых все элементы положительны
Удалить все столбцы, в которых все элементы положительны.

Удалить те столбцы матрицы, в которых есть повторяющиеся элементы
1) Дана двумерная матрица A(n,m) удалить те столбцы в которых есть повторяющиеся элементы. 2)...

3
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
11.12.2010, 20:06 2
Это называется сдвиг влево.
Pascal
1
2
3
4
5
6
if l=false then//если все элементы в столбце оканчиваются на 1
      begin
        for k:=j to n-1 do      //от этого столбца до предпоследнего, здесь нужно to n-1 
          for i:=1 to m do//всем элементам строк
            a[i,k]:=a[i,k+1];  //присвоить значения элементов справа
        dec(n);//обрезать последний столбец
1
0 / 0 / 0
Регистрация: 29.09.2010
Сообщений: 43
11.12.2010, 20:51  [ТС] 3
простите, но почему до предпоследнего?
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
11.12.2010, 20:55 4
Потому что последний станет предпоследним, все сдвинутся на 1 влево, а последний станет "пустым", его обрежем, например было
12 11 23
21 21 21
12 31 40
второй столбец нужно удалить, второму присвоим значения третьего, будет
12 23 0
21 21 0
12 40 0
обрежем третий n:=n-1
будет
12 23
21 21
12 40
0
11.12.2010, 20:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2010, 20:55
Помогаю со студенческими работами здесь

Удалить столбцы матрицы, в которых есть нулевые элементы
Изменить матрицу – удалить столбцы матрицы, в которых есть нулевые элементы. C++ Добавлено через...

Удалить из матрицы столбцы, в которых элементы образуют убывающую последовательность
Помогите пожалуйста с заданием по С++ Дана матрица размером 8х12. Удалить из нее столбцы (один...

Удалить из матрицы строки и столбцы, последние элементы которых положительны
Доброго времени суток!Помогите пожалуйста написать программу, задание такое: &quot;В основной...

Удалить столбцы матрицы, в которых встречаются минимальные элементы массива
Помогите решить 2 задачки, сессия уже скоро а голова уже кипит ) 1 задача ) Дан массив A(m)....

Удалить все столбцы матрицы, в которых нет нулевого элемента
Удалить все столбцы матрицы, в которых нет нулевого элемента. (Пожалуйста, через процедуры и...

Удалить все столбцы матрицы, в которых нет нулевого элемента
Дан массив А(n*m). Удалить все столбцы, в которых нет нулевого элемента. n=5 and m=6


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru