Сегодня
13 ноября 2024
9:37
Вход Sign In Регистрация Sign Up Забыли пароль ? Forgot password ?
VARVE - Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2)
        Мастер-класс: Со
подробнее...

Теги

сайты, игры, дизайн, продвижение, php, html, css, my sql, c++, delphi, photoshop, 3ds max, fl studio, трекерская музыка, уроки

Статьи сайта

Технологии WEB - AJAX-запросы

Легко ли быть программистом

От идеи к реализации - трудно ли создавать сайты ?

Проблемы с кодировками при отображении страниц

игра Нечто: Необъяснимое Нить Накала - "в плену желаний"

Система Автоматизации Доставки Электронных Заказов megainformatic cms e-pro

megainformatic cms e-pro Автоматизация Обработки Уведомлений о Заказах по партнерским программам

Глубины программирования на C++

VARVE: Музыкальная страничка трэкера

Создание музыки и звука

VARVE: Создание музыки и звука: урок 2

Создание музыки и звука: урок 3 - настройка Impulse Tracker для работы в WinXP

Создание музыки и звука: урок 4 - Введение в Mod Plug Tracker

Создание музыки и звука: урок 5 - Первая композиция в Mod Plug Tracker

Создание музыки в Impulse Tracker 2.14 - урок 6 - Ввод Нот

Создание музыки в Impulse Tracker 2.14 Первая мелодия

Создание музыки в Impulse Tracker 2.14 Настройка параметров сэмплов

Создание музыки и звука: теория и практика создания трэкерской музыки

Что такое VARVE ?

Основы работы в Microsoft Visual Studio 2008 и DirectX 9 (DX SDK Aug 2008)

Введение в программирование игр на С++ для платформы DirectX 9 - Первый старт

Введение в программирование игр на С++ для платформы DirectX 9 - Меняем иконку приложения

Введение в программирование игр на С++ для платформы DirectX 9 Добавляем другую модель

Введение в программирование игр на С++ для платформы DirectX 9 Программирование игр в directx. Hello, World!

Введение в программирование игр на С++ для платформы DirectX 9 Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008

Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008 - Урок 1 Основные операторы языка C++

Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008 - Урок 1 Основные операторы языка C++ (часть 2)

Урок 2 Написание Win32-приложений. Обзор стартового кода Win32-приложения. Добавление ресурса текстовая строка

Урок 3 Создание Win32-приложений. Создание меню и простых диалоговых окон.

Урок 4 Создание Win32-приложений. Стандартные диалоги. Изучение сопутствующих конструкций языка. Консольные Win32-приложения. Указатели. Ссылочный тип. Массивы.

Урок 4 часть 2 Win32. Диалог выбора цвета, смена цвета фона окна приложения

Написание приложения DirectX9c + MFC в среде MSVS 2005

Создание компьютерных игр на основе DirectX в среде Delphi 6, 7

Создание компьютерных игр на основе DirectX в среде Delphi 6, 7 - Почему избраны DX8 и Delphi ?

Основы IDirectMusic8 в среде Delphi6-7

Основы DirectInput8 в среде Delphi 7

Основы DirectSound8 в среде Delphi6-7

Плагин для 3DS MAX из DX9 SDK

Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2)

Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 2

Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 3

Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 4

Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 5

Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 6

Система управления сайтом - megainformatic cms e-shop

Моделируем девушку в 3ds max - Женская грудь

Моделируем девушку в 3ds max - Тело

Уроки 3ds max - Введение в 3ds max

ГАЛЕРЕЯ 3D-моделей

СОЗДАНИЕ МАКЕТА ПОМЕЩЕНИЯ

Создание макета помещения - этап 2

МОДЕЛИРОВАНИЕ НА УРОВНЕ МНОГОУГОЛЬНИКОВ

СОЗДАНИЕ ПРЕДМЕТОВ ОБСТАНОВКИ ПОМЕЩЕНИЯ

Моделирование обстановки помещения

Создание модели автомобиля

Создание текстурной развертки для модели автомобиля

Создание анимации вращающихся колес автомобиля

игра Нечто: Необъяснимое и в плену желаний

Основы 3D-анимации, экспорт скелетной анимации

Подготовка модели к использованию скелетной анимации

Продолжаем Создание скелета для данной модели

Построение ирерархических связей между объектами и основы 3d анимирования

Особенности экспорта моделей и анимации экспортером kWXPort080719 из 3ds max 2009 

Создание модели броневика (Хэд)

megainformatic cms e-mailer

Моделируем девушку в 3ds max - Моделируем руку

Моделируем девушку в 3ds max - Кисть руки

Бесплатная Система Управления Вашим Сайтом - megainformatic cms free

Путешествие в мир 3d

Путешествие в мир 3d - страница 2

Путешествие в мир 3d - страница 3

Путешествие в мир 3d - страница 4

Путешествие в мир 3d - страница 5

Путешествие в мир 3d - страница 6

Создание модели броневика (Хэд) - Анимация вращения колес

megainformatic cms express files

Моделируем девушку в 3ds max - Моделируем голову

Моделируем девушку в 3ds max - Моделируем голову страница 2

Уроки Photoshop - Чудеса

megainformatic cms express files - Развертывание сайта на Вашем хостинге

Настольная игра "Веселый Буквоежка"

Уроки delphi directx 8.1

Уроки delphi directx 8.1 - Урок 1 - Введение в Delphi DirectX 8.1. Создание шаблона стартового приложения.

Уроки delphi directx 8.1 - Урок 1 - Введение в Delphi DirectX 8.1. Создание шаблона стартового приложения. Страница 2

Урок 2 Создаем и обрабатываем команды меню.

Урок 2 Создаем и обрабатываем команды меню. Страница 2

Урок 3 Оконный и полноэкранный режимы работы D3D-приложения. Управление игрой средствами DirectInput8

Урок 3 Оконный и полноэкранный режимы работы D3D-приложения. Управление игрой средствами DirectInput8 - Страница 2

Урок 3 Оконный и полноэкранный режимы работы D3D-приложения. Управление игрой средствами DirectInput8 - Страница 3

Урок 4 Построение класса приложения

Урок 4 Построение класса приложения - Страница 2

Урок 5 Построение классов игровых объектов и других необходимых классов

Урок 5 Построение классов игровых объектов и других необходимых классов - Страница 2

Урок 6 Игровая логика

Заметки по joomla - JFolder::create: Path not in open_basedir paths. Что это?

megainformatic cms express files - Добавление статей на сайт под управлением megainfromatic cms express files

Урок 7 2D-анимация

Урок 8 Загрузка/Сохранение текущей игры, режим паузы, режимы часов/будильника, запуск браузера Internet Explorer для показа сайта разработчика и других интернет-ресурсов

Урок 9 Тестирование и отладка приложения

Мои Музыкальные Миры

уроки Photoshop free

Создание фотореалистичной текстуры травы

megainformatic cms express

Моделируем девушку в 3ds max - Соединяем все части тела в единую модель

Моделируем девушку в 3ds max - Соединяем все части тела в единую модель страница 2

Моделируем девушку в 3ds max - Соединяем все части тела в единую модель страница 3

Методы создания растровых изображений в Adobe Photoshop

Рабочее пространство Adobe Photoshop

Бесшовные (тайловые) текстуры

Создание изображений огня, воды, неба

Создание текстур горных пород и суши (урок 5)

Рисование персонажей (урок 6)

Рисование фона (урок 6 часть 2)

Рельефные изображения

Добавление статей на сайт под управлением megainformatic cms express

Воспроизведение файлов в форматах it, xm, s3m, mod

 

Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008

Урок 1 Основные операторы языка C++

 
     
     
     
 

Данный небольшой урок является введением в программирование на C++ в MSVS 2008

Вам нужно иметь установленную среду Microsoft Visual Studio 2005 или 2008 (можно триал)

 
     
  [назад] [далее] [к содержанию]  
     
  Мы рассматриваем основные конструкции языка C++ на примере работы в Microsoft Visual Studio 2008  
     
  В предыдущем уроке мы создали небольшой калькулятор. Этот урок позволил нам бегло познакомиться с некоторыми из конструкций языка C++ и некоторыми функциями.  
     
 

Теперь пришло время начать освещение основных базовых конструкций языка C++ на конкретных примерах

Основные операторы (statements) языка - этой теме посвящен следующий раздел MSVS 2008 Documentation (далее просто Help) - Development Tools and Languages > Visual Studio > Visual C++ > Reference > C/C++ Languages

- использование операторов помеченных меткой;

- построение выражений;

- пустой оператор;

- операторы наполнения (логические скобки);

- операторы выбора (ветвлений);

- операторы организации циклов;

- операторы перехода (передачи управления);

- операторы объявления переменных;

- операторы обработки исключений;

 
     
 

- использование операторов помеченных меткой;

метка (label) это особый тип идентификатора, который позволяет пометить нужную строку кода в программе содержащую исполнимый оператор, а затем использовать имя этой метки в операторах передачи управления и выбора.

Пример из MSVS 2008 Help

// labels_with_goto.cpp
// compile with: /EHsc
#include <iostream>
int main() {
using namespace std;
goto Test2;

cout << "testing" << endl;

Test2:
cerr << "At Test2 label." << endl;
}

 
     
 

данный пример рассчитан на консольное приложение. Как видим в отличие от delphi метка не требует предварительного объявления. Достаточно лишь указать допустимый идентификатор метки (Слово начинающееся с буквы) и закончить его двоеточием указав в нужном месте программы. Метка всегда указывает на исполнимый оператор! Даже если в этом месте будет записана строка комментария например так -

Test2:

//
cerr << "At Test2 label." << endl;

будет считаться, что метка указывает именно на исполнимый оператор, все незначащие строки (комментарии) при этом игнорируются.

 
     
 

- построение выражений;

операторы выражений приводят к вычислению какого-либо результата, никакой передачи управления или итерации при этом не происходит.

Выражение должно завершаться точкой с запятой.

Примеры выражений:

coord_x = coord_x + 10 * MoveSpeed * TimeCounter;

absc2 = sqrt( abs ( c1 ) );

 
     
 

- пустой оператор;

Это строка содержащая лишь точку с запятой, т.е.

;

 
     
 

- операторы наполнения (логические скобки);

это пара фигурных скобок { и }. Применяется как блок операторов там, где вместо одного оператора нужно использовать целую группу. Блок может не содержать ни одного оператора вообще, тогда это просто пустой блок.

Пример:

if( Amount > 100 )
{

cout << "Amount was too large to handle\n";
Alert();

}
else

Balance -= Amount;

Все переменные объявленные внутри блока без префикса static являются локальными для данного блока.

 
     
 

- операторы выбора (ветвлений);

оператор switch - оператор ветвлений

мы уже сталкивались с этим оператором в предыдущем уроке, когда писали пример простейшего калькулятора

форма записи этого оператора

switch ( expression )
case constant-expression : statement
[default : statement]

выражение в скобках должно давать целочисленный результат

каждый оператор case позволяет выполнять заданный блок кода в зависимости от указанного целочисленного значения

блок кода при default выполняется когда значению выражения не соответствует ни одна строка с оператором case

Пример:

// switch_statement2.cpp
// C2360 expected
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
switch( tolower( *argv[1] ) )
{
// Error. Unreachable declaration.
char szChEntered[] = "Character entered was: ";

case 'a' :
{
// Declaration of szChEntered OK. Local scope.
char szChEntered[] = "Character entered was: ";
cout << szChEntered << "a\n";
}
break;

case 'b' :
// Value of szChEntered undefined.
cout << szChEntered << "b\n";
break;

default:
// Value of szChEntered undefined.
cout << szChEntered << "neither a nor b\n";
break;
}
}


заметьте, что в каждом блоке кода оператора case, а также в блок default применяется оператор break. Он позволяет закончить исполнение оператора switch, в противном случае может быть дополнительно выполнен блок кода в ветви default. Если это действительно требуется, то оператор break не нужен, в противном случае его нужно применять всегда!

Если Вы программировали на Delphi, то заметите, что аналогом оператора switch в delphi является оператор case. Т.е. switch в C++ и case в Delphi это одно и то же. Отличия состоят в синтаксисе, наличие строки default (в C++) и применении оператора break (в C++).

к операторам выбора также относится оператор условия if

if ( expression )
statement1
[else
statement2]

как видим он похож на использование оператора if в delphi, с тем лишь отличием, что слово then не используется.

Пример:

// if_else_statement.cpp
#include <stdio.h>

int main() {
int x = 0;
if ( 1 ) // if statement #1
// {
if ( !x ) // if statement #2
printf_s("!x\n");
else // paired with if statement #2
printf_s("x\n");
// }
}

существенное отличие оператора if в C++ состоит в том, что выражение при if может принимать не логические значения (тип boolean), а целые - 0 и 1. Нулю соответствует логический FALSE (ложь), единице TRUE - истина.

Поэтому в C++ аналогом delphi-конструкции

if SomeObject <> nil then {...}

else {...};

будет являться

if SomeObject

{

}

else

{

}

 
     
 

- операторы организации циклов;

служат для выполнения одной и той же группы операторов итеративно.

Различают циклы с предусловием while, пост условием do и цикл с заданным количеством итераций for

while ( expression )
statement

в цикле while группа операторов statement выполняется пока значение выражения expression не достигнет нуля

Пример:

кусок кода на delphi7

aCurrentCharnum := 0;
SomeParamStr = 'param1; param2;';
ParamDelimeter = ';';
ParamStr := '';
while aCurrentStr[aCurrentCharnum] <> ParamDelimeter do begin
ParamStr := ParamStr + aCurrentStr[aCurrentCharNum];
Inc(aCurrentCharNum);
end;

при условии, что требуемые переменные объявлены, на C++ будет выглядеть так

int aCurrentCharnum = 0;
String^ SomeParamStr = L"param1; param2;";
Char ParamDelimeter = ';';
String^ ParamStr = L"";
String^ aCurrentStr = SomeParamStr;
while (aCurrentStr[aCurrentCharnum] != ParamDelimeter)
{
ParamStr = ParamStr + aCurrentStr[aCurrentCharnum];
aCurrentCharnum++;
}

 
     
  Обязательно напишите и проверьте работу этого кода в приложении наподобие HelloWorldCLR  
     
 

оператор цикла с пост-условием do

do
statement
while ( expression ) ;

оператор do является аналогом цикла repeat..until в delphi

Пример:

int i = 0;
String^ SomeStr = L"";

do
{
SomeStr = SomeStr + Convert::ToString(i);
i++;
} while (i < 3);
button1->Text = SomeStr;

по нажатию на кнопку на ее поверхности выводится 012

 
     
 

цикл for

for ( init-expression ; cond-expression ; loop-expression )
statement

про цикл for в документации по MSVS рассказано много интересных вещей, так что за подробностями обратитесь к ней.

Кратко же использование цикла for выглядит так -

Пример:

String^ SomeStr = L"";

for (int i = 0; i<5; i++)
{
SomeStr = SomeStr + Convert::ToString(i);
}
button1->Text = SomeStr;

на поверхности кнопки появляется текст 01234

 
     
 

- операторы перехода (передачи управления);

к операторам перехода относятся операторы изменяющие обычный последовательный ход исполнения программы -

break, continue, return, goto

оператор break аналогичен оператору break в delphi - служит для немедленного выхода из цикла for, while и do, кроме того используется для выхода из ветви оператора switch (в delphi для этих целей не применяется)

оператор continue аналогичен оператору continue в delphi - служит для немедленного перехода к следующей итерации цикла for, while и do

оператор return

return [expression]

служит для возврата из функции или процедуры. Если выполняется возврат из функции, то значение выражения expression возвращается в качестве результата. Для функций void (процедур) никакого результата не возвращается.

Для возврата из процедуры (функция с результатом void) специального вызова return не требуется. Выполнение процедуры будет закончено там, где кончаются ее логические скобки.

оператор goto служит для безусловной передачи управления на указанную метку -

goto identifier ;

Примеры:

для корректного выполнения примера в приложении Windows Forms добавьте на форму поле ввода textBox1

int somenum = Convert::ToInt32(textBox1->Text);

for (int i = somenum; i < (somenum+3); i++)
{
if (i == (somenum+1))
{
textBox1->Text = Convert::ToString(i);
break;
}
}

данный код добавьте в обработчик нажатия на кнопку button1 размещенную на форме Form1

по нажатию на кнопку в поле textBox1 вместо введенного значения появляется значение на 1 большее

в случае когда поля textBox1 пусто вырабатывается исключительная ситуация. Ее можно избежать, если для свойства Text у textBox1 задать любое числовое значение, которое будет значением по умолчанию

// continue_statement.cpp
#include <stdio.h>
int main()
{
int i = 0;
do
{
i++;
printf_s("before the continue\n");
continue;
printf("after the continue, should never print\n");
} while (i < 3);

printf_s("after the do loop\n");
}

пример с использованием continue показывает как строка after the continue, should never print никогда не будет выведена на консоль

// return_statement2.cpp
#include <stdio.h>

int max ( int a, int b )
{
return ( a > b ? a : b );
}

int main()
{
int nOne = 5;
int nTwo = 7;

printf_s("\n%d is bigger\n", max( nOne, nTwo ));
}

пример функции выбора максимального числа из двух заданных

// goto_statement.cpp
#include <stdio.h>
int main()
{
int i, j;

for ( i = 0; i < 10; i++ )
{
printf_s( "Outer loop executing. i = %d\n", i );
for ( j = 0; j < 2; j++ )
{
printf_s( " Inner loop executing. j = %d\n", j );
if ( i == 3 )
goto stop;
}
}

// This message does not print:
printf_s( "Loop exited. i = %d\n", i );

stop:
printf_s( "Jumped to stop. i = %d\n", i );
}

а это был пример использования оператора goto

 
     
  в следующем уроке мы рассмотрим операторы объявления переменных и обработки исключений  
     
  [назад] [далее] [к содержанию]  
 
Рейтинг@Mail.ru
Время загрузки: 0,0172