Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 24.12.2017
Сообщений: 45
MASM

Поиск минимальной суммы строки в матрице

06.06.2019, 16:48. Показов 2083. Ответов 3

Студворк — интернет-сервис помощи студентам
Есть такая задача, нужно создать матрицу 3х4, и найти строку с минимальной суммой в строке, с использованием двух подпрограмм, в одной подсчет суммы, в другой сравнения.

Как создать матрицу я знаю, а что дальше я хз как реализовывать.
Заранее спасибо за помощь.
P.S.
выводы на экран не нужны. Нужно просто чтобы выполнился поиск и записался в какую нибудь переменную. Исключения учитывать так же не надо, по типу две строки с одинаковой суммой или строка состоящая из нулей.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.06.2019, 16:48
Ответы с готовыми решениями:

Поиск минимальной суммы в дереве
Здравствуйте! Есть дерево и необходимо найти минимальную сумму в дереве, т.е. от корня до листа. Помогите, пожалуйста.

Поиск минимальной и средней суммы
как найти минимальную суммарную и минимальную среднюю зарплаты? package zadanie_2; import java.io.IOException; public class...

Нахождение в матрице строки с минимальной суммой
Напишите программу ,которая находит в матрице строку с минимальной суммой. Решаем мы сейчас через двумерные массивы. Заранее благодарен!

3
0 / 0 / 0
Регистрация: 24.12.2017
Сообщений: 45
08.06.2019, 12:39  [ТС]
Добрый день. Возможно это глупый вопрос, но все же как организовать цикл перехода по элементам матрицы? Или же нужно отдельно для каждой строки это все делать? Да и насколько я понял, простым n+1 на следующий элемент не перейти.
Спасибо за ответ
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
08.06.2019, 12:51
Максимильяныч, подсказка: используйте адресацию типа array[bx+si]
2
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8663 / 4500 / 1670
Регистрация: 01.02.2015
Сообщений: 13,921
Записей в блоге: 13
09.06.2019, 18:20
Лучший ответ Сообщение было отмечено Максимильяныч как решение

Решение

Максимильяныч, т.к. строки матрицы расположены непрерывно, то после завершения одной строки начинается следующая строка.
Возьмите адрес начала матрицы в esi, а потом последовательным чтением lodsd и новый элемент считываете и указатель на следующий элемент сдвигаете. Организуете два вложенных цикла и всё вычисляете.

На C/C++ адресная арифметика выглядела бы так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
 
using namespace std;
 
#define _N_ 3
#define _M_ 4
 
int main()
{
 
    int matrix[_N_][_M_]= {{11, 12, 13, 14},{21, 22, 23, 24},{31, 32, -33, -34}};
    int *esi;
    int sum_min;
 
    esi=&matrix[0][0];
    sum_min=0;
    for(int j=0; j<_M_; j++)
        sum_min += *(esi++);
    for(int i=1; i<_N_; i++)
    {
        int sum=0;
        for(int j=0; j<_M_; j++)
            sum += *(esi++);
        sum_min=(sum<sum_min?sum:sum_min);
        cout<< "sum=" << sum << endl;
        cout<< "sum_min=" << sum_min << endl;
    }
    return 0;
}
Если принять, что ebx - сумма текущей строки, а edx - минимальная сумма, то справедливо следующее.

Строка
C++
23
            sum += *(esi++);
на ассемблере выглядит
Assembler
lodsd  ;eax=*(esi++)
add ebx, eax ; ebx += eax
Строки 22-23 можно вынести в подпрограмму - "подсчёт суммы".

А сравнение - назовите min и вызывайте аналог тернарного оператора. Строка 24
C++
24
        sum_min=(sum<sum_min?sum:sum_min);
на ассемблере
Assembler
cmp ebx, edx
cmovl edx, ebx
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.06.2019, 18:20
Помогаю со студенческими работами здесь

Поиск минимальной суммы троек входных значений
Имеется набор данных, состоящий из троек положительных целых чисел. Необходимо выбрать из каждой тройки ровно одно число так, чтобы сумма...

В матрице поменять местами строки с максимальной и минимальной суммой элементов
Помогите плиз. Заданы 2 матрицы действительных чисел размером 5х6 и 8х7. В матрице поменять местами строки с максимальной и минимальной...

В матрице найти строки с минимальной суммой модулей поэлементной разности
В двумерном массиве MxN найти строки с минимальной суммой модулей поэлементной разности. (Должно вводиться рандомно, вручную и через...

В матрице найти строки с максимальной и минимальной суммой положительных элементов. Как упростить?
P1 := Low(Integer); // Левая граница значений Integer равная -2147483648 P2 := High(Integer); // Правая граница значений Integer...

Поиск минимальной строки
Программа ищет строку с минимальным числом и построчно вычитает ее из остальных строк матрицы #include &lt;stdio.h&gt; #include...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru