КР по ТРПОСУ вар.8, ИТИУТС, 2012, заочное
.docЗадание №1
Требуется нарисовать одну из фигур, представленных на рисунке в соответствии со своим вариантом. Фигуры должны быть окрашены в произвольные цвета.
// zadacha1Dlg.cpp : implementation file
//
#include "stdafx.h"
#include "zadacha1.h"
#include "zadacha1Dlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CZadacha1Dlg dialog
CZadacha1Dlg::CZadacha1Dlg(CWnd* pParent /*=NULL*/)
: CDialog(CZadacha1Dlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CZadacha1Dlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CZadacha1Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CZadacha1Dlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CZadacha1Dlg, CDialog)
//{{AFX_MSG_MAP(CZadacha1Dlg)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CZadacha1Dlg message handlers
BOOL CZadacha1Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CZadacha1Dlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
HCURSOR CZadacha1Dlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
void CZadacha1Dlg::OnOK()
{
CRect rect;
GetClientRect(rect);
CClientDC dc(this);
CBrush br;
br.CreateSolidBrush(RGB(200,100,100));
dc.SelectObject(&br);
CPen p;
p.CreatePen(PS_SOLID,1,RGB(0,255,255));
dc.SelectObject(&p);
CPoint pts[4];
pts[0].x = 10 * rect.Width()/100;
pts[0].y = 80 * rect.Height()/100;
pts[1].x = 20 * rect.Width()/100;
pts[1].y = 20 * rect.Height()/100;
pts[2].x = 80 * rect.Width()/100;
pts[2].y = 20 * rect.Height()/100;
pts[3].x = 70 * rect.Width()/100;
pts[3].y = 80 * rect.Height()/100;
dc.Polygon(pts, 4);
}
Задание №2
Написать и отладить программу, которая выводит таблицу функций
8.
для х изменяющихся от x1 до x2 с шагом n.
// zadacha2Dlg.cpp : implementation file
//
#include "stdafx.h"
#include "zadacha2.h"
#include "zadacha2Dlg.h"
#include "math.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CZadacha2Dlg dialog
CZadacha2Dlg::CZadacha2Dlg(CWnd* pParent /*=NULL*/)
: CDialog(CZadacha2Dlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CZadacha2Dlg)
m_x1 = 0.0;
m_x2 = 0.0;
m_h = 0.0;
m_n = 0;
//}}AFX_DATA_INIT
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CZadacha2Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CZadacha2Dlg)
DDX_Control(pDX, IDC_LIST1, m_l);
DDX_Text(pDX, IDC_EDIT1, m_x1);
DDV_MinMaxDouble(pDX, m_x1, 0.1, 0.3);
DDX_Text(pDX, IDC_EDIT2, m_x2);
DDV_MinMaxDouble(pDX, m_x2, 0.7, 0.9);
DDX_Text(pDX, IDC_EDIT3, m_h);
DDV_MinMaxDouble(pDX, m_h, 0.1, 0.2);
DDX_Text(pDX, IDC_EDIT4, m_n);
DDV_MinMaxInt(pDX, m_n, 5, 20);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CZadacha2Dlg, CDialog)
//{{AFX_MSG_MAP(CZadacha2Dlg)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CZadacha2Dlg message handlers
BOOL CZadacha2Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CZadacha2Dlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
HCURSOR CZadacha2Dlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
void CZadacha2Dlg::OnButton2()
{
m_l.ResetContent();
}
void CZadacha2Dlg::OnButton1()
{
CString str;
UpdateData(TRUE);
str.Format("Разработка Потягевича Дмитрия");
m_l.AddString(str);
str.Format("Исходные данные: x1=%.2lf, x2=%.2lf, h=%.2lf, n=%2d", m_x1, m_x2, m_h, m_n);
m_l.AddString(str);
int k = 0;
double x = 0;
double y = 0;
double summ = 0;
double pi = 3.14;
for ( x = m_x1; x <= m_x2; x += m_h )
{
for ( k = 1; k <= m_n; k++ )
{
summ += pow(x,k) * pow(sin(pi/4),k);
}
UpdateData(FALSE);
y = (x * sin(pi/4))/(1-2 * x * cos(pi/4)+ pow(x,2));
str.Format("При x=%.2lf сумма S(x)=%.2lf, точное значение Y(x)=%.2lf", x, summ,y);
m_l.AddString(str);
}
}