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

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

Уважаемые читатели!
Тут можно читать бесплатно Язык программирования Euphoria. Справочное руководство - W Cat. Жанр: Программирование. Так же Вы можете читать полную версию (весь текст) онлайн книги без регистрации и SMS на сайте Knigi-online.info (книги онлайн) или прочесть краткое содержание, описание, предисловие (аннотацию) от автора и ознакомиться с отзывами (комментариями) о произведении.
Описание онлайн-книги Язык программирования Euphoria. Справочное руководство - W Cat:
Euphoria (юфо'ри, также рус. эйфори'я, ра'дость) — язык программирования, созданный Робертом Крейгом (Rapid Deployment Software) в Канаде, Торонто. Название Euphoria — это акроним для «End-User Programming with Hierarchical Objects for Robust Interpreted Applications».Euphoria — интерпретируемый императивный язык высокого уровня общего назначения. C помощью транслятора из исходного кода на Euphoria может быть сгенерирован исходный код на языке Си, который в свою очередь может быть скомпилирован в исполнияемый файл или динамическую библиотеку при помощи таких компиляторов, как GCC, OpenWatcom и др. Программа Euphoria также может быть «связана» с интерпретатором для получения самостоятельного исполняемого файла. Поддерживается несколько GUI-библиотек, включая Win32lib и оберток для wxWidgets, GTK+ и IUP. Euphoria имеет встроенную простую систему баз данных и обертки для работы с другими типам баз данных.[Материал из Википедии]
Читем онлайн Язык программирования Euphoria. Справочное руководство - W Cat

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 26 27 28 29 30 31 32 33 34 ... 39

-- цвет номер 0 (обычно чёрный) изменён на оттенок

-- зеленоватого цвета.

См. также:

all_palette

peek

Синтаксис:

i = peek(a)

или ...

s = peek({a, i})

Описание:

Выдаёт величину байта (в пределах от 0 до 255), считанного из памяти по машинному адресу a, или выдаёт ряд, содержащий i последовательных байтовых величин, начинающихся в памяти с адреса a.

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

Так как значения адресов выражаются 32-битными числами, они могут быть больше величины, представимой типом integer (31 бит). Поэтому переменные, которые содержат адреса, должны объявляться как atom.

Более быстрым, чем побайтное считывание в цикле, является чтение нескольких байтов сразу с использованием второй формы peek().

Помните, что в функцию peek() подаётся единственный аргумент, который во второй форме является двухэлементным рядом.

Пример:

Следующие записи равнозначны:

-- метод 1

s = {peek(100), peek(101), peek(102), peek(103)}

-- метод 2

s = peek({100, 4})

См. также:

poke, peek4s, peek4u, allocate, free, allocate_low, free_low, call

peek4s

Синтаксис:

a2 = peek4s(a1)

или ...

s = peek4s({a1, i})

Описание:

Выдаёт 4-х байтную (32 бита) величину со знаком в диапазоне от -2147483648 до +2147483647, считанную с машинного адреса a1, или ряд, содержащий i последовательных 4-байтных величин со знаком, начинающихся с адреса a1 в памяти.

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

32-х битные величины, выдаваемые функцией peek4s(), могут превышать допустимые для типа integer в Euphoria (31-бит), поэтому вы должны использовать переменные типа atom.

Так как машинные адреса являются 32-х битными числами, их величина может превышать допустимую для типа integer Euphoria. Поэтому переменные, в которых записываются адреса, должны быть объявлены как atom.

Более быстрым, чем поочерёдное чтение 4-байтных величин в цикле, является чтение нескольких 4-байтных величин сразу с использованием второй формы peek4s().

Не забывайте, что peek4s() требует единственного аргумента, который во второй форме является 2-х элементным рядом.

Пример:

Следующие записи равнозначны:

-- метод 1

s = {peek4s(100), peek4s(104), peek4s(108), peek4s(112)}

-- метод 2

s = peek4s({100, 4})

См. также:

peek4u, peek, poke4, allocate, free, allocate_low, free_low, call

peek4u

Синтаксис:

a2 = peek4u(a1)

или ...

s = peek4u({a1, i})

Описание:

Выдаёт 4-х байтную (32 бита) величину без знака в диапазоне от 0 до 4294967295, расположенную по машинному адресу a1, или выдаёт ряд из i таких величин, начинающийся с адреса a1 в памяти.

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

32-х битная величина, выдаваемая peek4u(), может превышать допустимую для типа integer в Euphoria (31 бит), поэтому вы должны использовать переменные типа atom.

Так как машинные адреса являются 32-битными числами, они также могут быть за пределами типа integer Euphoria. Переменные, в которых содержатся адреса, должны быть объявлены как тип atom.

Более быстрым является чтение нескольких 4-х байтных величин сразу с использованием второй формы peek4u(), чем поочерёдное чтение таких величин в цикле.

Не упускайте из виду, что peek4u() требует единственного аргумента, который для второй формы является 2-х элементным рядом.

Пример:

Следующие записи равнозначны:

-- метод 1

s = {peek4u(100), peek4u(104), peek4u(108), peek4u(112)}

-- метод 2

s = peek4u({100, 4})

См. также:

peek4s, peek, poke4, allocate, free, allocate_low, free_low, call

PI

Синтаксис:

include misc.e

PI

Описание:

PI (3.14159...) число Пи определено как глобальная константа.

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

Принятое в определении число знаков Пи обеспечивает максимальную точность вычислений, возможную для типа atom в Euphoria.

Пример:

x = PI -- x будет равно 3.14159...

См. также:

sin, cos, tan

pixel

Платформа:

DOS32

Синтаксис:

pixel(x1, s)

Описание:

Включает один или несколько пикселов на пиксельно-графическом экране, начиная с точки s, где s является 2-х элементным рядом экранных координат {x, y}. Если x1 является атомом, включается один пиксел с цветом x1. Если x1 является рядом, включается ряд пикселов, начиная с точки s и вправо (возрастает x, y постоянное).

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

Когда x1 является рядом, применяется весьма быстрый алгоритм включения пикселов на экране. Он значительно быстрее, чем поочередное включение одиночных пикселов через вызовы pixel() в цикле. Задавая сразу ряд цветов пикселов, вы заметно быстрее нарисуете их на экране.

В графическом режиме 19 процедура pixel() особенно быстрая.

Те пикселы, координаты которых уходят за пределы экрана, игнорируются интерпретатором.

Пример 1:

pixel(BLUE, {50, 60})

-- в точке {50,60} включится пиксел с цветом BLUE(синий)

Пример 2:

pixel({BLUE, GREEN, WHITE, RED}, {50,60})

-- {50,60} включится BLUE (синий)

-- {51,60} включится GREEN (зелёный)

-- {52,60} включится WHITE (белый)

-- {53,60} включится RED (красный)

См. также:

get_pixel, graphics_mode

platform

Синтаксис:

i = platform()

Описание:

Значение, выдаваемое функцией platform(), встроено в интерпретатор. Это значение показывает, с каким именно интерпретатором запущена программа, с интерпретатором для DOS32, WIN32, Linux или FreeBSD.

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

Когда работает ex.exe, считается, что операционная система DOS32. Когда работает exw.exe, операционная система WIN32. Когда работает exu, операционная система Linux (или FreeBSD).

В библиотеке misc.e определены следующие глобальные константы:

global constant DOS32 = 1,

WIN32 = 2,

LINUX = 3,

FREEBSD = 3

Используйте функцию platform(), когда вам необходимо исполнять различный код в зависимости от операционной системы, в среде которой запущена ваша программа.

Дополнительные значения констант будут вводиться в Euphoria по мере освоения других машин и операционных систем.

Вызов функции platform() не влечёт никаких расходов. Во время компиляции просто вырабатывается соответствующая целочисленная величина: 1, 2 или 3.

Пример:

if platform() = WIN32 then

-- вызов системной подпрограммы Beep под Windows

err = c_func(Beep, {0,0})

elsif platform() = DOS32 then

-- запуск звука на встроенном динамике под DOS

sound(500)

t = time()

while time() do

end while

sound(0)

else

-- пропуск команды под Linux/FreeBSD

end if

См. также:

platformr.doc

poke

Синтаксис:

poke(a, x)

Описание:

Если x является атомом, в память по адресу a записывается один байт. Если же x является рядом, в память, начиная с адреса a, записывается последовательность байтов, представленная этим рядом.

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

В память записываются младшие 8 битов величины x, т.е. remainder(x, 256), а не сама величина х.

Запись в память ряда байтов является значительно более быстрой, чем поочерёдная запись отдельных байтов в цикле.

Вывод в экранную память с помощью poke() может быть намного быстрее, чем стандартная запись на экран с помощью процедур puts() или printf(), но программирование такого вывода заметно сложнее. В большинстве случаев сверхвысокая скорость не требуется. Например, в редакторе ed.ex из пакета Euphoria poke() никогда не используется.

Пример:

a = allocate(100) -- выделяется 100 байтов в памяти

-- заносится в память один байт за один вызов poke():

poke(a, 97)

poke(a+1, 98)

poke(a+2, 99)

-- заносится 3 байта сразу:

poke(a, {97, 98, 99})

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

democallmach.ex

См. также:

peek, poke4, allocate, free, allocate_low, free_low, call, safe.e

poke4

Синтаксис:

poke4(a, x)

Описание:

Если x является атомом, в память по адресу a записывается 4 байта (32 бита).

Если x является рядом, в память, начиная с адреса a, записывается последовательность 4-байтовых величин, представленная этим рядом.

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

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

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

Записываемые 4-байтовые величины могут быть положительными или отрицательными. Считаны они могут быть затем с помощью или peek4s(), или peek4u().

Пример:

a = allocate(100) -- выделяется 100 байтов в памяти

-- записывается одна 4-байтовая величина за каждый вызов poke4():

poke4(a, 9712345)

poke4(a+4, #FF00FF00)

poke4(a+8, -12345)

-- записывается три 4-байтовых величины сразу:

poke4(a, {9712345, #FF00FF00, -12345})

См. также:

peek4u, peek4s, poke, allocate, allocate_low, call

polygon

1 ... 26 27 28 29 30 31 32 33 34 ... 39
На этой странице вы можете бесплатно читать книгу Язык программирования Euphoria. Справочное руководство - W Cat бесплатно.
Похожие на Язык программирования Euphoria. Справочное руководство - W Cat книги

Оставить комментарий

Рейтинговые книги