W Cat - Язык программирования Euphoria. Справочное руководство
Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.
Описание книги "Язык программирования Euphoria. Справочное руководство"
Описание и краткое содержание "Язык программирования Euphoria. Справочное руководство" читать бесплатно онлайн.
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 имеет встроенную простую систему баз данных и обертки для работы с другими типам баз данных.
[Материал из Википедии]
Пример 2:
s = remainder({81, -3.5, -9, 5.5}, {8, -1.7, 2, -4})
-- s будет равно {1, -0.1, -1, 1.5}
Пример 3:
s = remainder({17, 12, 34}, 16)
-- s будет равно {1, 12, 2}
Пример 4:
s = remainder(16, {2, 3, 5})
-- s будет равно {0, 1, 1}
См. также:
floor
repeat
Синтаксис:
s = repeat(x, a)
Описание:
Создаёт ряд длины a, где каждый элемент является x.
Комментарии:
Когда вы повторяете с помощью данной функции ряд или число с плавающей точкой, интерпретатор фактически не создаёт множественные копии в памяти. Напротив, единственная копия помечается числом экземпляров.
Пример 1:
repeat(0, 10) -- {0,0,0,0,0,0,0,0,0,0}
Пример 2:
repeat("JOHN", 4) -- {"JOHN", "JOHN", "JOHN", "JOHN"}
-- интерпретатор создаст только одну копию "JOHN"
-- в памяти
См. также:
append, prepend, оператор формирования ряда
reverse
Синтаксис:
include misc.e
s2 = reverse(s1)
Описание:
Оборачивает порядок элементов в ряде.
Комментарии:
Создаётся новый ряд, в котором элементы высшего уровня имеют порядок, обратный по отношению к исходному ряду.
Пример 1:
reverse({1,3,5,7}) -- {7,5,3,1}
Пример 2:
reverse({{1,2,3}, {4,5,6}}) -- {{4,5,6}, {1,2,3}}
Пример 3:
reverse({99}) -- {99}
Пример 4:
reverse({}) -- {}
См. также:
append, prepend, repeat
routine_id
Синтаксис:
i = routine_id(st)
Описание:
Функция выдаёт целое число i, известное как номер (идентификатор) подпрограммы, который присваивается процедуре или функции Euphoria, уже определённой программистом. Имя подпрограммы задаётся символьным рядом st. Если подпрограмма с таким именем ещё не определена, выдаётся -1.
Комментарии:
Полученный с помощью данной функции номер подпрограммы может подаваться в call_proc() или call_func() для непрямого (косвенного) вызова подпрограммы с именем st.
Подпрограмма с именем st должна быть видимой, т.е. доступной для вызова в той точке вашей программы, где вызвана функция routine_id() для получения номера подпрограммы. Непрямые вызовы подпрограмм по неким неизвестным пока их номерам могут появляться в программе ранее собственно определения подпрограмм, но конкретное численное значение каждого номера может быть выработано только после определения конкретной подпрограммы - внимательно просмотрите пример 2 ниже.
Правильный номер подпрограммы, как только ему присвоено конкретное значение, будет работать в любом месте вашей программы при косвенных вызовах подпрограммы по этому её номеру через call_proc() / call_func().
Некоторые типовые применения номеров, вырабатываемых routine_id():
1. Указание на подпрограмму, которая в программе будет определена позже.
2. Создание подпрограммы, которая вызывает другую подпрограмму через численный аргумент - см. Пример 2 ниже.
3. Использование ряда, состоящего из номеров подпрограмм, для создания команды переключения по условиям.
4. Установка объектно-ориентированной системы.
5. Обеспечение работы с call_back() - см. platformr.doc.
Обратите внимание, что функции Си, вызов которых возможен в Euphoria, также имеют свои номера подпрограммы - см. define_c_proc() и define_c_func().
Пример 1:
procedure foo()
puts(1, "Hello World\n")
end procedure
integer foo_num
foo_num = routine_id("foo")
call_proc(foo_num, {}) -- то же самое, что и вызов foo()
Пример 2:
function apply_to_all(sequence s, integer f)
-- функция применяется ко всем элементам ряда
sequence result
result = {}
for i = 1 to length(s) do
-- мы уже можем предусмотреть здесь вызов, например,
-- add1() через некоторый, пока неизвестный, номер f,
-- хотя определение самой add1() и численное значение
-- номера f появятся по ходу программы позже
result = append(result, call_func(f, {s[i]}))
end for
return result
end function
function add1(atom x)
return x + 1
end function
-- функция add1() теперь видна, поэтому мы можем запросить
-- для неё номер подпрограммы, который подаётся затем в
-- ранее определённую функцию apply_to_all(), которая,
-- на момент её определения, ещё ничего "не знала" о функции
-- add1(), но уже предусматривала вызов некой, неизвестной
-- тогда, функции по её номеру f.
? apply_to_all({1, 2, 3}, routine_id("add1"))
-- отображается {2,3,4}
См. также:
call_proc, call_func, call_back, define_c_func, define_c_proc, platformr.doc
...
от S до T
save_bitmap
Синтаксис:
include image.e
i = save_bitmap(s, st)
Описание:
Создаёт bitmap-файл (.bmp) из 2-х элементного ряда s. Ряд st является именем .bmp-файла. s[1] является палитрой:
{{r,g,b}, {r,g,b}, ..., {r,g,b}}
Каждая из величин r, g, или b должна быть в диапазоне от 0 до 255. s[2] является двумерным рядом рядов, содержащих пиксельно-графическое изображение. Ряды, содержащиеся в s[2], должны все иметь одинаковую длину. s имеет тот же самый формат, что и величина, выдаваемая функцией read_bitmap().
Индикатор результата операции i может принимать одно из следующих значений:
global constant BMP_SUCCESS = 0,-- успех операции
BMP_OPEN_FAILED = 1,-- файл не открылся на запись
BMP_INVALID_MODE = 4 -- неверный графический формат
-- или неверный аргумент
Комментарии:
Если вы использовали get_all_palette() для получения палитры перед вызовом этой функции, вы должны умножить величины интенсивностей на 4 перед вызовом save_bitmap().
Вы можете использовать save_image(), чтобы получить двумерный ряд для s[2], содержащий изображение.
Функция save_bitmap() вырабатывает файлы биткарт с 2, 4, 16, или 256 цветами, так что все они могут быть затем прочитаны с помощью read_bitmap(). Программа Paintbrush из пакета Windows и некоторые другие графические редакторы не поддерживают 4-х цветные биткарты.
Пример:
paletteData = get_all_palette() * 4
code = save_bitmap({paletteData, imageData},
"c:\\example\\a1.bmp")
См. также:
save_image, read_bitmap, save_screen, get_all_palette
save_image
Платформа:
DOS32
Синтаксис:
include image.e
s3 = save_image(s1, s2)
Описание:
Переписывает в ряд прямоугольное изображение с пиксельно-графического экрана. Результатом является двумерный ряд рядов, содержащий данные обо всех пикселах изображения. Вы можете затем снова вывести это изображение с использованием процедуры display_image(). Ряд s1 является 2-х элементным рядом {x1,y1}, задающим координаты верхнего левого угла изображения, s2 задаёт {x2,y2} - координаты правого нижнего угла.
Пример:
s = save_image({0,0}, {50,50})
display_image({100,200}, s)
display_image({300,400}, s)
-- записывает в ряд квадратный участок размером 51x51 из верхнего левого угла экрана,
-- а затем выводит его в позиции {100,200} и в позиции {300,400}
См. также:
display_image, save_text_image
save_screen
Платформа:
DOS32
Синтаксис:
include image.e
i = save_screen(x1, st)
Описание:
Сохраняет весь экран или прямоугольную область экрана в файле типа Windows bitmap - .bmp-файле. Чтобы записать в файл весь экран, подайте в функцию 0 для x1. Чтобы записать прямоугольную область экрана, x1 должен быть рядом двух рядов: {{topLeftXPixel, topLeftYPixel}, {bottomRightXPixel, bottomRightYPixel}}, где {topLeftXPixel, topLeftYPixel} равно {Xверхний левый, Yверхний левый}, а {bottomRightXPixel, bottomRightYPixel} равно {Xнижний правый, Yнижний правый}
Ряд st - имя вашего .bmp-файла, в который будет записана биткарта.
Индикатор результата операции i может принимать одно из следующих значений:
global constant BMP_SUCCESS = 0,-- успех операции
BMP_OPEN_FAILED = 1,-- файл не открылся на запись
BMP_INVALID_MODE = 4 -- неверный графический формат
-- или неверный аргумент
Комментарии:
save_screen() вырабатывает биткарты с 2, 4, 16, или 256 цветами, которые могут быть прочитаны с помощью read_bitmap(). Программа Paintbrush из пакета Windows и некоторые другие графические редакторы не поддерживают 4-х цветные биткарты.
save_screen() работает только в пиксельно-графических режимах, но не в текстовых.
Пример 1:
-- записывается весь экран:
code = save_screen(0, "c:\\example\\a1.bmp")
Пример 2:
-- записывается часть экрана:
err = save_screen({{0,0},{200, 15}}, "b1.bmp")
См. также:
save_image, read_bitmap, save_bitmap
save_text_image
Синтаксис:
include image.e
s3 = save_text_image(s1, s2)
Описание:
Записывает в ряд прямоугольную область экрана в текстовом режиме. Результатом будет ряд рядов, содержащий символы ASCII и их атрибуты с экрана. Вы сможете затем перевывести этот текст с помощью процедуры display_text_image(). s1 является двухэлементным рядом вида {строка1, колонка1}, в котором определена позиция (знакоместо) верхнего левого символа. s2 - ряд вида {строка2, колонка2}, определяющий позицию (знакоместо) правого нижнего символа.
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Похожие книги на "Язык программирования Euphoria. Справочное руководство"
Книги похожие на "Язык программирования Euphoria. Справочное руководство" читать онлайн или скачать бесплатно полные версии.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Отзывы о "W Cat - Язык программирования Euphoria. Справочное руководство"
Отзывы читателей о книге "Язык программирования Euphoria. Справочное руководство", комментарии и мнения людей о произведении.