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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2010, 15:45   #1
fallti
 
Регистрация: 10.05.2010
Сообщений: 8
Печаль подсчитать количество точек пересечения

задача звучит так:
задано множество прямых на плоскости (коэффициентами своих уравнений).
подсчитайте количество точек пересечения этих прямых.
прошу помочь идей и кодом, как это сделать
заранее благодарен за помощь
asm под dos
fallti вне форума Ответить с цитированием
Старый 26.06.2010, 16:08   #2
fallti
 
Регистрация: 10.05.2010
Сообщений: 8
По умолчанию

вот код
Код:
.MODEL  Small
.STACK  100h
.DATA
	msg1 DB 'Input count line:','$'
	msg2 DB 10,13,'Input koef K:','$'
	countLine DB 1000 DUP(?)
	koef_K DB 1000 DUP(?)
	count DB 1000 DUP(?)
.CODE
START:
	mov ax, @DATA
	mov ds, ax
	mov es, ax

	;подсказка о вводе строки
	mov ah,09h
	lea dx, msg1
	INT 21h
	;ввод строки 
	mov ah,01h
	;lea dx, countLine
	INT 21h
	mov countLine,al
	;------------------
	;подготовка к циклу
	mov di,0
	;ввод коэффициента  к
nn:
	div al
	mov ah,09h
	lea dx, msg2
	INT 21h
	mov ah,01h
	INT 21h
	mov koef_K[di],al
	inc di
	cmp al,0
	je nn
	;----------------
	;нахождение количества точек пересечения
	mov al,countLine
	mov ah,0
	mov si,0
	mov di,1
	mov count,0
rr:
	div countLine
ee:	
	div al
	mov bh,koef_K[di]
	mov bl,0
	sub bl,koef_K[si]
	cmp bx,0
	je next
	inc count
next:
	cmp al,0
	je ee
	cmp countLine,0
	je rr
	mov dl,count
	mov dh,0
	mov ah,02h
	int 21h
	mov ah,4Ch
	INT 21h
END START
fallti вне форума Ответить с цитированием
Старый 26.06.2010, 18:52   #3
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Вообще коэффициентов должно быть два:
Допустим y=Kx+Z. Если коэффициент Z для всех прямых принять равным нулю, то возможно всего два варианта:
1. Количество точек пересечения =1 и эта точка (0,0)
2. Количество точек пересечения = бесконечности (если коэффициенты K хотя бы у двух прямых равны).
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 28.06.2010, 13:46   #4
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

y=Kx+Z.
для двух прямых
1 K1=K2, Z1=Z2, бесконечность
2 K1=K2, Z1<>Z2 не пересекаются
2 иначе есть точка пересечения, счетчик +1
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
количество точек в фигуре ignatka Общие вопросы C/C++ 3 03.06.2010 22:43
количество точек в фигуре (си++) @lenk@ Помощь студентам 5 24.05.2010 18:50
количество точек в фигуре @lenk@ Общие вопросы C/C++ 1 22.05.2010 20:53
Подсчитать количество шагов MAKEDON Помощь студентам 3 02.06.2009 15:04
Помогите подсчитать количество дней komar73 Microsoft Office Excel 2 09.02.2009 09:54