W Cat - Язык программирования Euphoria. Справочное руководство
-- цвет номер 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
Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение W Cat - Язык программирования Euphoria. Справочное руководство, относящееся к жанру Программирование. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.


