ria pc game
fle game engine - движок для создания игр
fle game engine - движок для создания игр


Balls and holes PC game / Balls and Holes PC игра
Вакансии
Игродельня
Сегодня
22 февраля 2019 21:30
Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic - Рисуем красивую девушку всего за 6 шагов

megainformatic - Галерея красивых рисованных девушек

megainformatic - НОВОГОДНЕЕ ОБРАЩЕНИЕ СОЗДАТЕЛЯ webinformatic К ЖИТЕЛЯМ ПЛАНЕТЫ интернет

megainformatic - Отзывы оставленные пользователями как впечатление о проделанной работе или что-либо понравившееся на сайте

megainformatic - Уроки css - атрибут position

megainformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - СОДЕРЖАНИЕ

megainformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - Глава 1 - Обычный день

megainformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - Глава 2 - Начало (begin)

Новогодняя дискотека 2013 на megainformatic точка ru

megainformatic - Программируем на C++ с использованием MFC

megainformatic - Программируем на C++ с использованием MFC - Создание MFC приложения

megainformatic - Программируем на C++ с использованием MFC - Создание MFC приложения - hello, world !

megainformatic - Как создать игру ? - Пишем игровой движок с нуля

megainformatic - Как создать игру ? - Пишем игровой движок с нуля - Вступление

megainformatic - Как создать игру ? - Пишем игровой движок с нуля - Общая структура будущего игрового движка

Разное

megainformatic - Как создать игру ? - Пишем игровой движок с нуля - DXUTMainLoop - цикл работы DirectX-приложения

megainformatic - Варианты макетов Психолог 911

megainformatic - Шаблоны для сайтов - что это и какие они бывают ?

megainformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - Глава 3 - Кто он ? (who is ?)

megainformatic - Мои Музыкальные Миры - готовая музыка mp3 - новинки 2013 года

megainformatic - Теория и практика хакерских атак - самозащита от нападения

megainformatic - Теория и практика хакерских атак - самозащита от нападения - Способы подмены реального IP

megainformatic - Fruity Loops Studio 9 - Как синтезировать свои сэмплы - изучаем возможности плагина Sytrus

megainformatic - Видоизменяем тему для Wordpress под свои нужды

megainformatic - Flash приложения и игры - Шаг 3 - управляемый шарик

megainformatic - Учимся создавать флеш-игры, что нужно знать для того, чтобы заняться созданием flash приложений и игр ?

megainformatic - Шаг 4 в освоении Flash-технологий - как анимировать персонажа и управлять им

megainformatic - Форма для смены шаблонов сайта. Модуль template selector

megainformatic - megainformatic cms express files + module slider

megainformatic - Создание сайта бесплатно или под заказ

megainformatic - Как создать flash баннер

megainformatic - Разработка flash-приложения для сайта: онлайн примерочная

megainformatic - Мои впечатления о книге - Владислав Крапивин - Журавленок и Молнии

megainformatic - Модуль отзывов/комментариев для вашего сайта

megainformatic - Модуль отзывов/комментариев для вашего сайта

megainformatic - Модуль отзывов/комментариев для вашего сайта

megainformatic - Модуль короткие ссылки short link

megainformatic - Работа с сокетами fsocket из php

megainformatic - Как создать игру Создание игровых панелей и индикаторов

megainformatic - Приключения Кости Коробкина - Как я провел лето - интерактивный комикс

megainformatic - Приключения Кости Коробкина - Как я провел лето - интерактивный комикс

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс

megainformatic - Система управления сайтом на php - megainformatic cms admin files

megainformatic - обзор антивирусных средств защиты

megainformatic - как работает антивирус ?

megainformatic - Создание сайта для бизнеса

megainformatic - Новый взгляд на очевидные вещи

megainformatic - Разработка программ на c++

megainformatic - Немного о музыке

megainformatic - GET и POST запросы

megainformatic - для чего нужна карта сайта

megainformatic - Web Администрирование

megainformatic - Мысли о разном

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

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

подробнее

     
 

Вы можете оплатить заказанный Вами продукт следующими способами

Формы оплаты:

- Сбербанк России

- WebMoney на кошелек R423715778532;

- MoneyMail на адрес megainformatic@mail.ru;

Если данные формы оплаты Вам не подходят - напишите на megainformatic@mail.ru каким способом Вы хотели бы оплатить покупку.

Также Вам нужно отправить письмо на адрес megainformatic@mail.ru с указанием названия заказываемого товара.

После подтверждения оплаты в течение 1-3 дней будет выполнена электронная доставка заказанного Вами товара на Ваш e-mail с которого Вы отправили письмо-заявку.

 
     
  Спасибо за проявленное внимание !  
     
подробнее

       
 

Урок 8: Настройка параметров сэмплов

Сэмплы - это основа любой Вашей композиции. От их качества зависит качество получаемого звука. В MT вы не можете создавать свои сэмплы. Их можно только загружать в готовом виде. Для создания сэмплов используйте другие специализированные программы, например Sound Forge (см. уроки 1,2). Однако есть ряд параметров сэмпла, которые Вы можете задавать, меняя тем самым качество получаемого звука.

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

 
       
 

Перейдите в окно списка сэмплов - вкладка Samples. Загрузите какой-нибудь сэмпл и посмотрите какие имеются параметры.

Default volume: громкость сэмпла по умолчанию - вы можете задавать значение 0-64 с клавиатуры - для этого клавишами [Tab] и [Shift]+[Tab] вам нужно перевести курсор в это поле и ввести значение с клавиатуры. Или можно перемещать ползунок - мышью!

Global volume: глобальная максимальная громкость которую можно установить для сэмпла.

Set pan: значение панорамы (смещение баланса между левым и правым стерео-каналами) по умолчанию. Отсутствие галочки соответствует отключенному состоянию панорамы - когда мы вообще не регулируем ее. Значение поля соответствует заданному балансу. 0 - полное смещение в левый канал и 128 - в правый.

Auto-Vibrato, Depth, Sweep, Rate - параметры задающие управление вибрацией звука генерируемого сэмплом. Это соответственно - форма волны вибрации, глубина, скорость и диапазон вибрации. Поэкспериментируйте - сразу поймете что к чему!

 
       
 

Важные характеристики сэмпла:

В левой половинке окна параметров сэмпла остались самые важные параметры: (Сверху-вниз по-порядку) -Name, File - название сэмпла и имя файла (беспокоиться о его расположении не нужно, т.к. будучи загруженным в композицию сэмпл становится ее частью и располагается внутри), но информация о названии может быть вам полезна тогда, когда Вы захотите загрузить и в другую свою композицию какой-то такой же понравившийся Вам сэмпл; Freq- базовая частота дискретизации сэмпла (Гц) c которой воспроизводится нота в поле Transpose. Принцип генерации звуков всех других нот довольно прост - каждая нота имеет определенное (стандартизированное) смещение в частоте дискретизации относительно базовой ноты (С-4). Например, следующая нота C#4 - имеет смещение в 4 Гц, D-4 - в 1024 Гц и т.п. Таким образом звук более высокой (по тону) ноты проигрывается быстрее давая звук более высокой звуковой частоты и наоборот - медленнее - ниже. Этим способом воспроизводится все богатство нот генерируемых одним лишь сэмплом. Базовую частоту дискретизации сэмпла можно легко изменить - выполнив смещение на полутон или целую октаву или просто введя производльное (до определенного предела) значение. Такое смещение естественно повлияет на расстановку тонов нот. Поэтому если правильный сэмпл использовать с неправильной частотой дискретизации это может привести к эффекту "расстроенного рояля" - т.е. ноты инструмента будут выдавать совсем не те тона, которые им положены. Здесь мы подошли к вопросу о базовой частоте создаваемых сэмплов. Когда Вы создаете свои сэмплы учитывайте частоту звука задаваемую Вами при генерации сэмпла в Sound Forge, а затем проверяйте свой сэмпл на слух в IT и при необходимости корректируйте частоту задаваемую в Sound Forge или базовую частоту дискретизации в IT.

У такого способа генерации звуков нот есть и недостаток - ноты верхних октав воспроизводятся с более высокой скоростью, поэтому длительность звука при воспроизведении этих нот становится меньше. Например, если Ваш сгенерированный в Sound Forge сэмпл имел длину в 1 секунду - то эта длина относится только к воспроизведению ноты C-4. Ноты же более низких октав будут длиннее - в соответствии с понижением их частот дискретизации, ноты более высоких октав будут короче.

 

 
       
 

Смещение базовой частоты сэмпла - задается выбором ноты из поля Transpose.

Другие параметры сэмпла: Loop - зацикливание - приводит к бесконечному воспроизведению сэмпла остановить которое можно - нажатием клавиши другой ноты, клавиши [F8]. При проигрывании нот таким сэмплом в паттернах звук можно погасить командой ^^ - клавиша [1] при работе в режиме РЕДАКТИРОВАНИЯ ПАТТЕРНА или командой задающей нулевую громкость - 00 в столбце громкости. Параметр Loop может быть только в одном из трех состояний - Off/On Forward/On Pin-Pong- Выключено/Включено прямое воспроизведение/Включено воспроизведение вида с начала до конца - с конца до начала.

Start и End - задают кусок сэмпла, который будет бесконечно повторяться при зацикливании. Значения задаются в байтах от длины сэмпла (len).

 
 

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

Sustain Loop, Start, End - задаются цикл Sustain - удержание звука. Почти то же, что и Loop - но с постепенным затуханием звука.

 

В окошке ниже должен отображаться вид сэмпла (так как Вы его видите при создании в Sound Forge).

 
       
 

Попробуйте загрузить небольшой примерчик композиции - здесь. И мы займемся его рассмотрением.

Скачайте данный пример, распакуйте из архива и откройте из MT.
 
       
 
Предполагаем, что Вы уже запустили MT и открыли данный пример - композиция primer1.it

Перейдите в окно редактирования паттернов - вкладка Patterns. Вы увидите в первом канале набор нот и набор команд.

 

 
       
 

Теперь Вы можете поэкспериментировать - сначала попробуйте воспроизвести то, что есть - [F5]. Хорошо? Тогда стоп - [F8]. Попробуйте что-нибудь изменить - ноты, эффекты, значения параметров эффектов и т.п.

Список всех эффектов смотрите в справочной системе - Help > Contents. Читайте и пробуйте!  
       
 

Ну как? Здорово?!

Теперь Вы уже знаете почти всё для того, чтобы создавать свою музыку. Опыт придёт к Вам по-мере того, как Вы будете экспериментировать!

 
 

 

 
       
       
       
       
  [Предыдущий урок] [Все уроки]  
подробнее

     
  Другие уроки можно посмотреть в разделе Статьи  
     
 

Небольшой урок по php - Использование checkbox

казалось бы - что может быть проще - обычный checkbox - - но оказывается надо учитывать несколько особенностей для корректной работы с этим элементом управления на ваших Web-страничках

 
     
  Создадим файл checkbox.php и вставим в него такой код -  
     
  <HTML>
<HEAD>
<TITLE>Просмотр списка статей</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
</HEAD>
<BODY>

<div style="width: 990px; margin: 0 auto; background: #777777;">
<div style="width: 900px; margin: 0 auto; background: #aaaaaa;">

<?php

/* Особенность работы checkbox'а

если чекбокс установлен - при отправке данных формы передается его значение value
если чекбокс не установлен - при отправке данных формы не передается ничего !!!

*/

echo "Флажок ";
$published = 1;
$checked = '';

if ( $_POST['published-1'] == 1 )
{
$checked = 'checked = "checked"';
//$published = 1;
echo "установлен";
}
else {
$checked = '';
//$published = 0;
echo "сброшен";
}


$num = 1;

echo "<form name='save_changes' action = 'checkbox.php' method = 'POST'>";
echo "<input type=\"checkbox\" ".$checked." name=\"published-".$num."\" value=\"".$published."\">";
echo "<input type = 'submit' value = 'Сохранить изменения'>
</form>";


?>
</div>
</div>

</BODY>
</HTML>

 
     
  Если Вы совсем не курсе где и как должны выполняться php файлы том вам нужно ознакомиться со статьей - Введение в php  
     
  Рассмотрим что делает данный код  
     
 

echo "Флажок ";
$published = 1;
$checked = '';

Эти три строчки выводят надпись Флажок, а также создают 2 новые переменные со значениями 1 и '' - т. е. пустая строка

if ( $_POST['published-1'] == 1 )

 
     
 

Проверяем было ли отправлено в форму методом пост поле published-1 со значением равным 1,

если да -

$checked = 'checked = "checked"';
//$published = 1;
echo "установлен";

Переменную $checked заполняем строкой представляющей атрибут checked для чекбокса при котором чекбокс на странице будет выведен как помеченный галочкой.

Также выводим фразу - установлен - будет понятно что флажок был установлен

иначе -

else {
$checked = '';
//$published = 0;
echo "сброшен";

атрибут checked не задаем, выводим фразу - сброшен

 
     
 

$num = 1;

эта переменная будет задавать часть имени нашего чекбокса

 
     
 

echo "<form name='save_changes' action = 'checkbox.php' method = 'POST'>";
echo "<input type=\"checkbox\" ".$checked." name=\"published-".$num."\" value=\"".$published."\">";
echo "<input type = 'submit' value = 'Сохранить изменения'>
</form>";

выводим форму, которая выводит чекбокс с атрибутом checked заданным в переменной $checked, именем состоящим из слова published тире - и переменной $num и значением value которое подставляется из переменной $published,
также выводим кнопку сохранить изменения

 
     
 

Это чудо работает таким образом - если зададим состояние чекбокса и нажмём кнопку <Сохранить изменения>, то фраза Флажок установлен или сброшен - будет показывать состояние чекбокса.

Но вот само состояние чекбокса надо выставлять через созданную нами переменную $checked

как видите после нажатий кнопки <Сохранить изменения> чекбокс своё состояние теряет, а должен сохранять.

Как это исправить ?

Легко - находим самую первую строчку начала php кода -

echo "Флажок ";
$published = 1;
$checked = '';

и закомментируем строку

//$checked = '';

после проверки выясняем, что теперь чекбокс сохраняет своё состояние :)

Работающий пример на php смотрите тут - checkbox.php

ВОТ и ВСЁ на сегодня. Ждите новых уроков.

 
     
  Другие уроки можно посмотреть в разделе Статьи  
     
подробнее

     
     
  Уроки Photoshop  
     
  Уроки Photoshop  
     
 

Данный сборник уроков рассчитан на освоение работы в Adobe Photoshop версий 6, 7, 8, 9, 10, 11 и выше. Для более ранних и более поздних версий возможны некоторые отличия в описаных действиях. Общие описанные принципы остаются неизменными!

В сборник вошли 35 статей - быстрый старт, быстрый старт 2, раскраска, варианты раскраски, текстуры, горная порода, синтез, трава, песок, набор текстур, глина, ткань, огонь, растения, металл, элемент, небо, камни, кора, вода, древесина, шерсть, обработка фото, фотомонтаж, эффекты, ретушь, оцветнение, визитка, открытка, виньетка, штабдок, персонаж, gif, web-арт, RGB / HSB / CMYK

 
     
  все уроки Photoshop    
   
  Купить программу Уроки Photoshop  
  Требования к читателю  
     
  У читателя предполагается наличие базовых принципов владения ПК - пониманием работы в Windows и типовых Windows-приложениях типа Проводник (Мой компьютер).  
     
  На компьютере необходимо иметь установленную программу Adobe Photoshop одной из версий от 6 до 9. Для версий ниже 6 или выше 9 могут быть более или менее значительные расхождения с тем, что описано.  
     
  Рисуем волка из мультфильма  
  Рисуем волка из мультфильма - Показанная техника рисования применялась при создании мультфильма в эмуляторе электронной игры ИМ-02 "Ну, Погоди!"  
     
     
  Содержание:  
  основные части окна Photoshop  
  Быстрый старт - основные элементы окна, открытие графических файлов, инструмент Лупа (Zoom Tool), растровые изображения, определение объема изображения в памяти;  
     
     
  контуры цветка  
  Быстрый старт page 2 - о форматах графических файлов, векторная графика, создание нового изображения, рисование контуров, сохранение файла.  
     
  нарисуем вот такого медвежонка  
  Раскраска - использование слоёв, заливка, инструмент выделения Волшебная палочка;  
     
  вид раскрашенной текстуры, наложенной на 3D-модель  
  Варианты раскраски - градиентные заливки, применение инструментов Кисть, Осветление, Затемнение.  
     
  Для тех, кто постиг предыдущий материал (stage 1)  
     
  образец текстуры - Грязь  
  Текстуры, текстурные заливки - понятие текстуры, текстурной заливки, создание тайловых (бесшовных) текстур.  
     
  фотография реального образца текстуры  
  Создаем текстуру горной породы на основе фотографии реального образца - описаны методы исследования структуры текстуры и процесс создания фотореалистичной текстуры.  
     
  искусственно созданный новый образец  
  Создание вариантов на тему созданной текстуры - описываются методы исследования и синтеза новых текстур.  
     
  текстура травы  
  Рисование текстуры травы - описывается методика создания однородных текстур на примере создания куста травы с последующим распространением на всём пространстве текстуры. Применив Фильтр Смещение (Offset) и заполнив швы можно получить бесшовную текстуру.  
     
  песок  
  Рисование текстуры песка, детализация текстуры - описывается способ рисования песка, добавление деталей (теней, бликов, камешков и т.п.)  
     
  базовый набор текстур игрового (художественного) проекта  
  Подготовка набора текстур для игрового (художественного) проекта - некоторые основные типы текстур, особенности их создания, детализации. Рассматриваются принципы создания огоня, воды, неба, ткани, металла, шерсти, дерева и некоторых других.  
     
  clay - глина  
  Рисование текстур глина, грязь - с использованием Фильтров Шум, размытие по Гауссу описан пошаговый процесс создания текстуры, похожей на глину, грязь. Показан способ добавления деталей - трещин на пересохшей глине.  
     
  текстуры ткани  
  Создание тканеподобных текстур - показано как из отдельных элементов строится текстура. Варьированием элементов, фильтров и эффектов можно достичь самых различных результатов. Показана работа вначале с обесцвеченной (черно-белой текстурой) для лучшего анализа светлотности. Затем текстура оцветняется. Приводятся и 2 альтернативных варианта результатов.  
     
  огонь  
  Огонь, создание огня. Описывается рисование текстуры огня Кистью и при помощи фильтров. Создание альфа-маски, анимация в Image Ready.  
     
  Создание растительных текстур и объектов  
  Создание растительных текстур и объектов на примере создания текстуры дерева. Тестирование полученных текстур на 3D-моделях.  
     
  примеры околометаллических текстур  
  Продолжаем создавать основные типы текстур - металл.  
     
  один из примеров чешуевидной текстуры  
  Остановимся на создании элементно-упорядоченных текстур на примере создания чешуевидной текстуры  
     
  небо и облака  
  Займемся рисованием небесных текстур - небо и облака.  
     
  каменистая порода  
  Нарисуем обломки скал и камни.  
     
  вариант текстуры коры дерева  
  Создаем кору дерева.  
     
  анимированная текстура воды  
  Создание анимированной текстуры (альфа-маски) для воды  
     
  текстура древесины  
  Создание древесины - просто и быстро  
     
  шерсть  
  Создаем шерсть животного - еще быстрее, еще проще  
     
  Ну что ж, мы очень много времени уделили рисованию, созданию от нуля, совершенствованию, на примере создания некоторых основных типов текстур. Если Вы всерьез хотите заняться текстурами и рисованием текстур, то этого материала, конечно же совсем недостаточно. Вам следует заняться дальнейшей проработкой материала - подбором необходимых натуральных образцов, уделению внимания деталям, созданию разновидностей, документированию тех новых особенностей, которые Вы обнаружите в ходе работы. И так, шаг за шагом Вы придете к созданию своей личной библиотеки текстур и алгоритмов их создания. Главное теперь - это не останавливаться на достигнутом и продолжать работу далее. А сейчас мы займемся рассмотрением вопросов, по большей части посвященных фотодизайну и обработке цифрового фото, хотя, будут затронуты и вопросы креативной работы, создания от нуля - в соответствующих темах. Приступим!  
     
  устранение эффекта красных глаз, цветокоррекция, очистка от пыли и царапин  
  Обработка фото - устранение эффекта красных глаз, цветокоррекция, очистка от пыли и царапин  
     
  Основы фотомонтажа  
  Основы фотомонтажа - использование ластика для правильного стирания фона, изменения положения, масштаба вставляемых объектов, цветокоррекция, дополнительные элементы сцены, построение трехмерной вспомогательной сетки для облегчения ориентирования объектов в сцене. Также разобраны некоторые типичные ошибки фотомонтажа.  
     
  Применение эффектов слоев к изображениям, тексту  
  Применение эффектов слоев к изображениям, тексту - показано на примере рисования клеточной сетки, поэкспериментировав с применением эффектов к ней Вы быстро поймете что и как.  
     
  Ретушь старых фотографий  
  Ретушь старых фотографий - показаны основные инструменты восстановления, показан способ Ретуши с соблюдением критерия Качество/Скорость.  
     
  Обесцвечивание цветных, оцветнение черно-белых фотографий  
  Обесцвечивание цветных, оцветнение черно-белых фотографий - показаны способы оцветнения, обесцвечивания.  
     
  придумываем и создаем дизайн визитки сотрудника фруктовой компании  
  Создание визитки - придумываем и создаем дизайн визитки сотрудника фруктовой компании  
     
  как сделать интересную фотооткрытку при помощи фотомонтажа  
  Создание открытки - как сделать интересную фотооткрытку при помощи фотомонтажа  
     
  создание виньеток  
  Создание виньеток - Вам будет рассказано и показано как создать виньетку для выпускников садика, школы или института  
     
  готовая 3D-модель с наложенной текстурой  
  Изображения для компьютерных игр - показан пример раскрашенной текстурной развертки для 3D-модели, рассказано о создании детализированных текстур.  
     
  3D-персонаж  
  Рисование персонажа для компьютерной игры - рассказано об основных моментах создания персонажа человека, имеется готовая модель персонажа в формате 3ds max7, которую можно использовать как манекен для экспериментов с рисованием текстуры персонажа  
     
  простейшая анимация  
  Создание анимаций для Web-публикаций в формате GIF (используем Image Ready)  
     
  создание объемных кнопочек  
  Графика для web-публикаций - пример создания объемной кнопки с надписью.  
     
  цвет, цветовые модели  
  Принципы растровой графики, цветовые модели (RGB, HSB, CMYK, градации серого, Lab, Web). Рассказано о формировании изображения на экране монитора, о том как воспринимает цвет человеческий глаз и о том, что такое цветовые модели.  
     
     
   
     
 

Разбираем конструкции языка 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

 
     
  в следующем уроке мы рассмотрим операторы объявления переменных и обработки исключений  
     
  [назад] [далее] [к содержанию]  
megainformatic live chat
Начать беседу
X
 

Оставленные комментарии



fle game engine - движок для создания игр
fle game engine - движок для создания игр


Something: Unexplained 2 captive of desires / Нечто: Необъяснимое 2 в плену желаний
Костя Коробкин Комикс Коллекционное издание - 6 комиксов, 81 страница, 220 mp3 треков
megainformatic Размещение баннерной рекламы у нас
Время загрузки: 1,9334