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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2011, 15:28   #1
KOMPNET
Пользователь
 
Регистрация: 30.09.2011
Сообщений: 55
По умолчанию Треугольник в треугольнике

Даны действительный числа x1,y1,x2,y2,...,x6,y6. Точки с координатами (x1,y1), (x2,y2), (x3,y3) рассматриваются как вершины первого треугольника, точки с координатами (x4,y4), (x5,y5), (x6,y6) - вершины второго треугольника. Выяснить, верно ли, что один треугольник целиком расположен внутри другого, и, если да, определить площадь области, принадлежащей внешнему треугольнику и не принадлежащей внутреннему. Определить подпрограммы, необходимые для выяснения взаимного расположения треугольников и вычисления площади треугольника. C++
KOMPNET вне форума Ответить с цитированием
Старый 11.12.2011, 13:18   #2
KOMPNET
Пользователь
 
Регистрация: 30.09.2011
Сообщений: 55
По умолчанию

Я программу то написал, но как я ее разбить на подпрограммы не знаю
Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{float x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6,s1,s,s2,s11,s12,s13,s14,s15,s18,s19,s16,s17;
printf("\nВведите координаты 1 треугольника\n");
scanf("%f %f %f %f %f %f", &x1, &y1, &x2, &y2, &x3, &y3);
printf("Введите координаты 2 треугольника\n");
scanf("%f %f %f %f %f %f", &x4, &y4, &x5, &y5, &x6, &y6);
s1=fabs(((x2-x1)*(y3-y1)-(x3-x1)*(y2-y1)))/2;
s2=fabs(((x5-x4)*(y6-y4)-(x6-x4)*(y5-y4)))/2;

if (s1>s2)
{
s11=fabs(((x2-x1)*(y4-y1)-(x4-x1)*(y2-y1)))/2;
s12=fabs(((x4-x1)*(y3-y1)-(x3-x1)*(y4-y1)))/2;
s13=fabs(((x2-x4)*(y3-y4)-(x3-x4)*(y2-y4)))/2;

s14=fabs(((x2-x1)*(y5-y1)-(x5-x1)*(y2-y1)))/2;
s15=fabs(((x5-x1)*(y3-y1)-(x3-x1)*(y5-y1)))/2;
s16=fabs(((x2-x5)*(y3-y5)-(x3-x5)*(y2-y5)))/2;

s17=fabs(((x2-x1)*(y6-y1)-(x6-x1)*(y2-y1)))/2;
s18=fabs(((x6-x1)*(y3-y1)-(x3-x1)*(y6-y1)))/2;
s19=fabs(((x2-x6)*(y3-y6)-(x3-x6)*(y2-y6)))/2;

if ((s11+s12+s13+s14+s15+s16+s17+s18+s19)==s1*3) 
    {s=fabs(s1-s2); printf("%0.2f",s);} else printf("Treugolniki ne vnutri"); }
else  
{
s11=fabs(((x5-x4)*(y1-y4)-(x1-x4)*(y5-y4)))/2;
s12=fabs(((x1-x4)*(y6-y4)-(x6-x4)*(y1-y4)))/2;
s13=fabs(((x5-x1)*(y6-y1)-(x6-x1)*(y5-y1)))/2;

s14=fabs(((x5-x4)*(y2-y4)-(x2-x4)*(y5-y4)))/2;
s15=fabs(((x2-x4)*(y6-y4)-(x6-x4)*(y2-y4)))/2;
s16=fabs(((x5-x2)*(y6-y2)-(x6-x2)*(y5-y2)))/2;

s17=fabs(((x5-x4)*(y3-y4)-(x3-x4)*(y5-y4)))/2;
s18=fabs(((x3-x4)*(y6-y4)-(x6-x4)*(y3-y4)))/2;
s19=fabs(((x5-x3)*(y6-y3)-(x6-x3)*(y5-y3)))/2;

if ((s11+s12+s13+s14+s15+s16+s17+s18+s19)==s2*3)
    {s=fabs(s2-s1); printf("Площадь равна: %0.2f",s);} else printf("Треугольники не внутри");}
  
getch();
}
KOMPNET вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на вычисление высоты в треугольнике проФан Паскаль, Turbo Pascal, PascalABC.NET 1 19.10.2011 00:16
С# Треугольник в треугольнике. Necare Помощь студентам 10 30.10.2010 15:05
О треугольнике.Турбо Паскаль. SIvk Помощь студентам 6 12.03.2010 19:22
Координаты высоты в треугольнике UnChanter Помощь студентам 1 19.10.2009 07:48