Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4_Метод_Часть_4_Массивы.doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
620.54 Кб
Скачать
  1. Удаление строки или столбца из матрицы

Алгоритм решения

Допустим, что требуется удалить строку (столбец) под номером К. Для этого необходимо все строки, следующие за строкой под номером К, переместить на строку вверх. При удалении столбцов – все столбцы, следующие после столбца под номером К, перемещаются влево на один столбец.

Программная реализация

Удаление строки

Удаление столбца

FOR i = K TO n - 1

FOR j = 1 TO m

A(i,j) = A(i + 1,j)

NEXT j,i

n = n – 1

FOR j = K TO m – 1

FOR i = 1 TO n

A(i,j) = A(i, j + 1)

NEXT i,j

m = m – 1

пример 22

Дана матрица чисел. Найти минимальный элемент побочной диагонали матрицы. Удалить строку, где находится минимальный элемент.

Тест

Данные

Результат

n = 3

Исполнение алгоритма

Нахождение минимального элемента побочной диагонали

i

j

Проверка условия для определения побочной диагонали

Проверка условия для нахождения min

min

K

(номер min)

=A(1,3) = 0

=1

2

1

i+j=n+1 (ложь)

2+14

2

i+j=n+1 (истина)

222+2=4

A(2,2)<min

(истина)

-5<0

=A(2,2)=-5

=2

3

i+j=n+1 (ложь)

2333333+34

3

1

i+j=n+1 (истина)

33+1=4

A(3,1)<min

(ложь)

-1>-5

значение остается прежним

2

i+j=n+1 (ложь)

3+24

3

i+j=n+1 (ложь)

3+34

Удаление строки с минимальным элементом побочной диагонали

i

j

Сдвиг

Массив

N

2

1

А(2,1)=A(3,1)

2

А(2,2)=A(3,2)

3

А(2,3)=A(3,3)

n=n-1=3-1=2

Блок-схема алгоритма

Начало

Ввод n, массив А

min=A1n ; K=1

i=2,n

j=1,n

+ i+j=n+1;Aij<MIN -

MIN=Aij K=i

+ -

i=K,n-1

-

j=1,n

Aij=Ai+1j

Вывод массива Aij

Конец

Программа

CLS

INPUT "введи размер матрицы " ; n

DIM A(n, n)

PRINT "введи матрицу"

FOR i = 1 TO n

FOR j = 1 TO n

'Ввод элементов матрицы

INPUT A(i,j)

NEXT j, i

'Задание начального значения минимального элемента побочной диагонали

min = A(1,n) : K = 1

FOR i = 1 TO n

FOR j = 2 TO n

'Нахождение наименьшего значения побочной диагонали матрицы

IF i + j = n + 1 AND A(i,j) < min THEN

min = A(i,j) :K = i

END IF

NEXT j

NEXT i

'Удаление строки с минимальным значением побочной диагонали матрицы

FOR i = K TO n - 1

FOR j = 1 TO n

A(i,j) = A(i + 1,j)

NEXT j,i

n = n - 1

FOR i = 1 TO n

FOR j = 1 TO n

'Вывод матрицы на печать

PRINT A(i,j);

NEXT j

PRINT

NEXT i

END

пример 23

Дана матрица чисел. Удалить все столбцы, где есть нули.

Программа

CLS

INPUT "введи размер матрицы " ; n,m

DIM A(n, m), B(m)

PRINT "введи матрицу"

FOR i = 1 TO n

FOR j = 1 TO m

'Ввод элементов матрицы

INPUT A(i,j)

NEXT j, i

FOR j = 1 TO m

FOR i = 1 TO n

'Нахождение нулевого элемента в каждом столбце матрицы

IF A(i,j) = 0 THEN flag = 1

NEXT i

'Если в столбце нулевой элемент найден, то номер столбца запоминается в массиве В

IF flag = 1 THEN L = L + 1: B(L) = j

flag = 0

NEXT j

C = 0

FOR z = 1 TO L

FOR j = B(z - C) TO m – 1

FOR i = 1 TO n

A(i,j) = A(i, j + 1)

NEXT i,j

C = C + 1

m = m – 1

NEXT z

FOR i = 1 TO n

FOR j = 1 TO m

'Вывод элементов матрицы

PRINT A(i,j);

NEXT j

PRINT

NEXT i

END

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]