Kniga-Online.club
» » » » W Cat - Язык программирования Euphoria. Справочное руководство

W Cat - Язык программирования Euphoria. Справочное руководство

Читать бесплатно W Cat - Язык программирования Euphoria. Справочное руководство. Жанр: Программирование издательство неизвестно, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

См. также:

crash_message, system_exec

all_palette

Платформа:

DOS32

Синтаксис:

include graphics.e

all_palette(s)

Описание:

Задаёт новые интенсивности цветов для всего набора цветов текущего графического режима. Аргумент s является рядом формы: {{r,g,b}, {r,g,b}, ..., {r,g,b}}

Каждый элемент ряда задаёт новую интенсивность цвета {красный, зелёный, синий} для соответствующего номера цвета, начиная с номера 0. Величины для красного (r), зелёного (g) и синего (b) должны быть в пределах от 0 до 63.

Комментарии:

Данная процедура исполняется значительно быстрее, чем если бы вы использовали palette() для задания новых интенсивностей цвета поочерёдно. Эта процедура может быть использована с read_bitmap() для быстрого вывода изображения на экран.

Пример программы:

demodos32bitmap.ex

См. также:

get_all_palette, palette, read_bitmap, video_config, graphics_mode

allocate

Синтаксис:

include machine.e

a = allocate(i)

Описание:

Подготавливает участок памяти, включающий i последовательных байтов. Выдаёт начальный адрес этого участка или 0, если память не может быть выделена. Выданный адрес позволит, как минимум, разместить очередные 4 байта, то есть, память выделяется участками, длина которых кратна 4, даже если i не кратно 4.

Комментарии:

Когда вы завершаете использование участка, вам следует подать адрес участка в процедуру free(). Тем самым участок будет освобожден и память станет доступной для других целей в пределах нужд вашей программы. Euphoria никогда не освободит ваш участок для повторного использования, если вы явно не вызвали free(). Когда ваша программа завершается, вся занятая ею память освобождается операционной системой для использования другими программами.

Пример:

buffer = allocate(100)

for i = 0 to 99 do

poke(buffer+i, 0)

end for

См. также:

free, allocate_low, peek, poke, mem_set, call

allocate_low

Платформа:

DOS32

Синтаксис:

include machine.e

i2 = allocate_low(i1)

Описание:

Подготавливает i1 последовательных байтов в нижней памяти, т.е. в стандартной памяти (адрес ниже 1 мегабайта). Выдаёт начальный адрес участка памяти или 0, если память не может быть выделена.

Комментарии:

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

Пример программы:

demodos32dosint.ex

См. также:

dos_interrupt, free_low, allocate, peek, poke

allocate_string

Синтаксис:

include machine.e

a = allocate_string(s)

Описание:

Подготавливает в памяти пространство для строкового (символьного) ряда s. Копирует ряд s в это пространство, заканчивая строку служебным символом 0, и трактуя каждый элемент ряда как единственный байт. Такой формат требуется для Си-строк. Выдаёт начальный адрес строки в памяти. Если участок памяти достаточного размера недоступен, выдаёт 0.

Комментарии:

Для освобождения пространства, отведённого под строку, используйте free() с адресом строки в качестве аргумента.

Пример:

atom title

title = allocate_string("The Wizard of Oz")

Пример программы:

demowin32window.exw

См. также:

allocate, free

allow_break

Синтаксис:

include file.e

allow_break(i)

Описание:

Если аргумент i = 1 (истина), команды control-c и control-Break получают возможность прервать вашу программу, когда она пытается в очередной раз обратиться к клавиатуре.

Если i = 0 (ложь), ваша программа не будет реагировать на команды control-c или control-Break.

Комментарии:

При нажатии клавиш control-c или control-Break DOS будет выводить ^C на экран, даже если ваша программа не может быть прервана.

Изначально ваша программа может быть прервана в любой точке, где она пытается читать с клавиатуры. Она может быть также прервана другими операциями ввода/вывода в зависимости от режима, установленного пользователем в его файле config.sys (уточните по руководству MS-DOS особенности команды BREAK). Но для некоторых типов программ возможность такого внезапного прерывание с клавиатуры может иметь некоторые негативные последствия и даже приводить в результате к потере данных. Вызов allow_break(0) позволяет вам избежать подобных опасных ситуаций.

И вы можете проверять, не нажимал ли пользователь control-c или control-Break, чтобы продуманно отреагировать на это нажатие и безопасно прервать программу. Для такой проверки служит функция check_break().

Пример:

allow_break(0) -- не дайте пользователю прикончить меня!

См. также:

check_break

and_bits

Синтаксис:

x3 = and_bits(x1, x2)

Описание:

Выполняет логическую операцию AND над соответствующими битами в x1 и x2. Бит в x3 устанавливается в 1, только если соответствующие биты в x1 и x2 оба равны 1.

Комментарии:

Аргументами данной функции могут быть атомы и ряды. Если аргументы являются рядами, применяются правила операций на рядах.

Аргументы должны быть представлены как 32-битные числа, со знаком или без знака.

Если вы намерены манипулировать полными 32-битными величинами, вы должны объявить переменные как atom, но не как integer. В Euphoria тип integer ограничен 31-битом.

Результат трактуется как число со знаком. Оно будет отрицательным, когда старший бит является 1.

Для лучшего понимания двоичного представления числа вы можете вызвать его на отображение в шестнадцатеричной записи. Используйте для этого команду printf() с форматом %x.

Пример 1:

a = and_bits(#0F0F0000, #12345678)

-- a равно #02040000

Пример 2:

a = and_bits(#FF, {#123456, #876543, #2211})

-- a равно {#56, #43, #11}

Пример 3:

a = and_bits(#FFFFFFFF, #FFFFFFFF)

-- a равно -1

-- заметьте, что #FFFFFFFF является положительным числом,

-- но результат побитовой логической операции трактуется

-- как 32-битное число со знаком, так что он отрицателен.

См. также:

or_bits, xor_bits, not_bits, int_to_bits

append

Синтаксис:

s2 = append(s1, x)

Описание:

Создаёт на базе s1 новый ряд, с x, добавленным в конец ряда s1 в качестве последнего элемента ряда s2. Длина ряда s2 будет равна length(s1) + 1, то есть, на один элемент больше длины исходного ряда s1.

Комментарии:

Если x является атомом, операция эквивалентна s2 = s1 & x Если x является рядом, - не эквивалентна.

Необходимая дополнительная память выделяется автоматически и очень эффективно, благодаря динамическому распределению памяти, работающему в Euphoria. Случай, когда s1 и s2 в действительности являются одним и тем же рядом (как в Примере 1 ниже), особенно оптимален.

Пример 1:

Вы можете применить append() для динамического удлинения ряда, т.е.

sequence x

x = {}

for i = 1 to 10 do

x = append(x, i)

end for

-- x теперь равен {1,2,3,4,5,6,7,8,9,10}

Пример 2:

Любой объект Euphoria может быть добавлен к ряду, т.е.

sequence x, y, z

x = {"fred", "barney"}

y = append(x, "wilma")

-- y теперь равен {"fred", "barney", "wilma"}

z = append(append(y, "betty"), {"bam", "bam"})

-- z теперь равен {"fred", "barney", "wilma", "betty", {"bam", "bam"}}

См. также:

prepend, оператор сцепления &, оператор формирования ряда

arccos

Синтаксис:

include misc.e

x2 = arccos(x1)

Описание:

Выдаёт угол, косинус которого равен x1.

Комментарии:

Аргумент, x1, должен быть в пределах от -1 до +1 включительно.

Результат, выраженный в радианах, будет находиться между 0 и PI.

Данная функция может быть применена к атому или ко всем элементам ряда.

Функция arccos() вычисляется не так быстро, как arctan().

Пример:

s = arccos({-1,0,1})

-- s равно {3.141592654, 1.570796327, 0}

См. также:

cos, arcsin, arctan

arcsin

Синтаксис:

include misc.e

x2 = arcsin(x1)

Описание:

Выдаёт угол, синус которого равен x1.

Комментарии:

Аргумент, x1, должен быть в пределах от -1 до +1 включительно.

Результат, выраженный в радианах, будет находиться между -PI/2 и +PI/2.

Данная функция может быть применена к атому или ко всем элементам ряда.

Функция arcsin() вычисляется не так быстро, как arctan().

Пример:

s = arcsin({-1,0,1})

-- s равно {-1.570796327, 0, 1.570796327}

См. также:

sin, arccos, arctan

arctan

Синтаксис:

x2 = arctan(x1)

Описание:

Выдаёт угол, тангенс которого равен x1.

Комментарии:

Результат, выраженный в радианах, будет между -PI/2 и PI/2.

Данная функция может быть применена к атому или ко всем элементам ряда.

Функция arctan() вычисляется быстрее, чем arcsin() или arccos().

Пример:

s = arctan({1,2,3})

-- s равно {0.785398, 1.10715, 1.24905}

См. также:

tan, arcsin, arccos

atom

Синтаксис:

i = atom(x)

Описание:

Выдаёт 1, если x является атомом, иначе выдаёт 0.

Перейти на страницу:

W Cat читать все книги автора по порядку

W Cat - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


Язык программирования Euphoria. Справочное руководство отзывы

Отзывы читателей о книге Язык программирования Euphoria. Справочное руководство, автор: W Cat. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*