![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
С использованием матричных операций и функций
n=input('Введите n='); m=input('Введите m='); for i=1:n disp(sprintf('Введите эл. %d строки матрицы',i)) for j=1:m B(i,j)=input('B(i,j)='); end end C= max(abs(B)); disp(' Получен массив С: ') disp(C)
Задача 41. Преобразование строки и столбца, где находится минимум матрицы Условие задачи. Дана матрица А. Обнулить в ней элементы той строки и того столбца, где находится минимальный элемент матрицы. Известно, что в матрице имеется только один элемент с минимальным значением. Исходными данными являются целочисленные количество строк N и столбцов M матрицы A и вещественные элементы этой матрицы. Результатом будет та же матрица А после требуемых преобразований. Решение задачи должно начинаться с поиска минимального элемента матрицы, но при этом недостаточно найти значение минимума, а необходимо определить его позицию, т.е. номера строки и столбца, где он находится. После этого можно будет заменить нулями элементы найденных строки и столбца. Поиск минимума среди всех элементов матрицы отличается от поиска в каждой строке или в каждом столбце тем, что сначала в качестве исходного значения за эталон минимума Min берётся любой элемент, обычно элемент в левом верхнем углу, а затем каждый элемент матрицы (в любом порядке) сравнивается с эталоном. Обход матрицы при этом можно производить как по строкам, так и по столбцам, но в любом случае с помощью двух вложенных циклов. Если какой-либо элемент оказывается меньше эталона Min, то теперь в качестве эталона берётся этот меньший элемент. Для того, чтобы определить местоположение минимума, нужно запоминать ещё два значения: номер строки Pos_i и номер столбца Pos_j минимального элемента. Порядок действий для определения искомых номеров строки и столбца минимума будет следующим. Сначала в качестве начального значения эталона возьмём элемент, находящийся в левом верхнем углу, иначе говоря элемент первой строки, первого столбца, Min = A[1,1], и запомним его номер строки и столбца: Pos_i = 1; Pos_j=1. Затем будем обходить все элементы матрицы построчно, для этого организуем вложенные циклы: внешний цикл – по строкам i=1, N, внутренний цикл – по столбцам j=1, M. При этом каждый элемент A[i,j] будем сравнивать с текущим значением Min, и если встретится меньший по значению элемент, то в Min занесём его, в Pos_i – его номер строки i, в Pos_j – его номер столбца j. В результате обхода матрицы местоположение минимума будет найдено.
Теперь останется заменить нулями элементы строки Pos_i и столбца Pos_j. Для прохода по строке Pos_i нужен цикл, изменяющий номера столбцов j=1,M, в нём каждому элементу A[Pos_i,j] будем присваивать ноль. Аналогично, для прохода по столбцу Pos_j нужен цикл, изменяющий номера строк i=1,N, в нём каждому элементу A[i,Pos_j] будем присваивать ноль. После преобразований полученную матрицу выведем на экран, используя вложенные циклы. Структурированная запись алгоритма 41 1. Ввести размеры матрицы N, M и элементы матрицы А. 2. Задать начальные значения Min = A[1,1]; Pos_i = 1; Pos_j=1. 3. В цикле для i=1,N повторять 3.1. В цикле для j=1,M повторять 3.1.1. Проверять: если A[i,j]<Min, то 3.1.1.1.Min=A[i,j] 3.1.1.2.Pos_i=i; Pos_j=j 4. В цикле для j=1,M повторять 4.1. A[Pos_i,j]=0 5. В цикле для i=1,N повторять 5.1. A[i,Pos_j]=0 6. Вывести элементы матрицы А. Схема алгоритма Текст программы на языке Си #include <stdio.h> #include <math.h> #define N 25 int main (void) { int n,m,i,j,pos_i,pos_j; double a[N][N],min; printf ("\nВведите n и m\n"); scanf ("%d%d", &n,&m); for (i=0; i<n; i++) { printf ("Введите элементы %d строки\n",i); for (j=0; j<m; j++) scanf ("%lf", &a[i][j]); } min=a[0][0]; pos_i=0; pos_j=0; for (i=0; i<m; i++) for (j=0; j<m; j++) if (a[i][j]<min) { min=a[i][j]; pos_i=i; pos_j=j; } for (j=0; j<m; j++) a[pos_i][j]=0; for (i=0; i<m; i++) a[i][pos_j]=0; printf ("Полученная матрица\n"); for (i=0; i<m; i++) { for (j=0; j<m; j++) printf ("%3.0lf", a[i][j]); printf("\n"); } return 0; }
|
|||||
Последнее изменение этой страницы: 2021-04-12; просмотров: 104; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.170.131 (0.006 с.) |