Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Диаметр множества / src / AlgDialog
.cpp// AlgDialog.cpp : implementation file
//
#include "stdafx.h"
#include "Diameter.h"
#include "AlgDialog.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAlgDialog dialog
CAlgDialog::CAlgDialog(CWnd* pParent /*=NULL*/)
: CDialog(CAlgDialog::IDD, pParent)
{
//{{AFX_DATA_INIT(CAlgDialog)
mEdit = _T("");
//}}AFX_DATA_INIT
mEdit =" Алгоритм нахождения диаметра множества\r\n\r\n";
mEdit+="1. Диаметр множества равен диаметру его выпуклой оболочки,\r\n";
mEdit+=" поэтому сначала для множества находится выпуклая оболочка\r\n";
mEdit+=" (мы используем метод Джарвиса).\r\n\r\n";
mEdit+="2. Сначала находятся две крайние по оси абсцисс точки выпуклой\r\n";
mEdit+=" оболочки. Если есть несколько левых точек, то среди них\r\n";
mEdit+=" берется точка с максимальной ординатой. Если есть несколько\r\n";
mEdit+=" правых точек, то среди них берется точка с минимальной\r\n";
mEdit+=" ординатой. Эти точки выбираются в качестве текущих (P и Q).\r\n\r\n";
mEdit+="3. Повторяется последовательность действий, приведенная ниже,\r\n";
mEdit+=" пока точка Q не окажется самой левой, а точка P - самой\r\n";
mEdit+=" правой.\r\n";
mEdit+=" - в качестве \"претендента\" на роль диаметра рассматривается\r\n";
mEdit+=" пара [P,Q]\r\n";
mEdit+=" - рассматриваются углы наклона прямых:\r\n";
mEdit+=" <P,next(P)> и <next(Q),Q>\r\n";
mEdit+=" next(A) - следующая после A по часовой стрелке вершина\r\n";
mEdit+=" выпуклой оболочки\r\n";
mEdit+=" - если угол1<угла2, то P=next(P)\r\n";
mEdit+=" - если угол1>угла2, то Q=next(Q)\r\n";
mEdit+=" - если угол1=углу2, то:\r\n";
mEdit+=" 1) в качестве \"претендентов\" на роль диаметра рассматриваются\r\n";
mEdit+=" пары: [next(P),Q] и [P,next(Q)]\r\n";
mEdit+=" 2) P=next(P) и Q=next(Q)\r\n\r\n";
}
void CAlgDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAlgDialog)
DDX_Text(pDX, IDC_EDIT1, mEdit);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAlgDialog, CDialog)
//{{AFX_MSG_MAP(CAlgDialog)
// NOTE: the ClassWizard will add message map macros here
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAlgDialog message handlers
Соседние файлы в папке src