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

Найти среднее арифметическое массива, введенного с клавиатуры

02.06.2018, 19:34. Показов 842. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Что нужно дописать в этом коде для вычисления и вывода среднего арифметического введенного массива? Есть ввод массива вручную с клавиатуры и вывод его на экран и нахождение максимального элемента данного массива и вывод на экран.

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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
.model small
.stack 100h
 
.data
rows        dw ?
cols        dw ?
array       db 10*10 dup (?)    ;rows * cols
crlf        db 13,10,'$'
buf     db 3,0,3 dup ('$'),'$'
msgPress    db 13,10,'Press any key...$'
msgRows     db 'Input count of rows (<=10): $'
msgCols     db 'Input count of columns (<=10): $'
msgEl       db 13,10,'Input elements: ',13,10,'$'
msgMax      db 13,10,'MAX = $'
msgCountMax db 13,10,'Count of MAX = $'
 
.code
;macros vyvoda na ekran tekstovogo soobshenia
;str - stroka dla vyvoda
write macro  str
    push    ax
    push    dx
 
    lea     dx,str  ;adres stroki dla vyvoda
    mov     ah,09h  ;09h funkcia
    int     21h
 
    pop     dx
    pop     ax
endm
 
;makros vyvoda chisla na ekran
;vhod: AX - chislo dla vyvoda na ekran
putdigit macro
    local lput1
    local lput2
    local exx
 
    push    ax
    push    cx
    push    -1  ;sohranenie priznaka konca chisla
    mov     cx,10   ;delenie na 10
lput1:  xor     dx,dx   ; ochistka registra dx
    mov     ah,0                   
    div     cl  ; delenie 
    mov     dl,ah   
    push    dx  ;Sohranenie cifru
    cmp al,0    ; ostalsa 0? 
    jne lput1   ;net -> prodolzhenie
    mov ah,2h
lput2:  pop dx  ;vosstanovim cifru
    cmp dx,-1   ;dostignuli konca -> vuhod 
    je  exx
    add dl,'0'  ;Preobrazuem chislo v cifru
    int 21h ;vivedenie cifru na ekran
    jmp lput2   ;prodolzhenie
exx:
    mov dl,' ' 
    int 21h
    pop cx
    pop     ax
endm
 
;macros vvoda chisla s klaviatury
;vyhod: AX - vvedennoe chislo
indigit macro
    local   lin
    push    bx
    push    cx
    push    dx
 
    mov     ah,0Ah  ;buferezirovannyi vvod
    lea     dx,buf
    int     21h
 
    xor     ax,ax
    xor     cx,cx
    ;razbor kolichestva cifr vvedennogo chisla
    mov     cl,[buf+1]  ;kolichestvo realno vvedennyh simvolov
    xor     di,di
lin:
    mov     dl,10
    mul     dl
    mov     bl,[buf+di+2]
    sub     bl,30h  ;ASCII -> chislo
    add     al,bl
    inc     di
    loop    lin
 
    pop dx  
    pop     cx
    pop     bx
endm
 
start:
    mov     ax,@data
    mov     ds,ax
 
    write msgRows
    indigit
    mov rows,ax
    write crlf  ;prinuditelno perevodim kursor na sled. stroku
 
    write msgCols
    indigit
    mov cols,ax
    write crlf
 
    write msgEl
;vvod massiva
    lea     bx,array
    mov     cx,rows
in1:    ;cikl po strokam
    push    cx
    mov     cx,cols
    mov     si,0
in2:    ;cikl po kolonkam
    indigit ;makros vvoda chisla
    mov     [bx][si],al
    inc     si
 
    write crlf  
    loop    in2
 
    add     bx,cols
    pop     cx
    loop    in1
 
;vyvod massiva na ekran
    lea     bx,array
    mov     cx,rows
out1:   ;cikl po strokam
    push    cx
    mov     cx,cols
    mov     si,0
 
    write crlf  
out2:   ;cikl po kolonkam
    xor     ax,ax
    mov al,[bx][si] ;vivodimoe chislo v registre AL
    putdigit    ;makros vuvoda
    inc     si
    loop    out2
 
    add     bx,cols
    pop     cx
    loop    out1
 
;poisk maximalnogo elementa v massive
    lea     bx,array
    xor     ax,ax
    mov     al,[bx][0]
    mov     cx,rows
r1: ;cikl po strokam
    push    cx
    mov     cx,cols
    mov     si,0
r2: ;cikl po kolonkam
    cmp     al,[bx][si]
    ja  lmax
    mov     al,[bx][si]
lmax:
    add     si,1
    loop    r2
 
    add     bx,cols
    pop     cx
    loop    r1
;Res: AL - max element
    
    write msgMax
    putdigit
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.06.2018, 19:34
Ответы с готовыми решениями:

Среднее арифметическое ненулевых элементов введенного с клавиатуры массива
Помогите 2) Написать программу, которая вычисляет среднее арифметическое ненулевых элементов...

Вычислить среднее арифметическое ненулевых элементов введенного с клавиатуры массива
Написать программу, которая вычисляет среднее арифмети¬ческое ненулевых элементов введенного с...

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

Среднее арифметическое ненулевых элементов введенного с клавиатуры массива целых чисел
Здравствуйте! Нужно написать программу которая вычисляет среднее арифметическое не 0-вых элементов...

2
Модератор
Эксперт по электронике
8477 / 4335 / 1643
Регистрация: 01.02.2015
Сообщений: 13,462
Записей в блоге: 8
02.06.2018, 20:20 2
У вас в условии массив
Цитата Сообщение от Ugolyok Посмотреть сообщение
вычисления и вывода среднего арифметического введенного массива
а в коде - матрица. Уже одно это сбивает с толку.
0
Прощай, Мир!
1672 / 830 / 253
Регистрация: 26.05.2012
Сообщений: 3,056
03.06.2018, 01:02 3
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
а в коде - матрица
любая матрица в памяти представлена линейным массивом..
0
03.06.2018, 01:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.06.2018, 01:02
Помогаю со студенческими работами здесь

Вычислть среднее арифметическое ненулевых элементов введенного с клавиатуры массива целых чисел.
Помогите написать программу Написать программу, которая вычисляет среднее арифметическое...

Написать профамму, которая вычисляет среднее арифметическое ненулевых элементов введенного с клавиатуры массива
Помогите написать прог которая вычисляет среднее арефметическое ненулевых элементов массНаписать...

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru