Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2010, 12:16   #1
Valerii
Новичок
Джуниор
 
Регистрация: 26.01.2010
Сообщений: 2
По умолчанию С теорией я разобрался незнаю как реализовать

Условие: Номер 4


Задача 4. Имеется N человек и целые числа А1, ..., AN; человека i необходимо познакомить с Аi людьми. Можно ли это сделать?

Решение задачи: Номер 4


Задачa 4. Алгоритм состоит в следующем. На каждом шаге находится человек Х, имеющий наибольшее число Р нереализованных знакомств. Затем находится Р людей, с которыми человек Х собирается реализовать знакомства. Нетрудно понять, что это должны быть люди опять же с наибольшим числом нереализованных знакомств, так как такая стратегия обеспечивает на каждом шаге максимально возможное количество людей с нереализованными еще знакомствами. Человек Х реализует по одному знакомству с каждым из Р выбранных людей и из дальнейшего процесса исключается. При этом число нереализованных знакомств у каждого из Р людей уменьшается на 1. Процесс продолжается до тех пор, пока все знакомства не будут реализованы, или найдется такой человек Х, которому не хватит людей для реализации его нереализованных знакомств. В последнем случае задача не имеет решения. Для поиска человека Х и Р людей для реализации знакомств достаточно каждый раз упорядочивать значения нереализованных знакомств в порядке невозрастания, сохраняя при этом информацию о "имени" (исходном номере) человека.
Valerii вне форума Ответить с цитированием
Старый 26.01.2010, 14:42   #2
Valerii
Новичок
Джуниор
 
Регистрация: 26.01.2010
Сообщений: 2
По умолчанию

немного помогли немного разобрался! так надо исправить ошибки и есть операции которые задаються через ссылки а самих программ нет помогите отредактировать

include maclib1.asm
begining ,.486,256
.data
arr1 dw 10 dup(0,1,2,3,4,5,6,7,8,9,10)
arr2 dw 10 dup(1,2,3,2,1,2,3,2,3,1,1)
N dw 4
mess1 db 'No!$'
.code
sort proc
push ax
push bx
push cx
push dx
xor cx,cx
m0_:

mov bx,cx
m1_: inc bx
cmp bx,[N]
jge m0e

mov si,cx
shl si,1 ;i
mov di,bx
shl di,1 ;j
mov ax,[arr2+si]
cmp ax,[arr2+di]
jge m1e

mov dx,ax ;t1=Arr2[i];
mov ax,[arr2+di]
mov [arr2+si],ax ;Arr2[i]=Arr2[j];
mov [arr2+di],dx ;Arr2[j]=t1;

mov dx,[arr1+si] ;t2=Arr1[i];
mov ax,[arr1+di]
mov [arr1+si],ax ;Arr1[i]=Arr2[j];
mov [arr1+di],dx

m1e: jmp m1_

m0e:
inc cx
mov ax,[N]
dec ax
cmp cx,ax
jl m0_
pop dx
pop cx
pop bx
pop ax
ret
endp
start:
set_video
use_memory
xor dx,dx
set_cursor
m1:
call sort
mov ax,[N]
dec ax
cmp [arr2],ax
jg break
cmp [arr2],0
je break
mov bx,1 ;j
mov cx,[arr2] ;k
m2:
cmp bx,cx
jg m1
mov si,bx
shl si,1
cmp [arr2+si],0
je break
dec [arr2]
dec [arr2+si]

xor dl,dl
inc dh
mov ax,[arr1]
inc ax
set_cursor dh,dl
print_number_d
add dl,10
set_cursor dh,dl
mov ax,[arr1+si]
inc ax
print_number_d
inc bx
jmp m2

break:
mov cx,[N]
dec cx
m3:
mov si,cx
shl si,1
cmp [arr2+si],0
je m4
clrscr
print_message mess1
m4: loop m3
get_char
vyhod
end start
Valerii вне форума Ответить с цитированием
Старый 26.01.2010, 15:35   #3
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

Вы думаете в вашей программе с макросами и без комментов кто-нить будет разбираться
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Незнаю как написать программу на питоне "D.K" Помощь студентам 0 07.01.2010 21:45
Помогите плиз, курсак. А как сделать незнаю chilinik Помощь студентам 3 27.06.2008 07:53
помогите с теорией в паскале Vitas1234 Помощь студентам 1 25.05.2008 17:55