0 / 0 / 0
Регистрация: 18.04.2016
Сообщений: 6
1
FASM

Отсортировать массив методом вставки, вывести количество нечетных элементов

01.06.2016, 20:12. Показов 2261. Ответов 3
Метки нет (Все метки)

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
;== FASM code =======================
org 100h
jmp start
 
mes0   db   13,10,'ARRAY.....:  $'
mes1   db   13,10,'SORTED....:  $'
mes2   db   13,10,'MIN.UNEVEN:  $'
buff   db   16 dup(0)
fName  db   'array.txt',0
 
start:
;------ Заполняем буфер данными -------------------------------------
       mov   dx,mes0             ;
       call  message             ;
       mov   cx,16               ; всего элементов
       mov   di,buff             ;
       mov   ah,1                ;
@1:    int   21h                 ;
       stosb                     ; запись в ES:DI
       loop  @1                  ;
 
;------ Cортировка прямым выбором -----------------------------------
       mov   dx,mes1             ;
       call  message             ;
       mov   di,buff             ; DI = указатель на массив
       mov   cx,16               ; CX = его длина
a0:    mov   bx,buff+16          ; BX = макс.индекс в проходе
       mov   al,byte[di]         ; AL = значение первого элемента
a1:    dec   bx                  ; уменьшаем индекс..
       cmp   al,byte[bx]         ; сравниваем первый с последним
       jbe   a2                  ; пропускаем, если первый меньше последнего
       xchg  al,byte[bx]         ; иначе: меняем их местами
a2:    cmp   bx,di               ;
       jnz   a1                  ; проход закончился?
       stosb                     ; перезапись элемента
       loop  a0                  ; мотаем СХ-раз..
 
;------ Выводим отсортированный массив на экран ---------------------
       mov   cx,16               ; всего
       mov   si,buff             ; адрес
print: lodsb                     ; читаем из SI
       int   29h                 ; выводим на консоль
       loop  print               ; на повтор..
 
;------ Выводим на экран наименьший/нечётный элемент ----------------
       mov   dx,mes2             ;
       call  message             ;
       mov   cx,16               ;
       mov   si,buff             ;
@5:    lodsb                     ; читаем байт
       test  al,1                ; у нечётных мл.бит = 1
       jnz   stop                ; закончить, если не нуль
       loop  @5                  ; сл.элемент..
stop:  int   29h                 ; выводим найденый эл.на экран
 
;------ Запись массива в файл ---------------------------------------
       mov   ah,3Ch              ; создать файл!
       mov   cx,20h              ; атрибут
       mov   dx,fName            ;
       int   21h                 ;
       xchg  bx,ax               ; отправляем дескриптор в BX
       mov   ah,40h              ; запись в файл!
       mov   cx,16               ; кол-во байт для записи
       mov   dx,buff             ; буфер с данными
       int   21h                 ;
       mov   ah,3Eh              ; закрыть файл!
       int   21h                 ;
 
exit:  xor   ax,ax               ; выход..
       int   16h                 ;
       int   20h                 ;
 
;ннннннннннннннннн П Р О Ц Е Д У Р Ы нннннннннннннннннннннннннннннннннннн
;------------------------------------------------------------------------
message:                      ;
      mov   ah,9              ; вывод строки на экран
      int   21h               ;
ret
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.06.2016, 20:12
Ответы с готовыми решениями:

Отсортировать символьный массив методом вставки в порядке убывания. Вычислить сумму кодов нечетных элементов
Дан массив латинских букв А . Отсортировать их методом вставки в порядке убывания. Вычислить сумму...

Отсортировать элементы матрицы размера M×N нечетных столбцов методом вставки
Нужна помощь, вот задание: Дана матрица размера M×N. Отсортировать элементы нечетных столбцов...

Отсортировать массив методом выбора, методом вставки и методом Хоара
Задан двумерный массив.Получить одномерный массив, состоящий из минимальных элементов строк...

Отсортировать одномерный массив символов методом вставки или методом прямого выбора
Отсортировать одномерный массив случайных букв английского алфавита методом вставки или методом...

3
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
02.06.2016, 06:55 2
Vasil25, так же комменты есть, что не понятно то, прогу запускали ?
0
0 / 0 / 0
Регистрация: 18.04.2016
Сообщений: 6
02.06.2016, 21:47  [ТС] 3
здесь сортировка сделана вибором, а нужно сделать вставками и вместо вивода наименьшего елемента нужно вивести количество нечетних елементов.... но я не знаю как ето сделать
0
0 / 0 / 0
Регистрация: 18.04.2016
Сообщений: 6
03.06.2016, 11:18  [ТС] 4
В задании нужно отсортировать массив методом вставки, количество элементов 15 элементы массива должны вводиться с клавиатуры на экран вывести количество нечетных элементов. массив должен записываться в файл

Добавлено через 39 секунд
помогите кому не трудно
0
03.06.2016, 11:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.06.2016, 11:18
Помогаю со студенческими работами здесь

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

Отсортировать массив по убыванию методом вставки
Короче т.к с установкой делфи на ноут траблы,то пришлось писать в текстовике,прошу проверить на...

Отсортировать одномерный массив методом вставки
отсортировать одномерный массив случайных символов по алфавиту методом вставки. Помогите...

Процедуры и функции. Дан массив латинских букв. Отсортировать методом «пузырька». Вычислить сумму кодов нечетных элементов
Помогите сделать блок-схему к программе! program Massiv; uses crt; const size=100; var a:...


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

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

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