Константы

Константы представляют собой обыкновенные числа в удобном строковом представлении. Непонятно? Поехали разбирать что к чему. В математике константа-это величина, значение которой не меняется. В программировании точно так же! Константой в FreeBasic может быть любое число или строка, которой мы с помощью определенной команды Const присвоим свое уникальное имя. Затем в любом, нужном нам месте кода, мы пишем ее имя, а компилятор перед компиляцией попросту заменит ее имя на числовое значение, которое мы ей изначально присваиваем. Когда встанет у некоторых вопрос, что лучше использовать для быстродействия программы числа или константы? Вы можете смело использовать то, что вам нравится, на быстродействие программы это никоим образом не влияет. Константы сделаны исключительно для удобства программиста. Давайте посмотрим на примере:

Const FileName="C:\Windows\System32\Riisa\en-US\Vider.dll"
? FileName : Sleep

Очень похоже на переменную правда? Однако переменная кушает лишнюю оперативную память, и работа с ней медленнее, чем с константой.  Но это не означает, что константы лучше. Их глупо вообще сравнивать, каждый инструмент для своей задачи. Скажите можно ли сравнивать пассатижи и отвертку, трактор и такси на предмет что лучше?  И так при объявлении константы первой идет команда Const , далее идет ваше придуманное уникальное имя и через знак равенства присваивается нужное значение. Правила для имен констант те же самые, что и для переменных В примере выше мы создали строковую константу, но ничто не мешает таким же способом создать числовую:

Dim As Double diameter
Const Pi=3.141592653589793
Input "Enter diameter circle ", diameter
? "Length circle=" ; Pi*diameter : Sleep

Мы создали простую программу для определения длины окружности. Зная диаметр круга, длина окружности вычисляется по формуле: L=PI * D    Где:

L - длина окружности ; PI стандартная константа ;  D - Диаметр

  • В первой строке мы объявили  переменную с плавающей точкой: diameter
  • Во второй строке создали константу PI
  • В третьей строке с помощью команды Input мы получили возможность получать вводимые значения от пользователя из окна консоли. Эта команда, как видите, имеет два параметра, записанные через запятую. Первый параметр подсказка для пользователя, второй параметр- переменная, которой  будет присвоено то, что вводится пользователем
  •  В четвертой строке, мы вывели в окно консоли результат вычисления по формуле.

В языке FreeBasic , как и во многих профессиональных языках программирования, есть так называемые перечисления констант. Это очень полезная и удобная функциональность, заложенная в языке. Чуть ниже мы ее рассмотрим. А пока начнем с того, что язык Freebasic содержит некий формат блока, который простирается на немалое кол-во встроенных команд:

Блок

здесь содержимое блока

Конец блока

Под это правило форматирования подходят такие команды как If - Endif , Select - End Select, Asm - End Asm, и много других. Вот один из таких блоков для перечисления констант давайте рассмотрим:

Enum One
    a,b,c,d,e,f
End Enum
? a,b,c,d,e,f : Sleep

Сначала задается перечисление командой Enum далее идет имя перечисления (любое ваше придуманное, но уникальное имя, все как с переменными и константами). Завершается блок командой End Enum. В теле блока можно задавать имена констант. Заметьте, значения задавать не обязательно, они задаются автоматически по порядку начиная от 0 (по умолчанию).  То есть первой присваивается 0, второй 1, третьей 2 и так далее. Писать константы можно как в строчку, так и в столбик ( это как вам угодно):

Enum One
    a
    b
    c
    d
    e
    f
End Enum
? a,b,c,d,e,f : Sleep

Все вроде хорошо, но вот вам нужно, чтобы перечисления начинались не с нуля, а  скажем с 25, тогда можно применить такой метод:

Enum One
    a=25
    b
    c
    d
    e
    f
End Enum
? a,b,c,d,e,f : Sleep

Теперь первому числу будет присвоено 25, второму 26 и так далее. Но ничто не мешает вам менять порядок перечисления в любом месте блока или присваивать все константам значения вручную:

Enum One
    a=25
    b
    c=100
    d
    e=44
    f
End Enum
? a,b,c,d,e,f : Sleep(3000)

Результат будет: 25  26  100  101  44  45

Неправда ли удобно? Здесь вы увидели, что я команду Sleep использую с параметром 3000 . Это тоже полезная опция, позволяющая останавливать программу на определенный участок времени в миллисекундах. В данном случае я использую 3 секунды. Как помните наверно, если к этой команде не применять параметра, то она будет ожидать до нажатия любой клавиши. Вроде как по константам все, так что думаю, пора закончить данную статью. Всего доброго!

содержание | назад | вперед