Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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


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

задача звучит так:
задано множество прямых на плоскости (коэффициентами своих уравнений).
подсчитайте количество точек пересечения этих прямых.
прошу помочь идей и кодом, как это сделать
заранее благодарен за помощь
asm под dos
fallti вне форума Ответить с цитированием
Старый 26.06.2010, 15: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, 17:52   #3
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,431
По умолчанию

Вообще коэффициентов должно быть два:
Допустим y=Kx+Z. Если коэффициент Z для всех прямых принять равным нулю, то возможно всего два варианта:
1. Количество точек пересечения =1 и эта точка (0,0)
2. Количество точек пересечения = бесконечности (если коэффициенты K хотя бы у двух прямых равны).
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 28.06.2010, 12: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 вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме 20000 рублей в месяц

Опции темы


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


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS