Язык Visual C++ 6.0
Графики функций */
#include <math.h>
int d = 0; // номер графика
void CP31View::OnDraw (CDC *pDC)
{
CP31Doc *pdoc = GetDocument ();
ASSERT_VALID (pdoc);
int a, b, c, j;
double g, h, i, m;
if (d == 0)
{
// 31.2.1
pDC -> MoveTo (10, 360);
pDC -> LineTo (1010, 360);
pDC -> MoveTo (510, 10);
pDC -> LineTo (510, 710);
pDC -> MoveTo (510, 360);
pDC -> LineTo (160, 10);
pDC -> MoveTo (510, 360);
pDC -> LineTo (560, 310);
pDC -> LineTo (1010, 310);
// 32.5.2
pDC -> MoveTo (510, 310);
pDC -> LineTo (10, 310);
pDC -> MoveTo (510, 310);
pDC -> LineTo (560, 360);
// 33.10.3
pDC -> MoveTo (560, 210);
pDC -> LineTo (460, 10);
pDC -> MoveTo (560, 210);
pDC -> LineTo (710, 210);
pDC -> LineTo (810, 10);
}
if (d == 1)
{
// 45.1.4
pDC -> MoveTo (10, 360);
pDC -> LineTo (1010, 360);
pDC -> MoveTo (510, 10);
pDC -> LineTo (510, 710);
for (a = 0; a < 1000; a++)
{
g = (a - 500) / 50.;
h = fabs (2 * g + 1) - fabs (3 * g + 7);
b = (int) (360 - h * 50);
if (a == 0) {c = b; continue;}
if (b >= 10 && b <= 710 && c >= 10 && c <= 710)
{
pDC -> MoveTo (a + 9, c);
pDC -> LineTo (a + 10, b);
}
c = b;
}
// 47.3.5
pDC -> MoveTo (510, 310);
pDC -> LineTo (1010, 310);
pDC -> MoveTo (510, 410);
pDC -> LineTo (10, 410);
// 46.2.6
for (a = 0; a < 1000; a++)
{
g = (a - 500) / 50.;
g += 1;
j = 1;
if (g < 0) {g = -g; j = -1;} // знак аргумента
h = exp (1 / 3. * log (g)) * j;
b = (int) (360 - h * 50);
if (a == 0) {c = b; continue;}
if (b >= 10 && b <= 710 && c >= 10 && c <= 710)
{
pDC -> MoveTo (a + 9, c);
pDC -> LineTo (a + 10, b);
}
c = b;
}
}
if (d == 2)
{
// 51.1.7
pDC -> MoveTo (10, 360);
pDC -> LineTo (1010, 360);
pDC -> MoveTo (510, 10);
pDC -> LineTo (510, 710);
pDC -> MoveTo (460, 260);
pDC -> LineTo (335, 10);
pDC -> MoveTo (460, 260);
pDC -> LineTo (560, 260);
pDC -> LineTo (685, 10);
// 52.6.8
for (a = 0; a < 1000; a++)
{
g = (a - 500) / 50.;
i = g; // член ряда
m = g; // результат суммирования
for (j = 2; j < 10; j += 2)
{
i *= -g * g / j / (j + 1);
m += i;
}
h = m; // результат суммирования ряда разложения синуса
b = (int) (360 - h * 50);
if (a == 0) {c = b; continue;}
if (b >= 10 && b <= 710 && c >= 10 && c <= 710)
{
pDC -> MoveTo (a + 9, c);
pDC -> LineTo (a + 10, b);
}
c = b;
}
for (a = 0; a < 1000; a++)
{
g = (a - 500) / 50.;
h = sin (g);
b = (int) (360 - h * 50);
if (a == 0) {c = b; continue;}
if (b >= 10 && b <= 710 && c >= 10 && c <= 710)
{
pDC -> MoveTo (a + 9, c);
pDC -> LineTo (a + 10, b);
}
c = b;
}
}
}
void CP31View::OnChar (UINT nChar, UINT nRepCnt, UINT nFlags)
{
d++;
Invalidate ();
CView::OnChar (nChar, nRepCnt, nFlags);
}
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев