Архивы: по дате | по разделам | по авторам

DiNGS – программирование игр в домашних условиях. Часть 16

АрхивПрограммазм (архив)
автор : Александр Супрунов   29.04.2003

Разбираемся с функциями в DiNGS.

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

Представьте кухонный комбайн. Вы закладываете в него мясо, лук, соль и на выходе получаете фарш. Это краткое описание «функции». Как все происходит от нас скрыто (свойство сокрытия подробностей называется инкапсуляцией).

Функция получает определенные данные и возвращает результат после действий произведенных над ними. Пример, известная вам функция RND в качестве параметра получающая число и возвращающая случайное значение, не превышающее указанное функции. Этот результат мы может присвоить переменной:

А=RND(400)

Существуют функции, которые вообще не возвращают значений (или возвращают значение void – что значит «ничего»). На языке С это функции void, а на Pascale подобные функции называются процедурами. Все вместе - есть обычные подпрограммы, а остальное лишь терминология способная при незнании запутать. Функции позволяют упростить программирование. Один раз сокрыть (инкапсулировать) часть кода под осмысленным названием и в дальнейшем пользоваться этим псевдонимом.

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

Локальные переменные действуют только внутри функции. Если есть локальная переменная «A» внутри функции и она равна 5, то это никак не повлияет на одноименную переменную находящуюся за пределами кода функции. Если есть необходимость, чтобы определенная переменная везде была одной и той же необходимо ее обозначить, как глобальную:

GLOBAL A

Локальные переменные обозначаются LOCAL A. Особенность состоит только в том, что если вы хотите использовать значение именно глобальной переменной, то стоит так и написать:

С=GLOBAL a +b

Приведем пример функции seredina получающей определенное значение и возвращающей это значение деленным на 2:

// Начало программы
LOADSPRITE “bita.bmp”,0 
SPRITE 0, seredina(640),seredina(480),0
SHOWSCREEN

FUNCTION seredina: a
//если значений больше, то писать через запятую a,b,c
c=a/2
ENDFUNCTION  c

Вышеприведенный пример демонстрирует использование функции. Функция начинается словом FUNCTION после которого следует название функции, двоеточие и входные переменные и завершается словом ENDFUNCTION с указанием названия возвращаемой переменной: ENDFUNCTION с.

Если функции не возвращает значения указывается: ENDFUNCTION void Функция середина получает значение, обозначенное переменной «а». Далее мы вводим переменную «с», которой присваиваем результат деления «а» на 2. И возвращаем из функции значение «с».

Часто функции используют для определения большего числа из 2.

FUNCTION max: a,b
IF a>b THEN c=a
IF b>a THEN c=b
ENDFUNCTION c

Как вы будете использовать функции зависит только от вашей фантазии.

(Продолжение следует)

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.