дописать программу, осталась только функция сама - вопрос №654691

задание: Используя  матрицу из 0 и 1  написать программу «Эволюция».

Пусть степень элемента [i][j] определяется количеством соседей со зна­чением 1, т.е. степень может принимать значения от 0 до 8. При каждом нажатии левой кнопки мыши в заданном месте окна программа должна выдавать очередное состояние матрицы,  определяемое по правилам:

— текущий элемент остается равным 0, если не меньше половины сосе­дей равны0. 

// Lab6_MFCAppView.cpp :implementation of the CLab6_MFCAppView class<br />//<br /><br />#include "stdafx.h"<br />#include "Lab6_MFCApp.h"<br /><br />#include "Lab6_MFCAppDoc.h"<br />#include "Lab6_MFCAppView.h"<br /><br />#ifdef _DEBUG<br />#define new DEBUG_NEW<br />#endif<br />int number;/*int r[10];*/ int a[12][22];<br />int u,v,k, R;<br /><br /><br />// CLab6_MFCAppView<br /><br />IMPLEMENT_DYNCREATE(CLab6_MFCAppView, CView)<br /><br />BEGIN_MESSAGE_MAP(CLab6_MFCAppView, CView)<br /> // Standard printing commands<br /> ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint)<br /> ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint)<br /> ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CView::OnFilePrintPreview)<br /> ON_WM_CREATE()<br /> ON_WM_KEYDOWN()<br />END_MESSAGE_MAP()<br /><br />// CLab6_MFCAppView construction/destruction<br /><br />CLab6_MFCAppView::CLab6_MFCAppView()<br />{<br /> // TODO: add construction code here<br /><br />}<br /><br />CLab6_MFCAppView::~CLab6_MFCAppView()<br />{<br />}<br /><br />BOOL CLab6_MFCAppView::PreCreateWindow(CREATESTRUCT& cs)<br />{<br /> // TODO: Modify the Window class or styles here by modifying<br /> // the CREATESTRUCT cs<br /><br /> return CView::PreCreateWindow(cs);<br />}<br /><br />// CLab6_MFCAppView drawing<br /><br /><br /><br />void CLab6_MFCAppView::OnDraw(CDC* pDC)<br />{<br /> CLab6_MFCAppDoc* pDoc = GetDocument();<br /> ASSERT_VALID(pDoc);<br /> <br /> if (!pDoc)<br /> return;<br /> CPen ap;<br /> ap.CreatePen(PS_SOLID,3,RGB(0,0,0));<br /> <br /> pDC->SelectObject(&ap);<br />// pDC->Rectangle(6,3,540,613);<br /> <br /> CFont af1;<br /> af1.CreateFontW(37,12,2700,0,FW_NORMAL,0,0,0,<br /> ANSI_CHARSET,<br /> OUT_DEFAULT_PRECIS,<br /> CLIP_DEFAULT_PRECIS,<br /> PROOF_QUALITY,<br /> VARIABLE_PITCH,<br /> L"Arial");<br /><br /> pDC->SelectObject(&af1);<br /> pDC->SetTextColor(RGB(55,0,255)); <br />// pDC->TextOutW(490,50,L"Наибольший квадрат:",20);<br /><br />CFont af2;<br />af2.CreateFontW(47,15,0,0,FW_BOLD,0,0,0,<br /> ANSI_CHARSET,<br /> OUT_DEFAULT_PRECIS,<br /> CLIP_DEFAULT_PRECIS,<br /> PROOF_QUALITY,<br /> VARIABLE_PITCH,<br /> L"Arial");<br /><br /> pDC->SelectObject(&af2);<br /> if (!R) k--;<br /> <br /> pDC->Rectangle(11+45*v, 7+50*u, 5+45*(v+k-1)+34, 7+50*(u+k-1)+51);<br /> for (int i=0;i for (int j=0;j if (a[i][j]==0)<br /> pDC->SetTextColor(RGB(55,0,255));<br /> else<br /> pDC->SetTextColor(RGB(255,0,55));<br /> if (a[i][j]>=0)<br /> pDC->TextOutW(15+45*j,9+50*i,L"01"+a[i][j],1);}<br /> <br /> <br /> // TODO: add draw code for native data here<br />}<br />// CLab6_MFCAppView printing<br /><br />BOOL CLab6_MFCAppView::OnPreparePrinting(CPrintInfo* pInfo)<br />{<br /> // default preparation<br /> return DoPreparePrinting(pInfo);<br />}<br /><br />void CLab6_MFCAppView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)<br />{<br /> // TODO: add extra initialization before printing<br />}<br /><br />void CLab6_MFCAppView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)<br />{<br /> // TODO: add cleanup after printing<br />}<br /><br /><br />// CLab6_MFCAppView diagnostics<br /><br />#ifdef _DEBUG<br />void CLab6_MFCAppView::AssertValid() const<br />{<br /> CView::AssertValid();<br />}<br /><br />void CLab6_MFCAppView::Dump(CDumpContext& dc) const<br />{<br /> CView::Dump(dc);<br />}<br /><br />CLab6_MFCAppDoc* CLab6_MFCAppView::GetDocument() const // non-debug version is inline<br />{<br /> ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CLab6_MFCAppDoc)));<br /> return (CLab6_MFCAppDoc*)m_pDocument;<br />}<br />#endif //_DEBUG<br />// CLab6_MFCAppView message handlers<br /><br />int CLab6_MFCAppView::OnCreate(LPCREATESTRUCT lpCreateStruct)<br />{<br /> if (CView::OnCreate(lpCreateStruct) == -1)<br /> return -1;<br /><br />int h;<br />number=0;<br />time_t t;<br />srand((unsigned) time (&t));<br />for (int i=0;ifor (int j=0;jif (h==0){<br /> h=rand()%2;<br />}a[i][j]=h; <br />}<br /> <br />k=2;<br />return 0; <br />}<br /><br />void CLab6_MFCAppView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)<br />{ CView::OnKeyDown(nChar, nRepCnt, nFlags);<br /> if (nChar==VK_RIGHT&&R){<br /> k++;<br /> InvalidateRect(0);}<br />}
06.06.13
1 ответ

Ответы

Татьяна, вы тут? Пишите в чат разберемся. Тем более, что ваш код корректно не вставился, обрезался посредине.

06.06.13
Посмотреть всех экспертов из раздела Технологии > C/C++
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store