Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

КР по ТРПОСУ вар.8, ИТИУТС, 2012, заочное

.doc
Скачиваний:
55
Добавлен:
01.04.2014
Размер:
74.75 Кб
Скачать

Задание №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);

}

}