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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2011, 23:02   #1
nataliya234
 
Регистрация: 14.05.2010
Сообщений: 9
Восклицание очень интересная графика на си ++

Всем привет)) ребят помогите найти ошибку в коде программы, работает через раз. Буду очень благодарна.
вот текст задания: Разработать приложение, отображающее на экране ход решения следующей задачи: на плоскости заданы множество точек М и круг. Выбрать из М две различные точки так, чтобы наименьшим образом различались количества точек в круге, лежащие по разные стороны от прямой, проходящей через эти точки.
а вот код программы:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include "math.h"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"

TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
int count=0;
int x_inside[500];
int y_inside[500];
int krug(int x1,int x2,int y1,int y2, int count){
int i;
int count2=0;
int x=0;
int y_line;
int delta;
for(i=0;i<count;i++) {
if(x1!=x2&&y1!=y2)
y_line=(x2*y1-x1*y2-(y1-y2)*x_inside[i])/(x2-x1);
delta=y_inside[i]-y_line;
if(delta<0) count2++;
}
return count2;

}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int qwerty=0;
int tem=0;
int i=0;
int j=0;
int x[500];
int y[500];
Form1->Repaint();
int x0=100;//rand()%500;
int y0=100;//rand()%500;
int R=400;//rand()%250;
Form1->Canvas->Ellipse(x0,y0,x0+R,y0+R);
for(i=0;i<StrToInt(Form1->Edit2->Text);i++) {
x[i]=rand()%500;
y[i]=rand()%500;
if(pow((x[i]-((R/2)+x0)),2)+pow((y[i]-((R/2)+y0)),2)<pow(R/2,2)) {
x_inside[count]=x[i];
y_inside[count]=y[i];
count++;
Form1->Canvas->Brush->Color = clBlack;
}
Form1->Canvas->Ellipse(x[i],y[i],x[i]+4,y[i]+4);
Form1->Canvas->Brush->Style=bsClear;
}

for(i=0;i<StrToInt(Form1->Edit2->Text);i++){

Form1->Canvas->MoveTo(x[i],y[i]);
for(j=0;j<StrToInt(Form1->Edit2->Text);j++){
qwerty=krug(x[j],x[i],y[j],y[i],count);
tem=count/2;
if((qwerty==tem)){
Form1->Canvas->LineTo(x[j],y[j]);
Form1->Canvas->MoveTo(x[i],y[i]);
goto m1;
}

}
}
m1:
}
nataliya234 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
прога очень интересная Rabitka Свободное общение 5 11.07.2009 09:19
Не простая, но очень интересная задача (Pascal)! Juliya_U Паскаль, Turbo Pascal, PascalABC.NET 29 17.04.2009 19:33
Очень интересная задачка, вставка объектов xamillion Microsoft Office Excel 3 03.10.2008 20:34