Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Dyaside1
1 / 1 / 0
Регистрация: 28.10.2013
Сообщений: 77
1

Является треугольник прямоугольным или нет?

08.12.2014, 21:38. Просмотров 394. Ответов 0
Метки нет (Все метки)

Доброго времени суток! Решаю вот такую задачку, но в чем-то допустил ошибку и не могу понять где и в чем ошибка, но результат увы выводит не верный. Помогите мне ее найти.

int is_right_angled(double xa, double ya, double xb, double yb, double xc, double yc) Функция проверяет, является треугольник с вершинами А(ха, уа), B(xb,yb) и С(хс,ус) прямоугольным или нет. Возвращает единицу, если треугольник прямоугольный, и ноль иначе. Проверку осуществляйте в рамках некоторой точности

Вычисляю я по формуле: AC2 = BC2 + AB2
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/*int is_right_angled(double xa, double ya, double xb, double yb, double xc, double yc)*/
 
.intel_syntax noprefix
.globl is_right_angled
.type is_right_angled, @function
is_right_angled:
 
/*BC*/
fld qword ptr [esp + 36]
fld qword ptr [esp + 20]
fsubrp
fld qword ptr [esp + 36]
fld qword ptr [esp + 20]
fsubrp
fmulp
 
fld qword ptr [esp + 44]
fld qword ptr [esp + 28]
fsubp
fld qword ptr [esp + 44]
fld qword ptr [esp + 28]
fsubp
fmulp
faddp
 
fld qword ptr [esp + 36]
fld qword ptr [esp + 20]
fsubp
fld qword ptr [esp + 36]
fld qword ptr [esp + 20]
fsubp
fmulp
fld qword ptr [esp + 44]
fld qword ptr [esp + 28]
fsubp
fld qword ptr [esp + 44]
fld qword ptr [esp + 28]
fsubp
fmulp
faddp
fmulp
 
/*end BC*/
 
/*AB*/
fld qword ptr [esp + 20]
fld qword ptr [esp + 4]
fsubp
fld qword ptr [esp + 20]
fld qword ptr [esp + 4]
fsubp
fmulp
 
fld qword ptr [esp + 28]
fld qword ptr [esp + 12]
fsubp
fld qword ptr [esp + 28]
fld qword ptr [esp + 12]
fsubp
fmulp
faddp
 
fld qword ptr [esp + 20]
fld qword ptr [esp + 4]
fsubp
fld qword ptr [esp + 20]
fld qword ptr [esp + 4]
fsubp
fmulp
fld qword ptr [esp + 28]
fld qword ptr [esp + 12]
fsubp
fld qword ptr [esp + 28]
fld qword ptr [esp + 12]
fsubp
fmulp
faddp
 
fmulp
/*end AB*/
faddp /* bc^2 + ab^2 */
 
/* AC */
fld qword ptr [esp + 36]
fld qword ptr [esp + 4]
fsubp
fld qword ptr [esp + 36]
fld qword ptr [esp + 4]
fsubp
fmulp
 
fld qword ptr [esp + 44]
fld qword ptr [esp + 12]
fsubp
fld qword ptr [esp + 44]
fld qword ptr [esp + 12]
fsubp
fmulp
faddp
 
fld qword ptr [esp + 36]
fld qword ptr [esp + 4]
fsubp
fld qword ptr [esp + 36]
fld qword ptr [esp + 4]
fsubp
fmulp
fld qword ptr [esp + 44]
fld qword ptr [esp + 12]
fsubp
fld qword ptr [esp + 44]
fld qword ptr [esp + 12]
fsubp
fmulp
faddp
 
fmulp
/*end AC */
 
fcomip
fincstp 
je good
 
ret
 
good:
mov eax,1
ret
C
1
2
3
4
5
6
7
8
9
10
#include<stdio.h>
 
extern int is_right_angled(double xa, double ya, double xb, double yb, double xc, double yc);
 
int main(){
    double xa, ya, xb, yb, xc, yc;
    scanf("%lf%lf%lf%lf%lf%lf", &xa, &ya, &xb, &yb, &xc, &yc);
    printf("%d\n", is_right_angled(xa, ya, xb, yb, xc, yc));
return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2014, 21:38
Ответы с готовыми решениями:

Определить, является ли треугольник из отрезков с длинами A, B и C прямоугольным или равносторонним
Заданы три положительных числа A, B и C (A&gt;=B&gt; =C). Определить, является ли треугольник из...

Определить по заданным сторонам, является ли данный треугольник прямоугольным
Помогите пожалуйста.Дано 3 стороны треугольника. Нужно определить по этим сторонам , является ли...

Определить, является ли каждый треугольник прямоугольным
Помогите разобраться с задачей на TASM. Ввести с клавиатуры длины сторон a,b,c 4-х треугольников...

Если треугольник со сторонами a, b, с является равнобедренным, найти его площадь, в противном случае – периметр.
1)Если треугольник со сторонами a, b, с является равнобедренным, найти его площадь, в противном...

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2014, 21:38

"PROG1.ASM" не является внутренней или внешней командой, исполняемой программой или пакетным файлом...
Пытаюсь в MASMе сассемблировать прогу CSEG segment org 100h _beg: mov ax, 0B800h mov es,ax...

Построить квадрат или треугольник в зависимости от введенного символа
Здравствуйте! Вот попалось мне такое задание &quot;Ввести символ (символ 1 или символ 2) и в зависимости...

Построить треугольник с заданными координатами вершин. Треугольник должен медленно падать вниз.
Построить треугольник с координатами вершин: А (0,0), В (80, 0), С (0, 100). Треугольник должен...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru