Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Процедуры 
:(
    Опции темы
KoLiZeI
Дата 25.5.2007, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 6.4.2007
Где: г. Саратов

Репутация: нет
Всего: нет



Помогите пожалуйста с описанием процедуры: нужно описать программу, которая вводит два массива из 100 знаковых чисел-слов в каждом и определяет, составлены ли эти массивы из одних и тех же чисел (без
учета порядка их следования, но с учетом повторяющихся чисел). (Рекоменда-
ция: упорядочить оба массива, а затем сравнить их.). Подскажите пожалуйста как делать  smile  
PM MAIL WWW ICQ Skype   Вверх
KoLiZeI
Дата 26.5.2007, 02:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 6.4.2007
Где: г. Саратов

Репутация: нет
Всего: нет



Хм... попробовал написать сам и вот что получилось, конечно немного коряво, и упорядочивание происходит только для 1 массива, но если кому надо будет для 2х там доделать пару минут, возможно можно сделать и проще ))
Код

masm
.model small

.stack 100h

.data
string_x DB 100 DUP('163254$') ;будем упорядочивать только этот массив
string_y DB 100 DUP('123456$')
s db ' ',0ah,0dh,'$'

exit_ok db 'Alles OK $' 
exit_f db 'massiv`s sind nicht gleich $'
; ---------------------------------------------------
.code
    assume ds:@data, es:@data
main:
    mov ax,@data
    mov ds,ax
    mov es,ax
    CLD
    call porjadok_x    
    mov ah,09h
    lea dx,string_x
    int 21h
    lea dx,s  ;переносимя на новую строку
    int 21h
    call sravnenie
    mov ah,4Ch  
    int 21h
        
        proc porjadok_x  ; процедура упорядочивания
        lea dx,string_x
        
        mov si,dx
        Begin:
        mov al,[si] ; получаем 2 ближайших элемента в ал и ан
        mov ah,[si+1]
        cmp ah,'$'  ;сравниваем  второй с коцном строки, если нет то продолжаем
        je @endp
        cmp al,ah
            jg @xchg
            inc si
            jmp Begin
        @xchg:    ; меняем местами два ближайших элемента
            mov [si+1],al
            mov [si],ah
            mov si,0
            jmp Begin

        @endp: ret
        endp
            
            proc sravnenie ; сравниваем подряд элементы, если все равны то все нормально
        lea dx,string_x
        mov si,dx
        lea dx,string_y
        mov di,dx
        Begin2:
        mov al,[si]
        mov ah,[di]
        cmp al,ah
        je @next
        mov ah,09h
        lea dx,exit_f
        int 21h
        jmp @45
        @next:    
            inc si
            inc di
            mov ah,[si]
            cmp ah,'$'
            jne Begin2
            mov ah,09h
            lea dx,exit_ok
            int 21h
        @45: ret
        endp
end main  

PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0593 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.