вторник, 16 мая 2017 г.

Метод Крамера (правило Крамера)

Метод Крамера (правило Крамера) — способ решения систем линейных алгебраических уравнений с числом уравнений равным числу неизвестных с ненулевым главным определителем матрицы коэффициентов системы (причём для таких уравнений решение существует и единственно).
















Листинг: 
  • void CProgramDlg::OnPaint()
    {
    if (IsIconic())
    {
    CPaintDC dc(this); // контекст устройства для рисования

    SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

    // Выравнивание значка по центру клиентского прямоугольника
    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;

    // Нарисуйте значок
    dc.DrawIcon(x, y, m_hIcon);
    }
    else
    {
    CClientDC dc(this);
    GetClientRect(&rc);


    dc.FillSolidRect(&rc, RGB(255, 255, 255));

    cf = RGB(255, 255, 255);
    COLORREF ck= RGB(50, 70, 120);
    int cxClient, cyClient;
    cyClient = rc.bottom;//высота
    cxClient = rc.right;//ширина
    hPenOxy = CreatePen(PS_SOLID, 4, ck);//создаем кисть цветом "crOxy"
    hOldPen = (HPEN)SelectObject(dc, hPenOxy);

    int XX[100], YY[100];
    int n = 12;
    int r = 200;
    for (k = 0; k <= n; k++)
    {
    XX[k] = cxClient / 2 + r*sin(pi * 2 / n*k);
    YY[k] = cyClient / 2 + r*cos(pi * 2 / n*k);
    }

    for (k = 0; k <= n; k++)
    //k = 0;
    {
    dc.MoveTo(XX[k], YY[k]);
    for (i = 0; i <= n; i++)
    {
    dc.LineTo(XX[i], YY[i]);
    dc.MoveTo(XX[k], YY[k]);
    }
    }

    SelectObject(dc, hOldPen);

    DeleteObject(hPenOxy);



    CDialog::OnPaint();
    }
    }

Метод Крамера (правило Крамера)

Метод Крамера (правило Крамера)  — способ решения  систем линейных алгебраических уравнений  с числом уравнений равным числу неизвестных с...