Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Вычисление суммы элементов матрицы



 

Дано: матрица aij i = 1, n, j=l, m.

Определить: сумму элементов матрицы

Фрагмент блок-схемы и программы, вычисляющей сумму, будет следующим:

 
 

 


rem вычисление суммы

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

нет S = 0

да for i=1to n

for j=l to m

s=s+a(i, j)

нет next j

да next i

print s

 

Рис.17

Вычисление суммы по условию.

Дано: матрица aij i=l, 10, j=l, 20.

Определить: Среднее значение положительных элементов матрицы, где:

если aij> 0

S - сумма положительных элементов матрицы;

К - количество положительных элементов матрицы (счетчик числа

элементов).

Блок-схема и программа (фрагмент):

 

rem вычисление среднего значения

rem положительных элементов матрицы

k=0: s=0

for i = 1 to 10

нет for j = l to20

да if a(i, j)> 0 then

S=S+a(i, j)

K=K+l

нет end if

next j

да next i

нет sr=s/k

да print sr

 

рис 18.

 

 

Нахождение max (min) элемента матрицы

 

Дано: матрица bij i=l, n j=l, m

Определить: max и min элементы матрицы

 

max = max, если bij < max
bij , если bij ≥ max
min = min, если bij > min
bij, если bij ≤ min

 

 

rem нахождение максимального rem и минимального элемента

max= -1 Е 10:: min = 1 E 10

да for i = 1 to n

for j =1 to m

if b(i, j) > = max then

нет max=b(i, j)

end if

да if b(i, j)< =min then

нет min=b(i, j)

да end if

next j

next i

нет print max, min

да

 

Рис.19

 

Преобразование матриц.

Умножение (деление) строки на число.

Задача. Умножить (разделить) все элементы k-той строки матрицы на число “b”.

Дано: число b,

матрица aij i=1, n; j=l, m

Определить: новую преобразованную матрицу.

Умножение (деление) столбца на число выполняется аналогично

rеm умножение строки на число

input b, k

i=k

for j=1 to m

нет a(i, j)=a(i, j)*b

да next j

for i=l to n

нет for j=1 to m

print a(i, j);

да Продолжение next j

print

next i

нет

 

да

 

Рис.20

 

Сложение (вычитание) строк.

К элементам k-й строки матрицы прибавить элементы строки с номером 1, умноженные на число " b".

Дано: числа b, l, k; матрица аij i=1, n; j=l, m.

Определить: новую преобразованную матрицу.

 
 

 

 


rem сложение строк по rem условию

нет input b, l, k

да for j =1 to m

a(k, j) = a(k, j) + a(l, j)*b

нет next j

да rem вывод матрицы

Продолжение for i = 1 to n

for j = 1 to m

нет print a (i, j);

next j

да print

next i

 

 

Рис.21

Преобразование матрицы в одномерный массив.

 

Задача.

Переслать элементы матрицы размерности 10x20 в одномерный массив, сохранив порядок следования элементов (элементы матрицы пересылать по строкам.)

Дано: матрица аij i=1, n; j=l, m

Определить: bi i=l, l, где 1=10x20.

rem преобразование

rem матрицы в

rem одномерный массив

нет e= 10*20: k=l

да for i = 1 to 10

for j = l to 20

нет b(k)=a(i, j)

нет k = k + 1

да next j

да next i

rem ввод одномерного массива

for k = 1 to e

print b(k)

next k

Рис.22

 

Умножение матрицы на матрицу.

Дано: матрица аij i=l, n; j=l, k

матрица bij i=1, k; j=1, m.

 

Определить

i = 1, n j = 1, m

 

 
 

 


нет

rem умножение

да матрицы на матрицу

for i=l to n

for j=l to m

нет S=0

for l=l to k

нет S = S + a(i, j)*b(l, j)

next 1

c(i, j)=S

next j

next i

нет

да

 

Рис.23

 

Умножение матрицы на вектор

Дано: матрица аij i=l, n; j=l, m

вектор bj j=1, m

Определить

 

 

 

 


нет rem умножение матрицы на вектор

for i=l to n

да S=0

for j=l to m

S=S+a(i, j) x b(j)

next j

c(i)=S

нет next i

 

да

рис 24.

 

Перестановка строк матрицы

Дано: матрица aij i=l, n; j=l, m

Переставить строки с номером р и q.

1 способ: с использованием вспомогательной переменной Т.

 

rem перестановка строк

input p, q

нет for k=l to m

t=a(p, k)

да a(p, k) = a(q, k)

a(q, k) =t

next k

 

рис.25

 

2 способ: с использованием вспомогательного массива с.

Одна из строк целиком пересылается в этот массив для временного хранения.

 

rem перестановка строк

 

input p, q

да for k=l to m

c(k) = a(p, k)

next k

нет for k=1 to m

да a(p, k)=a(q, k)

next k

нет for k=l to m

да a(q, k) = c(k)

next k

Рис.26

 

Способ.

Используется оператор swap переменная 1, переменная 2, который обменивает значение двух переменных одного и того же типа.

For k=l to m

Swap a(p, k), a(q, k)

next k

Суммирование элементов заданной строки матрицы

Дано: матрица bij i=l, n; j=l, m

Определить: сумму элементов строки с номером k.

i=k

 
 

 


rem суммирование элементов заданной строки

input k

нет for j to m

да s = s + b(k, j)

next j

print s

Рис.27


Поделиться:



Последнее изменение этой страницы: 2017-03-14; Просмотров: 997; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.029 с.)
Главная | Случайная страница | Обратная связь