Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 02.12.2018
Сообщений: 192
1

Найти минимальный элемент матрицы и заменились все нулевые элементы главной диагонали на минимальный элемент

13.11.2019, 11:14. Показов 1546. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В функцию на ассемблере вводится матрица
Я записал код так.
Assembler
1
2
3
4
5
6
7
.MODEL FLAT, C
.DATA
.CODE
FUNK PROC C a:dword, n:dword
mov esi,a
mov edi,a
mov adx,n
Как написать на ассемблере так, чтобы находился минимальный элемент матрицы и заменились все нулевые элементы главной диагонали на минимальный элемент массива.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.11.2019, 11:14
Ответы с готовыми решениями:

Найти минимальный элемент под главной диагональю матрицы
Очень нужна помощь, за символическое вознаграждение (бесплатно тоже не откажусь=))! Надо...

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

Найти в массиве минимальный по модулю элемент. Заменить им элементы с нечетными номерами
Найти в массиве минимальный по модулю элемент. Заменить им элементы с нечетными номерами - Assembler

Найти в массиве минимальный по модулю элемент. Заменить им элементы с нечетными номерами
Написать процедуру и функцию, которая находит в массиве минимальный по модулю элемент и заменяет им...

7
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16343 / 7661 / 1076
Регистрация: 11.11.2010
Сообщений: 13,711
13.11.2019, 12:13 2
ConLenov,
а как бы ты искал минимальный элемент матрицы и заменял все нулевые элементы главной диагонали на минимальный элемент массива на языке С/Pascal/Basic? Попробуй написать программу на одном из этих языков и выложи ее сюда, а перевести на язык ассемблера поможем...
0
0 / 0 / 0
Регистрация: 02.12.2018
Сообщений: 192
13.11.2019, 12:39  [ТС] 3
C++
1
2
3
4
5
6
7
8
9
10
int mine=a[1][1];
for (i=0;i<n;i++)
{for (j=0;j<n;j++)
{if (a[i][j]<mine)
{mine=a[i][j];}}}
for (i=0;i<n;i++)
{for (j=0;j<n;j++)
{if (i==j && a[i][j]==0)
{a[i][j]==mine;}}
}
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16343 / 7661 / 1076
Регистрация: 11.11.2010
Сообщений: 13,711
13.11.2019, 12:53 4
ConLenov,
Электронный учебник главы
  • 13. ПЕРЕХОДЫ И ЦИКЛЫ
  • 14. МАССИВЫ
  • 15. ПОДПРОГРАММЫ-ПРОЦЕДУРЫ
0
0 / 0 / 0
Регистрация: 02.12.2018
Сообщений: 192
13.11.2019, 12:56  [ТС] 5
Можно просто перевести?
0
Эксперт CЭксперт С++
 Аватар для liv
5118 / 4558 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
13.11.2019, 12:57 6
ConLenov, реализация доступа к элементам матрицы зависит от того, что представляет собой матрица:
одномерный массив адресов строк или строки размещены последовательно одна за одной.
Отсюда вопрос: как в вызывающей программе задается матрица?
0
0 / 0 / 0
Регистрация: 02.12.2018
Сообщений: 192
13.11.2019, 13:09  [ТС] 7
Это матрица чисел. Матрица размера n*n

Добавлено через 3 минуты
Квадратная матрица
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8564 / 4412 / 1655
Регистрация: 01.02.2015
Сообщений: 13,705
Записей в блоге: 9
14.11.2019, 23:55 8
ConLenov, смотрите, данный код сильно зависит от изучаемой темы.
Наиболее оптимально его решать представив матрицу в виде линейного массива длиной n2.
Тогда поиск минимального будет следующим
Assembler
1
2
3
4
5
6
7
8
9
10
mov esi, [a]
mov eax, [n]
mul eax
mov ecx, eax
mov ebx, [esi] ;текущее значение минимума
@@for:
  lodsd
  cmp ebx, eax
  cmovg ebx, eax  ;(ebx>eax)?eax:ebx или ebx=min(ebx, eax)
loop @@for
Теперь нужно "пройтись" по диагонали.
Таких чисел будет ровно n.
Начнётся "просмотр" с самого первого числа - по указателю в переменной "a".
Представим матрицу в виде непрерывного массива. Через сколько чисел будет рассмотрен самый первый элемент следующей строки? А через n элементов. И если перейдём на 1 элемент дальше (т.е. на n+1), то окажемся на элементе главной диагонали. Нужно ещё учесть, что при косвенно-регистровой адресации имеем дело не с индексами массива, а с адресами, т.е. к указателю прибавлять не (n+1), а 4*(n+1), где 4 - размер элемента массива. Вот этот переход можно сделать множеством вариантов.
Так
Assembler
1
2
3
4
5
6
7
8
9
10
mov esi, [a]
mov ecx, [n]
@@forD:
.........
  mov eax, [n]
  inc eax
  mov ebx, 4
  mul ebx
  add esi, eax  ;esi=esi+4*(n+1)
loop @@forD
А есть вариант красивее
Assembler
1
2
3
4
5
6
7
8
mov esi, [a]
mov ecx, [n]
@@forD:
.........
  mov eax, [n]
  inc eax
  lea esi, [esi+4*eax]
loop @@forD
или
Assembler
1
2
3
4
5
6
7
mov esi, [a]
mov ecx, [n]
lea edi, [4*ecx+4]
@@forD:
.........
  add esi, edi
loop @@forD
Думаю, что понятно объяснил
0
14.11.2019, 23:55
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.11.2019, 23:55
Помогаю со студенческими работами здесь

Найти максимальный элемент на главной диагонали матрицы и заменить его на 1
Дан массив элементов 6х6. Найти максимальный элемент на главной диагонали и заменить его на 1

Заменить элементы главной диагонали матрицы на максимальный элемент побочной диагонали на минимальный элемент
в квадратной матрице находящейся в файле найти максимальный и минимальный элементы и заменить...

Найти минимальный элемент матрицы и заменить на него элементы главной диагонали
17)Найти минимальный элемент матрицы и заменить на него элементы главной диагонали.

Найти минимальный элемент главной диагонали матрицы, и заменить им элементы первого столбца
пусть m=n найти минимальный элемент главной диагонали и заменить им элементы первого столбца


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Как проверить, что файл НЕ существует с помощью Bash
bytestream 25.01.2025
В системном администрировании проверка существования файлов является фундаментальной операцией, особенно при написании скриптов на Bash. Правильная обработка ситуаций, когда файл отсутствует,. . .
Как проверить, что строка пустая, неопределена или null в JavaScript
bytestream 25.01.2025
При разработке веб-приложений на JavaScript разработчики регулярно сталкиваются с необходимостью проверки строковых значений на различные состояния. Валидация данных является критически важным. . .
Как проверить существование ключа в объекте или массиве в JavaScript
bytestream 25.01.2025
При разработке веб-приложений на JavaScript программисты постоянно сталкиваются с необходимостью работать с объектами и массивами. Эти структуры данных являются фундаментальными элементами языка и. . .
Как создать ArrayList из массива (array) в Java
bytestream 25.01.2025
При разработке программного обеспечения на языке Java программисты часто сталкиваются с необходимостью эффективного управления наборами данных. Массивы и ArrayList являются двумя фундаментальными. . .
Как сгенерировать случайные целые числа (int) в указанном диапазоне в Java
bytestream 25.01.2025
В программировании генерация случайных чисел является важнейшим инструментом для решения множества практических задач. От создания игровых механик до реализации алгоритмов машинного обучения, от. . .
Как сделать, чтобы grep выводил строки до и после найденной
hw_wired 25.01.2025
Утилита grep стала незаменимым инструментом для поиска и фильтрации информации в Unix-подобных операционных системах. Эта командная утилита позволяет осуществлять поиск строк, соответствующих. . .
Как клонировать определенную ветку в Git
bytestream 24.01.2025
Одной из ключевых функций Git является возможность клонирования веток, что позволяет создавать локальные копии удаленных репозиториев и работать с определенными версиями проекта. Этот механизм. . .
Как в цикле обойти строки DataFrame в Pandas Python
bytestream 24.01.2025
DataFrame представляет собой одну из основных структур данных в библиотеке Python Pandas, которая организует информацию в виде двумерной таблицы с строками и столбцами. Эта структура данных особенно. . .
Как получить имя текущей ветки в Git
bytestream 24.01.2025
При работе с Git часто возникает необходимость определить имя текущей ветки, в которой ведется разработка. Знание текущей ветки является критически важным аспектом для эффективного управления. . .
Как отсортировать массив объектов по значению поля объекта в JavaScript
bytestream 24.01.2025
При разработке веб-приложений на JavaScript разработчики часто сталкиваются с необходимостью работать с массивами объектов. Эти структуры данных представляют собой упорядоченные наборы элементов, где. . .
Ошибка "src refspec master does not match any" при пуше коммита в Git
bytestream 24.01.2025
При работе с системой контроля версий Git разработчики нередко сталкиваются с различными ошибками, одной из которых является сообщение "src refspec master does not match any". Эта ошибка возникает. . .
Как округлить не более двух цифр после запятой в JavaScript
bytestream 24.01.2025
При работе с числами в JavaScript разработчики часто сталкиваются с необходимостью округления десятичных значений до определенного количества знаков после запятой. Это особенно важно при работе с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru