Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Ivashka_alkashk
0 / 0 / 0
Регистрация: 19.04.2016
Сообщений: 5
#1

Обработка целочисленного массива (поиск минимума, удаление элемента и т.д.)

20.04.2016, 19:47. Просмотров 469. Ответов 5
Метки нет (Все метки)

Помогите кто может, работа с массивами
1) найти минимальный нечетный элемент;
2) удалить все такие элементы;
3) подсчитать количество повторяющихся элементов массива.
4) найти среднее арифметическое нечетных элементов;
5) удалить элемент, наиболее удаленный от среднего арифметического;
6) найти максимальный неповторяющийся элемент.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2016, 19:47
Ответы с готовыми решениями:

Обработка массива: поиск минимума, сортировка
Дано такое условие: Если минимальный элемент вектора является последним ...

Обработка двумерного массива (матрицы): поиск минимума из положительных значений, новая матрица по условию
День добрый. Дано такое условие: Получить новую матрицу путем умножения всех...

Обработка целочисленного массива.
Создать массив из 10 слов. Образовать из него два массива старших и младших...

Обработка целочисленного массива.
Данный целочисленный массив А размера 10. Вывести номер первого и последнего из...

Обработка целочисленного массива.
1. Задать в программе массив из 5 элементов. 2. Последовательно заполнить...

5
R71MT
3213 / 1274 / 284
Регистрация: 29.07.2014
Сообщений: 2,295
Записей в блоге: 5
21.04.2016, 00:13 #2
..м-да, задал-же ты задачку (
0
Mikl___
Автор FAQ
11731 / 6043 / 543
Регистрация: 11.11.2010
Сообщений: 11,027
21.04.2016, 04:36 #3
Ivashka_alkashk,
показывай свои попытки решения, тогда:
  1. помощь придет быстрее
  2. будет соответствовать твоему уровню
  3. и главное - тебя не спалят на защите
Апострофф)
0
Ivashka_alkashk
0 / 0 / 0
Регистрация: 19.04.2016
Сообщений: 5
21.04.2016, 11:26  [ТС] #4
вот по первому что то пробовал
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
include 'emu8086.inc'
data segment
    mas dw 10 DUP(?) 
    razmernost dw 5                      
ends
        stack segment
        dw   128  dup(0)
ends
code segment
start:   mov ax, data
    mov ds, ax
    mov es, ax
;___________Vvod___________   
xor ax, ax
xor si, si
xor cx,cx 
mov ax,0    
        mov cx, razmernost 
               
vvod2:  push cx;koli4estvo prohodov rovno razmernosti 
            CALL   pthis
            Db  13, 10, 'el ', 0 
            CALL   print_num;vivod nomera elementa 
     Print ' : '
            call SCAN_NUM;vvod elementa           
            mov mas[si], cx;vvod elementa v massiv      
            add si,2;perehod k sledyes4emy elementy      
            inc ax ;yvele4enie nomera elementa
            pop cx
            loop vvod2                                                       
call pthis 
      db 13,10, ' Massiv: ', 0      
;________Vivod________________________________________________________________ 
 
xor si, si 
mov cx, razmernost      ;koli4estvo prohodov rovno razmernosti
vivod1:mov ax, mas[si]  ;zanosim v ax element massiva
      add si, 2         ;perehodim k sledyes4emy elementy massiva  
      CALL   print_num; vivodim element massiva  
      Print ' '
      loop vivod1    
 
;______________________Maximum____________________________________________  
    xor ax,ax                                                               
    mov cx,razmernost
    dec cx
    xor si,si 
    mov cl,2
    mov ax,mas[si]
   
    cmp ax,0
    js max3
     idiv cl
    cmp dx,0
    jz max3
    neg ax
max3:     inc si  
        inc si
maxm:   mov bx,mas[si]
    cmp bx,0
    jns MAXMAX
    js max1
    neg bx       
max1:   cmp ax,bx
        jg MAXMAX
        mov ax,bx
        mov dx,si
        mov di,si 
MAXMAX: inc si
     inc si
     loop maxm     
 
call pthis   
            db 13,10, 'Max: ', 0  
call print_num  
       
mov ax,dx
ror ax,1
inc ax
call pthis  
            db 13,10, 'Pos max: ', 0 
call print_num      
 
;_________________Konec_______________________________                 
                      
                      
DEFINE_SCAN_NUM
DEFINE_PRINT_STRING
DEFINE_PRINT_NUM
DEFINE_PRINT_NUM_UNS  
DEFINE_PTHIS
DEFINE_clear_screen 
ends
ends start
ends code
0
R71MT
3213 / 1274 / 284
Регистрация: 29.07.2014
Сообщений: 2,295
Записей в блоге: 5
21.04.2016, 20:01 #5
Ivashka_alkashk, вот первое что в голову взбрело..
Бери из него фрагменты и затачивай под-себя:
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
org 100h
    push  arr decOut start
    ret
    align 16
arr   db  16 dup(0)
 
start:
; заполняем массив случайным образом (max.99d)
    mov   cx,16
    pop   si di
    push  cx di
@@: lodsb
    cmp   al,99
    ja    @b
    stosb
    loop  @b
; выводим его на экран
    mov   dx,m0
    call  message
    pop   si cx
    push  cx si
@@: cbw
    lodsb
    call  decOut
    loop  @b
; 1) найти минимальный нечетный элемент; ------------
    mov   dx,m1
    call  message
    pop   si cx
    push  cx si
    cbw
    dec   ah
@@: lodsb
    cmp   ah,al
    jb    @1
    test  al,1
    jz    @1
    xchg  ah,al
@1: loop  @b
    shr   ax,8
    call  decOut
; 2) удалить все нечётные элементы; -----------------
    mov   dx,m2
    call  message
    pop   si cx
    push  cx si
@@: lodsb
    test  al,1
    jnz   @2
    call  decOut
@2: loop  @b
; 4) найти средне/арифметическое нечетных элементов;
    mov   dx,m3
    call  message
    pop   si cx
    xor   ax,ax
    cwd
@@: lodsb
    test  al,1
    jz    @3
    inc   bp
    add   dx,ax
@3: loop  @b
    xchg  ax,dx
    xor   dx,dx
    div   bp
    call  decOut
;------------------------------------
    xor   ax,ax
    int   16h
    ret
 
m0  db  13,10,'  Array: $'
m1  db  13,10,'Odd Min: $'
m2  db  13,10,'Del odd: $'
m3  db  13,10,'Average: $'
 
;ннннннннннннннннннннннннннннннннннннннннннннннннн
message:
    mov   ah,9
    int   21h
ret
decOut:
    aam
    add   ax,3030h
    xchg  ah,al
    int   29h
    shr   ax,8
    int   29h
    mov   al,' '
    int   29h
ret
0
Ivashka_alkashk
0 / 0 / 0
Регистрация: 19.04.2016
Сообщений: 5
22.04.2016, 21:24  [ТС] #6
Спасибо большое
0
22.04.2016, 21:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2016, 21:24

Обработка целочисленного массива: заполнение по формуле, вычисление суммы, изменение элементов по правилу.
Составьте программу, которая обрабатывает целочисленный массив из нескольких...

Удаление элемента массива
Пытаюсь удалить элемент массива сдвигом. Но, выдаёт ошибку в строке mov , ...

Добавление и удаление элемента массива
Есть программа, которая позволяет создавать массив и затем добавлять в него...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru