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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2011, 19:15   #1
tesb
 
Регистрация: 07.12.2011
Сообщений: 3
По умолчанию Нахождение площади треугольника Язык С

Здравствуйте, помогите пожалуйста разобраться в ошибке! Задание: даны точки (5,11)и (-14,2); (-10,4) и (-13,-1); (-7,-12) и (8,-6); (15,9) и (3,16). Необходимо: Найти площади треугольников, образованных тройками прямых, проходящих через пары заданных точек
код:
Код:
 
# include <stdio.h>
# include <math.h>
# include <conio.h>
typedef
 struct{
     double x,y;
      } point;
typedef
struct{
 double A,B,C ;
 } koef;

koef uravnenie (point M, point N)
{ 
  koef J;
J. A=N.y-M.y;
J. B=M.x-N.x;
J.C=M.x*N.y-M.y*N.x;
return J;
}
double rast (point M, koef J)
{ double R;
   R=fabs(J.A*M.x+J.B*M.y+J.C)/(sqrt(J.A*J.A+J.B*J.B));
   return R;
   }

double ploshad(koef J1,koef J2,koef J3)
{
       point A, B,C;
  A.x=(J1.C*J2.B -J2.C*J1.B)/(J1.A*J2.B-J2.A*J1.B);
  A.y=(J1.A*J2.C-J2.A*J1.C)/(J1.A*J2.B-J2.A*J1.B);

  B.x=(J2.C*J3.B-J3.C*J2.B)/(J2.A*J3.B-J3.A*J2.B);
  B.y=(J3.A*J2.C-J2.A*J3.C)/(J3.A*J2.B-J2.A*J3.B);

  C.x=(J1.C*J3.B-J3.C*J1.B)/(J1.A*J3.B-J3.A*J1.B); 
  C.y=(J1.A*J3.C-J3.A*J1.C)/(J1.A*J3.B-J3.A*J1.B);

double V,O,Z;
V=sqrt((A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y));
O=sqrt((A.x-C.x)*(A.x-C.x)+(A.y-C.y)*(A.y-C.y));
Z=sqrt((B.x-C.x)*(B.x-C.x)+(B.y-C.y)*(B.y-C.y));
double S;
S=1/4*sqrt((V+O+Z)*(O+Z-V)*(O+V-Z)*(Z+V-O));
return S;
}
int main()
 {
  point P1,P2,P3,P4,P5,P6, P7,P8;
  koef K1, K2, K3, K4;
  P1.x=5; P1.y=11;
  P2.x=-14; P2.y=2;
  P3.x=-10; P3.y=4;
  P4.x=-13; P4.y=-1;
  P5.x=-7; P5.y=-12;
  P6.x=8; P6.y=-6;
  P7.x=15; P7.y=9;
  P8.x=3; P8.y=16;
  K1=uravnenie(P1,P2);
  K2=uravnenie(P3,P4);
  K3=uravnenie(P5,P6);
  K4=uravnenie(P7,P8);
  point P;
  P.x=2; P.y=1;
  double R1, R2, R3, R4;
  R1=rast(P,K1);
  R2=rast(P,K2);
  R3=rast(P,K3); 
  R4=rast(P,K4);
  double S1,S2,S3;
  S1= ploshad(K1,K2,K3);
  S2= ploshad(K1,K2,K4);
  S3= ploshad(K2,K3,K4);

printf("%2.2fx+ %2.2fy +%2.2f=0 \n",K1.A,K1.B, K1.C);
  printf("%2.2fx+ %2.2fy+ %2.2f=0 \n",K2.A, K2.B, K2.C);
  printf("%2.2fx+ %2.2fy+ %2.2f=0 \n",K3.A,K3.B, K3.C);
  printf("%2.2fx+ %2.2fy + %2.2f=0\n",K4.A,K4.B,K4.C);
  printf("Rastoyaniya \n R1=%2.2f, R2=%2.2f,R3=%2.2f,R4=%2.2f",R1,R2,R3,R4);
  printf(" ploshad \n S1=%2.2f\n,S2=%2.2f\n,S3=%2.2f\n", S1,S2,S3);
getch ();
}
Компилятор не ругается, но программа выдает, что площади равны 0.00. Помогите пожалуйста! Не знаю, что делать, зараннее спасибо!
tesb вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Си/Си++ Нахождение площади методом Монте-Карло Маришка_Курносова Помощь студентам 3 11.11.2012 16:17
определение наибольшей площади треугольника fasty Помощь студентам 2 07.12.2011 20:07
Нахождение площади пятиугольника в Visual C++ 2010 Fantom.as Помощь студентам 0 06.10.2010 20:34
Нахождение площади треугольника, образуемого пересечением прямых valis Помощь студентам 3 03.02.2010 09:21
Вычисление площади треугольника Nyuta555 Помощь студентам 10 07.10.2009 16:32