Школа создателей компьютерных игр

BannerDrive.ru
[Главная] [С чего начать?] [Дистанционное обучение] [Статьи] [Обучалки] [Книги] [Софт] [Форум] [Ссылки] [О сайте]

Функции часть 2



Подпишитесь на рассылку "Создание компьютерных игр"

Рассылки Subscribe.Ru
Создание компьютерных игр

Рассылка выходит раз в месяц.


Понравился сайт? Узнайте, как помочь сайту.


Рекомендуемые книги


Андре Ламот.
Программирование трехмерных игр для Windows. Советы профессионала по трехмерной графике и растеризации


Андре Ламот.
Программирование игр для Windows. Советы профессионала


Проголосуйте за сайт в рейтинге GameTop!
(нажмите на кнопку рейтинга)

GameTop - рейтинг игровых ресурсов. Портал Rolemancer (www.rolemancer.ru)

Не забывайте, что результаты рейтинга обновляются раз в неделю. Пожалуйста, голосуйте почаще!


Статистика посещаемости

Rambler's Top100

Функции | Все обучалки раздела | Случайные числа

Описание

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

Программа реализует функцию, выполняющую возведение числа в степень.

Скачать обучалку (Visual C++ 6)

Работа программы

Исходный код

// Done by TheTutor -- 10/1/01

// Перевод © 2004 Евгений Казеко
// www.gamecoder.kazeko.com
// evgeniy@kazeko.com

/*   Эта обучалка - о функциях. Функции являются важной составляющей программирования.
      Вы будете создавать их и использовать снова и снова. Основные части функции
      таковы:

      int add(int num1, int num2);
      
      Эта строчка называется объявлением или прототипом функции. Здесь определяется тип
      данных, возвращаемых функцией, имя функции (в нашем случае add) и параметры (то,
      что передается в функцию).
      
      Для лучшего восприятия я разделю функцию на части (слева направо)


      "int" -- Это возвращаемый тип (указывает, переменная какого типа будет возвращена
                   функцией) -- Если ваша функция ничего не возвращает, укажите тип "void".

    "add" -- Имя функции -- С его помощью мы можем вызвать эту функцию в main(), например так:
                   add(5,4); -- main() знает, откуда взять код для "add" и выполнить его.
                   

    int num1, int num2 -- Это переменные, которые принимает функция -- Функция может
                                      принять столько переменных, сколько захотите (даже нисколько).
                                      Перечисляя входные параметры, разделяйте их запятой.
                                      Когда вы определяете функцию, вы можете дать переменным имена, но
                                      вы не обязаны это делать. Также, когда вы описываете функцию 
                                      (пишете код, который определяет, что будет делать функция) вы
                                      не обязаны использовать те же имена переменных, что вы используете
                                      в объявлении функции.
                              
      Я думаю, теперь мы готовы написать простую функцию.
      
      Как насчет функции "возведение в степень"? По-моему, звучит неплохо. :)
      Просто чтобы быть уверенным, что вы знаете, вот пример:
      (Примечание: "^" означает возведение в степень)

      2^3 = 2 * 2 * 2 = 8

      3^3 = 27

      Теперь вы знаете о чем я говорю, итак...
*/


#include <stdio.h> // Чтобы мы могли использовать функцию printf()

// Здесь мы определяем прототип нашей функции -- Она будет возвращать целое число
// (результат возведения) -- Параметрами будут два числа, первое - основание (число, возводимое
// в степень), а второе - экспонента (число, степень, в которую возводится основание)


int power(int base, int exp);  // ЗАМЕЧЕНИЕ** отрицательные степени НЕ вычисляются


int main()  // Функция "main" (основа нашей программы)
{

      int result = 0;      // Переменная для хранения результата действия функции power()

      result = power(2,3);      // "result" будет равен 2^3 (не забывайте, что '^' означает возведение в степень)

      printf("2 raised to the 3rd power = %d\n",result);

      result = power(5,3);      // "result" будет равен 5^3

      printf("5 raised to the 3rd power = %d\n",result);

      power(4,4); 
      
      /* А зачем мы делаем это? Я просто хочу показать, что можно вызывать функции и полностью
         игнорировать возвращаемые ими значения (если нужно). Такой вызов не прибавляет ничего
         ценного к нашей программе, но эта запись допустима */
      
      /*  И наконец, зная, как вывести на печать целое число (мы делали это выше), мы можем не
            хранить результат вызова функции в переменной, а вместо этого сделать вот так: */

      printf("4 raised to the 6th power = %d\n",power(4,6));

      return 0;

} // Конец main()


/* Здесь мы описываем нашу функцию - И снова, возвращаемое функцией значение это результат
возведения числа base в степень exp - В качестве параметров берется два целых числа (base и exp) */

int power(int base, int exp) // **Обратите внимание - НЕТ точки с запятой
{
      // Описание функции находится между скобками { и }

      int result = 1; 
      
      /*  Это локальная переменная - о ней знает только функция power(). Это означает, что когда
            мы выйдем из функции, переменная исчезнет */


      // Пока exp НЕ РАВНА нулю, вычесть единицу из exp

      while(exp--)
            result *= base; // result = (result * base);

      return result; // Здесь мы используем ключевое слово "return" -- Мы используем его
                           // чтобы возвращать переменные из функций

} // Конец функции power()



/*  Правило:

      Используйте функции для разбиения вашей программы на части.
      Например, у вас может быть такая функция main():
      

      int main()
      {

            init_game();

            while(game_not_over() == false)
                  play_game();

            return 0;
      }


      А эти функции, например init_game(), могут также быть разбиты на другие функции, например:

      load_level()
      load_monsters()
      load_players()

      и т.д.

      Вы практически ВСЕГДА захотите создать функции для задач, которые будут повторяться
      несколько раз в программе.
*/

      
// Перевод © 2004 Евгений Казеко
// www.gamecoder.kazeko.com
// evgeniy@kazeko.com

Скачать обучалку (Visual C++ 6)

Функции | Все обучалки раздела | Случайные числа

[Главная] [С чего начать?] [Дистанционное обучение] [Статьи] [Обучалки] [Книги] [Софт] [Форум] [Ссылки] [О сайте]

Copyright © 2003-2005 Евгений Казеко. Все права защищены. E-mail: evgeniy@kazeko.com

ремонт малогаборитных квартир , рации Vector , стройматериалы: установим сайдинг на krovlja.ru