0 / 0 / 0
Регистрация: 11.05.2018
Сообщений: 2
1
emu8086

Найти сумму всех отрицательных элементов двухмерного массива, максимальный положительный элемент и его местоположение

01.06.2018, 01:21. Показов 1724. Ответов 1

Проблема, нужно переписать программу чтобы она работала для двухбайтовых элементов массива, ниже листинг, заранее спасибо
Что она должна делать: Находить сумму всех отрицательных элементов двухмерного массива, а среди положительных находить максимальный и указывать его местоположение
Для однобайтовых и двухбайтовых элементов массива
Assembler
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
cseg segment
    assume cs:cseg,ds:cseg,es:cseg
    org 0
start:    jmp beg
mas1 DB 7,-2,4,5,-8
     db 2,4,-1,-9,2
     db 7,8,9,-4,-2
     db 4,5,6, 2,-1
     lenx dw 5               
     leny dw 4
         
sum     dw 0
            
max    dw 0 
sign    db  '+'                    
mess1 db "Sum of negative is $"
mess2 db "Max of positive is $"
 
beg: mov ax,cs
             
     mov ds,ax
     mov es,ax
     cld       
     mov ax,lenx
     mov cx,leny
     mul cx                     
 
     mov cx,ax                
     mov max,0
     mov sum,0
 
     mov si,offset mas1; начало данных
m1:  mov ah,0
     lodsb                      
     cbw                       
     cmp ax,0
     jl  m2
     call findmax                 
     jmp cont
m2:  call findsum               
cont:loop m1            
     mov dx,offset mess1             
     mov ah,9
     int 21h
     mov ax,sum
     call printval 
     mov dx,offset mess2                
     mov ah,9
     int 21h
     mov ax,max
     call printval
     mov ax,4C00h                    
     int 21h        
findsum:add sum,ax 
        ret
findmax:
     cmp ax,max
     jle neon
     mov max,ax
neon:
     ret      
 
printval: mov sign,'+' 
    cmp ax,0
    jge  p1  
    mov sign,'-'     
    neg ax          
    mov cx,0    
p1:     mov dx,0
    mov bx,10
    inc cx            
    div bx          
    push dx          
    cmp ax,0         
    jnz p1
 
    mov dl,sign     
    mov ah,2
    int 21h 
p2:    pop dx               
add dl,'0'     
    mov ah,2
    int 21h
    loop p2    
 
    mov dl,13
    int 21h
        mov dl,10
        int 21h          ret
        cseg ends
    end start
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.06.2018, 01:21
Ответы с готовыми решениями:

Найти сумму всех четных элементов массива, максимальный элемент и его номер, количество элементов, кратных трем
Дан одномерный масив чисел. Найти сумму всех четных элементов массива, максимальный элемент и...

Вычислить сумму отрицательных элементов массива.Найти максимальный элемент.
Создать массив с элементами a, где i-номер варианта ( номер варианта 9 ) , k,n=1,2,3,4. Вывести его...

Найти максимальный элемент из элементов массива, кратных числу 3, и сумму отрицательных элементов
1. Найти максимальный элемент из элементов массива, кратных числу 3, и сумму отрицательных...

Вычислить сумму отрицательных элементов массива и найти максимальный по модулю элемент
В одномерном массиве с n действительных элементов вычислить сумму: отрицательное элементов массива...

1
Модератор
Эксперт по электронике
8291 / 4194 / 1597
Регистрация: 01.02.2015
Сообщений: 13,038
Записей в блоге: 4
01.06.2018, 06:24 2
Assembler
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
cseg segment
    assume cs:cseg,ds:cseg,es:cseg
    org 0
start:    jmp beg
mas1 dw 7,-2,4,5,-8
     dw 2,4,-1,-9,2
     dw 7,8,9,-4,-2
     dw 4,5,6, 2,-1
     lenx dw 5
     leny dw 4
 
sum     dw 0
 
max    dw 0
sign    db  '+'
mess1 db "Sum of negative is $"
mess2 db "Max of positive is $"
 
beg: mov ax,cs
 
     mov ds,ax
     mov es,ax
     cld
     mov ax,lenx
     mov cx,leny
     mul cx
     mov cx,ax
     mov max,0
     mov sum,0
 
     mov si,offset mas1; начало данных
m1:
     lodsw
     or ax, ax
     jns m2
     add [sum], ax
     jmp next
m2:
     cmp ax, [max]
     jle next
     mov [max], ax
next:
     loop m1
 
     mov dx,offset mess1
     mov ah,9
     int 21h
     mov ax,sum
     call printval
     mov dx,offset mess2
     mov ah,9
     int 21h
     mov ax,max
     call printval
     mov ax,4C00h
     int 21h
 
printval:
        push    bx
        mov     bx,     10
        xor     cx,     cx      ;символов в модуле числа
        or      ax,     ax
        jns     @@div
                neg     ax
                push    ax
                mov     ah,     02h
                mov     dl,     '-'
                int     21h
                pop     ax
        @@div:
                xor     dx,     dx
                div     bx
                push    dx
                inc     cx      ;количество цифр в числе
                or      ax,     ax
        jnz     @@div
        mov     ah,     02h
        @@store:
                pop     dx
                add     dl,     '0'
                int     21h
        loop    @@store
        pop     bx
    ret
 
        cseg ends
    end start
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.06.2018, 06:24
Помогаю со студенческими работами здесь

Вычислить сумму отрицательных элементов массива и найти максимальный по модулю элемент
В одномерном массиве, с n действительных элементов, вычислить сумму: отрицательное элементов...

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

Найти минимальный элемент среди отрицательных чисел массива и его местоположение в массиве
Доброго времени суток знатоки! Помогите решить задачу: Дан массив Х(N, M). Найти минимальный...

Дан массив. Найти максимальный элемент среди положительных чисел массива и его местоположение
Дан массив Х(N, M). Найти максимальный элемент среди положительных чисел массива и его...

Найти минимальный, максимальный элемент массива и сумму его элементов
напишите код программ

Найти минимальный и максимальный элементы двухмерного массива и указать их местоположение
Найти минимальный и максимальный элементы двухмерного массива и указать их местоположение: а)...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru