Слайд 1Основы программирования
Лабораторная работа №3
Власенко О.Ф.
Слайд 3Рисуем линии
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
// Перемещаем "курсор" рисования линии в точку (x = 10, y = 30)
MoveToEx(hdc, 10, 30, NULL);
// Рисуем линию из текущей позиции курсора в точку (x = 10, y = 100)
// "Курсор" после отрисовки находится в новой точке (x = 10, y = 100)
LineTo(hdc, 10, 100);
// Рисуем линию от предыдущей точки (x = 10, y = 100) до точки (x = 150, y = 100)
LineTo(hdc, 150, 100);
// Рисуем линию от предыдущей точки (x = 150, y = 100) до точки (x = 10, y = 30)
LineTo(hdc, 10, 30);
EndPaint(hWnd, &ps);
}
Слайд 4Цикл с постусловием do while
do {
Действие;
} while (Условие);
Слайд 5Рисуем много линий
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC
hdc = BeginPaint(hWnd, &ps);
int x1 = 10, y1 = 100;
int
x2 = 300, y2 = 100;
int i = 0;
do {
MoveToEx(hdc, x1, y1, NULL);
LineTo(hdc, x2, y2);
y1 = y1 - 5;
y2 = y2 + 10;
i++;
} while (i < 16);
EndPaint(hWnd, &ps);
}
Слайд 6Рисуем много линий
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC
hdc = BeginPaint(hWnd, &ps);
int x1 = 10, y1 = 100;
int
x2 = 300, y2 = 100;
int i = 0;
do {
MoveToEx(hdc, x1, y1, NULL);
LineTo(hdc, x2, y2);
y1 = y1 - 5;
y2 = y2 + 10;
i++;
} while (i < 16);
EndPaint(hWnd, &ps);
}
Слайд 7Рисуем много линий
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC
hdc = BeginPaint(hWnd, &ps);
int x1 = 10, y1 = 100;
int
x2 = 300, y2 = 100;
int i = 0;
do {
MoveToEx(hdc, x1, y1, NULL);
LineTo(hdc, x2, y2);
y1 = y1 - 5;
y2 = y2 + 10;
i++;
} while (i < 16);
EndPaint(hWnd, &ps);
}
Слайд 8Рисуем много линий
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC
hdc = BeginPaint(hWnd, &ps);
int x1 = 10, y1 = 100;
int
x2 = 300, y2 = 100;
int i = 0;
do {
MoveToEx(hdc, x1, y1, NULL);
LineTo(hdc, x2, y2);
y1 = y1 - 5;
y2 = y2 + 10;
i++;
} while (i < 16);
EndPaint(hWnd, &ps);
}
Слайд 9Рисуем много линий
Что успеете – в классе. Что останется -
дома.
Слайд 10Рисуем много линий – отдельная функция
void DrawMasterpiece(HDC hdc ) {
int
x1 = 10, y1 = 100;
int x2 = 300, y2
= 100;
int i = 0;
do {
MoveToEx(hdc, x1, y1, NULL);
LineTo(hdc, x2, y2);
y1 = y1 - 5;
y2 = y2 + 10;
i++;
} while (i < 16);
}
…
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
DrawMasterpiece(hdc);
EndPaint(hWnd, &ps);
}
Слайд 11Рисуем много линий – отдельная функция
void DrawMasterpiece2(HDC hdc ) {
int
x1 = 10, y1 = 100;
int x2 = 300, y2
= 100;
int i = 0;
do {
MoveToEx(hdc, x1, y1, NULL);
LineTo(hdc, x2, y2);
y1 = y1 - 5;
y2 = y2 + 10;
i++;
} while (i < 16);
}
…
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
DrawMasterpiece2(hdc);
EndPaint(hWnd, &ps);
}
Слайд 12Рисуем много линий
Что успеете – в классе. Что останется -
дома.
В итоге у вас будет 10 функций, которые можно
вызывать.
Слайд 13Домашнее задание - задачи
В итоге у вас есть 10 функций,
которые можно вызывать вместе или по отдельности.
Слайд 14Домашнее задание - оформление
Для сдачи домашней работы нужно подготовить отчет.
Отчет
состоит из:
Стандартного титульного листа
Полной распечатки кода программы – включая 10
функций и пример их вызова
Блоксхем двух из этих функций
Ручной трассировки каждой из 10 функций – нужны первые 3-5 шагов трассировки