Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Вычисление суммы элементов матрицы
Дано: матрица 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 элементы матрицы
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 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.
Определить
нет 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.
rem суммирование элементов заданной строки input k нет for j to m да s = s + b(k, j) next j print s Рис.27 |
Последнее изменение этой страницы: 2017-03-14; Просмотров: 997; Нарушение авторского права страницы