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

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

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2011, 21:53   #1
Kewen
 
Регистрация: 13.12.2011
Сообщений: 8
Восклицание За денежку! Закончить программу на С++ с графиками

Дано множество точек на плоскости. Найти три различные точки так, что бы треугольник с вершинами в этих точках содержал внутри себя максимальное количество точек этого множества. Вычислить площадь полученного треугольника. Координаты точек множества задаются генератором случайных чисел. построение выводятся на экран.


ЧТО ЕДИНСТВЕННОЕ НЕ СДЕЛАЛ, ЭТО Я НЕ СМОГ СОСТАВИТЬ АЛГОРИТМ ЧТО БЫ СТРОИЛСЯ ТРЕУГОЛЬНИК ТАК ЧТО БЫ ОН СОДЕРЖАЛ МАКС. КОЛИЧЕСТВО ТОЧЕК.
За 500 руб сможете сделать?
Очень очень нужно помогите!! Почти на грани жизни и смерти!)


Код:
#include<conio.h>
#include<stdlib.h>
#include<math.h>
#include<graphics.h>
#include<fstream.h>

#define PIXEL_COUNT 100


struct Pt
{
	double x;
	double y;
};

//функция нахождения длины стороны треугольника.
// входными параметрами служат координаты конца и начала стороны.
double SideLength(double x1,double y1,double x2,double y2)
{
	double a = sqrt((x2-x1)/10*(x2-x1)/10+(y2-y1)/10*(y2-y1)/10);
	return a*10;
}

//функция нахождения периметра треугоника. 
//входные параметры - стороны треугольника
double Perimetr (double s1, double s2, double s3)
{
     return (s1+s2+s3);
}


//функция нахождения площади треугольника (по формуле Герона) 
//входные параметры - стороны треугольника
double Sqare (double s1, double s2, double s3)
{
      double p;
      p = (Perimetr(s1, s2, s3))/2;
      return  sqrt((p*(p-s1)*(p-s2)*(p-s3)));
}


void main()
{
	int gd,gm,flag,i;
	double s1,s2,s3,S,p,R,x1, x2, y1, y2;
	Pt t, a[PIXEL_COUNT];

	gd=DETECT;
	initgraph(&gd,&gm,"");

	start:
	cleardevice();
	randomize();


	int maxx = getmaxx();
	int maxy = getmaxy();
	int x0 = getmaxx()/2;
	int y0 = getmaxy()/2;
	putpixel(x0, y0, 13);
	moveto(x0+5, y0-10);
	outtext("0");

	//Ставим рандомно точки на плоскости
	for(i=0; i<PIXEL_COUNT; i++)
	  {
	    a[i].x = random(maxx);
	    a[i].y = random(maxy);
	    putpixel(a[i].x, a[i].y, 10);

          }



	//упорядочиваем вершины треугольника по возрастанию их y-координаты
	if(a[0].y>a[1].y & a[0].x>a[1].x) {t=a[0]; a[i]=a[1]; a[1]=t;}
	if(a[1].y>a[2].y & a[1].x>a[2].x) {t=a[1]; a[1]=a[2]; a[2]=t;}
	if(a[0].y>a[2].y & a[0].x>a[2].x) {t=a[0]; a[0]=a[2]; a[2]=t;}
	if(a[0].y>a[1].y & a[0].x>a[1].x) {t=a[0]; a[0]=a[1]; a[1]=t;}
 
	setcolor(YELLOW); circle(a[0].x,a[0].y,3);
	setcolor(WHITE);  circle(a[2].x,a[2].y,3);
 
	//чертим треугольник
        
        
	 for(i = 0; i < 3; i++)
          {
            putpixel(a[i].x,a[i].y, WHITE);
          }
         
	 line(a[0].x, a[0].y, a[1].x,a[1].y);
	 line(a[1].x, a[1].y, a[2].x,a[2].y);
	 line(a[2].x, a[2].y, a[0].x,a[0].y);
 
	 setcolor(YELLOW); circle(a[0].x,a[0].y,3);
	 setcolor(WHITE);  circle(a[2].x,a[2].y,3);
 
	//Находим длины сторон треугольника
 
	    s1=SideLength(a[0].x,a[0].y, a[1].x,a[1].y);
	    s2=SideLength(a[1].x,a[1].y, a[2].x,a[2].y);
	    s3=SideLength(a[2].x,a[2].y, a[0].x,a[0].y);
 
// Находим полупериметр треугольника и его площадь
	    p = (Perimetr(s1, s2, s3))/2;
	    S = Sqare (s1, s2, s3);

cout<<"p = "<<p<<endl;
cout<<"S = "<<S<<endl;

getch();
closegraph();  
}
Kewen вне форума Ответить с цитированием
Старый 27.12.2011, 22:10   #2
rasendubi
Новичок
Джуниор
 
Регистрация: 24.06.2011
Сообщений: 1
По умолчанию

Готов сделать
ICQ 385-694-927
rasendubi вне форума Ответить с цитированием
Старый 30.12.2011, 11:30   #3
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Давайте пообщаемся подробнее. Контакты в подписи.
Задача несложная. Решение уже есть, необходимо только уточнить пару вопросов.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
за денежку! Закончить программу на С++ с графиками Kewen Помощь студентам 9 27.12.2011 22:11
Закончить программу... Ilya_tb4 Общие вопросы C/C++ 3 09.12.2010 23:16
ЗАКОНЧИТЬ ПРОГРАММУ! 4ika Общие вопросы C/C++ 3 10.02.2010 02:20
Надо закончить программу KsarK Общие вопросы C/C++ 2 15.01.2010 01:12
Как закончить программу? Cry Помощь студентам 0 21.10.2009 09:28