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

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

12.10.2017, 06:55. Показов 1845. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать процедуру и функцию, которая находит в массиве минимальный по модулю элемент и заменяет им все элементы с нечетными номерами. Assembler
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.10.2017, 06:55
Ответы с готовыми решениями:

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

В одномерном массиве, состоящем из n целых чисел, заменить элементы с четными номерами нулем, а элементы с нечетными номерами - 1.
В одномерном массиве, состоящем из n целых чисел, заменить элементы с четными номерами нулем, а...

В массиве заменить элементы с четными номерами суммой элементов с нечетными номерами
1)В массиве заменить элементы с четными номерами суммой элементов с нечетными номерами. 2)Найти...

Найти минимальный по модулю не нулевой элемент и заменить на него нулевые элементы массива
Длина массива должна быть введена в ручную, границы чисел Найти минимальный по модулю не нулевой...

1
Модератор
Эксперт по электронике
8516 / 4370 / 1648
Регистрация: 01.02.2015
Сообщений: 13,577
Записей в блоге: 9
14.10.2017, 21:59 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
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
@stack  segment para stack
        db      1024 dup(?)
@stack  ends
 
@data   segment
        A       dw      15, -58, 61, 88, -70, -96, 75, -14
        LenA    equ     ($-A)/2
@data   ends
 
@code   segment
        assume  cs:@code, ds:@data, ss:@stack
main    proc
        ;инициализация сегментного регистра данных
        mov     ax,     @data
        mov     ds,     ax
        ;поиск минимального по модулю элемента
        mov     cx,     LenA
        lea     si,     [A]
        call    GetMinAbs
        ;замена на это значение всех элементов с нечётными номерами
        mov     cx,     LenA
        lea     si,     [A]
        mov     ax,     ax
        call    Replace
        ;завершение программы
        mov     ax,     4C00h
        int 21h
main    endp
 
;Функция возвращает минимальный по модулю элемент массива
;на входе:
;  cx    - длина массива
;  ds:si - адрес массива
;на выходе:
;  ax    - минимальный по модулю элемент
GetMinAbs       proc
        push    bx
        push    cx
        push    dx
        push    si
        push    di
 
        mov     dx,     0       ;если элементов нет
        jcxz    @@BreakMin      ;результат (-1) и выйти
 
        mov     ax,     [si]    ;ax:=abs(A[0])
        neg     ax
        jl      $-2
        mov     bx,     ax      ;bx:=abs(A[0])
        mov     dx,     [si]    ;dx:=A[0]
        ;пропускаем первый элемент (с индексом 0)
        dec     cx
        jcxz    @@BreakMin
        add     si,     2
        @@FindMin:
                mov     ax,     [si]    ;ax:=abs(A[i])
                neg     ax
                jl      $-2
 
                cmp     ax,     bx      ;if MinAbs>abs(A[si])
                jae     @@NextMin       ;  then
                mov     bx,     ax      ;    MinAbs:=abs(A[si])
                mov     dx,     [si]    ;    dx:=A[si]
 
        @@NextMin:
                add     si,     2
        loop    @@FindMin
@@BreakMin:
 
        mov     ax,     dx
 
        pop     di
        pop     si
        pop     dx
        pop     cx
        pop     bx
        ret
GetMinAbs       endp
 
;Процедура заменяет элементы с нечётными индексами на заданное число
;на входе:
;  cx    - длина массива
;  ds:si - адрес массива
;  ax    - число, на которое будут заменнены элементы массива
;на выходе:
;  -
Replace         proc
        push    ax
        push    bx
        push    cx
        push    dx
        push    si
        push    di
 
        mov     di,     0
        @@Change:
                test    di,     1
                jz      @@Next
 
                mov     [si],   ax
 
        @@Next:
                add     si,     2
                add     di,     1
        loop    @@Change
 
        pop     di
        pop     si
        pop     dx
        pop     cx
        pop     bx
        pop     ax
        ret
Replace         endp
 
@code   ends
 
        end     main
0
14.10.2017, 21:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.10.2017, 21:59
Помогаю со студенческими работами здесь

Умножить отрицательные элементы столбцов с нечетными номерами на минимальный элемент матрицы
Доброго времени суток,народ;D Помогите пожалуйста решить данную задачу,используя подпрограмму(это...

Найти минимальный элемент из элем массива с нечетными номерами и максимальный элемент элементов с четными
4) Одномерный массив, состоящий из n элементов, заполняется введенными с клавиатуры целыми числами....

В заданном массиве чисел заменить элементы с нечетными номерами на квадраты их номеров
Сформировать одномерный массив с поощью генератора случайных чисел в диапазоне . В заданном массиве...

В массиве вещественных чисел элементы с нечетными номерами заменить их квадратным корнем
Дан массив вещественных чисел.Все элементы с нечетными номерами заменить на их квадратный...


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

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