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

Найти сколько раз в массиве встречается минимальный элемент

19.01.2016, 22:28. Показов 1446. Ответов 5
Метки нет (Все метки)

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
Dseg segment para publicdata’ 
mas db -1,3,5,2,-7 
n dw 5 
min db ? 
Dseg ends 
Sseg segment para stack 'stack' 
dw 30 dup(0) 
Sseg ends 
Cseg segment para public 'code' 
;основная программа 
osn proc near 
assume cs:cseg,ds:dseg,ss:sseg 
mov ax,dseg 
mov ds,ax 
mov cx,n ;cx=n 
mov al, mas ;al=mas[0] 
mov di,0 ;di=0 
start: cmp al, mas[di] 
jle met 
mov al, mas[di] 
met: inc di
loop start 
mov min, al 
mov ax, 4c00h 
int 21h 
osn endp 
cseg ends 
end osn
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.01.2016, 22:28
Ответы с готовыми решениями:

Сколько раз в массиве повторяется максимальный элемент
Здравствуйте, не могли бы помочь с программой, не идет и все.. Program abczdarova Uses crt;...

В массиве найти минимальный и максимальный элемент
Здравствуйте! На ассемблере последний раз писал что-то ещё на 1-м курсе универа и всё забыл за...

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

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

5
1375 / 519 / 72
Регистрация: 21.07.2015
Сообщений: 1,304
19.01.2016, 22:34 2
Цитата Сообщение от Наташок Посмотреть сообщение
Получилось найти только мин,а его количество нет(
Сделай еще один проход по циклу и подсчитай количество элементов равных мин. Проблем не вижу.
0
0 / 0 / 1
Регистрация: 05.10.2010
Сообщений: 32
19.01.2016, 22:43  [ТС] 3
я что то не так делаю,явно
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
Dseg segment para publicdata’
mas db -1,3,5,2,-7
n dw 5
min db ?
kol db 0
Dseg ends
Sseg segment para stack 'stack'
 dw 30 dup(0)
Sseg ends
Cseg segment para public 'code'
;основная программа
osn proc near
 assume cs:cseg,ds:dseg,ss:sseg
 mov ax,dseg
 mov ds,ax
mov cx,n ;cx=n
 mov al, mas ;al=mas[0]
 mov di,0 ;di=0
start: cmp al, mas[di]
 jle met
 mov al, mas[di]
met: inc di 
loop start
 mov min, al
start: cmp al, mas[di]
 jn met1
 inc kol
met: inc di 
loop start
mov al,kol
 mov ax, 4c00h
 int 21h
osn endp
cseg ends
end osn
0
1375 / 519 / 72
Регистрация: 21.07.2015
Сообщений: 1,304
19.01.2016, 23:03 4
Цитата Сообщение от Наташок Посмотреть сообщение
я что то не так делаю,явно
Как минимум названия меток дублируются.

Добавлено через 15 минут
ну и перед 2м циклом надо di обнулить опять.
0
0 / 0 / 1
Регистрация: 05.10.2010
Сообщений: 32
19.01.2016, 23:11  [ТС] 5
вроде исправил,все равно неправильно
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
Dseg segment para public 'data' 
mas db -1,3,5,2,-7
n dw 5
min db ?
kol db 0
Dseg ends
Sseg segment para stack 'stack'
 dw 30 dup(0)
Sseg ends
Cseg segment para public 'code'
;основная программа
osn proc near
 assume cs:cseg,ds:dseg,ss:sseg
 mov ax,dseg
 mov ds,ax
mov cx,n ;cx=n
 mov al, mas ;al=mas[0]
 mov di,0 ;di=0
start: cmp al, mas[di]
 jle met
 mov al, mas[di]
met: inc di
loop start
 mov min, al
mov di,0 ;di=0
start1: cmp al, mas[di]
 je met1
 inc kol
met1: inc di
mov kol,al 
loop start1
mov kol,al
 mov ax, 4c00h
 int 21h
osn endp
cseg ends
end osn
[/ASM][/ASM]
0
Эксперт Hardware
Эксперт Hardware
6103 / 2347 / 390
Регистрация: 29.07.2014
Сообщений: 3,108
Записей в блоге: 4
20.01.2016, 01:13 6
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
ORG 100h
JMP start
 
mess0  DB  13,10,'COUNT MIN: $'
array  DB  1,3,4,50,18,1,200,103,5,1,1,67,33
size   =   $ - array
min    DB  0FFh          ; минимальный элемент
 
start:
;================= ПОИСК МИНИМАЛЬНОГО ЗНАЧЕНИЯ ==================//
   MOV   SI,array        ; адрес массива
   MOV   CX,size         ; его длина
findMin:                 ;
   LODSB                 ; берём от туда байт
   CMP   AL,[min]        ;
   JAE   next            ; больше минимального?
   MOV   [min],AL        ; нет - запоминаем его
next:                    ;
   LOOP  findMin         ; сл.байт...
 
;================= СЧЁТЧИК НАЙДЕНЫХ МИН.ЭЛЕМЕНТОВ ===============//   
   MOV   SI,array        ;
   MOV   CX,size         ;
   MOV   BL,[min]        ; искомый элемент
   XOR   DX,DX           ; счётчик сбрасываем в нуль
count:                   ;
   LODSB                 ; читаем байт
   CMP   AL,BL           ; наш клиент?
   JNZ   fuck            ; нет - в топку его
   INC   DL              ; да - увеличиваем счётчик
fuck:                    ;
   LOOP  count           ; сл.байт
   PUSH  DX              ; сохраняем выхлоп!
 
print:
   MOV   AH,9            ;
   MOV   DX,mess0        ;
   INT   21h             ;
   POP   AX              ;
   ADD   AL,30h          ; и на экран его..
   INT   29h             ;
 
exit:                    ;
   XOR   AX,AX           ;
   INT   16h             ;
   INT   20h             ;
0
20.01.2016, 01:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.01.2016, 01:13
Помогаю со студенческими работами здесь

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

Ввести массив с клавиатуры. В полученном массиве найти минимальный элемент. Вывести его на экран
Просьба помочь решить задачу на MS Dos. Ввести массив с клавиатуры. В полученном массиве найти...

Ввести массив с клавиатуры. В полученном массиве найти минимальный элемент. Вывести его на экран
Помогите решить данную задачу для решения в программе MS Dos: Ввести массив с клавиатуры. В...

Подсчитать, сколько раз в строке встречается символы x, y, z
В памяти дана строка символов находящаяся по адресу A1 и длиной N. Подсчитать сколько раз...


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

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