Разделы презентаций


Основы программирования ФИСТ 1 курс Власенко Олег Федосович

Содержание

Развилка (if)if (Условие) Действие1;else Действие2;

Слайды и текст этой презентации

Слайд 1Основы программирования ФИСТ 1 курс Власенко Олег Федосович
Лекция 4
If и Switch.
Вывод

текста в графике.
Обработка нажатий клавиш.
Делаем простую игру.

Основы программирования ФИСТ 1 курс Власенко  Олег  ФедосовичЛекция 4If и Switch. Вывод текста в графике.

Слайд 2Развилка (if)
if (Условие)
Действие1;
else
Действие2;

Развилка (if)if (Условие)	Действие1;else	Действие2;

Слайд 3Найти максимум - полная развилка
if (val1 > val2) {
max_val =

val1;
} else {
max_val = val2;
}

Найти максимум - полная развилкаif (val1 > val2) {	max_val = val1;} else { 	max_val = val2;}

Слайд 4Усеченная развилка
if (Условие) {
Действие;
}

Усеченная развилкаif (Условие) {	Действие;}

Слайд 5Минимум из 3 чисел
void main() {

int val1 =

9;
int val2 = 10;
int val3 =

6;

int min_val = val1; // берем за минимальный val1

if (val2 < min_val) { // если второе меньше
min_val = val2; // то теперь минимальное val2
}

if (val3 < min_val) { // если третье меньше
min_val = val3; // то теперь минимальное val3
}

printf("min_val = %i", min_val);
}
Минимум из 3 чиселvoid main() {  int val1 = 9;  int val2 = 10;

Слайд 6Оператор ветвления Switch
switch (wParam)
{
case VK_DOWN:
moveDown();
InvalidateRect(hWnd, NULL, TRUE);
break;
case VK_LEFT:
moveToLeft();
InvalidateRect(hWnd, NULL, TRUE);
break;
case

VK_UP:
moveUp();
InvalidateRect(hWnd, NULL, TRUE);
break;
case VK_RIGHT:
moveToRight();
InvalidateRect(hWnd, NULL, TRUE);
break;
}

Оператор ветвления Switchswitch (wParam){		case VK_DOWN:			moveDown();			InvalidateRect(hWnd, NULL, TRUE);			break;		case VK_LEFT:			moveToLeft();			InvalidateRect(hWnd, NULL, TRUE);			break;		case VK_UP:			moveUp();			InvalidateRect(hWnd, NULL, TRUE);			break;		case VK_RIGHT:			moveToRight();			InvalidateRect(hWnd, NULL, TRUE);			break;}

Слайд 7Оператор ветвления Switch
switch (wParam)
{
case VK_DOWN:
moveDown();
InvalidateRect(hWnd, NULL, TRUE);
break;
case VK_LEFT:
moveToLeft();
InvalidateRect(hWnd, NULL, TRUE);
break;
case

VK_UP:
moveUp();
InvalidateRect(hWnd, NULL, TRUE);
break;
case VK_RIGHT:
moveToRight();
InvalidateRect(hWnd, NULL, TRUE);
break;
}

Оператор ветвления Switchswitch (wParam){case VK_DOWN:	moveDown();	InvalidateRect(hWnd, NULL, TRUE);	break;case VK_LEFT:	moveToLeft();	InvalidateRect(hWnd, NULL, TRUE);	break;case VK_UP:	moveUp();	InvalidateRect(hWnd, NULL, TRUE);	break;case VK_RIGHT:	moveToRight();	InvalidateRect(hWnd, NULL, TRUE);	break;}

Слайд 8Шрифты и вывод текста
HFONT hFont;
hFont = CreateFont(40,
0, 0, 0,

0, 0, 0, 0,
DEFAULT_CHARSET,
0, 0, 0, 0,
L"Tahoma"
);
SelectObject(hdc, hFont);
SetTextColor(hdc, RGB(0, 128,

0));
TCHAR text[] = _T("Hello World!!!");
TextOut(hdc, 10, 20, text, _tcslen(text));
DeleteObject(hFont);
Шрифты и вывод текстаHFONT hFont;hFont = CreateFont(40, 	0, 0, 0, 0, 0, 0, 0,	DEFAULT_CHARSET,	0, 0, 0, 0,	L

Слайд 9Шрифты и вывод текста
HFONT hFont;
hFont = CreateFont(80,
0, 0, 0,

0, 0, 0, 0,
DEFAULT_CHARSET,
0, 0, 0, 0,
L"Courier New"
);
SelectObject(hdc, hFont);
SetTextColor(hdc, RGB(0,

128, 128));
TCHAR text[] = _T("Hello World!!!");
TextOut(hdc, 10, 20, text, _tcslen(text));
DeleteObject(hFont);
Шрифты и вывод текстаHFONT hFont;hFont = CreateFont(80, 0, 0, 0, 0, 0, 0, 0,DEFAULT_CHARSET,0, 0, 0, 0,L

Слайд 10Создаем игру – со стрельбой по мишени

Создаем игру – со стрельбой по мишени

Слайд 11Что нужно добавить в stdafx.h
// stdafx.h: включаемый файл для стандартных

системных включаемых файлов
// или включаемых файлов для конкретного проекта, которые

часто используются, но
// не часто изменяются
//

#pragma once

#define _CRT_SECURE_NO_WARNINGS

#include "targetver.h"
Что нужно добавить в stdafx.h// stdafx.h: включаемый файл для стандартных системных включаемых файлов// или включаемых файлов для

Слайд 12Что нужно добавить в cpp файл
// Lection5.cpp: определяет точку входа

для приложения.
//

#include "stdafx.h"
#include "Lection5.h"

#include

#define MAX_LOADSTRING 100

// Глобальные переменные:
HINSTANCE hInst;

// текущий экземпляр
WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка
WCHAR szWindowClass[MAX_LOADSTRING]; //имя класса главного…
Что нужно добавить в cpp файл// Lection5.cpp: определяет точку входа для приложения.//#include

Слайд 13Пишем количество попаданий и промахов (1)
case WM_PAINT:

{
PAINTSTRUCT ps;

HDC hdc = BeginPaint(hWnd, &ps);
// TODO: Добавьте сюда любой код прорисовки, использующий HDC...
HFONT hFont = CreateFont(20,
0, 0, 0, 0, 0, 0, 0,
DEFAULT_CHARSET,
0, 0, 0, 0,
L"Courier New"
);
SelectObject(hdc, hFont);
SetTextColor(hdc, RGB(0, 0, 128));

TCHAR string1[] = _T("Попал:");
TextOut(hdc, 10, 10, string1, _tcslen(string1));

TCHAR string2[] = _T("Промазал:");
TextOut(hdc, 400, 10, string2, _tcslen(string2));
Пишем количество попаданий и промахов (1) case WM_PAINT:    {

Слайд 14Пишем количество попаданий и промахов (2)
char sHit[5]; // локальная переменная

sHit
TCHAR tsHit[5];
sprintf(sHit, "%d", hit); // использование глобальной переменной hit
OemToChar(sHit, tsHit);
TextOut(hdc,

100, 10, tsHit, _tcslen(tsHit));

char sMissed[5];
TCHAR tsMissed[5];
sprintf(sMissed, "%d", missed);
OemToChar(sMissed, tsMissed);
TextOut(hdc, 520, 10, tsMissed, _tcslen(tsMissed));
Пишем количество попаданий и промахов (2)	char sHit[5]; // локальная переменная sHit	TCHAR tsHit[5];	sprintf(sHit,

Слайд 15Отрисовываем Цель и Прицел
DrawGoal(hdc, goalCx, goalCy, goalSize);
DrawAim(hdc, aimX, aimY);

EndPaint(hWnd, &ps);

}
break;

Отрисовываем Цель и Прицел	DrawGoal(hdc, goalCx, goalCy, goalSize);	DrawAim(hdc, aimX, aimY);	EndPaint(hWnd, &ps);    }

Слайд 16Управление перемещением прицела
case WM_KEYDOWN:
switch (wParam)
{
case VK_DOWN:
moveDown();
InvalidateRect(hWnd, NULL, TRUE);
break;
case VK_LEFT:
moveToLeft();
InvalidateRect(hWnd, NULL,

TRUE);
break;
case VK_UP:
moveUp();
InvalidateRect(hWnd, NULL, TRUE);
break;
case VK_RIGHT:
moveToRight();
InvalidateRect(hWnd, NULL, TRUE);
break;
}
break;

Управление перемещением прицелаcase WM_KEYDOWN:		switch (wParam)		{		case VK_DOWN:			moveDown();			InvalidateRect(hWnd, NULL, TRUE);			break;		case VK_LEFT:			moveToLeft();			InvalidateRect(hWnd, NULL, TRUE);			break;		case VK_UP:			moveUp();			InvalidateRect(hWnd, NULL, TRUE);			break;		case VK_RIGHT:			moveToRight();			InvalidateRect(hWnd, NULL, TRUE);			break;		}		break;

Слайд 17Управление огнем
case WM_KEYDOWN:
switch (wParam)
{
case VK_DOWN:

break;

case VK_RETURN:
if (insideGoal(aimX, aimY)) {
hit++;
}
else

{
missed++;
}

InvalidateRect(hWnd, NULL, TRUE);
break;

}
break;

Управление огнемcase WM_KEYDOWN:		switch (wParam)		{		case VK_DOWN:			… 			break;		case VK_RETURN:			if (insideGoal(aimX, aimY)) {				hit++;			}			else {				missed++;			}			InvalidateRect(hWnd, NULL, TRUE);			break;		}		break;

Слайд 18Глобальные переменные
// Параметры цели (мишени)
int goalCx = 300;
int goalCy

= 200;
int goalSize = 100;

// Параметры прицела
int aimX = 100;
int

aimY = 100;

// Счетчики выстрелов
int hit = 0; // попал
int missed = 0; // промазал
Глобальные переменные// Параметры цели (мишени)int goalCx = 300; int goalCy = 200;int goalSize = 100;// Параметры прицелаint

Слайд 19Рисуем цель
void DrawGoal(HDC hdc, int x, int y, int size)

{
HPEN hPen = CreatePen(PS_SOLID, 1, RGB(0, 255, 0));
SelectObject(hdc, hPen);

RecursiveRectagle(hdc, x,

y, size);
}
Рисуем цельvoid DrawGoal(HDC hdc, int x, int y, int size) {	HPEN hPen = CreatePen(PS_SOLID, 1, RGB(0, 255,

Слайд 20Рисуем цель (2)
void RecursiveRectagle(HDC hdc, int cx, int cy, int

size) {
Rectangle(hdc, cx - size, cy - size, cx +

size, cy + size);

if (size < 5) {
return;
}

RecursiveRectagle(hdc, cx - size * 0.45, cy - size * 0.45, size / 2.5);
RecursiveRectagle(hdc, cx + size * 0.45, cy - size * 0.45, size / 2.5);
RecursiveRectagle(hdc, cx - size * 0.45, cy + size * 0.45, size / 2.5);
RecursiveRectagle(hdc, cx + size * 0.45, cy + size * 0.45, size / 2.5);
}
Рисуем цель (2)void RecursiveRectagle(HDC hdc, int cx, int cy, int size) {	Rectangle(hdc, cx - size, cy -

Слайд 21Рисуем прицел
void DrawAim(HDC hdc, int x, int y) {
HPEN hPen

= CreatePen(PS_SOLID, 1, RGB(128, 0, 0));
SelectObject(hdc, hPen);

Ellipse(hdc, x - 40,

y - 40, x + 40, y + 40);
Ellipse(hdc, x - 30, y - 30, x + 30, y + 30);
Ellipse(hdc, x - 20, y - 20, x + 20, y + 20);

MoveToEx(hdc, x - 50, y, NULL);
LineTo(hdc, x + 50, y);

MoveToEx(hdc, x, y - 50, NULL);
LineTo(hdc, x, y + 50);
}
Рисуем прицелvoid DrawAim(HDC hdc, int x, int y) {	HPEN hPen = CreatePen(PS_SOLID, 1, RGB(128, 0, 0));	SelectObject(hdc, hPen);	Ellipse(hdc,

Слайд 22Проверка попадания в цель
int insideGoal(int x, int y) {
if (x

< goalCx - goalSize)
return 0;
if (x > goalCx + goalSize)
return

0;
if (y < goalCy - goalSize)
return 0;
if (y > goalCy + goalSize)
return 0;
return 1;
}
Проверка попадания в цельint insideGoal(int x, int y) {	if (x < goalCx - goalSize)		return 0;	if (x >

Слайд 23Собственно перемещение прицела
void moveDown() {
aimY += 10;
}

void moveToLeft() {
aimX -=

10;
}

void moveUp() {
aimY -= 10;
}

void moveToRight() {
aimX += 10;
}

Собственно перемещение прицелаvoid moveDown() {	aimY += 10;}void moveToLeft() {	aimX -= 10;}void moveUp() {	aimY -= 10;}void moveToRight() {	aimX

Слайд 24Разное
Локальные и глобальные переменные
Передача параметров в функции
Возвращение результата из функции

РазноеЛокальные и глобальные переменныеПередача параметров в функцииВозвращение результата из функции

Слайд 25Домашнее задание (необязательное)
** Собрать игрушку из того, что есть в слайдах


**** Написать свою собственную игру – не стреляем по мишени,

а собираем грибы в корзину, поливаем огород, и т.п.
Домашнее задание (необязательное)** Собрать игрушку из того, что есть в слайдах **** Написать свою собственную игру –

Слайд 26Источники информации
Virtual-Key Codes - https://msdn.microsoft.com/ru-ru/library/windows/desktop/dd375731%28v=vs.85%29.aspx

Источники информацииVirtual-Key Codes - https://msdn.microsoft.com/ru-ru/library/windows/desktop/dd375731%28v=vs.85%29.aspx

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика