Задача по матрицам на Ассемблер

Тема в разделе "C/C++/C#", создана пользователем Annet, 4 янв 2011.

  1. Annet

    Annet Гость

    Пожалуйста,помогите решить задачу .
    Ввести размерность m x n и элементы матрицы( слова, положительные числа). При вводе элементов учесть следующее требование: максимальный элемент в каждом из столбцов с нечетными номерами присутствует в одном экземпляре.
    Вывести на экран исходную матрицу. Заменить максимальные элементы в нечетных столбцах на нули. Вывести на экран преобразованную матрицу.
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Annetа
    Ну давай.
     
  3. Rififi

    Rififi Гость

    Annetа

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

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    а чего тема в с++ тогда? %)
     
  5. Annet

    Annet Гость

    извиняюсь,за то что не туда тему кинула.нет ничего не путала.помогите плиз.есть подобная задача но даж по ней как то не особо удается разобраться((.
     
  6. Annet

    Annet Гость

    могу кинуть код подобной,задачи. помогите плиз.
     
  7. Annet

    Annet Гость

    вот в этой части я предполагаю должна быть ошибка, но никак не найду.
    nechet_stlb:


    mov bx,0 ;начальный номер строки
    push cx ;начало внешнего цикла - сохранение счетчика
    test ds:mas[bx][si],1b ;тестируем 0 бит (четность столбца)
    jnz nech ;если не четный - переход на след. столбец


    mov cx,9 ; цикл повторится это количество раз(макс. кол-во строк)
    stroka3:
    mov dl,max ;копируем макс. эл. в dl
    cmp ds:mas[bx][si],dl ;сравниваем макс. элемент со следующим
    jbe x ;если меньше или равно - переход на метку
    ;иначе
    mov al,ds:mas[bx][si] ;копируем наибольшее число в max
    mov max,al ;заносим новое значение max
    mov di,si ;сохраняем индекс строки макс. эл. в di

    x:
    inc bx ;переход на следующий эл. в столбце
    loop stroka3

    pop cx ;изъятие значения счетчика внешнего цикла из стека
    mov bx,di
    mov ds:mas[bx][si],0 ;заменяем макс. эл. на нуль

    nech:
    add si,1 ;переход на след. столбец
    loop nechet_stlb
     
  8. RiCrO

    RiCrO Гость

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

Поделиться этой страницей