Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 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; просмотров: 101; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.140.198.173 (0.009 с.) |